ETH Price: $2,318.10 (-1.68%)

Contract

0xFF2df283F8b91919d3c1B08031C1846b80F0DEb3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer117180522021-01-24 11:30:251878 days ago1611487825IN
0xFF2df283...b80F0DEb3
0 ETH0.0019497960.5
Transfer Ownersh...61155542018-08-09 9:03:462777 days ago1533805426IN
0xFF2df283...b80F0DEb3
0 ETH0.0026239260

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Timelock

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-08-08
*/

pragma solidity ^0.4.24;

contract Ownable {
	address public owner;
	address public newOwner;

	event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);

	constructor() public {
		owner = msg.sender;
		newOwner = address(0);
	}

	modifier onlyOwner() {
		require(msg.sender == owner, "msg.sender == owner");
		_;
	}

	function transferOwnership(address _newOwner) public onlyOwner {
		require(address(0) != _newOwner, "address(0) != _newOwner");
		newOwner = _newOwner;
	}

	function acceptOwnership() public {
		require(msg.sender == newOwner, "msg.sender == newOwner");
		emit OwnershipTransferred(owner, msg.sender);
		owner = msg.sender;
		newOwner = address(0);
	}
}

contract tokenInterface {
	function balanceOf(address _owner) public constant returns (uint256 balance);
	function transfer(address _to, uint256 _value) public returns (bool);
}

