ETH Price: $3,357.64 (+2.23%)

Contract

0xce16F69375520ab01377ce7B88f5BA8C48F8D666
Transaction Hash
Block
From
To
Express Execute ...4215973412026-01-15 11:16:5041 secs ago1768475810IN
Squid: Squid Router Proxy
0 ETH0.000009630.02
Execute With Tok...4215969042026-01-15 11:15:022 mins ago1768475702IN
Squid: Squid Router Proxy
0 ETH0.000002220.020108
Express Execute ...4215965742026-01-15 11:13:403 mins ago1768475620IN
Squid: Squid Router Proxy
0 ETH0.000007580.020104
Execute With Tok...4215960072026-01-15 11:11:186 mins ago1768475478IN
Squid: Squid Router Proxy
0 ETH0.00000210.020048
Express Execute ...4215957422026-01-15 11:10:117 mins ago1768475411IN
Squid: Squid Router Proxy
0 ETH0.000005320.02
Execute With Tok...4215956292026-01-15 11:09:437 mins ago1768475383IN
Squid: Squid Router Proxy
0 ETH0.000002090.02
Express Execute ...4215954752026-01-15 11:09:058 mins ago1768475345IN
Squid: Squid Router Proxy
0 ETH0.000005660.02
Execute With Tok...4215948872026-01-15 11:06:3810 mins ago1768475198IN
Squid: Squid Router Proxy
0 ETH0.000002220.020108
Express Execute ...4215946062026-01-15 11:05:2712 mins ago1768475127IN
Squid: Squid Router Proxy
0 ETH0.000007580.020108
Execute With Tok...4215899852026-01-15 10:46:1331 mins ago1768473973IN
Squid: Squid Router Proxy
0 ETH0.000002090.02
Express Execute ...4215896582026-01-15 10:44:5132 mins ago1768473891IN
Squid: Squid Router Proxy
0 ETH0.000005320.02
Execute With Tok...4215884212026-01-15 10:39:4337 mins ago1768473583IN
Squid: Squid Router Proxy
0 ETH0.000002220.02014
Execute With Tok...4215861902026-01-15 10:30:2847 mins ago1768473028IN
Squid: Squid Router Proxy
0 ETH0.000002240.020052
Express Execute ...4215860032026-01-15 10:29:4147 mins ago1768472981IN
Squid: Squid Router Proxy
0 ETH0.000008240.02
Express Execute ...4215829832026-01-15 10:17:071 hr ago1768472227IN
Squid: Squid Router Proxy
0 ETH0.00000790.020012
Execute With Tok...4215791332026-01-15 10:01:051 hr ago1768471265IN
Squid: Squid Router Proxy
0 ETH0.000002210.02
Execute With Tok...4215781392026-01-15 9:56:581 hr ago1768471018IN
Squid: Squid Router Proxy
0 ETH0.00000210.020084
Execute With Tok...4215777402026-01-15 9:55:181 hr ago1768470918IN
Squid: Squid Router Proxy
0 ETH0.000002310.020294
Execute With Tok...4215768132026-01-15 9:51:281 hr ago1768470688IN
Squid: Squid Router Proxy
0 ETH0.000002090.02
Express Execute ...4215766232026-01-15 9:50:401 hr ago1768470640IN
Squid: Squid Router Proxy
0 ETH0.000005340.020082
Express Execute ...4215747622026-01-15 9:42:551 hr ago1768470175IN
Squid: Squid Router Proxy
0 ETH0.000005340.020058
Express Execute ...4215734482026-01-15 9:37:271 hr ago1768469847IN
Squid: Squid Router Proxy
0 ETH0.000008010.02011
Execute With Tok...4215733312026-01-15 9:36:581 hr ago1768469818IN
Squid: Squid Router Proxy
0 ETH0.000002090.02
Express Execute ...4215730222026-01-15 9:35:401 hr ago1768469740IN
Squid: Squid Router Proxy
0 ETH0.000005320.02
Execute With Tok...4215722502026-01-15 9:32:281 hr ago1768469548IN
Squid: Squid Router Proxy
0 ETH0.000002090.020046
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
4215966782026-01-15 11:14:063 mins ago1768475646
Squid: Squid Router Proxy
0.00002269 ETH
4215966782026-01-15 11:14:063 mins ago1768475646
Squid: Squid Router Proxy
0.00002269 ETH
4215956502026-01-15 11:09:487 mins ago1768475388
Squid: Squid Router Proxy
0.00002269 ETH
4215956502026-01-15 11:09:487 mins ago1768475388
Squid: Squid Router Proxy
0.00002269 ETH
4215877232026-01-15 10:36:5040 mins ago1768473410
Squid: Squid Router Proxy
0.00000788 ETH
4215877232026-01-15 10:36:5040 mins ago1768473410
Squid: Squid Router Proxy
0.00000788 ETH
4215806332026-01-15 10:07:191 hr ago1768471639
Squid: Squid Router Proxy
0.0000232 ETH
4215806332026-01-15 10:07:191 hr ago1768471639
Squid: Squid Router Proxy
0.0000232 ETH
4215778502026-01-15 9:55:451 hr ago1768470945
Squid: Squid Router Proxy
0.00002279 ETH
4215778502026-01-15 9:55:451 hr ago1768470945
Squid: Squid Router Proxy
0.00002279 ETH
4215768152026-01-15 9:51:281 hr ago1768470688
Squid: Squid Router Proxy
0.00008147 ETH
4215768152026-01-15 9:51:281 hr ago1768470688
Squid: Squid Router Proxy
0.00008147 ETH
4215738572026-01-15 9:39:101 hr ago1768469950
Squid: Squid Router Proxy
0.00002291 ETH
4215738572026-01-15 9:39:101 hr ago1768469950
Squid: Squid Router Proxy
0.00002291 ETH
4215734402026-01-15 9:37:251 hr ago1768469845
Squid: Squid Router Proxy
0.00002291 ETH
4215734402026-01-15 9:37:251 hr ago1768469845
Squid: Squid Router Proxy
0.00002291 ETH
4215725422026-01-15 9:33:401 hr ago1768469620
Squid: Squid Router Proxy
0.00002291 ETH
4215725422026-01-15 9:33:401 hr ago1768469620
Squid: Squid Router Proxy
0.00002291 ETH
4215703442026-01-15 9:24:301 hr ago1768469070
Squid: Squid Router Proxy
0.00002707 ETH
4215703442026-01-15 9:24:301 hr ago1768469070
Squid: Squid Router Proxy
0.00002707 ETH
4215695752026-01-15 9:21:181 hr ago1768468878
Squid: Squid Router Proxy
0.00018687 ETH
4215695752026-01-15 9:21:181 hr ago1768468878
Squid: Squid Router Proxy
0.00018687 ETH
4215667662026-01-15 9:09:352 hrs ago1768468175
Squid: Squid Router Proxy
0.0000139 ETH
4215634022026-01-15 8:55:342 hrs ago1768467334
Squid: Squid Router Proxy
0.00002643 ETH
4215605842026-01-15 8:43:492 hrs ago1768466629
Squid: Squid Router Proxy
0.00001792 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SquidRouterProxy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 99999 runs

