ETH Price: $2,406.22 (+2.86%)

Contract

0x181E4f8F21D087bF02Ea2F64D5e550849FBca674

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
0x608060402217441902024-06-14 10:56:1691 days ago1718362576IN
 Create: TimelockV8
0 ETH0.000016980.01

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TimelockV8

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 10000 runs

Other Settings:
paris EvmVersion
File 1 of 2 : TimelockV8.sol
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity 0.8.25;
import { ensureNonzeroAddress } from "@venusprotocol/solidity-utilities/contracts/validators.sol";

/**
 * @title TimelockV8
 * @author Venus
 * @notice The Timelock contract using solidity V8.
 * This contract also differs from the original timelock because it has a virtual function to get minimum delays
 * and allow test deployments to override the value.
 */
contract TimelockV8 {
    /// @notice Required period to execute a proposal transaction
    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;

    /// @notice Minimum amount of time a proposal transaction must be queued
    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;

    /// @notice Maximum amount of time a proposal transaction must be queued
    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;

    /// @notice Timelock admin authorized to queue and execute transactions
    address public admin;

    /// @notice Account proposed as the next admin
    address public pendingAdmin;

    /// @notice Period for a proposal transaction to be queued
    uint256 public delay;

    /// @notice Mapping of queued transactions
    mapping(bytes32 => bool) public queuedTransactions;

    /// @notice Event emitted when a new admin is accepted
    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);

    /// @notice Event emitted when a new admin is proposed
    event NewPendingAdmin(address indexed newPendingAdmin);

    /// @notice Event emitted when a new delay is proposed
    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);

    /// @notice Event emitted when a proposal transaction has been cancelled
    event CancelTransaction(
        bytes32 indexed txHash,
        address indexed target,
        uint256 value,
        string signature,
        bytes data,
        uint256 eta
    );

    /// @notice Event emitted when a proposal transaction has been executed
    event ExecuteTransaction(
        bytes32 indexed txHash,
        address indexed target,
        uint256 value,
        string signature,
        bytes data,
        uint256 eta
    );

    /// @notice Event emitted when a proposal transaction has been queued
    event QueueTransaction(
        bytes32 indexed txHash,
        address indexed target,
        uint256 value,
        string signature,
        bytes data,
        uint256 eta
    );

    constructor(address admin_, uint256 delay_) {
        require(delay_ >= MINIMUM_DELAY(), "Timelock::constructor: Delay must exceed minimum delay.");
        require(delay_ <= MAXIMUM_DELAY(), "Timelock::setDelay: Delay must not exceed maximum delay.");
        ensureNonzeroAddress(admin_);

        admin = admin_;
        delay = delay_;
    }

    fallback() external payable {}

    /**
     * @notice Setter for the transaction queue delay
     * @param delay_ The new delay period for the transaction queue
     * @custom:access Sender must be Timelock itself
     * @custom:event Emit NewDelay with old and new delay
     */
    function setDelay(uint256 delay_) public {
        require(msg.sender == address(this), "Timelock::setDelay: Call must come from Timelock.");
        require(delay_ >= MINIMUM_DELAY(), "Timelock::setDelay: Delay must exceed minimum delay.");
        require(delay_ <= MAXIMUM_DELAY(), "Timelock::setDelay: Delay must not exceed maximum delay.");
        emit NewDelay(delay, delay_);
        delay = delay_;
    }

    /**
     * @notice Return grace period
     * @return The duration of the grace period, specified as a uint256 value.
     */
    function GRACE_PERIOD() public view virtual returns (uint256) {
        return DEFAULT_GRACE_PERIOD;
    }

    /**
     * @notice Return required minimum delay
     * @return Minimum delay
     */
    function MINIMUM_DELAY() public view virtual returns (uint256) {
        return DEFAULT_MINIMUM_DELAY;
    }

    /**
     * @notice Return required maximum delay
     * @return Maximum delay
     */
    function MAXIMUM_DELAY() public view virtual returns (uint256) {
        return DEFAULT_MAXIMUM_DELAY;
    }

    /**
     * @notice Method for accepting a proposed admin
     * @custom:access Sender must be pending admin
     * @custom:event Emit NewAdmin with old and new admin
     */
    function acceptAdmin() public {
        require(msg.sender == pendingAdmin, "Timelock::acceptAdmin: Call must come from pendingAdmin.");
        emit NewAdmin(admin, msg.sender);
        admin = msg.sender;
        pendingAdmin = address(0);
    }

    /**
     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract
     * @param pendingAdmin_ Address of the proposed admin
     * @custom:access Sender must be Timelock contract itself or admin
     * @custom:event Emit NewPendingAdmin with new pending admin
     */
    function setPendingAdmin(address pendingAdmin_) public {
        require(
            msg.sender == address(this) || msg.sender == admin,
            "Timelock::setPendingAdmin: Call must come from Timelock."
        );
        ensureNonzeroAddress(pendingAdmin_);
        pendingAdmin = pendingAdmin_;

        emit NewPendingAdmin(pendingAdmin);
    }

    /**
     * @notice Called for each action when queuing a proposal
     * @param target Address of the contract with the method to be called
     * @param value Native token amount sent with the transaction
     * @param signature Signature of the function to be called
     * @param data Arguments to be passed to the function when called
     * @param eta Timestamp after which the transaction can be executed
     * @return Hash of the queued transaction
     * @custom:access Sender must be admin
     * @custom:event Emit QueueTransaction
     */
    function queueTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) public returns (bytes32) {
        require(msg.sender == admin, "Timelock::queueTransaction: Call must come from admin.");
        require(
            eta >= getBlockTimestamp() + delay,
            "Timelock::queueTransaction: Estimated execution block must satisfy delay."
        );

        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));
        require(!queuedTransactions[txHash], "Timelock::queueTransaction: transaction already queued.");
        queuedTransactions[txHash] = true;

        emit QueueTransaction(txHash, target, value, signature, data, eta);
        return txHash;
    }

    /**
     * @notice Called to cancel a queued transaction
     * @param target Address of the contract with the method to be called
     * @param value Native token amount sent with the transaction
     * @param signature Signature of the function to be called
     * @param data Arguments to be passed to the function when called
     * @param eta Timestamp after which the transaction can be executed
     * @custom:access Sender must be admin
     * @custom:event Emit CancelTransaction
     */
    function cancelTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) public {
        require(msg.sender == admin, "Timelock::cancelTransaction: Call must come from admin.");

        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));
        require(queuedTransactions[txHash], "Timelock::cancelTransaction: transaction is not queued yet.");
        delete (queuedTransactions[txHash]);

        emit CancelTransaction(txHash, target, value, signature, data, eta);
    }

    /**
     * @notice Called to execute a queued transaction
     * @param target Address of the contract with the method to be called
     * @param value Native token amount sent with the transaction
     * @param signature Signature of the function to be called
     * @param data Arguments to be passed to the function when called
     * @param eta Timestamp after which the transaction can be executed
     * @return Result of function call
     * @custom:access Sender must be admin
     * @custom:event Emit ExecuteTransaction
     */
    function executeTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) public returns (bytes memory) {
        require(msg.sender == admin, "Timelock::executeTransaction: Call must come from admin.");

        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));
        require(queuedTransactions[txHash], "Timelock::executeTransaction: Transaction hasn't been queued.");
        require(getBlockTimestamp() >= eta, "Timelock::executeTransaction: Transaction hasn't surpassed time lock.");
        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), "Timelock::executeTransaction: Transaction is stale.");

        delete (queuedTransactions[txHash]);

        bytes memory callData;

        if (bytes(signature).length == 0) {
            callData = data;
        } else {
            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);
        }

        // solium-disable-next-line security/no-call-value
        (bool success, bytes memory returnData) = target.call{ value: value }(callData);
        require(success, "Timelock::executeTransaction: Transaction execution reverted.");

        emit ExecuteTransaction(txHash, target, value, signature, data, eta);

        return returnData;
    }

    /**
     * @notice Returns the current block timestamp
     * @return The current block timestamp
     */
    function getBlockTimestamp() internal view returns (uint256) {
        // solium-disable-next-line security/no-block-members
        return block.timestamp;
    }
}

