ETH Price: $2,891.47 (-1.51%)

Contract

0xeb76CBA3725806a5A861449A1F806B9CC9D15e69

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Set Admin185679682025-05-01 7:30:57270 days ago1746084657IN
0xeb76CBA3...CC9D15e69
0 ETH0.000001520.05345935

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250312026-01-26 7:01:2030 mins ago1769410880
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283250042026-01-26 7:00:2631 mins ago1769410826
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
283246192026-01-26 6:46:4445 mins ago1769410004
0xeb76CBA3...CC9D15e69
0 ETH
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ConnectorRegistry

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import { Admin } from "contracts/base/Admin.sol";
import { TimelockAdmin } from "contracts/base/TimelockAdmin.sol";

error ConnectorNotRegistered(address target);
error CustomRegistryAlreadyRegistered();

interface ICustomConnectorRegistry {
    function connectorOf(
        address target
    ) external view returns (address);
}

contract ConnectorRegistry is Admin, TimelockAdmin {
    event ConnectorChanged(address target, address connector);
    event CustomRegistryAdded(address registry);
    event CustomRegistryRemoved(address registry);

    error ConnectorAlreadySet(address target);
    error ConnectorNotSet(address target);
    error ArrayLengthMismatch();

    ICustomConnectorRegistry[] public customRegistries;

    mapping(address target => address connector) private connectors_;

    constructor(
        address admin_,
        address timelockAdmin_
    ) Admin(admin_) TimelockAdmin(timelockAdmin_) { }

    /// Admin functions

    /// @notice Update connector addresses for a batch of targets.
    /// @dev Controls which connector contracts are used for the specified
    /// targets.
    /// @custom:access Restricted to protocol admin.
    function setConnectors(
        address[] calldata targets,
        address[] calldata connectors
    ) external onlyAdmin {
        if (targets.length != connectors.length) {
            revert ArrayLengthMismatch();
        }
        for (uint256 i; i != targets.length;) {
            if (connectors_[targets[i]] != address(0)) {
                revert ConnectorAlreadySet(targets[i]);
            }
            connectors_[targets[i]] = connectors[i];
            emit ConnectorChanged(targets[i], connectors[i]);

            unchecked {
                ++i;
            }
        }
    }

    function updateConnectors(
        address[] calldata targets,
        address[] calldata connectors
    ) external onlyTimelockAdmin {
        if (targets.length != connectors.length) {
            revert ArrayLengthMismatch();
        }
        for (uint256 i; i != targets.length;) {
            if (connectors_[targets[i]] == address(0)) {
                revert ConnectorNotSet(targets[i]);
            }
            connectors_[targets[i]] = connectors[i];
            emit ConnectorChanged(targets[i], connectors[i]);

            unchecked {
                ++i;
            }
        }
    }

    /// @notice Append an address to the custom registries list.
    /// @custom:access Restricted to protocol admin.
    function addCustomRegistry(
        ICustomConnectorRegistry registry
    ) external onlyAdmin {
        if (isCustomRegistry(registry)) {
            revert CustomRegistryAlreadyRegistered();
        }

        customRegistries.push(registry);
        emit CustomRegistryAdded(address(registry));
    }

    /// @notice Replace an address in the custom registries list.
    /// @custom:access Restricted to protocol admin.
    function updateCustomRegistry(
        uint256 index,
        ICustomConnectorRegistry newRegistry
    ) external onlyTimelockAdmin {
        ICustomConnectorRegistry oldRegistry = customRegistries[index];
        emit CustomRegistryRemoved(address(oldRegistry));
        customRegistries[index] = newRegistry;
        if (address(newRegistry) != address(0)) {
            emit CustomRegistryAdded(address(newRegistry));
        }
    }

    /// Public functions

    function connectorOf(
        address target
    ) external view returns (address) {
        address connector = _getConnector(target);

        if (connector != address(0)) {
            return connector;
        }

        revert ConnectorNotRegistered(target);
    }

    function hasConnector(
        address target
    ) external view returns (bool) {
        return _getConnector(target) != address(0);
    }

    function isCustomRegistry(
        ICustomConnectorRegistry registry
    ) public view returns (bool) {
        for (uint256 i; i != customRegistries.length;) {
            if (address(customRegistries[i]) == address(registry)) {
                return true;
            }
            unchecked {
                ++i;
            }
        }
        return false;
    }

    /// Internal functions

    function _getConnector(
        address target
    ) internal view returns (address) {
        address connector = connectors_[target];
        if (connector != address(0)) {
            return connector;
        }
        uint256 length = customRegistries.length;
        for (uint256 i; i != length;) {
            if (address(customRegistries[i]) != address(0)) {
                (bool success, bytes memory data) = address(customRegistries[i])
                    .staticcall(
                    abi.encodeWithSelector(
                        ICustomConnectorRegistry.connectorOf.selector, target
                    )
                );
                if (success && data.length == 32) {
                    address _connector = abi.decode(data, (address));
                    if (_connector != address(0)) {
                        return _connector;
                    }
                }
            }

            unchecked {
                ++i;
            }
        }

        return address(0);
    }
}

