GLMR Price: $0.021791 (-0.41%)

Contract

0xce16F69375520ab01377ce7B88f5BA8C48F8D666
Transaction Hash
Block
From
To
Fund And Run Mul...142052312026-01-24 5:20:127 hrs ago1769232012IN
Squid: Router
0 GLMR0.0263147531.25
Execute With Tok...142034202026-01-24 1:55:3611 hrs ago1769219736IN
Squid: Router
0 GLMR0.0134939331.251
Express Execute ...142031732026-01-24 1:28:1811 hrs ago1769218098IN
Squid: Router
0 GLMR0.1231470686.25
Call Bridge Call142030522026-01-24 1:14:1812 hrs ago1769217258IN
Squid: Router
1.52398823 GLMR0.049594531.25
Execute With Tok...142029062026-01-24 0:57:2412 hrs ago1769216244IN
Squid: Router
0 GLMR0.0134939331.251
Express Execute ...142027462026-01-24 0:39:5412 hrs ago1769215194IN
Squid: Router
0 GLMR0.1231470686.25
Call Bridge Call142025192026-01-24 0:14:3013 hrs ago1769213670IN
Squid: Router
1.60294666 GLMR0.05018831.25
Execute With Tok...142021082026-01-23 23:30:1813 hrs ago1769211018IN
Squid: Router
0 GLMR0.0130059131.251
Execute With Tok...142020972026-01-23 23:28:3613 hrs ago1769210916IN
Squid: Router
0 GLMR0.0136297632.75
Express Execute ...142020892026-01-23 23:27:4813 hrs ago1769210868IN
Squid: Router
0 GLMR0.0423142586.25
Execute With Tok...142020742026-01-23 23:26:1813 hrs ago1769210778IN
Squid: Router
0 GLMR0.0130059131.251
Express Execute ...142020602026-01-23 23:24:4813 hrs ago1769210688IN
Squid: Router
0 GLMR0.0423142586.25
Execute With Tok...142020202026-01-23 23:20:3613 hrs ago1769210436IN
Squid: Router
0 GLMR0.0153759931.251
Execute With Tok...142020062026-01-23 23:19:1213 hrs ago1769210352IN
Squid: Router
0 GLMR0.0035681731.251
Express Execute ...142020062026-01-23 23:19:1213 hrs ago1769210352IN
Squid: Router
0 GLMR0.0351375686.25
Express Execute ...142019912026-01-23 23:17:4213 hrs ago1769210262IN
Squid: Router
0 GLMR0.0423142586.25
Express Execute ...142018952026-01-23 23:07:1814 hrs ago1769209638IN
Squid: Router
0 GLMR0.0423142586.25
Execute With Tok...142018922026-01-23 23:07:0014 hrs ago1769209620IN
Squid: Router
0 GLMR0.018450637.5
Express Execute ...142018852026-01-23 23:06:2114 hrs ago1769209581IN
Squid: Router
0 GLMR0.0306422186.25
Bridge Call142016432026-01-23 22:38:2414 hrs ago1769207904IN
Squid: Router
0.01 GLMR0.016986531.25
Call Bridge Call142013832026-01-23 22:08:5415 hrs ago1769206134IN
Squid: Router
16.3242511 GLMR0.105709593.75
Fund And Run Mul...142012712026-01-23 21:55:5415 hrs ago1769205354IN
Squid: Router
0 GLMR0.0265177531.25
Bridge Call142009192026-01-23 21:15:0615 hrs ago1769202906IN
Squid: Router
0.01 GLMR0.016594531.25
Bridge Call142009132026-01-23 21:14:3016 hrs ago1769202870IN
Squid: Router
0.01 GLMR0.016594531.25
Call Bridge Call142007602026-01-23 20:57:4216 hrs ago1769201862IN
Squid: Router
1.67459329 GLMR0.035723531.25
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
142074762026-01-24 9:33:243 hrs ago1769247204
Squid: Router
5.53928544 GLMR
141962902026-01-23 12:27:1824 hrs ago1769171238
Squid: Router
2.66859897 GLMR
141962562026-01-23 12:23:3624 hrs ago1769171016
Squid: Router
2.58371485 GLMR
141944772026-01-23 9:03:0628 hrs ago1769158986
Squid: Router
2.22355168 GLMR
141931372026-01-23 6:31:4230 hrs ago1769149902
Squid: Router
2.46689083 GLMR
141849032026-01-22 15:07:5446 hrs ago1769094474
Squid: Router
1.01491843 GLMR
141848272026-01-22 14:58:2446 hrs ago1769093904
Squid: Router
1.02919596 GLMR
141843452026-01-22 14:03:5447 hrs ago1769090634
Squid: Router
1.01500751 GLMR
141792712026-01-22 4:27:002 days ago1769056020
Squid: Router
1.34660287 GLMR
141715722026-01-21 14:04:062 days ago1769004246
Squid: Router
8.7373775 GLMR
141682712026-01-21 7:52:123 days ago1768981932
Squid: Router
3.07084056 GLMR
141632912026-01-20 22:32:363 days ago1768948356
Squid: Router
4.29499272 GLMR
141631122026-01-20 22:11:363 days ago1768947096
Squid: Router
3.57630458 GLMR
141631112026-01-20 22:11:303 days ago1768947090
Squid: Router
3.57630458 GLMR
141631102026-01-20 22:11:243 days ago1768947084
Squid: Router
3.57630458 GLMR
141631102026-01-20 22:11:243 days ago1768947084
Squid: Router
3.57630458 GLMR
141631062026-01-20 22:11:003 days ago1768947060
Squid: Router
3.57630458 GLMR
141631042026-01-20 22:10:303 days ago1768947030
Squid: Router
3.57630458 GLMR
141631032026-01-20 22:10:243 days ago1768947024
Squid: Router
3.57630458 GLMR
141631022026-01-20 22:10:183 days ago1768947018
Squid: Router
3.57630458 GLMR
141631012026-01-20 22:10:123 days ago1768947012
Squid: Router
3.57630458 GLMR
141631002026-01-20 22:10:063 days ago1768947006
Squid: Router
3.57630458 GLMR
141630992026-01-20 22:10:003 days ago1768947000
Squid: Router
3.57630458 GLMR
141630982026-01-20 22:09:543 days ago1768946994
Squid: Router
3.57630458 GLMR
141630962026-01-20 22:09:423 days ago1768946982
Squid: Router
3.57630458 GLMR
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 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
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.