FTM Price: $0.48 (+4.66%)
Gas: 53 GWei

Contract

0xce16F69375520ab01377ce7B88f5BA8C48F8D666
 

Multichain Info

Transaction Hash
Method
Block
From
To
Value
Execute With Tok...765492432024-02-29 19:45:571 min ago1709235957IN
0xce16F6...48F8D666
0 FTM0.0080721171.73492512
Execute With Tok...765490972024-02-29 19:42:474 mins ago1709235767IN
0xce16F6...48F8D666
0 FTM0.0087702375.5104475
Execute With Tok...765490972024-02-29 19:42:474 mins ago1709235767IN
0xce16F6...48F8D666
0 FTM0.0084977175.5104475
Express Execute ...765489472024-02-29 19:39:377 mins ago1709235577IN
0xce16F6...48F8D666
0 FTM0.0126876978.50176651
Express Execute ...765489112024-02-29 19:38:598 mins ago1709235539IN
0xce16F6...48F8D666
0 FTM0.0140445678.4998514
Call Bridge Call765486872024-02-29 19:34:3212 mins ago1709235272IN
0xce16F6...48F8D666
1,051.12247614 FTM0.0140470656.21771558
Call Bridge Call765485252024-02-29 19:30:5416 mins ago1709235054IN
0xce16F6...48F8D666
2,921.69084389 FTM0.0141153256.48818202
Call Bridge Call765483622024-02-29 19:27:3419 mins ago1709234854IN
0xce16F6...48F8D666
1,576.18633867 FTM0.0174555868.14965672
Call Bridge Call765483212024-02-29 19:26:4020 mins ago1709234800IN
0xce16F6...48F8D666
1,578.18633867 FTM0.0174580568.1593044
Express Execute ...765482562024-02-29 19:25:2421 mins ago1709234724IN
0xce16F6...48F8D666
0 FTM0.0298403178.88025017
Execute With Tok...765482402024-02-29 19:25:0821 mins ago1709234708IN
0xce16F6...48F8D666
0 FTM0.0093415875.88369119
Express Execute ...765481502024-02-29 19:23:3123 mins ago1709234611IN
0xce16F6...48F8D666
0 FTM0.0331668278.8698574
Call Bridge Call765479862024-02-29 19:20:3026 mins ago1709234430IN
0xce16F6...48F8D666
131.11522315 FTM0.0158269757.39733979
Call Bridge Call765478822024-02-29 19:18:4128 mins ago1709234321IN
0xce16F6...48F8D666
10.47909229 FTM0.015799357.39733979
Call Bridge Call765477642024-02-29 19:16:3930 mins ago1709234199IN
0xce16F6...48F8D666
1,576.19900996 FTM0.0177338869.27189069
Call Bridge Call765476822024-02-29 19:15:1531 mins ago1709234115IN
0xce16F6...48F8D666
1,590.95714124 FTM0.0171039369.31686849
Call Bridge Call765468252024-02-29 19:01:0745 mins ago1709233267IN
0xce16F6...48F8D666
1.80979672 FTM0.0218625563.06790235
Bridge Call765456852024-02-29 18:41:281 hr 5 mins ago1709232088IN
0xce16F6...48F8D666
1.25025739 FTM0.0114416867.20403174
Execute With Tok...765446572024-02-29 18:24:521 hr 22 mins ago1709231092IN
0xce16F6...48F8D666
0 FTM0.012252495.44375137
Bridge Call765445852024-02-29 18:23:251 hr 23 mins ago1709231005IN
0xce16F6...48F8D666
1.00000583 FTM0.0118669270.66213867
Express Execute ...765445212024-02-29 18:22:091 hr 24 mins ago1709230929IN
0xce16F6...48F8D666
0 FTM0.0177437299.17572654
Call Bridge Call765443802024-02-29 18:19:291 hr 27 mins ago1709230769IN
0xce16F6...48F8D666
580.95038437 FTM0.0241128870.66213867
Call Bridge Call765440772024-02-29 18:13:371 hr 33 mins ago1709230417IN
0xce16F6...48F8D666
28.95510713 FTM0.0281561970.07759812
Call Bridge Call765440232024-02-29 18:12:401 hr 34 mins ago1709230360IN
0xce16F6...48F8D666
29.02953845 FTM0.0308016870.57759812
Call Bridge Call765436212024-02-29 18:05:511 hr 41 mins ago1709229951IN
0xce16F6...48F8D666
1,091.53412863 FTM0.0192705174.21326118
View all transactions