File 2 of 3 : Admin.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/// @title Admin contract
/// @author vfat.tools
/// @notice Provides an administration mechanism allowing restricted functions
abstract contract Admin {
    /// ERRORS ///

    /// @notice Thrown when the caller is not the admin
    error NotAdminError(); //0xb5c42b3b

    /// EVENTS ///

    /// @notice Emitted when a new admin is set
    /// @param oldAdmin Address of the old admin
    /// @param newAdmin Address of the new admin
    event AdminSet(address oldAdmin, address newAdmin);

    /// STORAGE ///

    /// @notice Address of the current admin
    address public admin;

    /// MODIFIERS ///

    /// @dev Restricts a function to the admin
    modifier onlyAdmin() {
        if (msg.sender != admin) revert NotAdminError();
        _;
    }

    /// WRITE FUNCTIONS ///

    /// @param admin_ Address of the admin
    constructor(
        address admin_
    ) {
        emit AdminSet(address(0), admin_);
        admin = admin_;
    }

    /// @notice Sets a new admin
    /// @param newAdmin Address of the new admin
    /// @custom:access Restricted to protocol admin.
    function setAdmin(
        address newAdmin
    ) external onlyAdmin {
        emit AdminSet(admin, newAdmin);
        admin = newAdmin;
    }
}

File 3 of 3 : TimelockAdmin.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/// @title TimelockAdmin contract
/// @author vfat.tools
/// @notice Provides an timelockAdministration mechanism allowing restricted
/// functions
abstract contract TimelockAdmin {
    /// ERRORS ///

    /// @notice Thrown when the caller is not the timelockAdmin
    error NotTimelockAdminError();

    /// EVENTS ///

    /// @notice Emitted when a new timelockAdmin is set
    /// @param oldTimelockAdmin Address of the old timelockAdmin
    /// @param newTimelockAdmin Address of the new timelockAdmin
    event TimelockAdminSet(address oldTimelockAdmin, address newTimelockAdmin);

    /// STORAGE ///

    /// @notice Address of the current timelockAdmin
    address public timelockAdmin;

    /// MODIFIERS ///

    /// @dev Restricts a function to the timelockAdmin
    modifier onlyTimelockAdmin() {
        if (msg.sender != timelockAdmin) revert NotTimelockAdminError();
        _;
    }

    /// WRITE FUNCTIONS ///

    /// @param timelockAdmin_ Address of the timelockAdmin
    constructor(address timelockAdmin_) {
        emit TimelockAdminSet(timelockAdmin, timelockAdmin_);
        timelockAdmin = timelockAdmin_;
    }

    /// @notice Sets a new timelockAdmin
    /// @dev Can only be called by the current timelockAdmin
    /// @param newTimelockAdmin Address of the new timelockAdmin
    function setTimelockAdmin(address newTimelockAdmin)
        external
        onlyTimelockAdmin
    {
        emit TimelockAdminSet(timelockAdmin, newTimelockAdmin);
        timelockAdmin = newTimelockAdmin;
    }
}

