Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
65 LOCK_CLIP
Holders
54
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1 LOCK_CLIPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Timelock
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.6; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; /** Timelock contract. Fixed token payout and timing. Can add recipients and multiple grants per recipient. @author iain github.com/iainnash/simple-timelock */ contract Timelock { // From IERC20 event Transfer(address indexed from, address indexed to, uint256 tokens); /** Error codes lookup: 1: Recover and recieve grant days need to be greater than 0 2: Grant not valid. 3: Only owner can add grants. 4: Only owner can recover 5: Cannot set the recovery grant before the unlock time 6: Too early to recover 7: Too early to claim 8: Recover timestamp needs to be after receive timestamp 9: Already granted 10: Cannot grant after unlock 11: Token not approved or not enough 12: Invalid ownership */ // Timestamp for when the recovery begins uint256 private immutable timeRecoverGrant; // Timestamp for when the receive begins uint256 private immutable timeReceiveGrant; // Owner that can recover grant and add new grant addresses address private immutable owner; // Token to lock IERC20 private immutable token; // Mapping of address to grant mapping(address => uint256) private grants; // Emitted when a claim is recovered event Recovered(address recipient, uint256 amount); // Emitted when a claim is claimed event Claimed(address actor, uint256 amount); // Emitted when a grant is added event GrantsAdded(address actor, address[] newRecipients); modifier onlyOwner() { require(msg.sender == owner, "3"); _; } /** Sets up grant created by TimelockCreator Contract */ constructor( address _owner, IERC20 _token, uint256 unlockTimestamp, uint256 recoverTimestamp ) { token = _token; owner = _owner; require( unlockTimestamp > block.timestamp && recoverTimestamp > block.timestamp, "1" ); require(recoverTimestamp > unlockTimestamp, "8"); timeReceiveGrant = unlockTimestamp; timeRecoverGrant = recoverTimestamp; } /** Returns token for timelock and amount per recipient */ function getToken() public view returns (IERC20) { return token; } function getOwner() public view returns (address) { return owner; } /** Returns the time users can recieve the grant / when the timelock expires */ function getTimeUnlock() public view returns (uint256) { return timeReceiveGrant; } /** Returns the admin can recover unclaimed grants */ function getTimeRecover() public view returns (uint256) { return timeRecoverGrant; } /** Proxied token information for bookkeeping / discoverability Not implemented: 1. approvals 2. transfers etc. */ function balanceOf(address user) public view returns (uint256) { return grants[user]; } function totalSupply() public view returns (uint256) { return token.balanceOf(address(this)); } function decimals() public view returns (uint8) { return IERC20Metadata(address(token)).decimals(); } function name() public view returns (string memory) { return string( abi.encodePacked( "Timelocked ", IERC20Metadata(address(token)).name() ) ); } function symbol() public view returns (string memory) { return string( abi.encodePacked( "LOCK_", IERC20Metadata(address(token)).symbol() ) ); } /** @dev Adds a grant to the timelock Grants can be added at any time before claim period. */ function addGrants(address[] memory newRecipients, uint256 grantSize) external onlyOwner { require(grantSize > 0, "2"); require(getTimeUnlock() > block.timestamp, "10"); require( token.allowance(msg.sender, address(this)) >= newRecipients.length * grantSize, "11" ); uint256 numberRecipients = newRecipients.length; token.transferFrom( msg.sender, address(this), grantSize * numberRecipients ); for (uint256 i = 0; i < numberRecipients; i++) { emit Transfer(address(0), newRecipients[i], grantSize); grants[newRecipients[i]] += grantSize; } emit GrantsAdded(owner, newRecipients); } /** Returns the status of the grant. */ function grantedAmount(address recipient) external view returns (uint256) { return grants[recipient]; } /** Allows a user to claim their grant. Claimee has to be msg.sender. */ function claim() external { address recipient = msg.sender; require(block.timestamp >= timeReceiveGrant, "7"); uint256 grantAmount = grants[recipient]; require(grantAmount > 0, "2"); token.transfer(recipient, grantAmount); grants[recipient] = 0; // Emit grant claimed event emit Claimed(recipient, grantAmount); // Burn tracker token emit Transfer(recipient, address(0x0), grantAmount); } /** The owner of the grant can recover after the recovery timestamp passes. This sweeps remaining funds and destroys the contract data. */ function recover() external onlyOwner { address payable sender = payable(msg.sender); require(block.timestamp >= timeRecoverGrant, "6"); uint256 balance = token.balanceOf(address(this)); emit Recovered(sender, balance); token.transfer(sender, balance); selfdestruct(sender); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
{ "evmVersion": "berlin", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 40 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"unlockTimestamp","type":"uint256"},{"internalType":"uint256","name":"recoverTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"actor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"actor","type":"address"},{"indexed":false,"internalType":"address[]","name":"newRecipients","type":"address[]"}],"name":"GrantsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Recovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"newRecipients","type":"address[]"},{"internalType":"uint256","name":"grantSize","type":"uint256"}],"name":"addGrants","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeRecover","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"grantedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61010060405234801561001157600080fd5b506040516200123e3803806200123e833981016040819052610032916100d3565b6001600160601b0319606084811b821660e05285901b1660c052428211801561005a57504281115b61008f5760405162461bcd60e51b81526020600482015260016024820152603160f81b60448201526064015b60405180910390fd5b8181116100c25760405162461bcd60e51b81526020600482015260016024820152600760fb1b6044820152606401610086565b60a091909152608052506101339050565b600080600080608085870312156100e957600080fd5b84516100f48161011b565b60208601519094506101058161011b565b6040860151606090960151949790965092505050565b6001600160a01b038116811461013057600080fd5b50565b60805160a05160c05160601c60e05160601c61106a620001d46000396000818160ea015281816101df015281816102b00152818161033e015281816104a101528181610562015281816107f30152818161091b01528181610a750152610b4c015260008181610179015281816103d80152818161071601526109c90152600081816107540152610be40152600081816101a70152610a09015261106a6000f3fe608060405234801561001057600080fd5b50600436106100af5760003560e01c806306fdde03146100b457806318160ddd146100d257806321df0da7146100e8578063313ce567146101175780634deef753146101315780634e71d92d1461014657806370a082311461014e578063893d20e81461017757806395d89b411461019d578063a6414443146101a5578063ce746024146101cb578063def1e7ae146101d3578063f3505fde1461014e575b600080fd5b6100bc6101db565b6040516100c99190610ed7565b60405180910390f35b6100da610296565b6040519081526020016100c9565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100c99190610e4e565b61011f61033a565b60405160ff90911681526020016100c9565b61014461013f366004610c44565b6103cd565b005b610144610751565b6100da61015c366004610c22565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000061010a565b6100bc610917565b7f00000000000000000000000000000000000000000000000000000000000000006100da565b6101446109be565b6100da610be2565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561023657600080fd5b505afa15801561024a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102729190810190610d1f565b6040516020016102829190610dee565b604051602081830303815290604052905090565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102e5903090600401610e4e565b60206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103359190610db2565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561039557600080fd5b505afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103359190610dcb565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461041e5760405162461bcd60e51b815260040161041590610f0a565b60405180910390fd5b6000811161043e5760405162461bcd60e51b815260040161041590610f25565b42610447610be2565b116104795760405162461bcd60e51b8152602060048201526002602482015261031360f41b6044820152606401610415565b8082516104869190610f88565b604051636eb1769f60e11b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dd62ed3e9060440160206040518083038186803b1580156104eb57600080fd5b505afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190610db2565b10156105565760405162461bcd60e51b8152602060048201526002602482015261313160f01b6044820152606401610415565b81516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd33306105938587610f88565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b1580156105e257600080fd5b505af11580156105f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061a9190610cfd565b5060005b818110156106f25783818151811061063857610638611008565b60200260200101516001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161068591815260200190565b60405180910390a3826000808684815181106106a3576106a3611008565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546106da9190610f70565b909155508190506106ea81610fd7565b91505061061e565b507fa0cd582431bf0ccaa00246b434e59ebd5f63aa3d856a1d9328e7023b18cc63af7f000000000000000000000000000000000000000000000000000000000000000084604051610744929190610e7b565b60405180910390a1505050565b337f00000000000000000000000000000000000000000000000000000000000000004210156107a65760405162461bcd60e51b81526020600482015260016024820152603760f81b6044820152606401610415565b6001600160a01b038116600090815260208190526040902054806107dc5760405162461bcd60e51b815260040161041590610f25565b60405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb9061082a9085908590600401610e62565b602060405180830381600087803b15801561084457600080fd5b505af1158015610858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087c9190610cfd565b506001600160a01b03821660009081526020819052604080822091909155517fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a906108ca9084908490610e62565b60405180910390a16040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ae9190810190610d1f565b6040516020016102829190610e21565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a065760405162461bcd60e51b815260040161041590610f0a565b337f0000000000000000000000000000000000000000000000000000000000000000421015610a5b5760405162461bcd60e51b81526020600482015260016024820152601b60f91b6044820152606401610415565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610aaa903090600401610e4e565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa9190610db2565b90507f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa288282604051610b2d929190610e62565b60405180910390a160405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90610b839085908590600401610e62565b602060405180830381600087803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd59190610cfd565b50816001600160a01b0316ff5b7f000000000000000000000000000000000000000000000000000000000000000090565b80356001600160a01b0381168114610c1d57600080fd5b919050565b600060208284031215610c3457600080fd5b610c3d82610c06565b9392505050565b60008060408385031215610c5757600080fd5b82356001600160401b0380821115610c6e57600080fd5b818501915085601f830112610c8257600080fd5b8135602082821115610c9657610c9661101e565b8160051b9250610ca7818401610f40565b8281528181019085830185870184018b1015610cc257600080fd5b600096505b84871015610cec57610cd881610c06565b835260019690960195918301918301610cc7565b509997909101359750505050505050565b600060208284031215610d0f57600080fd5b81518015158114610c3d57600080fd5b600060208284031215610d3157600080fd5b81516001600160401b0380821115610d4857600080fd5b818401915084601f830112610d5c57600080fd5b815181811115610d6e57610d6e61101e565b610d81601f8201601f1916602001610f40565b9150808252856020828501011115610d9857600080fd5b610da9816020840160208601610fa7565b50949350505050565b600060208284031215610dc457600080fd5b5051919050565b600060208284031215610ddd57600080fd5b815160ff81168114610c3d57600080fd5b6a02a34b6b2b637b1b5b2b2160ad1b815260008251610e1481600b850160208701610fa7565b91909101600b0192915050565b644c4f434b5f60d81b815260008251610e41816005850160208701610fa7565b9190910160050192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015610ec9578551851683529483019491830191600101610eab565b509098975050505050505050565b6020815260008251806020840152610ef6816040850160208701610fa7565b601f01601f19169190910160400192915050565b6020808252600190820152603360f81b604082015260600190565b6020808252600190820152601960f91b604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715610f6857610f6861101e565b604052919050565b60008219821115610f8357610f83610ff2565b500190565b6000816000190483118215151615610fa257610fa2610ff2565b500290565b60005b83811015610fc2578181015183820152602001610faa565b83811115610fd1576000848401525b50505050565b6000600019821415610feb57610feb610ff2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200c0c7e9be86a249d9af64283615f2d4eac1cb274dd45f6c7c509682d09b3905164736f6c6343000806003300000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f200000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c0000000000000000000000000000000000000000000000000000000061c6a550000000000000000000000000000000000000000000000000000000006292efc0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100af5760003560e01c806306fdde03146100b457806318160ddd146100d257806321df0da7146100e8578063313ce567146101175780634deef753146101315780634e71d92d1461014657806370a082311461014e578063893d20e81461017757806395d89b411461019d578063a6414443146101a5578063ce746024146101cb578063def1e7ae146101d3578063f3505fde1461014e575b600080fd5b6100bc6101db565b6040516100c99190610ed7565b60405180910390f35b6100da610296565b6040519081526020016100c9565b7f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c5b6040516100c99190610e4e565b61011f61033a565b60405160ff90911681526020016100c9565b61014461013f366004610c44565b6103cd565b005b610144610751565b6100da61015c366004610c22565b6001600160a01b031660009081526020819052604090205490565b7f00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f261010a565b6100bc610917565b7f000000000000000000000000000000000000000000000000000000006292efc06100da565b6101446109be565b6100da610be2565b60607f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c6001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561023657600080fd5b505afa15801561024a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102729190810190610d1f565b6040516020016102829190610dee565b604051602081830303815290604052905090565b6040516370a0823160e01b81526000906001600160a01b037f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c16906370a08231906102e5903090600401610e4e565b60206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103359190610db2565b905090565b60007f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561039557600080fd5b505afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103359190610dcb565b336001600160a01b037f00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f2161461041e5760405162461bcd60e51b815260040161041590610f0a565b60405180910390fd5b6000811161043e5760405162461bcd60e51b815260040161041590610f25565b42610447610be2565b116104795760405162461bcd60e51b8152602060048201526002602482015261031360f41b6044820152606401610415565b8082516104869190610f88565b604051636eb1769f60e11b81523360048201523060248201527f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c6001600160a01b03169063dd62ed3e9060440160206040518083038186803b1580156104eb57600080fd5b505afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190610db2565b10156105565760405162461bcd60e51b8152602060048201526002602482015261313160f01b6044820152606401610415565b81516001600160a01b037f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c166323b872dd33306105938587610f88565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b1580156105e257600080fd5b505af11580156105f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061a9190610cfd565b5060005b818110156106f25783818151811061063857610638611008565b60200260200101516001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161068591815260200190565b60405180910390a3826000808684815181106106a3576106a3611008565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546106da9190610f70565b909155508190506106ea81610fd7565b91505061061e565b507fa0cd582431bf0ccaa00246b434e59ebd5f63aa3d856a1d9328e7023b18cc63af7f00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f284604051610744929190610e7b565b60405180910390a1505050565b337f0000000000000000000000000000000000000000000000000000000061c6a5504210156107a65760405162461bcd60e51b81526020600482015260016024820152603760f81b6044820152606401610415565b6001600160a01b038116600090815260208190526040902054806107dc5760405162461bcd60e51b815260040161041590610f25565b60405163a9059cbb60e01b81526001600160a01b037f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c169063a9059cbb9061082a9085908590600401610e62565b602060405180830381600087803b15801561084457600080fd5b505af1158015610858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087c9190610cfd565b506001600160a01b03821660009081526020819052604080822091909155517fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a906108ca9084908490610e62565b60405180910390a16040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60607f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ae9190810190610d1f565b6040516020016102829190610e21565b336001600160a01b037f00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f21614610a065760405162461bcd60e51b815260040161041590610f0a565b337f000000000000000000000000000000000000000000000000000000006292efc0421015610a5b5760405162461bcd60e51b81526020600482015260016024820152601b60f91b6044820152606401610415565b6040516370a0823160e01b81526000906001600160a01b037f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c16906370a0823190610aaa903090600401610e4e565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa9190610db2565b90507f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa288282604051610b2d929190610e62565b60405180910390a160405163a9059cbb60e01b81526001600160a01b037f00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c169063a9059cbb90610b839085908590600401610e62565b602060405180830381600087803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd59190610cfd565b50816001600160a01b0316ff5b7f0000000000000000000000000000000000000000000000000000000061c6a55090565b80356001600160a01b0381168114610c1d57600080fd5b919050565b600060208284031215610c3457600080fd5b610c3d82610c06565b9392505050565b60008060408385031215610c5757600080fd5b82356001600160401b0380821115610c6e57600080fd5b818501915085601f830112610c8257600080fd5b8135602082821115610c9657610c9661101e565b8160051b9250610ca7818401610f40565b8281528181019085830185870184018b1015610cc257600080fd5b600096505b84871015610cec57610cd881610c06565b835260019690960195918301918301610cc7565b509997909101359750505050505050565b600060208284031215610d0f57600080fd5b81518015158114610c3d57600080fd5b600060208284031215610d3157600080fd5b81516001600160401b0380821115610d4857600080fd5b818401915084601f830112610d5c57600080fd5b815181811115610d6e57610d6e61101e565b610d81601f8201601f1916602001610f40565b9150808252856020828501011115610d9857600080fd5b610da9816020840160208601610fa7565b50949350505050565b600060208284031215610dc457600080fd5b5051919050565b600060208284031215610ddd57600080fd5b815160ff81168114610c3d57600080fd5b6a02a34b6b2b637b1b5b2b2160ad1b815260008251610e1481600b850160208701610fa7565b91909101600b0192915050565b644c4f434b5f60d81b815260008251610e41816005850160208701610fa7565b9190910160050192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015610ec9578551851683529483019491830191600101610eab565b509098975050505050505050565b6020815260008251806020840152610ef6816040850160208701610fa7565b601f01601f19169190910160400192915050565b6020808252600190820152603360f81b604082015260600190565b6020808252600190820152601960f91b604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715610f6857610f6861101e565b604052919050565b60008219821115610f8357610f83610ff2565b500190565b6000816000190483118215151615610fa257610fa2610ff2565b500290565b60005b83811015610fc2578181015183820152602001610faa565b83811115610fd1576000848401525b50505050565b6000600019821415610feb57610feb610ff2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200c0c7e9be86a249d9af64283615f2d4eac1cb274dd45f6c7c509682d09b3905164736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f200000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c0000000000000000000000000000000000000000000000000000000061c6a550000000000000000000000000000000000000000000000000000000006292efc0
-----Decoded View---------------
Arg [0] : _owner (address): 0x87EE1158bEe297c381745284dcb2E54fA03EB5f2
Arg [1] : _token (address): 0x47E1b433Ca6F3f87302fACE00484BaE025b6b31C
Arg [2] : unlockTimestamp (uint256): 1640408400
Arg [3] : recoverTimestamp (uint256): 1653796800
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000087ee1158bee297c381745284dcb2e54fa03eb5f2
Arg [1] : 00000000000000000000000047e1b433ca6f3f87302face00484bae025b6b31c
Arg [2] : 0000000000000000000000000000000000000000000000000000000061c6a550
Arg [3] : 000000000000000000000000000000000000000000000000000000006292efc0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.