ETH Price: $2,430.23 (+0.83%)
Gas: 0.12 GWei

Contract

0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00
Transaction Hash
Method
Block
From
To
Multicall102030522024-10-02 1:17:324 days ago1727831852IN
0x83a93500...7A0670D66
0.00007088 ETH0.000007330.05630222
Multicall101187882024-09-30 1:55:246 days ago1727661324IN
0x83a93500...7A0670D66
0.01159075 ETH0.000089670.075
Multicall53491122024-06-11 8:59:45117 days ago1718096385IN
0x83a93500...7A0670D66
0.00006014 ETH0.000036180.06
Upgrade31220812024-03-25 5:58:17195 days ago1711346297IN
0x83a93500...7A0670D66
0 ETH0.000043341.14099999
Multicall25229932024-02-26 12:18:11223 days ago1708949891IN
0x83a93500...7A0670D66
0.00275098 ETH0.000985271
Multicall25115382024-02-25 23:34:31223 days ago1708904071IN
0x83a93500...7A0670D66
0 ETH0.000941651.04061163
Multicall24819302024-02-24 14:40:39224 days ago1708785639IN
0x83a93500...7A0670D66
0.00652456 ETH0.001023860.91551851
Multicall24677542024-02-23 22:55:34225 days ago1708728934IN
0x83a93500...7A0670D66
0 ETH0.000933561.03192338
Multicall21409222024-02-08 18:31:53240 days ago1707417113IN
0x83a93500...7A0670D66
0.01223063 ETH0.00474484.5105
Multicall21236702024-02-07 23:16:48241 days ago1707347808IN
0x83a93500...7A0670D66
0.0082274 ETH0.00446463.76750593

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0.00007088 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0.00007088 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0x83a93500...7A0670D66
0.00007088 ETH
102030522024-10-02 1:17:324 days ago1727831852
0x83a93500...7A0670D66
0.00007088 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0.00006628 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0.01159075 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0x83a93500...7A0670D66
0.01159075 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0.00008082 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0.01159075 ETH
101187882024-09-30 1:55:246 days ago1727661324
0x83a93500...7A0670D66
0x83a93500...7A0670D66
0.01159075 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xB5FB4BE0...980dE9e3C
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
InterchainProxy

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 1000 runs

Other Settings:
london EvmVersion
File 1 of 5 : InterchainProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { Proxy } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/Proxy.sol';

/**
 * @title InterchainProxy
 * @notice This contract is a proxy for interchainTokenService and interchainTokenFactory.
 * @dev This contract implements Proxy.
 */
contract InterchainProxy is Proxy {
    constructor(address implementationAddress, address owner, bytes memory setupParams) Proxy(implementationAddress, owner, setupParams) {}
}

File 2 of 5 : IContractIdentifier.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

// General interface for upgradable contracts
interface IContractIdentifier {
    /**
     * @notice Returns the contract ID. It can be used as a check during upgrades.
     * @dev Meant to be overridden in derived contracts.
     * @return bytes32 The contract ID
     */
    function contractId() external pure returns (bytes32);
}

File 3 of 5 : IProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

// General interface for upgradable contracts
interface IProxy {
    error InvalidOwner();
    error InvalidImplementation();
    error SetupFailed();
    error NotOwner();
    error AlreadyInitialized();

    function implementation() external view returns (address);

    function setup(bytes calldata setupParams) external;
}

File 4 of 5 : BaseProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { IProxy } from '../interfaces/IProxy.sol';

/**
 * @title BaseProxy Contract
 * @dev This abstract contract implements a basic proxy that stores an implementation address. Fallback function
 * calls are delegated to the implementation. This contract is meant to be inherited by other proxy contracts.
 */
