GLMR Price: $0.387034 (+18.04%)
Gas: 125 GWei

Contract

0xce16F69375520ab01377ce7B88f5BA8C48F8D666
Transaction Hash
Method
Block
From
To
Express Execute ...86085622024-12-04 15:49:0620 mins ago1733327346IN
Squid: Router
0 GLMR0.39538656180
Execute With Tok...86085542024-12-04 15:48:1821 mins ago1733327298IN
Squid: Router
0 GLMR1.914732742,282.4
Express Execute ...86085322024-12-04 15:45:4823 mins ago1733327148IN
Squid: Router
0 GLMR0.38262528180
Execute With Tok...86084962024-12-04 15:42:1227 mins ago1733326932IN
Squid: Router
0 GLMR0.9679681,125
Fund And Run Mul...86084802024-12-04 15:40:3628 mins ago1733326836IN
Squid: Router
0 GLMR0.26971444126.25
Fund And Run Mul...86084532024-12-04 15:37:4831 mins ago1733326668IN
Squid: Router
0 GLMR0.17862052126.25
Execute With Tok...86084042024-12-04 15:32:4236 mins ago1733326362IN
Squid: Router
0 GLMR0.10294482125.001
Fund And Run Mul...86083882024-12-04 15:31:0638 mins ago1733326266IN
Squid: Router
0 GLMR0.18004948127.26
Call Bridge Call86083662024-12-04 15:28:5440 mins ago1733326134IN
Squid: Router
17.52478514 GLMR0.29924294126
Call Bridge Call86083252024-12-04 15:24:4844 mins ago1733325888IN
Squid: Router
17.05424186 GLMR0.29924294126
Execute With Tok...86082992024-12-04 15:22:0047 mins ago1733325720IN
Squid: Router
0 GLMR0.1287333143.75
Call Bridge Call86082862024-12-04 15:20:3648 mins ago1733325636IN
Squid: Router
1.92556869 GLMR0.84950208126
Express Execute ...86082672024-12-04 15:18:4250 mins ago1733325522IN
Squid: Router
0 GLMR0.60723936180
Execute With Tok...86082532024-12-04 15:17:1852 mins ago1733325438IN
Squid: Router
0 GLMR0.12247872136.5
Execute With Tok...86082532024-12-04 15:17:1852 mins ago1733325438IN
Squid: Router
0 GLMR0.12224066136.5
Execute With Tok...86082402024-12-04 15:16:0053 mins ago1733325360IN
Squid: Router
0 GLMR0.26341836314
Express Execute ...86082262024-12-04 15:14:3654 mins ago1733325276IN
Squid: Router
0 GLMR1.1705616180
Express Execute ...86082172024-12-04 15:13:4255 mins ago1733325222IN
Squid: Router
0 GLMR0.38262528180
Express Execute ...86081292024-12-04 15:04:541 hr ago1733324694IN
Squid: Router
0 GLMR0.16072128180
Fund And Run Mul...86079222024-12-04 14:43:481 hr ago1733323428IN
Squid: Router
0 GLMR0.27018308126.25
Call Bridge Call86078272024-12-04 14:34:121 hr ago1733322852IN
Squid: Router
0.66460241 GLMR0.49515239125.0041382
Call Bridge Call86077732024-12-04 14:28:481 hr ago1733322528IN
Squid: Router
1.13806792 GLMR0.46580144130
Call Bridge Call86076542024-12-04 14:16:481 hr ago1733321808IN
Squid: Router
2,001.53766069 GLMR0.44091125
Call Bridge Call86076472024-12-04 14:16:061 hr ago1733321766IN
Squid: Router
1.43655706 GLMR0.624168125
Call Bridge Call86075662024-12-04 14:07:542 hrs ago1733321274IN
Squid: Router
3.91101721 GLMR0.35048748127
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
86021752024-12-04 5:01:1211 hrs ago1733288472
Squid: Router
8.71055472 GLMR
85851232024-12-03 0:11:1239 hrs ago1733184672
Squid: Router
1,018.94887544 GLMR
85849822024-12-02 23:57:0040 hrs ago1733183820
Squid: Router
13.29780462 GLMR
85553552024-11-30 21:45:483 days ago1733003148
Squid: Router
9.34732523 GLMR
85396212024-11-29 19:14:544 days ago1732907694
Squid: Router
201.14584281 GLMR
85362332024-11-29 13:33:425 days ago1732887222
Squid: Router
3,169.23851231 GLMR
85054362024-11-27 9:42:007 days ago1732700520
Squid: Router
415.99319576 GLMR
84830502024-11-25 19:49:488 days ago1732564188
Squid: Router
1,785.97568814 GLMR
84800612024-11-25 14:45:009 days ago1732545900
Squid: Router
997.03897102 GLMR
84800202024-11-25 14:40:549 days ago1732545654
Squid: Router
1,778.46335184 GLMR
84800022024-11-25 14:39:069 days ago1732545546
Squid: Router
2,003.32951963 GLMR
84799762024-11-25 14:36:309 days ago1732545390
Squid: Router
1,503.46794205 GLMR
84791632024-11-25 13:14:009 days ago1732540440
Squid: Router
501.3396533 GLMR
84696732024-11-24 21:02:309 days ago1732482150
Squid: Router
1,160.90989299 GLMR
84696442024-11-24 20:59:369 days ago1732481976
Squid: Router
1,000.90989299 GLMR
84696202024-11-24 20:57:129 days ago1732481832
Squid: Router
1,000.90989299 GLMR
84695702024-11-24 20:51:549 days ago1732481514
Squid: Router
3,177.90162649 GLMR
84695432024-11-24 20:49:129 days ago1732481352
Squid: Router
100.93666128 GLMR
84695252024-11-24 20:47:249 days ago1732481244
Squid: Router
34.68887276 GLMR
84483682024-11-23 8:55:0611 days ago1732352106
Squid: Router
123.14974582 GLMR
83435332024-11-15 22:06:0018 days ago1731708360
Squid: Router
1.20512005 GLMR
83260312024-11-14 16:13:0019 days ago1731600780
Squid: Router
4.00880319 GLMR
83131282024-11-13 18:06:1220 days ago1731521172
Squid: Router
506.58806489 GLMR
82819402024-11-11 12:56:5423 days ago1731329814
Squid: Router
831.7330218 GLMR
82811622024-11-11 11:37:4823 days ago1731325068
Squid: Router
201.61862081 GLMR
View All Internal 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
File 1 of 3 : SquidRouterProxy.sol
// 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");
    }
}

File 2 of 3 : IUpgradable.sol
// 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;
}

File 3 of 3 : Proxy.sol
// 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

[{"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 Gas Used Reward
view all blocks collator

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
[ 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.