File 2 of 2 : validators.sol
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity 0.8.25;

/// @notice Thrown if the supplied address is a zero address where it is not allowed
error ZeroAddressNotAllowed();

/// @notice Thrown if the supplied value is 0 where it is not allowed
error ZeroValueNotAllowed();

/// @notice Checks if the provided address is nonzero, reverts otherwise
/// @param address_ Address to check
/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address
function ensureNonzeroAddress(address address_) pure {
    if (address_ == address(0)) {
        revert ZeroAddressNotAllowed();
    }
}

/// @notice Checks if the provided value is nonzero, reverts otherwise
/// @param value_ Value to check
/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0
function ensureNonzeroValue(uint256 value_) pure {
    if (value_ == 0) {
        revert ZeroValueNotAllowed();
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","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"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161154338038061154383398101604081905261002f91610181565b610e108110156100ac5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757360448201527f7420657863656564206d696e696d756d2064656c61792e00000000000000000060648201526084015b60405180910390fd5b62278d008111156101255760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e000000000000000060648201526084016100a3565b61012e82610157565b600080546001600160a01b0319166001600160a01b0393909316929092179091556002556101bb565b6001600160a01b03811661017e576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561019457600080fd5b82516001600160a01b03811681146101ab57600080fd5b6020939093015192949293505050565b611379806101ca6000396000f3fe6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033000000000000000000000000c1858cce6c28295efd3ee742795bda316d7c75260000000000000000000000000000000000000000000000000000000000000e10

Deployed Bytecode

0x6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033

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

000000000000000000000000c1858cce6c28295efd3ee742795bda316d7c75260000000000000000000000000000000000000000000000000000000000000e10

-----Decoded View---------------
Arg [0] : admin_ (address): 0xc1858cCE6c28295Efd3eE742795bDa316D7c7526
Arg [1] : delay_ (uint256): 3600

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1858cce6c28295efd3ee742795bda316d7c7526
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000e10


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

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.