abstract contract BaseProxy is IProxy {
    // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
    // keccak256('owner')
    bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0;

    /**
     * @dev Returns the current implementation address.
     * @return implementation_ The address of the current implementation contract
     */
    function implementation() public view virtual returns (address implementation_) {
        assembly {
            implementation_ := sload(_IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @dev Shadows the setup function of the implementation contract so it can't be called directly via the proxy.
     * @param params The setup parameters for the implementation contract.
     */
    function setup(bytes calldata params) external {}

    /**
     * @dev Returns the contract ID. It can be used as a check during upgrades. Meant to be implemented in derived contracts.
     * @return bytes32 The contract ID
     */
    function contractId() internal pure virtual returns (bytes32);

    /**
     * @dev Fallback function. Delegates the call to the current implementation contract.
     */
    fallback() external payable virtual {
        address implementation_ = implementation();
        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(gas(), implementation_, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev Payable fallback function. Can be overridden in derived contracts.
     */
    receive() external payable virtual {}
}

File 5 of 5 : Proxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { IProxy } from '../interfaces/IProxy.sol';
import { IContractIdentifier } from '../interfaces/IContractIdentifier.sol';
import { BaseProxy } from './BaseProxy.sol';

/**
 * @title Proxy Contract
 * @notice A proxy contract that delegates calls to a designated implementation contract. Inherits from BaseProxy.
 * @dev The constructor takes in the address of the implementation contract, the owner address, and any optional setup
 * parameters for the implementation contract.
 */
contract Proxy is BaseProxy {
    /**
     * @notice Constructs the proxy contract with the implementation address, owner address, and optional setup parameters.
     * @param implementationAddress The address of the implementation contract
     * @param owner The owner address
     * @param setupParams Optional parameters to setup the implementation contract
     * @dev The constructor verifies that the owner address is not the zero address and that the contract ID of the implementation is valid.
     * It then stores the implementation address and owner address in their designated storage slots and calls the setup function on the
     * implementation (if setup params exist).
     */
    constructor(
        address implementationAddress,
        address owner,
        bytes memory setupParams
    ) {
        if (owner == address(0)) revert InvalidOwner();

        bytes32 id = contractId();
        // Skipping the check if contractId() is not set by an inheriting proxy contract
        if (id != bytes32(0) && IContractIdentifier(implementationAddress).contractId() != id)
            revert InvalidImplementation();

        assembly {
            sstore(_IMPLEMENTATION_SLOT, implementationAddress)
            sstore(_OWNER_SLOT, owner)
        }

        if (setupParams.length != 0) {
            (bool success, ) = implementationAddress.delegatecall(
                abi.encodeWithSelector(BaseProxy.setup.selector, setupParams)
            );
            if (!success) revert SetupFailed();
        }
    }

    function contractId() internal pure virtual override returns (bytes32) {
        return bytes32(0);
    }
}

Settings
{
  "evmVersion": "london",
  "optimizer": {
    "enabled": true,
    "runs": 1000,
    "details": {
      "peephole": true,
      "inliner": true,
      "jumpdestRemover": true,
      "orderLiterals": true,
      "deduplicate": true,
      "cse": true,
      "constantOptimizer": true,
      "yul": true,
      "yulDetails": {
        "stackAllocation": true
      }
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"setupParams","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InvalidImplementation","type":"error"},{"inputs":[],"name":"InvalidOwner","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":"bytes","name":"params","type":"bytes"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061002d5760003560e01c80635c60da1b146100865780639ded06df146100de57610034565b3661003457005b600061005e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90503660008037600080366000845af43d6000803e80801561007f573d6000f35b3d6000fd5b005b34801561009257600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ea57600080fd5b506100846100f93660046100fd565b5050565b6000806020838503121561011057600080fd5b823567ffffffffffffffff8082111561012857600080fd5b818501915085601f83011261013c57600080fd5b81358181111561014b57600080fd5b86602082850101111561015d57600080fd5b6020929092019691955090935050505056fea264697066735822122083cc979c34f7a71d3cd53a66104a3b2712b956b8820d9a7b6ff618995b3afcba64736f6c63430008150033

Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.