Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 2 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x008adda353dbbdc5def9897e0406511af690385bat txn 0xc5bc4e9b003e3022e599dd3562734f40f1cedc030bd1dbab7cc6b0e698093d80
Token Balance:
 Latest 2 txns

TxHash Age From To Value [TxFee]
0x2a5b9cceb137ab9c5250d9b93d74a3ef8682d03f45ec7a649494930a971e36ec233 days 21 hrs ago0x008adda353dbbdc5def9897e0406511af690385b  IN   0x8be0a3cc6b57bc486d5f247fa8417fa1621579d20.01 Ether0.000063
0xc5bc4e9b003e3022e599dd3562734f40f1cedc030bd1dbab7cc6b0e698093d80233 days 21 hrs ago0x008adda353dbbdc5def9897e0406511af690385b  IN    Contract Creation0 Ether0.000798507


[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: TokenTimelock
Compiler Text: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 ABI  
[{"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 Switch To Opcodes View
6060604052341561000f57600080fd5b60405160608061029883398101604052808051919060200180519190602001805191505042811161003f57600080fd5b60008054600160a060020a03948516600160a060020a0319918216179091556001805493909416921691909117909155600255610217806100816000396000f3006060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100b6575b600080fd5b341561005857600080fd5b6100606100c9565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100d8565b005b341561009c57600080fd5b6100a46101d6565b60405190815260200160405180910390f35b34156100c157600080fd5b6100606101dc565b600154600160a060020a031681565b6002546000904210156100ea57600080fd5b600054600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561013a57600080fd5b5af1151561014757600080fd5b50505060405180519150506000811161015f57600080fd5b600054600154600160a060020a039182169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156101bc57600080fd5b5af115156101c957600080fd5b5050506040518051505050565b60025481565b600054600160a060020a0316815600a165627a7a723058205a409b6b386388b36afaf03c7da9ea2154fce96e54b637d46b92246c750a49d20029000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d000000000000000000000000004468649ac985435b02bef2d017f5a3edebf0b7000000000000000000000000000000000000000000000000000000005b89d680

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d
Arg [1] : 000000000000000000000000004468649ac985435b02bef2d017f5a3edebf0b7
Arg [2] : 000000000000000000000000000000000000000000000000000000005b89d680


   Swarm Source:
bzzr://5a409b6b386388b36afaf03c7da9ea2154fce96e54b637d46b92246c750a49d2

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.