Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenTimelock
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-20 */ pragma solidity 0.4.21; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title TokenTimelock * @dev TokenTimelock is a token holder contract that will allow a * beneficiary to extract the tokens after a given release time */ contract TokenTimelock { // ERC20 basic token contract being held ERC20 public token; // beneficiary of tokens after they are released address public beneficiary; // timestamp when token release is enabled uint256 public releaseTime; function TokenTimelock(ERC20 _token, address _beneficiary, uint256 _releaseTime) public { require(_releaseTime > now); token = _token; beneficiary = _beneficiary; releaseTime = _releaseTime; } /** * @notice Transfers tokens held by timelock to beneficiary. */ function release() public { require(now >= releaseTime); uint256 amount = token.balanceOf(this); require(amount > 0); token.transfer(beneficiary, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"releaseTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_beneficiary","type":"address"},{"name":"_releaseTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
6060604052341561000f57600080fd5b60405160608061029883398101604052808051919060200180519190602001805191505042811161003f57600080fd5b60008054600160a060020a03948516600160a060020a0319918216179091556001805493909416921691909117909155600255610217806100816000396000f3006060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100b6575b600080fd5b341561005857600080fd5b6100606100c9565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100d8565b005b341561009c57600080fd5b6100a46101d6565b60405190815260200160405180910390f35b34156100c157600080fd5b6100606101dc565b600154600160a060020a031681565b6002546000904210156100ea57600080fd5b600054600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561013a57600080fd5b5af1151561014757600080fd5b50505060405180519150506000811161015f57600080fd5b600054600154600160a060020a039182169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156101bc57600080fd5b5af115156101c957600080fd5b5050506040518051505050565b60025481565b600054600160a060020a0316815600a165627a7a723058205a409b6b386388b36afaf03c7da9ea2154fce96e54b637d46b92246c750a49d20029000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d000000000000000000000000004468649ac985435b02bef2d017f5a3edebf0b7000000000000000000000000000000000000000000000000000000005b89d680
Deployed Bytecode
0x6060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100b6575b600080fd5b341561005857600080fd5b6100606100c9565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100d8565b005b341561009c57600080fd5b6100a46101d6565b60405190815260200160405180910390f35b34156100c157600080fd5b6100606101dc565b600154600160a060020a031681565b6002546000904210156100ea57600080fd5b600054600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561013a57600080fd5b5af1151561014757600080fd5b50505060405180519150506000811161015f57600080fd5b600054600154600160a060020a039182169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156101bc57600080fd5b5af115156101c957600080fd5b5050506040518051505050565b60025481565b600054600160a060020a0316815600a165627a7a723058205a409b6b386388b36afaf03c7da9ea2154fce96e54b637d46b92246c750a49d20029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d000000000000000000000000004468649ac985435b02bef2d017f5a3edebf0b7000000000000000000000000000000000000000000000000000000005b89d680
-----Decoded View---------------
Arg [0] : _token (address): 0x554FFc77F4251a9fB3c0E3590a6a205f8d4e067D
Arg [1] : _beneficiary (address): 0x004468649AC985435b02BEF2d017f5a3EDeBF0B7
Arg [2] : _releaseTime (uint256): 1535760000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d
Arg [1] : 000000000000000000000000004468649ac985435b02bef2d017f5a3edebf0b7
Arg [2] : 000000000000000000000000000000000000000000000000000000005b89d680
Swarm Source
bzzr://5a409b6b386388b36afaf03c7da9ea2154fce96e54b637d46b92246c750a49d2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.