Contract Overview
Balance:
0 MATIC
MATIC Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash |
Method
|
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x35c0b414a595c257768b0e7bdf8a85884a897285b6bc2bdfd3cea45d84fbcc6a | 0x60806040 | 30325383 | 270 days 2 hrs ago | 0xdeadb1e21a60b9afd84805d4fff58743b415fbae | IN | Create: NVMTimelock | 0 MATIC | 0.053911413962 |
[ Download CSV Export ]
Contract Name:
NVMTimelock
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.4; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; import "./interfaces/INVMTimelock.sol"; contract NVMTimelock is INVMTimelock { using SafeMath for uint256; event NewAdmin(address indexed newAdmin); event NewPendingAdmin(address indexed newPendingAdmin); event NewDelay(uint256 indexed newDelay); event CancelTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); event ExecuteTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); event QueueTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); uint256 public constant override GRACE_PERIOD = 14 days; uint256 public constant override MINIMUM_DELAY = 1 hours; uint256 public constant override MAXIMUM_DELAY = 30 days; address public override admin; address public override pendingAdmin; uint256 public override delay; mapping(bytes32 => bool) public override queuedTransactions; constructor(address _admin, uint256 _delay) { require(_delay >= MINIMUM_DELAY, "Delay is too short"); require(_delay <= MAXIMUM_DELAY, "Delay is too long"); admin = _admin; delay = _delay; } receive() external payable {} function setDelay(uint256 _delay) public override { require(msg.sender == address(this), "Call must come from Timelock"); require(_delay >= MINIMUM_DELAY, "Delay is too short"); require(_delay <= MAXIMUM_DELAY, "Delay is too long"); delay = _delay; emit NewDelay(delay); } function acceptAdmin() public override { require(msg.sender == pendingAdmin, "Call must come from pendingAdmin"); admin = msg.sender; pendingAdmin = address(0); emit NewAdmin(admin); } function setPendingAdmin(address _pendingAdmin) public override { require(msg.sender == address(this), "Call must come from Timelock"); pendingAdmin = _pendingAdmin; emit NewPendingAdmin(pendingAdmin); } function queueTransaction( address _target, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) public override returns (bytes32) { require(msg.sender == admin, "Call must come from admin"); require(_eta >= getBlockTimestamp().add(delay), "ETA to small"); 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, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) public override { require(msg.sender == admin, "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 bytesToString(bytes memory byteCode) public pure returns (string memory stringData) { uint256 blank = 0; //blank 32 byte value uint256 length = byteCode.length; uint256 cycles = byteCode.length / 0x20; uint256 requiredAlloc = length; if ( length % 0x20 > 0 ) //optimise copying the final part of the bytes - to avoid looping with single byte writes { cycles++; requiredAlloc += 0x20; //expand memory to allow end blank, so we don't smack the next stack entry } stringData = new string(requiredAlloc); //copy data in 32 byte blocks assembly { let cycle := 0 for { let mc := add(stringData, 0x20) //pointer into bytes we're writing to let cc := add(byteCode, 0x20) //pointer to where we're reading from } lt(cycle, cycles) { mc := add(mc, 0x20) cc := add(cc, 0x20) cycle := add(cycle, 0x01) } { mstore(mc, mload(cc)) } } //finally blank final bytes and shrink size (part of the optimisation to avoid looping adding blank bytes1) if (length % 0x20 > 0) { uint256 offsetStart = 0x20 + length; assembly { let mc := add(stringData, offsetStart) mstore(mc, mload(add(blank, 0x20))) //now shrink the memory back so the returned object is the correct size mstore(stringData, length) } } } function executeTransaction( address _target, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) public payable override returns (bytes memory) { require(msg.sender == admin, "Call must come from admin"); bytes32 _txHash = keccak256(abi.encode(_target, _value, _signature, _data, _eta)); require(queuedTransactions[_txHash], "Transaction hasn't been queued"); require(getBlockTimestamp() >= _eta, "Transaction is still locked"); require(getBlockTimestamp() <= _eta.add(GRACE_PERIOD), "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, "Transaction execution reverted"); emit ExecuteTransaction(_txHash, _target, _value, _signature, _data, _eta); return _returnData; } function getBlockTimestamp() internal view returns (uint256) { // solium-disable-next-line security/no-block-members return block.timestamp; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @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) { return a + b; } /** * @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 a - b; } /** * @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) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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 a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting 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) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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) { unchecked { require(b > 0, errorMessage); return a % b; } } }
//SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.4; interface INVMTimelock { function admin() external view returns (address); function pendingAdmin() external view returns (address); function delay() external view returns (uint256); function GRACE_PERIOD() external view returns (uint256); function MINIMUM_DELAY() external view returns (uint256); function MAXIMUM_DELAY() external view returns (uint256); function queuedTransactions(bytes32 _hash) external view returns (bool); function setDelay(uint256 _delay) external; function acceptAdmin() external; function setPendingAdmin(address _pendingAdmin) external; function queueTransaction( address _target, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) external returns (bytes32); function cancelTransaction( address _target, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) external; function executeTransaction( address _target, uint256 _value, string memory _signature, bytes memory _data, uint256 _eta ) external payable returns (bytes memory); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
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":"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":[{"internalType":"bytes","name":"byteCode","type":"bytes"}],"name":"bytesToString","outputs":[{"internalType":"string","name":"stringData","type":"string"}],"stateMutability":"pure","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":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161100538038061100583398101604081905261002f916100eb565b610e1081101561007b5760405162461bcd60e51b815260206004820152601260248201527111195b185e481a5cc81d1bdbc81cda1bdc9d60721b60448201526064015b60405180910390fd5b62278d008111156100c25760405162461bcd60e51b815260206004820152601160248201527044656c617920697320746f6f206c6f6e6760781b6044820152606401610072565b600080546001600160a01b0319166001600160a01b039390931692909217909155600255610123565b600080604083850312156100fd578182fd5b82516001600160a01b0381168114610113578283fd5b6020939093015192949293505050565b610ed3806101326000396000f3fe6080604052600436106100e15760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e214610236578063e177246e1461024d578063f2b065371461026d578063f851a440146102ad57600080fd5b80636a42b8f8146101f35780637d645fab14610209578063b1b43ae51461022057600080fd5b806339614e4f116100bb57806339614e4f146101655780633a66f901146101855780634dd18bf5146101b3578063591fcdfe146101d357600080fd5b80630825f38f146100ed5780630e18b68114610116578063267822471461012d57600080fd5b366100e857005b600080fd5b6101006100fb366004610b98565b6102cd565b60405161010d9190610d49565b60405180910390f35b34801561012257600080fd5b5061012b61058f565b005b34801561013957600080fd5b5060015461014d906001600160a01b031681565b6040516001600160a01b03909116815260200161010d565b34801561017157600080fd5b50610100610180366004610c49565b610632565b34801561019157600080fd5b506101a56101a0366004610b98565b610732565b60405190815260200161010d565b3480156101bf57600080fd5b5061012b6101ce366004610b7e565b61084d565b3480156101df57600080fd5b5061012b6101ee366004610b98565b6108e6565b3480156101ff57600080fd5b506101a560025481565b34801561021557600080fd5b506101a562278d0081565b34801561022c57600080fd5b506101a5610e1081565b34801561024257600080fd5b506101a56212750081565b34801561025957600080fd5b5061012b610268366004610c31565b6109aa565b34801561027957600080fd5b5061029d610288366004610c31565b60036020526000908152604090205460ff1681565b604051901515815260200161010d565b3480156102b957600080fd5b5060005461014d906001600160a01b031681565b6000546060906001600160a01b031633146103035760405162461bcd60e51b81526004016102fa90610d5c565b60405180910390fd5b6000868686868660405160200161031e959493929190610cfd565b60408051601f1981840301815291815281516020928301206000818152600390935291205490915060ff166103955760405162461bcd60e51b815260206004820152601e60248201527f5472616e73616374696f6e206861736e2774206265656e20717565756564000060448201526064016102fa565b824210156103e55760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973207374696c6c206c6f636b6564000000000060448201526064016102fa565b6103f28362127500610aba565b4211156104385760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e206973207374616c6560601b60448201526064016102fa565b6000818152600360205260409020805460ff19169055845160609061045e57508361048a565b858051906020012085604051602001610478929190610cb0565b60405160208183030381529060405290505b600080896001600160a01b031689846040516104a69190610ce1565b60006040518083038185875af1925050503d80600081146104e3576040519150601f19603f3d011682016040523d82523d6000602084013e6104e8565b606091505b50915091508161053a5760405162461bcd60e51b815260206004820152601e60248201527f5472616e73616374696f6e20657865637574696f6e207265766572746564000060448201526064016102fa565b896001600160a01b0316847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b60405161057a9493929190610d93565b60405180910390a39998505050505050505050565b6001546001600160a01b031633146105e95760405162461bcd60e51b815260206004820181905260248201527f43616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e60448201526064016102fa565b60008054336001600160a01b0319918216811783556001805490921690915560405190917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b805160609060009081610646602083610de8565b9050816000610656602083610e47565b1115610678578161066681610e2c565b92506106759050602082610dd0565b90505b8067ffffffffffffffff81111561069f57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156106c9576020820181803683370190505b509450600060208601602088015b848310156106f6578051825260019290920191602091820191016106d7565b50505060006020846107089190610e47565b111561072957600061071b846020610dd0565b602086015190870152508285525b50505050919050565b600080546001600160a01b0316331461075d5760405162461bcd60e51b81526004016102fa90610d5c565b61077060025461076a4290565b90610aba565b8210156107ae5760405162461bcd60e51b815260206004820152600c60248201526b115510481d1bc81cdb585b1b60a21b60448201526064016102fa565b600086868686866040516020016107c9959493929190610cfd565b60408051601f19818403018152828252805160209182012060008181526003909252919020805460ff1916600117905591506001600160a01b0388169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f9061083b908a908a908a908a90610d93565b60405180910390a39695505050505050565b33301461089c5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c206d75737420636f6d652066726f6d2054696d656c6f636b0000000060448201526064016102fa565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b6000546001600160a01b031633146109105760405162461bcd60e51b81526004016102fa90610d5c565b6000858585858560405160200161092b959493929190610cfd565b60408051601f19818403018152828252805160209182012060008181526003909252919020805460ff1916905591506001600160a01b0387169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf879061099a908990899089908990610d93565b60405180910390a3505050505050565b3330146109f95760405162461bcd60e51b815260206004820152601c60248201527f43616c6c206d75737420636f6d652066726f6d2054696d656c6f636b0000000060448201526064016102fa565b610e10811015610a405760405162461bcd60e51b815260206004820152601260248201527111195b185e481a5cc81d1bdbc81cda1bdc9d60721b60448201526064016102fa565b62278d00811115610a875760405162461bcd60e51b815260206004820152601160248201527044656c617920697320746f6f206c6f6e6760781b60448201526064016102fa565b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b6000610ac68284610dd0565b9392505050565b600067ffffffffffffffff80841115610ae857610ae8610e87565b604051601f8501601f19908116603f01168101908282118183101715610b1057610b10610e87565b81604052809350858152868686011115610b2957600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b0381168114610b5a57600080fd5b919050565b600082601f830112610b6f578081fd5b610ac683833560208501610acd565b600060208284031215610b8f578081fd5b610ac682610b43565b600080600080600060a08688031215610baf578081fd5b610bb886610b43565b945060208601359350604086013567ffffffffffffffff80821115610bdb578283fd5b818801915088601f830112610bee578283fd5b610bfd89833560208501610acd565b94506060880135915080821115610c12578283fd5b50610c1f88828901610b5f565b95989497509295608001359392505050565b600060208284031215610c42578081fd5b5035919050565b600060208284031215610c5a578081fd5b813567ffffffffffffffff811115610c70578182fd5b610c7c84828501610b5f565b949350505050565b60008151808452610c9c816020860160208601610dfc565b601f01601f19169290920160200192915050565b6001600160e01b0319831681528151600090610cd3816004850160208701610dfc565b919091016004019392505050565b60008251610cf3818460208701610dfc565b9190910192915050565b60018060a01b038616815284602082015260a060408201526000610d2460a0830186610c84565b8281036060840152610d368186610c84565b9150508260808301529695505050505050565b602081526000610ac66020830184610c84565b60208082526019908201527f43616c6c206d75737420636f6d652066726f6d2061646d696e00000000000000604082015260600190565b848152608060208201526000610dac6080830186610c84565b8281036040840152610dbe8186610c84565b91505082606083015295945050505050565b60008219821115610de357610de3610e5b565b500190565b600082610df757610df7610e71565b500490565b60005b83811015610e17578181015183820152602001610dff565b83811115610e26576000848401525b50505050565b6000600019821415610e4057610e40610e5b565b5060010190565b600082610e5657610e56610e71565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220a9a8dd5f5ec55b776667cdb51e02fcda0fa5cbd95ee59711eb4e856dd9a67be864736f6c63430008040033000000000000000000000000a062e4424385fb3403322cc4760dac40786211550000000000000000000000000000000000000000000000000000000000000e10
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a062e4424385fb3403322cc4760dac40786211550000000000000000000000000000000000000000000000000000000000000e10
-----Decoded View---------------
Arg [0] : _admin (address): 0xa062e4424385fb3403322cc4760dac4078621155
Arg [1] : _delay (uint256): 3600
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a062e4424385fb3403322cc4760dac4078621155
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000e10
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.