Latest 25 internal transactions (View All)

Parent Txn Hash Block From To Value
765302912024-02-29 14:08:295 hrs 38 mins ago1709215709
0xce16F6...48F8D666
8.43315689 FTM
765169312024-02-29 9:53:219 hrs 53 mins ago1709200401
0xce16F6...48F8D666
2,005.25130757 FTM
764466922024-02-28 8:23:051 day 11 hrs ago1709108585
0xce16F6...48F8D666
71.69869232 FTM
764444962024-02-28 6:20:421 day 13 hrs ago1709101242
0xce16F6...48F8D666
934.2023726 FTM
764222912024-02-27 15:12:302 days 4 hrs ago1709046750
0xce16F6...48F8D666
1.13327327 FTM
763701592024-02-26 20:33:002 days 23 hrs ago1708979580
0xce16F6...48F8D666
365.53980679 FTM
763359752024-02-26 8:41:583 days 11 hrs ago1708936918
0xce16F6...48F8D666
1.09063507 FTM
763346612024-02-26 8:15:503 days 11 hrs ago1708935350
0xce16F6...48F8D666
1.19083617 FTM
762433842024-02-24 23:57:564 days 19 hrs ago1708819076
0xce16F6...48F8D666
3,570.42663189 FTM
762257072024-02-24 17:29:085 days 2 hrs ago1708795748
0xce16F6...48F8D666
26.63731127 FTM
761735812024-02-23 22:36:375 days 21 hrs ago1708727797
0xce16F6...48F8D666
2.19095758 FTM
761671382024-02-23 19:48:125 days 23 hrs ago1708717692
0xce16F6...48F8D666
1.14223839 FTM
761600352024-02-23 15:14:286 days 4 hrs ago1708701268
0xce16F6...48F8D666
6.22274532 FTM
761599052024-02-23 15:08:116 days 4 hrs ago1708700891
0xce16F6...48F8D666
7.84004649 FTM
761314152024-02-22 19:07:397 days 39 mins ago1708628859
0xce16F6...48F8D666
396.04607161 FTM
761312222024-02-22 19:03:257 days 43 mins ago1708628605
0xce16F6...48F8D666
11.19658015 FTM
761147422024-02-22 13:32:087 days 6 hrs ago1708608728
0xce16F6...48F8D666
23.95531716 FTM
761108542024-02-22 11:40:027 days 8 hrs ago1708602002
0xce16F6...48F8D666
1.06413069 FTM
761104822024-02-22 11:32:447 days 8 hrs ago1708601564
0xce16F6...48F8D666
377.48656115 FTM
760600912024-02-21 17:40:098 days 2 hrs ago1708537209
0xce16F6...48F8D666
482.48764625 FTM
760545912024-02-21 15:58:108 days 3 hrs ago1708531090
0xce16F6...48F8D666
2.90226552 FTM
760544222024-02-21 15:55:278 days 3 hrs ago1708530927
0xce16F6...48F8D666
3.02151552 FTM
760502952024-02-21 14:33:418 days 5 hrs ago1708526021
0xce16F6...48F8D666
101.86498901 FTM
760343172024-02-21 5:13:558 days 14 hrs ago1708492435
0xce16F6...48F8D666
2,001.11222007 FTM
760036702024-02-20 18:34:059 days 1 hr ago1708454045
0xce16F6...48F8D666
120.24576132 FTM
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 Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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