Other Settings:
default evmVersion
// 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();
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 99999
  },
  "viaIR": true,
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

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"}]

6080806040523461003957337f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05561069a908161003f8239f35b600080fdfe6080604052600436101561002c575b361561001f575b61001d6105f7565b005b610027610639565b610015565b6000803560e01c908163378dfd8e1461006b575080635c60da1b1461006257639ded06df0361000e5761005d61029f565b61000e565b5061005d61022d565b346101185760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610118576100a261011b565b6100aa610143565b6044359067ffffffffffffffff8211610114573660238301121561011457816004013592846100d8856101e4565b936100e66040519586610196565b8585523660248783010111610110578561010d9660246020930183880137850101526103b8565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101d757604052565b6101df610166565b604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610220575b01160190565b610228610166565b61021a565b503461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff80821161013e573660238301121561013e57816004013590811161013e573691016024011161013e57005b9081602091031261013e575190565b506040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610374575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610334565b3d156103b3573d90610399826101e4565b916103a76040519384610196565b82523d6000602084013e565b606090565b91909173ffffffffffffffffffffffffffffffffffffffff917f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0938385541633036105cd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93808554166105a357600460207fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8492604051928380927f8291286c00000000000000000000000000000000000000000000000000000000825289165afa908115610596575b600091610568575b500361053e576000948386955555604051610500816104d460208201947f9ded06df00000000000000000000000000000000000000000000000000000000865260248301610322565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610196565b51915af461050c610388565b501561051457565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610589915060203d811161058f575b6105818183610196565b810190610306565b3861048b565b503d610577565b61059e610315565b610483565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e15610635573d90f35b3d90fd5b5060046040517f37334834000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212205a1ae4e4554ee5e5b30712df541f3571c30f56cc0963334dec2abbb4f5176f4d64736f6c63430008110033

Deployed Bytecode

0x6080604052600436101561002c575b361561001f575b61001d6105f7565b005b610027610639565b610015565b6000803560e01c908163378dfd8e1461006b575080635c60da1b1461006257639ded06df0361000e5761005d61029f565b61000e565b5061005d61022d565b346101185760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610118576100a261011b565b6100aa610143565b6044359067ffffffffffffffff8211610114573660238301121561011457816004013592846100d8856101e4565b936100e66040519586610196565b8585523660248783010111610110578561010d9660246020930183880137850101526103b8565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101d757604052565b6101df610166565b604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610220575b01160190565b610228610166565b61021a565b503461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff80821161013e573660238301121561013e57816004013590811161013e573691016024011161013e57005b9081602091031261013e575190565b506040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610374575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610334565b3d156103b3573d90610399826101e4565b916103a76040519384610196565b82523d6000602084013e565b606090565b91909173ffffffffffffffffffffffffffffffffffffffff917f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0938385541633036105cd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93808554166105a357600460207fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8492604051928380927f8291286c00000000000000000000000000000000000000000000000000000000825289165afa908115610596575b600091610568575b500361053e576000948386955555604051610500816104d460208201947f9ded06df00000000000000000000000000000000000000000000000000000000865260248301610322565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610196565b51915af461050c610388565b501561051457565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610589915060203d811161058f575b6105818183610196565b810190610306565b3861048b565b503d610577565b61059e610315565b610483565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e15610635573d90f35b3d90fd5b5060046040517f37334834000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212205a1ae4e4554ee5e5b30712df541f3571c30f56cc0963334dec2abbb4f5176f4d64736f6c63430008110033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xce16F69375520ab01377ce7B88f5BA8C48F8D666
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.