More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,934 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Fund And Run Mul... | 60802419 | 16 mins ago | IN | 0 AVAX | 0.00016385 | ||||
Execute With Tok... | 60801911 | 27 mins ago | IN | 0 AVAX | 0.00006231 | ||||
Express Execute ... | 60801790 | 29 mins ago | IN | 0 AVAX | 0.00016103 | ||||
Execute With Tok... | 60801097 | 46 mins ago | IN | 0 AVAX | 0.0002883 | ||||
Execute With Tok... | 60801047 | 47 mins ago | IN | 0 AVAX | 0.00036267 | ||||
Execute With Tok... | 60800691 | 55 mins ago | IN | 0 AVAX | 0.00026718 | ||||
Execute With Tok... | 60800624 | 57 mins ago | IN | 0 AVAX | 0.0003566 | ||||
Express Execute ... | 60800608 | 57 mins ago | IN | 0 AVAX | 0.00345029 | ||||
Express Execute ... | 60800552 | 58 mins ago | IN | 0 AVAX | 0.00100661 | ||||
Execute With Tok... | 60800531 | 1 hrs ago | IN | 0 AVAX | 0.00067168 | ||||
Express Execute ... | 60800472 | 1 hr ago | IN | 0 AVAX | 0.00113209 | ||||
Execute With Tok... | 60800393 | 1 hr ago | IN | 0 AVAX | 0.00100193 | ||||
Express Execute ... | 60800318 | 1 hr ago | IN | 0 AVAX | 0.02214806 | ||||
Express Execute ... | 60800306 | 1 hr ago | IN | 0 AVAX | 0.0035624 | ||||
Express Execute ... | 60799957 | 1 hr ago | IN | 0 AVAX | 0.01338281 | ||||
Execute With Tok... | 60799621 | 1 hr ago | IN | 0 AVAX | 0.00309236 | ||||
Express Execute ... | 60799553 | 1 hr ago | IN | 0 AVAX | 0.00771966 | ||||
Execute With Tok... | 60798034 | 1 hr ago | IN | 0 AVAX | 0.00020627 | ||||
Execute With Tok... | 60797873 | 2 hrs ago | IN | 0 AVAX | 0.00002173 | ||||
Call Bridge Call | 60795734 | 2 hrs ago | IN | 0.0041681 AVAX | 0.00051288 | ||||
Call Bridge Call | 60795496 | 2 hrs ago | IN | 0.01041941 AVAX | 0.0004688 | ||||
Execute With Tok... | 60795113 | 3 hrs ago | IN | 0 AVAX | 0.00006338 | ||||
Execute With Tok... | 60794335 | 3 hrs ago | IN | 0 AVAX | 0.0001667 | ||||
Express Execute ... | 60794246 | 3 hrs ago | IN | 0 AVAX | 0.00140672 | ||||
Express Execute ... | 60794002 | 3 hrs ago | IN | 0 AVAX | 0.00064433 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
60800040 | 1 hr ago | 0.00650252 AVAX | ||||
60800040 | 1 hr ago | 0.00650252 AVAX | ||||
60797647 | 2 hrs ago | 37.6675 AVAX | ||||
60797647 | 2 hrs ago | 37.6675 AVAX | ||||
60795734 | 2 hrs ago | 0.0041681 AVAX | ||||
60795496 | 2 hrs ago | 0.01041941 AVAX | ||||
60794934 | 3 hrs ago | 0.00516858 AVAX | ||||
60794934 | 3 hrs ago | 0.00516858 AVAX | ||||
60793275 | 3 hrs ago | 0.12032485 AVAX | ||||
60792668 | 3 hrs ago | 0.00564405 AVAX | ||||
60792668 | 3 hrs ago | 0.00564405 AVAX | ||||
60790361 | 4 hrs ago | 0.00558364 AVAX | ||||
60790361 | 4 hrs ago | 0.00558364 AVAX | ||||
60788885 | 5 hrs ago | 0.00591194 AVAX | ||||
60788885 | 5 hrs ago | 0.00591194 AVAX | ||||
60787423 | 5 hrs ago | 0.00415493 AVAX | ||||
60787423 | 5 hrs ago | 0.00415493 AVAX | ||||
60787414 | 5 hrs ago | 0.12051941 AVAX | ||||
60785774 | 6 hrs ago | 0.07455876 AVAX | ||||
60785774 | 6 hrs ago | 0.07455876 AVAX | ||||
60784852 | 6 hrs ago | 0.06130452 AVAX | ||||
60784804 | 6 hrs ago | 4.45 AVAX | ||||
60783876 | 7 hrs ago | 0.2 AVAX | ||||
60782492 | 7 hrs ago | 0.04100738 AVAX | ||||
60780898 | 8 hrs ago | 13.64 AVAX |
Loading...
Loading
Contract Name:
SquidRouterProxy
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 99999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import {Proxy} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradables/Proxy.sol"; contract SquidRouterProxy is Proxy { function contractId() internal pure override returns (bytes32 id) { id = keccak256("squid-router"); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // General interface for upgradable contracts interface IUpgradable { error NotOwner(); error InvalidOwner(); error InvalidCodeHash(); error InvalidImplementation(); error SetupFailed(); error NotProxy(); event Upgraded(address indexed newImplementation); event OwnershipTransferred(address indexed newOwner); // Get current owner function owner() external view returns (address); function contractId() external pure returns (bytes32); function upgrade( address newImplementation, bytes32 newImplementationCodeHash, bytes calldata params ) external; function setup(bytes calldata data) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import { IUpgradable } from '../interfaces/IUpgradable.sol'; contract Proxy { error InvalidImplementation(); error SetupFailed(); error EtherNotAccepted(); error NotOwner(); error AlreadyInitialized(); // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; // keccak256('owner') bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0; constructor() { // solhint-disable-next-line no-inline-assembly assembly { sstore(_OWNER_SLOT, caller()) } } function init( address implementationAddress, address newOwner, bytes memory params ) external { address owner; // solhint-disable-next-line no-inline-assembly assembly { owner := sload(_OWNER_SLOT) } if (msg.sender != owner) revert NotOwner(); if (implementation() != address(0)) revert AlreadyInitialized(); if (IUpgradable(implementationAddress).contractId() != contractId()) revert InvalidImplementation(); // solhint-disable-next-line no-inline-assembly assembly { sstore(_IMPLEMENTATION_SLOT, implementationAddress) sstore(_OWNER_SLOT, newOwner) } // solhint-disable-next-line avoid-low-level-calls (bool success, ) = implementationAddress.delegatecall( //0x9ded06df is the setup selector. abi.encodeWithSelector(0x9ded06df, params) ); if (!success) revert SetupFailed(); } // solhint-disable-next-line no-empty-blocks function contractId() internal pure virtual returns (bytes32) {} function implementation() public view returns (address implementation_) { // solhint-disable-next-line no-inline-assembly assembly { implementation_ := sload(_IMPLEMENTATION_SLOT) } } // solhint-disable-next-line no-empty-blocks function setup(bytes calldata data) public {} // solhint-disable-next-line no-complex-fallback fallback() external payable { address implementaion_ = implementation(); // solhint-disable-next-line no-inline-assembly assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), implementaion_, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } receive() external payable virtual { revert EtherNotAccepted(); } }
{ "optimizer": { "enabled": true, "runs": 99999 }, "viaIR": true, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"EtherNotAccepted","type":"error"},{"inputs":[],"name":"InvalidImplementation","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SetupFailed","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080806040523461003957337f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05561069a908161003f8239f35b600080fdfe6080604052600436101561002c575b361561001f575b61001d6105f7565b005b610027610639565b610015565b6000803560e01c908163378dfd8e1461006b575080635c60da1b1461006257639ded06df0361000e5761005d61029f565b61000e565b5061005d61022d565b346101185760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610118576100a261011b565b6100aa610143565b6044359067ffffffffffffffff8211610114573660238301121561011457816004013592846100d8856101e4565b936100e66040519586610196565b8585523660248783010111610110578561010d9660246020930183880137850101526103b8565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101d757604052565b6101df610166565b604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610220575b01160190565b610228610166565b61021a565b503461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff80821161013e573660238301121561013e57816004013590811161013e573691016024011161013e57005b9081602091031261013e575190565b506040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610374575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610334565b3d156103b3573d90610399826101e4565b916103a76040519384610196565b82523d6000602084013e565b606090565b91909173ffffffffffffffffffffffffffffffffffffffff917f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0938385541633036105cd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93808554166105a357600460207fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8492604051928380927f8291286c00000000000000000000000000000000000000000000000000000000825289165afa908115610596575b600091610568575b500361053e576000948386955555604051610500816104d460208201947f9ded06df00000000000000000000000000000000000000000000000000000000865260248301610322565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610196565b51915af461050c610388565b501561051457565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610589915060203d811161058f575b6105818183610196565b810190610306565b3861048b565b503d610577565b61059e610315565b610483565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e15610635573d90f35b3d90fd5b5060046040517f37334834000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212205a1ae4e4554ee5e5b30712df541f3571c30f56cc0963334dec2abbb4f5176f4d64736f6c63430008110033
Deployed Bytecode
0x6080604052600436101561002c575b361561001f575b61001d6105f7565b005b610027610639565b610015565b6000803560e01c908163378dfd8e1461006b575080635c60da1b1461006257639ded06df0361000e5761005d61029f565b61000e565b5061005d61022d565b346101185760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610118576100a261011b565b6100aa610143565b6044359067ffffffffffffffff8211610114573660238301121561011457816004013592846100d8856101e4565b936100e66040519586610196565b8585523660248783010111610110578561010d9660246020930183880137850101526103b8565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101d757604052565b6101df610166565b604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610220575b01160190565b610228610166565b61021a565b503461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff80821161013e573660238301121561013e57816004013590811161013e573691016024011161013e57005b9081602091031261013e575190565b506040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610374575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610334565b3d156103b3573d90610399826101e4565b916103a76040519384610196565b82523d6000602084013e565b606090565b91909173ffffffffffffffffffffffffffffffffffffffff917f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0938385541633036105cd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93808554166105a357600460207fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8492604051928380927f8291286c00000000000000000000000000000000000000000000000000000000825289165afa908115610596575b600091610568575b500361053e576000948386955555604051610500816104d460208201947f9ded06df00000000000000000000000000000000000000000000000000000000865260248301610322565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610196565b51915af461050c610388565b501561051457565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610589915060203d811161058f575b6105818183610196565b810190610306565b3861048b565b503d610577565b61059e610315565b610483565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e15610635573d90f35b3d90fd5b5060046040517f37334834000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212205a1ae4e4554ee5e5b30712df541f3571c30f56cc0963334dec2abbb4f5176f4d64736f6c63430008110033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.