Settings
{
  "remappings": [
    "solmate/=lib/solmate/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "@morpho-blue/=lib/morpho-blue/src/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "morpho-blue/=lib/morpho-blue/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"timelockAdmin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"ConnectorAlreadySet","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"ConnectorNotRegistered","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"ConnectorNotSet","type":"error"},{"inputs":[],"name":"CustomRegistryAlreadyRegistered","type":"error"},{"inputs":[],"name":"NotAdminError","type":"error"},{"inputs":[],"name":"NotTimelockAdminError","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"connector","type":"address"}],"name":"ConnectorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"registry","type":"address"}],"name":"CustomRegistryAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"registry","type":"address"}],"name":"CustomRegistryRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTimelockAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newTimelockAdmin","type":"address"}],"name":"TimelockAdminSet","type":"event"},{"inputs":[{"internalType":"contract ICustomConnectorRegistry","name":"registry","type":"address"}],"name":"addCustomRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"connectorOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"customRegistries","outputs":[{"internalType":"contract ICustomConnectorRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"hasConnector","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ICustomConnectorRegistry","name":"registry","type":"address"}],"name":"isCustomRegistry","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"address[]","name":"connectors","type":"address[]"}],"name":"setConnectors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTimelockAdmin","type":"address"}],"name":"setTimelockAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timelockAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"address[]","name":"connectors","type":"address[]"}],"name":"updateConnectors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"contract ICustomConnectorRegistry","name":"newRegistry","type":"address"}],"name":"updateCustomRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610e98380380610e9883398101604081905261002f91610114565b60408051600081526001600160a01b0384166020820152829184917fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff97910160405180910390a1600080546001600160a01b0319166001600160a01b0392831617905560015460408051918316825291831660208201527f6502ca129870a6ac685369c8428164757ede26f9a492bf9ae7eac4abc0c49fcf910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055506101479050565b80516001600160a01b038116811461010f57600080fd5b919050565b6000806040838503121561012757600080fd5b610130836100f8565b915061013e602084016100f8565b90509250929050565b610d42806101566000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b10e0b6e11610071578063b10e0b6e1461015a578063b7c546631461016d578063bd7844d214610180578063c79aeaae14610193578063e506b6f3146101a6578063f851a440146101b957600080fd5b80633b44358d146100b95780633f7506bd146100e157806364ceb97a146100f6578063704b6c021461012157806375c38965146101345780637ac5f2d814610147575b600080fd5b6100cc6100c7366004610b85565b6101cc565b60405190151581526020015b60405180910390f35b6100f46100ef366004610bf5565b61022a565b005b600154610109906001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b6100f461012f366004610b85565b610442565b6100cc610142366004610b85565b6104d6565b6100f4610155366004610b85565b6104f3565b6100f4610168366004610bf5565b610587565b6100f461017b366004610b85565b610793565b61010961018e366004610c61565b610869565b6101096101a1366004610b85565b610893565b6100f46101b4366004610c7a565b6108da565b600054610109906001600160a01b031681565b6000805b600254811461022157826001600160a01b0316600282815481106101f6576101f6610caa565b6000918252602090912001546001600160a01b0316036102195750600192915050565b6001016101d0565b50600092915050565b6000546001600160a01b031633146102555760405163b5c42b3b60e01b815260040160405180910390fd5b8281146102755760405163512509d360e11b815260040160405180910390fd5b60005b80841461043b57600060038187878581811061029657610296610caa565b90506020020160208101906102ab9190610b85565b6001600160a01b039081168252602082019290925260400160002054161461031e578484828181106102df576102df610caa565b90506020020160208101906102f49190610b85565b60405163165c1bb160e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b82828281811061033057610330610caa565b90506020020160208101906103459190610b85565b6003600087878581811061035b5761035b610caa565b90506020020160208101906103709190610b85565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790557f6095620bdb8c81d4448883574e9358ec2721dfad0188c1c9aaf070f77627fb5b8585838181106103d4576103d4610caa565b90506020020160208101906103e99190610b85565b8484848181106103fb576103fb610caa565b90506020020160208101906104109190610b85565b604080516001600160a01b0393841681529290911660208301520160405180910390a1600101610278565b5050505050565b6000546001600160a01b0316331461046d5760405163b5c42b3b60e01b815260040160405180910390fd5b600054604080516001600160a01b03928316815291831660208301527fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff97910160405180910390a1600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806104e2836109e7565b6001600160a01b0316141592915050565b6001546001600160a01b0316331461051e576040516347323cef60e01b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f6502ca129870a6ac685369c8428164757ede26f9a492bf9ae7eac4abc0c49fcf910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146105b2576040516347323cef60e01b815260040160405180910390fd5b8281146105d25760405163512509d360e11b815260040160405180910390fd5b60005b80841461043b5760006003818787858181106105f3576105f3610caa565b90506020020160208101906106089190610b85565b6001600160a01b03908116825260208201929092526040016000205416036106765784848281811061063c5761063c610caa565b90506020020160208101906106519190610b85565b6040516384c50c6960e01b81526001600160a01b039091166004820152602401610315565b82828281811061068857610688610caa565b905060200201602081019061069d9190610b85565b600360008787858181106106b3576106b3610caa565b90506020020160208101906106c89190610b85565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790557f6095620bdb8c81d4448883574e9358ec2721dfad0188c1c9aaf070f77627fb5b85858381811061072c5761072c610caa565b90506020020160208101906107419190610b85565b84848481811061075357610753610caa565b90506020020160208101906107689190610b85565b604080516001600160a01b0393841681529290911660208301520160405180910390a16001016105d5565b6000546001600160a01b031633146107be5760405163b5c42b3b60e01b815260040160405180910390fd5b6107c7816101cc565b156107e557604051632a0a2c9760e11b815260040160405180910390fd5b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0383169081179091556040519081527fdce494c285a961925a3383a1537a3d4f5021b88990caf94183bf98774fe715469060200160405180910390a150565b6002818154811061087957600080fd5b6000918252602090912001546001600160a01b0316905081565b60008061089f836109e7565b90506001600160a01b038116156108b65792915050565b60405163bcbeddcf60e01b81526001600160a01b0384166004820152602401610315565b6001546001600160a01b03163314610905576040516347323cef60e01b815260040160405180910390fd5b60006002838154811061091a5761091a610caa565b600091825260209182902001546040516001600160a01b0390911680825292507f3447d7d9db742d5651f6eff78896c5c974f8dde1b486cfd6145b1c67d8363665910160405180910390a1816002848154811061097957610979610caa565b600091825260209091200180546001600160a01b0319166001600160a01b039283161790558216156109e2576040516001600160a01b03831681527fdce494c285a961925a3383a1537a3d4f5021b88990caf94183bf98774fe715469060200160405180910390a15b505050565b6001600160a01b038082166000908152600360205260408120549091168015610a105792915050565b60025460005b818114610b625760006001600160a01b031660028281548110610a3b57610a3b610caa565b6000918252602090912001546001600160a01b031614610b5a5760008060028381548110610a6b57610a6b610caa565b60009182526020918290200154604080516001600160a01b038b8116602480840191909152835180840390910181526044909201835293810180516001600160e01b03166363cd755760e11b17905290519290911691610acb9190610cc0565b600060405180830381855afa9150503d8060008114610b06576040519150601f19603f3d011682016040523d82523d6000602084013e610b0b565b606091505b5091509150818015610b1e575080516020145b15610b5757600081806020019051810190610b399190610cef565b90506001600160a01b03811615610b5557979650505050505050565b505b50505b600101610a16565b506000949350505050565b6001600160a01b0381168114610b8257600080fd5b50565b600060208284031215610b9757600080fd5b8135610ba281610b6d565b9392505050565b60008083601f840112610bbb57600080fd5b50813567ffffffffffffffff811115610bd357600080fd5b6020830191508360208260051b8501011115610bee57600080fd5b9250929050565b60008060008060408587031215610c0b57600080fd5b843567ffffffffffffffff80821115610c2357600080fd5b610c2f88838901610ba9565b90965094506020870135915080821115610c4857600080fd5b50610c5587828801610ba9565b95989497509550505050565b600060208284031215610c7357600080fd5b5035919050565b60008060408385031215610c8d57600080fd5b823591506020830135610c9f81610b6d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000825160005b81811015610ce15760208186018101518583015201610cc7565b506000920191825250919050565b600060208284031215610d0157600080fd5b8151610ba281610b6d56fea2646970667358221220369ff6f34b66a6cae9f75355d11b30159065306f0c7f4dad115c97659d7c375d64736f6c63430008130033000000000000000000000000bde48624f9e1dd4107df324d1ba3c07004640206000000000000000000000000fd2d0de5a902d19b3823d31f1bce9d8f70d850e7

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b10e0b6e11610071578063b10e0b6e1461015a578063b7c546631461016d578063bd7844d214610180578063c79aeaae14610193578063e506b6f3146101a6578063f851a440146101b957600080fd5b80633b44358d146100b95780633f7506bd146100e157806364ceb97a146100f6578063704b6c021461012157806375c38965146101345780637ac5f2d814610147575b600080fd5b6100cc6100c7366004610b85565b6101cc565b60405190151581526020015b60405180910390f35b6100f46100ef366004610bf5565b61022a565b005b600154610109906001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b6100f461012f366004610b85565b610442565b6100cc610142366004610b85565b6104d6565b6100f4610155366004610b85565b6104f3565b6100f4610168366004610bf5565b610587565b6100f461017b366004610b85565b610793565b61010961018e366004610c61565b610869565b6101096101a1366004610b85565b610893565b6100f46101b4366004610c7a565b6108da565b600054610109906001600160a01b031681565b6000805b600254811461022157826001600160a01b0316600282815481106101f6576101f6610caa565b6000918252602090912001546001600160a01b0316036102195750600192915050565b6001016101d0565b50600092915050565b6000546001600160a01b031633146102555760405163b5c42b3b60e01b815260040160405180910390fd5b8281146102755760405163512509d360e11b815260040160405180910390fd5b60005b80841461043b57600060038187878581811061029657610296610caa565b90506020020160208101906102ab9190610b85565b6001600160a01b039081168252602082019290925260400160002054161461031e578484828181106102df576102df610caa565b90506020020160208101906102f49190610b85565b60405163165c1bb160e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b82828281811061033057610330610caa565b90506020020160208101906103459190610b85565b6003600087878581811061035b5761035b610caa565b90506020020160208101906103709190610b85565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790557f6095620bdb8c81d4448883574e9358ec2721dfad0188c1c9aaf070f77627fb5b8585838181106103d4576103d4610caa565b90506020020160208101906103e99190610b85565b8484848181106103fb576103fb610caa565b90506020020160208101906104109190610b85565b604080516001600160a01b0393841681529290911660208301520160405180910390a1600101610278565b5050505050565b6000546001600160a01b0316331461046d5760405163b5c42b3b60e01b815260040160405180910390fd5b600054604080516001600160a01b03928316815291831660208301527fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff97910160405180910390a1600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806104e2836109e7565b6001600160a01b0316141592915050565b6001546001600160a01b0316331461051e576040516347323cef60e01b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f6502ca129870a6ac685369c8428164757ede26f9a492bf9ae7eac4abc0c49fcf910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146105b2576040516347323cef60e01b815260040160405180910390fd5b8281146105d25760405163512509d360e11b815260040160405180910390fd5b60005b80841461043b5760006003818787858181106105f3576105f3610caa565b90506020020160208101906106089190610b85565b6001600160a01b03908116825260208201929092526040016000205416036106765784848281811061063c5761063c610caa565b90506020020160208101906106519190610b85565b6040516384c50c6960e01b81526001600160a01b039091166004820152602401610315565b82828281811061068857610688610caa565b905060200201602081019061069d9190610b85565b600360008787858181106106b3576106b3610caa565b90506020020160208101906106c89190610b85565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790557f6095620bdb8c81d4448883574e9358ec2721dfad0188c1c9aaf070f77627fb5b85858381811061072c5761072c610caa565b90506020020160208101906107419190610b85565b84848481811061075357610753610caa565b90506020020160208101906107689190610b85565b604080516001600160a01b0393841681529290911660208301520160405180910390a16001016105d5565b6000546001600160a01b031633146107be5760405163b5c42b3b60e01b815260040160405180910390fd5b6107c7816101cc565b156107e557604051632a0a2c9760e11b815260040160405180910390fd5b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0383169081179091556040519081527fdce494c285a961925a3383a1537a3d4f5021b88990caf94183bf98774fe715469060200160405180910390a150565b6002818154811061087957600080fd5b6000918252602090912001546001600160a01b0316905081565b60008061089f836109e7565b90506001600160a01b038116156108b65792915050565b60405163bcbeddcf60e01b81526001600160a01b0384166004820152602401610315565b6001546001600160a01b03163314610905576040516347323cef60e01b815260040160405180910390fd5b60006002838154811061091a5761091a610caa565b600091825260209182902001546040516001600160a01b0390911680825292507f3447d7d9db742d5651f6eff78896c5c974f8dde1b486cfd6145b1c67d8363665910160405180910390a1816002848154811061097957610979610caa565b600091825260209091200180546001600160a01b0319166001600160a01b039283161790558216156109e2576040516001600160a01b03831681527fdce494c285a961925a3383a1537a3d4f5021b88990caf94183bf98774fe715469060200160405180910390a15b505050565b6001600160a01b038082166000908152600360205260408120549091168015610a105792915050565b60025460005b818114610b625760006001600160a01b031660028281548110610a3b57610a3b610caa565b6000918252602090912001546001600160a01b031614610b5a5760008060028381548110610a6b57610a6b610caa565b60009182526020918290200154604080516001600160a01b038b8116602480840191909152835180840390910181526044909201835293810180516001600160e01b03166363cd755760e11b17905290519290911691610acb9190610cc0565b600060405180830381855afa9150503d8060008114610b06576040519150601f19603f3d011682016040523d82523d6000602084013e610b0b565b606091505b5091509150818015610b1e575080516020145b15610b5757600081806020019051810190610b399190610cef565b90506001600160a01b03811615610b5557979650505050505050565b505b50505b600101610a16565b506000949350505050565b6001600160a01b0381168114610b8257600080fd5b50565b600060208284031215610b9757600080fd5b8135610ba281610b6d565b9392505050565b60008083601f840112610bbb57600080fd5b50813567ffffffffffffffff811115610bd357600080fd5b6020830191508360208260051b8501011115610bee57600080fd5b9250929050565b60008060008060408587031215610c0b57600080fd5b843567ffffffffffffffff80821115610c2357600080fd5b610c2f88838901610ba9565b90965094506020870135915080821115610c4857600080fd5b50610c5587828801610ba9565b95989497509550505050565b600060208284031215610c7357600080fd5b5035919050565b60008060408385031215610c8d57600080fd5b823591506020830135610c9f81610b6d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000825160005b81811015610ce15760208186018101518583015201610cc7565b506000920191825250919050565b600060208284031215610d0157600080fd5b8151610ba281610b6d56fea2646970667358221220369ff6f34b66a6cae9f75355d11b30159065306f0c7f4dad115c97659d7c375d64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000bde48624f9e1dd4107df324d1ba3c07004640206000000000000000000000000fd2d0de5a902d19b3823d31f1bce9d8f70d850e7

-----Decoded View---------------
Arg [0] : admin_ (address): 0xBDE48624F9E1dd4107df324D1BA3C07004640206
Arg [1] : timelockAdmin_ (address): 0xfD2D0dE5A902D19b3823D31F1BCe9D8f70D850e7

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bde48624f9e1dd4107df324d1ba3c07004640206
Arg [1] : 000000000000000000000000fd2d0de5a902d19b3823d31f1bce9d8f70d850e7


Block Transaction Gas Used Reward
view all blocks sequenced

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