Contract Overview
Balance:
0 Ether
EtherValue:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
View more zero value Internal Transactions in Advanced View mode
Contract Name:
TimelockHasOperator
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-02 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract TimelockHasOperator { using SafeMath for uint; event NewAdmin(address indexed newAdmin); event NewPendingAdmin(address indexed newPendingAdmin); event NewOperator(address indexed newOperator); event NewDelay(uint indexed newDelay); event CancelTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); event ExecuteTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); event QueueTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); uint public constant GRACE_PERIOD = 14 days; uint public constant MINIMUM_DELAY = 1 days; uint public constant MAXIMUM_DELAY = 30 days; address public admin; // should be a multi-sig or DAO address public pendingAdmin; address public operator; // add this role (could be EOA) to initiate (queue) a new tx uint public delay; bool public admin_initialized; mapping (bytes32 => bool) public queuedTransactions; constructor(address admin_, uint delay_) public { require(delay_ >= MINIMUM_DELAY, "Timelock::constructor: Delay must exceed minimum delay."); require(delay_ <= MAXIMUM_DELAY, "Timelock::constructor: Delay must not exceed maximum delay."); operator = msg.sender; admin = admin_; delay = delay_; admin_initialized = false; } receive() external payable { } function setDelay(uint 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."); delay = delay_; emit NewDelay(delay); } function setOperator(address operator_) public { require(msg.sender == address(this), "Timelock::setDelay: Call must come from Timelock."); operator = operator_; emit NewOperator(operator); } function acceptAdmin() public { require(msg.sender == pendingAdmin, "Timelock::acceptAdmin: Call must come from pendingAdmin."); admin = msg.sender; pendingAdmin = address(0); emit NewAdmin(admin); } function setPendingAdmin(address pendingAdmin_) public { // allows one time setting of admin for deployment purposes if (admin_initialized) { require(msg.sender == address(this), "Timelock::setPendingAdmin: Call must come from Timelock."); } else { require(msg.sender == admin, "Timelock::setPendingAdmin: First call must come from admin."); admin_initialized = true; } pendingAdmin = pendingAdmin_; emit NewPendingAdmin(pendingAdmin); } function queueTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public returns (bytes32) { require(msg.sender == admin || msg.sender == operator, "Timelock::queueTransaction: Call must come from admin or operator."); require(eta >= getBlockTimestamp().add(delay), "Timelock::queueTransaction: Estimated execution block must satisfy delay."); bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta)); queuedTransactions[txHash] = true; emit QueueTransaction(txHash, target, value, signature, data, eta); return txHash; } function cancelTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public { require(msg.sender == admin, "Timelock::cancelTransaction: Call must come from admin."); bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta)); queuedTransactions[txHash] = false; emit CancelTransaction(txHash, target, value, signature, data, eta); } function executeTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public payable 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.add(GRACE_PERIOD), "Timelock::executeTransaction: Transaction is stale."); queuedTransactions[txHash] = false; 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; } function getBlockTimestamp() internal view returns (uint) { // solium-disable-next-line security/no-block-members return block.timestamp; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"NewOperator","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"},{"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":[],"name":"admin_initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"payable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"operator_","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051611a98380380611a988339818101604052604081101561003357600080fd5b5080516020909101516201518081101561007e5760405162461bcd60e51b8152600401808060200182810382526037815260200180611a616037913960400191505060405180910390fd5b62278d008111156100c05760405162461bcd60e51b815260040180806020018281038252603b815260200180611a26603b913960400191505060405180910390fd5b600280546001600160a01b03199081163317909155600080546001600160a01b039490941693909116929092179091556003556004805460ff1916905561191a8061010c6000396000f3fe6080604052600436106100f75760003560e01c80636fc1f57e1161008a578063c1a287e211610059578063c1a287e21461068f578063e177246e146106a4578063f2b06537146106ce578063f851a440146106f8576100fe565b80636fc1f57e146106095780637d645fab14610632578063b1b43ae514610647578063b3ab15fb1461065c576100fe565b80634dd18bf5116100c65780634dd18bf51461045f578063570ca73514610492578063591fcdfe146104a75780636a42b8f8146105f4576100fe565b80630825f38f146101035780630e18b681146102b857806326782247146102cf5780633a66f90114610300576100fe565b366100fe57005b600080fd5b610243600480360360a081101561011957600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561014857600080fd5b82018360208201111561015a57600080fd5b803590602001918460018302840111600160201b8311171561017b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156101cd57600080fd5b8201836020820111156101df57600080fd5b803590602001918460018302840111600160201b8311171561020057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061070d915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027d578181015183820152602001610265565b50505050905090810190601f1680156102aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c457600080fd5b506102cd610c0d565b005b3480156102db57600080fd5b506102e4610ca9565b604080516001600160a01b039092168252519081900360200190f35b34801561030c57600080fd5b5061044d600480360360a081101561032357600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103d757600080fd5b8201836020820111156103e957600080fd5b803590602001918460018302840111600160201b8311171561040a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610cb8915050565b60408051918252519081900360200190f35b34801561046b57600080fd5b506102cd6004803603602081101561048257600080fd5b50356001600160a01b0316610fcf565b34801561049e57600080fd5b506102e46110c4565b3480156104b357600080fd5b506102cd600480360360a08110156104ca57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156104f957600080fd5b82018360208201111561050b57600080fd5b803590602001918460018302840111600160201b8311171561052c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561057e57600080fd5b82018360208201111561059057600080fd5b803590602001918460018302840111600160201b831117156105b157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506110d3915050565b34801561060057600080fd5b5061044d611380565b34801561061557600080fd5b5061061e611386565b604080519115158252519081900360200190f35b34801561063e57600080fd5b5061044d61138f565b34801561065357600080fd5b5061044d611396565b34801561066857600080fd5b506102cd6004803603602081101561067f57600080fd5b50356001600160a01b031661139d565b34801561069b57600080fd5b5061044d61142b565b3480156106b057600080fd5b506102cd600480360360208110156106c757600080fd5b5035611432565b3480156106da57600080fd5b5061061e600480360360208110156106f157600080fd5b5035611527565b34801561070457600080fd5b506102e461153c565b6000546060906001600160a01b031633146107595760405162461bcd60e51b81526004018080602001828103825260388152602001806115b16038913960400191505060405180910390fd5b6000868686868660405160200180866001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107bf5781810151838201526020016107a7565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561081f578181015183820152602001610807565b50505050905090810190601f16801561084c5780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301206000818152600590935291205490995060ff1697506108bd96505050505050505760405162461bcd60e51b815260040180806020018281038252603d815260200180611781603d913960400191505060405180910390fd5b826108c661154b565b10156109035760405162461bcd60e51b81526004018080602001828103825260458152602001806116956045913960600191505060405180910390fd5b610910836212750061154f565b61091861154b565b11156109555760405162461bcd60e51b81526004018080602001828103825260338152602001806116626033913960400191505060405180910390fd5b6000818152600560205260409020805460ff19169055845160609061097b5750836109fe565b85805190602001208560405160200180836001600160e01b031916815260040182805190602001908083835b602083106109c65780518252601f1990920191602091820191016109a7565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b60006060896001600160a01b031689846040518082805190602001908083835b60208310610a3d5780518252601f199092019160209182019101610a1e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610a9f576040519150601f19603f3d011682016040523d82523d6000602084013e610aa4565b606091505b509150915081610ae55760405162461bcd60e51b815260040180806020018281038252603d81526020018061182e603d913960400191505060405180910390fd5b896001600160a01b0316847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610b62578181015183820152602001610b4a565b50505050905090810190601f168015610b8f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610bc2578181015183820152602001610baa565b50505050905090810190601f168015610bef5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b6001546001600160a01b03163314610c565760405162461bcd60e51b81526004018080602001828103825260388152602001806117be6038913960400191505060405180910390fd5b60008054336001600160a01b031991821617808355600180549092169091556040516001600160a01b03909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b6001546001600160a01b031681565b600080546001600160a01b0316331480610cdc57506002546001600160a01b031633145b610d175760405162461bcd60e51b81526004018080602001828103825260428152602001806116206042913960600191505060405180910390fd5b610d2b600354610d2561154b565b9061154f565b821015610d695760405162461bcd60e51b815260040180806020018281038252604981526020018061186b6049913960600191505060405180910390fd5b6000868686868660405160200180866001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610dcf578181015183820152602001610db7565b50505050905090810190601f168015610dfc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610e2f578181015183820152602001610e17565b50505050905090810190601f168015610e5c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550866001600160a01b0316817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610f27578181015183820152602001610f0f565b50505050905090810190601f168015610f545780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610f87578181015183820152602001610f6f565b50505050905090810190601f168015610fb45780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b60045460ff161561101d573330146110185760405162461bcd60e51b81526004018080602001828103825260388152602001806117f66038913960400191505060405180910390fd5b611074565b6000546001600160a01b031633146110665760405162461bcd60e51b815260040180806020018281038252603b81526020018061170e603b913960400191505060405180910390fd5b6004805460ff191660011790555b600180546001600160a01b0319166001600160a01b0383811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b6002546001600160a01b031681565b6000546001600160a01b0316331461111c5760405162461bcd60e51b81526004018080602001828103825260378152602001806115e96037913960400191505060405180910390fd5b6000858585858560405160200180866001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561118257818101518382015260200161116a565b50505050905090810190601f1680156111af5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156111e25781810151838201526020016111ca565b50505050905090810190601f16801561120f5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550856001600160a01b0316817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156112da5781810151838201526020016112c2565b50505050905090810190601f1680156113075780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561133a578181015183820152602001611322565b50505050905090810190601f1680156113675780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60035481565b60045460ff1681565b62278d0081565b6201518081565b3330146113db5760405162461bcd60e51b81526004018080602001828103825260318152602001806118b46031913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fda12ee837e6978172aaf54b16145ffe08414fd8710092ef033c71b8eb6ec189a90600090a250565b6212750081565b3330146114705760405162461bcd60e51b81526004018080602001828103825260318152602001806118b46031913960400191505060405180910390fd5b620151808110156114b25760405162461bcd60e51b81526004018080602001828103825260348152602001806116da6034913960400191505060405180910390fd5b62278d008111156114f45760405162461bcd60e51b81526004018080602001828103825260388152602001806117496038913960400191505060405180910390fd5b600381905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60056020526000908152604090205460ff1681565b6000546001600160a01b031681565b4290565b6000828201838110156115a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e206f72206f70657261746f722e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2046697273742063616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2ea26469706673582212206d1dfbb7f10e099e1f11841be9ec9109df2bb168105f2f3d6515af66a74955b864736f6c634300060c003354696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e000000000000000000000000c1d40e197563df727a4d3134e8bd1def4b498c6f0000000000000000000000000000000000000000000000000000000000015180
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c1d40e197563df727a4d3134e8bd1def4b498c6f0000000000000000000000000000000000000000000000000000000000015180
-----Decoded View---------------
Arg [0] : admin_ (address): 0xc1d40e197563df727a4d3134e8bd1def4b498c6f
Arg [1] : delay_ (uint256): 86400
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1d40e197563df727a4d3134e8bd1def4b498c6f
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015180
Deployed ByteCode Sourcemap
5362:5584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9456:1317;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9456:1317:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9456:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9456:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9456:1317:0;;;;;;;;-1:-1:-1;9456:1317:0;;-1:-1:-1;;;;;9456:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9456:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9456:1317:0;;-1:-1:-1;;9456:1317:0;;;-1:-1:-1;9456:1317:0;;-1:-1:-1;;9456:1317:0:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7565:242;;;;;;;;;;;;;:::i;:::-;;6241:27;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;6241:27:0;;;;;;;;;;;;;;8360:645;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8360:645:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8360:645:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8360:645:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8360:645:0;;;;;;;;-1:-1:-1;8360:645:0;;-1:-1:-1;;;;;8360:645:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8360:645:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8360:645:0;;-1:-1:-1;;8360:645:0;;;-1:-1:-1;8360:645:0;;-1:-1:-1;;8360:645:0:i;:::-;;;;;;;;;;;;;;;;7815:537;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7815:537:0;-1:-1:-1;;;;;7815:537:0;;:::i;6275:23::-;;;;;;;;;;;;;:::i;9013:435::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9013:435:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9013:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9013:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9013:435:0;;;;;;;;-1:-1:-1;9013:435:0;;-1:-1:-1;;;;;9013:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9013:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9013:435:0;;-1:-1:-1;;9013:435:0;;;-1:-1:-1;9013:435:0;;-1:-1:-1;;9013:435:0:i;6366:17::-;;;;;;;;;;;;;:::i;6390:29::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6129:44;;;;;;;;;;;;;:::i;6079:43::-;;;;;;;;;;;;;:::i;7332:225::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7332:225:0;-1:-1:-1;;;;;7332:225:0;;:::i;6029:43::-;;;;;;;;;;;;;:::i;6918:406::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6918:406:0;;:::i;6428:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6428:51:0;;:::i;6182:20::-;;;;;;;;;;;;;:::i;9456:1317::-;9637:5;;9590:12;;-1:-1:-1;;;;;9637:5:0;9623:10;:19;9615:88;;;;-1:-1:-1;;;9615:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9716:14;9754:6;9762:5;9769:9;9780:4;9786:3;9743:47;;;;;;-1:-1:-1;;;;;9743:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9743:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9743:47:0;;;-1:-1:-1;;9743:47:0;;;;;;;;;9733:58;;9743:47;9733:58;;;;9810:26;;;;:18;:26;;;;;;9733:58;;-1:-1:-1;9810:26:0;;;-1:-1:-1;9802:100:0;;-1:-1:-1;;;;;;;9802:100:0;;;-1:-1:-1;;;9802:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9944:3;9921:19;:17;:19::i;:::-;:26;;9913:108;;;;-1:-1:-1;;;9913:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10063:21;:3;6065:7;10063;:21::i;:::-;10040:19;:17;:19::i;:::-;:44;;10032:108;;;;-1:-1:-1;;;10032:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10182:5;10153:26;;;:18;:26;;;;;:34;;-1:-1:-1;;10153:34:0;;;10238:23;;10200:21;;10234:179;;-1:-1:-1;10294:4:0;10234:179;;;10382:9;10366:27;;;;;;10396:4;10342:59;;;;;;-1:-1:-1;;;;;10342:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10342:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:70;;10234:179;10486:12;10500:23;10527:6;-1:-1:-1;;;;;10527:11:0;10546:5;10553:8;10527:35;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10527:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10485:77;;;;10581:7;10573:81;;;;-1:-1:-1;;;10573:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10699:6;-1:-1:-1;;;;;10672:63:0;10691:6;10672:63;10707:5;10714:9;10725:4;10731:3;10672:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10672:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10755:10;9456:1317;-1:-1:-1;;;;;;;;;9456:1317:0:o;7565:242::-;7628:12;;-1:-1:-1;;;;;7628:12:0;7614:10;:26;7606:95;;;;-1:-1:-1;;;7606:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7712:5;:18;;7720:10;-1:-1:-1;;;;;;7712:18:0;;;;;;;-1:-1:-1;7741:25:0;;;;;;;;7784:15;;-1:-1:-1;;;;;7793:5:0;;;;7784:15;;;7565:242::o;6241:27::-;;;-1:-1:-1;;;;;6241:27:0;;:::o;8360:645::-;8484:7;8526:5;;-1:-1:-1;;;;;8526:5:0;8512:10;:19;;:45;;-1:-1:-1;8549:8:0;;-1:-1:-1;;;;;8549:8:0;8535:10;:22;8512:45;8504:124;;;;-1:-1:-1;;;8504:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8654:30;8678:5;;8654:19;:17;:19::i;:::-;:23;;:30::i;:::-;8647:3;:37;;8639:123;;;;-1:-1:-1;;;8639:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8775:14;8813:6;8821:5;8828:9;8839:4;8845:3;8802:47;;;;;;-1:-1:-1;;;;;8802:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8802:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8792:58;;;;;;8775:75;;8890:4;8861:18;:26;8880:6;8861:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8937:6;-1:-1:-1;;;;;8912:61:0;8929:6;8912:61;8945:5;8952:9;8963:4;8969:3;8912:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8912:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8991:6;8360:645;-1:-1:-1;;;;;;8360:645:0:o;7815:537::-;7954:17;;;;7950:309;;;7996:10;8018:4;7996:27;7988:96;;;;-1:-1:-1;;;7988:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7950:309;;;8139:5;;-1:-1:-1;;;;;8139:5:0;8125:10;:19;8117:91;;;;-1:-1:-1;;;8117:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8223:17;:24;;-1:-1:-1;;8223:24:0;8243:4;8223:24;;;7950:309;8269:12;:28;;-1:-1:-1;;;;;;8269:28:0;-1:-1:-1;;;;;8269:28:0;;;;;;;;;;;8315:29;;8331:12;;;8315:29;;-1:-1:-1;;8315:29:0;7815:537;:::o;6275:23::-;;;-1:-1:-1;;;;;6275:23:0;;:::o;9013:435::-;9162:5;;-1:-1:-1;;;;;9162:5:0;9148:10;:19;9140:87;;;;-1:-1:-1;;;9140:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9240:14;9278:6;9286:5;9293:9;9304:4;9310:3;9267:47;;;;;;-1:-1:-1;;;;;9267:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9267:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9257:58;;;;;;9240:75;;9355:5;9326:18;:26;9345:6;9326:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9404:6;-1:-1:-1;;;;;9378:62:0;9396:6;9378:62;9412:5;9419:9;9430:4;9436:3;9378:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9378:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9013:435;;;;;;:::o;6366:17::-;;;;:::o;6390:29::-;;;;;;:::o;6129:44::-;6166:7;6129:44;:::o;6079:43::-;6116:6;6079:43;:::o;7332:225::-;7398:10;7420:4;7398:27;7390:89;;;;-1:-1:-1;;;7390:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7490:8;:20;;-1:-1:-1;;;;;;7490:20:0;-1:-1:-1;;;;;7490:20:0;;;;;;;;;;;7528:21;;7540:8;;;7528:21;;-1:-1:-1;;7528:21:0;7332:225;:::o;6029:43::-;6065:7;6029:43;:::o;6918:406::-;6975:10;6997:4;6975:27;6967:89;;;;-1:-1:-1;;;6967:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6116:6;7075;:23;;7067:88;;;;-1:-1:-1;;;7067:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6166:7;7174:6;:23;;7166:92;;;;-1:-1:-1;;;7166:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7269:5;:14;;;7301:15;;7277:6;;7301:15;;;;;6918:406;:::o;6428:51::-;;;;;;;;;;;;;;;:::o;6182:20::-;;;-1:-1:-1;;;;;6182:20:0;;:::o;10781:162::-;10920:15;10781:162;:::o;902:181::-;960:7;992:5;;;1016:6;;;;1008:46;;;;;-1:-1:-1;;;1008:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1074:1;902:181;-1:-1:-1;;;902:181:0:o
Swarm Source
ipfs://6d1dfbb7f10e099e1f11841be9ec9109df2bb168105f2f3d6515af66a74955b8
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.