contract Timelock is Ownable {
	tokenInterface public tokenContract;

	uint256 public releaseTime;

	constructor(address _tokenAddress, uint256 _releaseTime) public {
		tokenContract = tokenInterface(_tokenAddress);
		releaseTime = _releaseTime;
	}

	function () public {
	    if ( msg.sender == newOwner ) acceptOwnership();
		claim();
	}
	
	function claim() onlyOwner private {
	    require ( now > releaseTime, "now > releaseTime" );
	    
	    uint256 tknToSend = tokenContract.balanceOf(this);
		require(tknToSend > 0,"tknToSend > 0");
			
		require ( tokenContract.transfer(msg.sender, tknToSend) );
	}
	
	function unlocked() view public returns(bool) {
	    return now > releaseTime;
	}
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unlocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_releaseTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b5060405160408061067583398101604052805160209091015160008054600160a060020a03199081163317909155600180548216905560028054600160a060020a039094169390911692909217909155600355610603806100726000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166355a373d681146100b45780636a5e2650146100e557806379ba50971461010e5780638da5cb5b14610123578063b91d400114610138578063d4ee1d901461015f578063f2fde38b14610174575b34801561008e57600080fd5b50600154600160a060020a03163314156100aa576100aa610195565b6100b261025c565b005b3480156100c057600080fd5b506100c96104ab565b60408051600160a060020a039092168252519081900360200190f35b3480156100f157600080fd5b506100fa6104ba565b604080519115158252519081900360200190f35b34801561011a57600080fd5b506100b2610195565b34801561012f57600080fd5b506100c96104c2565b34801561014457600080fd5b5061014d6104d1565b60408051918252519081900360200190f35b34801561016b57600080fd5b506100c96104d7565b34801561018057600080fd5b506100b2600160a060020a03600435166104e6565b600154600160a060020a031633146101f7576040805160e560020a62461bcd02815260206004820152601660248201527f6d73672e73656e646572203d3d206e65774f776e657200000000000000000000604482015290519081900360640190fd5b600080546040513392600160a060020a03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff199081163317909155600180549091169055565b60008054600160a060020a031633146102bf576040805160e560020a62461bcd02815260206004820152601360248201527f6d73672e73656e646572203d3d206f776e657200000000000000000000000000604482015290519081900360640190fd5b6003544211610318576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f77203e2072656c6561736554696d65000000000000000000000000000000604482015290519081900360640190fd5b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561037e57600080fd5b505af1158015610392573d6000803e3d6000fd5b505050506040513d60208110156103a857600080fd5b5051905060008111610404576040805160e560020a62461bcd02815260206004820152600d60248201527f746b6e546f53656e64203e203000000000000000000000000000000000000000604482015290519081900360640190fd5b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050506040513d602081101561049b57600080fd5b505115156104a857600080fd5b50565b600254600160a060020a031681565b600354421190565b600054600160a060020a031681565b60035481565b600154600160a060020a031681565b600054600160a060020a03163314610548576040805160e560020a62461bcd02815260206004820152601360248201527f6d73672e73656e646572203d3d206f776e657200000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156105a8576040805160e560020a62461bcd02815260206004820152601760248201527f6164647265737328302920213d205f6e65774f776e6572000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c1d1287b6aa071c24132d2e793b6773ff04327daf823e157b992519f5ff6e56700290000000000000000000000007025bab2ec90410de37f488d1298204cd4d6b29d000000000000000000000000000000000000000000000000000000005d2119e0

Deployed Bytecode

0x6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166355a373d681146100b45780636a5e2650146100e557806379ba50971461010e5780638da5cb5b14610123578063b91d400114610138578063d4ee1d901461015f578063f2fde38b14610174575b34801561008e57600080fd5b50600154600160a060020a03163314156100aa576100aa610195565b6100b261025c565b005b3480156100c057600080fd5b506100c96104ab565b60408051600160a060020a039092168252519081900360200190f35b3480156100f157600080fd5b506100fa6104ba565b604080519115158252519081900360200190f35b34801561011a57600080fd5b506100b2610195565b34801561012f57600080fd5b506100c96104c2565b34801561014457600080fd5b5061014d6104d1565b60408051918252519081900360200190f35b34801561016b57600080fd5b506100c96104d7565b34801561018057600080fd5b506100b2600160a060020a03600435166104e6565b600154600160a060020a031633146101f7576040805160e560020a62461bcd02815260206004820152601660248201527f6d73672e73656e646572203d3d206e65774f776e657200000000000000000000604482015290519081900360640190fd5b600080546040513392600160a060020a03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff199081163317909155600180549091169055565b60008054600160a060020a031633146102bf576040805160e560020a62461bcd02815260206004820152601360248201527f6d73672e73656e646572203d3d206f776e657200000000000000000000000000604482015290519081900360640190fd5b6003544211610318576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f77203e2072656c6561736554696d65000000000000000000000000000000604482015290519081900360640190fd5b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561037e57600080fd5b505af1158015610392573d6000803e3d6000fd5b505050506040513d60208110156103a857600080fd5b5051905060008111610404576040805160e560020a62461bcd02815260206004820152600d60248201527f746b6e546f53656e64203e203000000000000000000000000000000000000000604482015290519081900360640190fd5b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050506040513d602081101561049b57600080fd5b505115156104a857600080fd5b50565b600254600160a060020a031681565b600354421190565b600054600160a060020a031681565b60035481565b600154600160a060020a031681565b600054600160a060020a03163314610548576040805160e560020a62461bcd02815260206004820152601360248201527f6d73672e73656e646572203d3d206f776e657200000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156105a8576040805160e560020a62461bcd02815260206004820152601760248201527f6164647265737328302920213d205f6e65774f776e6572000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c1d1287b6aa071c24132d2e793b6773ff04327daf823e157b992519f5ff6e5670029

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

0000000000000000000000007025bab2ec90410de37f488d1298204cd4d6b29d000000000000000000000000000000000000000000000000000000005d2119e0

-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x7025baB2EC90410de37F488d1298204cd4D6b29d
Arg [1] : _releaseTime (uint256): 1562450400

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007025bab2ec90410de37f488d1298204cd4d6b29d
Arg [1] : 000000000000000000000000000000000000000000000000000000005d2119e0


Swarm Source

bzzr://c1d1287b6aa071c24132d2e793b6773ff04327daf823e157b992519f5ff6e567

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.