More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 39 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 20291362 | 66 days ago | IN | 0 ETH | 0.0003471 | ||||
Claim | 17966451 | 391 days ago | IN | 0 ETH | 0.00073108 | ||||
Claim | 17883188 | 403 days ago | IN | 0 ETH | 0.00077047 | ||||
Claim | 17783904 | 417 days ago | IN | 0 ETH | 0.00080541 | ||||
Claim | 17763091 | 420 days ago | IN | 0 ETH | 0.00158186 | ||||
Claim | 17584386 | 445 days ago | IN | 0 ETH | 0.00118767 | ||||
Claim | 17480498 | 459 days ago | IN | 0 ETH | 0.00199633 | ||||
Claim | 17257643 | 491 days ago | IN | 0 ETH | 0.00163361 | ||||
Claim | 16741728 | 564 days ago | IN | 0 ETH | 0.00187275 | ||||
Claim | 16492802 | 599 days ago | IN | 0 ETH | 0.00125065 | ||||
Claim | 16111382 | 652 days ago | IN | 0 ETH | 0.00077124 | ||||
Claim | 16047217 | 661 days ago | IN | 0 ETH | 0.00076339 | ||||
Claim | 16006681 | 666 days ago | IN | 0 ETH | 0.00057862 | ||||
Claim | 15582709 | 726 days ago | IN | 0 ETH | 0.00065195 | ||||
Claim | 15526064 | 734 days ago | IN | 0 ETH | 0.00100078 | ||||
Claim | 15377939 | 758 days ago | IN | 0 ETH | 0.00033095 | ||||
Claim | 15345827 | 763 days ago | IN | 0 ETH | 0.00226934 | ||||
Claim | 15345826 | 763 days ago | IN | 0 ETH | 0.0020459 | ||||
Claim | 15345824 | 763 days ago | IN | 0 ETH | 0.00211096 | ||||
Claim | 15165293 | 791 days ago | IN | 0 ETH | 0.00092772 | ||||
Claim | 14905358 | 834 days ago | IN | 0 ETH | 0.00239191 | ||||
Claim | 14818720 | 849 days ago | IN | 0 ETH | 0.00142278 | ||||
Claim | 14691454 | 869 days ago | IN | 0 ETH | 0.00195951 | ||||
Claim | 14563660 | 889 days ago | IN | 0 ETH | 0.00189782 | ||||
Claim | 14415943 | 912 days ago | IN | 0 ETH | 0.00095883 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenLock
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-25 */ pragma solidity 0.6.11; // SPDX-License-Identifier: BSD-3-Clause /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address private _owner; address public pendingOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner()); _; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyPendingOwner() { assert(msg.sender != address(0)); require(msg.sender == pendingOwner); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == _owner; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != address(0)); pendingOwner = _newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner public { _transferOwnership(pendingOwner); pendingOwner = address(0); } /** * @dev Transfers control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface Token { function transfer(address, uint) external returns (bool); } interface LegacyToken { function transfer(address, uint) external; } contract TokenLock is Ownable { using SafeMath for uint; // unix unlock uint public unlockTime; // max extension allowed - prevents owner from extending indefinitely by mistake uint public constant MAX_EXTENSION_ALLOWED = 30 days; constructor(uint initialUnlockTime) public { require(initialUnlockTime > now, "Cannot set an unlock time in past!"); unlockTime = initialUnlockTime; } function isUnlocked() public view returns (bool) { return now > unlockTime; } function extendLock(uint extendedUnlockTimestamp) external onlyOwner { require(extendedUnlockTimestamp > now && extendedUnlockTimestamp > unlockTime , "Cannot set an unlock time in past!"); require(extendedUnlockTimestamp.sub(now) <= MAX_EXTENSION_ALLOWED, "Cannot extend beyond MAX_EXTENSION_ALLOWED period!"); unlockTime = extendedUnlockTimestamp; } function claim(address tokenAddress, address recipient, uint amount) external onlyOwner { require(isUnlocked(), "Not Unlocked Yet!"); require(Token(tokenAddress).transfer(recipient, amount), "Transfer Failed!"); } function claimLegacyToken(address tokenAddress, address recipient, uint amount) external onlyOwner { require(isUnlocked(), "Not Unlocked Yet!"); LegacyToken(tokenAddress).transfer(recipient, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"initialUnlockTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MAX_EXTENSION_ALLOWED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimLegacyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"extendedUnlockTimestamp","type":"uint256"}],"name":"extendLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isUnlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516107623803806107628339818101604052602081101561003357600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a34281116100bc5760405162461bcd60e51b81526004018080602001828103825260228152602001806107406022913960400191505060405180910390fd5b600255610672806100ce6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b146101415780638f32d59b14610165578063996cba681461016d578063a69f60c0146101a3578063e30c3978146101ab578063f2fde38b146101b3576100a9565b8063251c1aa3146100ae57806344ee3a1c146100c85780634e71e0c8146100e75780638380edb7146100ef578063844bb5b71461010b575b600080fd5b6100b66101d9565b60408051918252519081900360200190f35b6100e5600480360360208110156100de57600080fd5b50356101df565b005b6100e5610291565b6100f76102d6565b604080519115158252519081900360200190f35b6100e56004803603606081101561012157600080fd5b506001600160a01b038135811691602081013590911690604001356102de565b6101496103b9565b604080516001600160a01b039092168252519081900360200190f35b6100f76103c8565b6100e56004803603606081101561018357600080fd5b506001600160a01b038135811691602081013590911690604001356103d9565b6100b661050c565b610149610513565b6100e5600480360360208110156101c957600080fd5b50356001600160a01b0316610522565b60025481565b6101e76103c8565b6101f057600080fd5b4281118015610200575060025481115b61023b5760405162461bcd60e51b81526004018080602001828103825260228152602001806105e96022913960400191505060405180910390fd5b62278d0061024f824263ffffffff61056816565b111561028c5760405162461bcd60e51b815260040180806020018281038252603281526020018061060b6032913960400191505060405180910390fd5b600255565b3361029857fe5b6001546001600160a01b031633146102af57600080fd5b6001546102c4906001600160a01b031661057a565b600180546001600160a01b0319169055565b600254421190565b6102e66103c8565b6102ef57600080fd5b6102f76102d6565b61033c576040805162461bcd60e51b81526020600482015260116024820152704e6f7420556e6c6f636b6564205965742160781b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6103e16103c8565b6103ea57600080fd5b6103f26102d6565b610437576040805162461bcd60e51b81526020600482015260116024820152704e6f7420556e6c6f636b6564205965742160781b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050506040513d60208110156104c157600080fd5b5051610507576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572204661696c65642160801b604482015290519081900360640190fd5b505050565b62278d0081565b6001546001600160a01b031681565b61052a6103c8565b61053357600080fd5b6001600160a01b03811661054657600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561057457fe5b50900390565b6001600160a01b03811661058d57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe43616e6e6f742073657420616e20756e6c6f636b2074696d6520696e20706173742143616e6e6f7420657874656e64206265796f6e64204d41585f455854454e53494f4e5f414c4c4f57454420706572696f6421a2646970667358221220f390a8a54f5a10382e7c40ccc8065e8b8581cc41ab0995da5def17660ee9c23f64736f6c634300060b003343616e6e6f742073657420616e20756e6c6f636b2074696d6520696e2070617374210000000000000000000000000000000000000000000000000000000061a0b267
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b146101415780638f32d59b14610165578063996cba681461016d578063a69f60c0146101a3578063e30c3978146101ab578063f2fde38b146101b3576100a9565b8063251c1aa3146100ae57806344ee3a1c146100c85780634e71e0c8146100e75780638380edb7146100ef578063844bb5b71461010b575b600080fd5b6100b66101d9565b60408051918252519081900360200190f35b6100e5600480360360208110156100de57600080fd5b50356101df565b005b6100e5610291565b6100f76102d6565b604080519115158252519081900360200190f35b6100e56004803603606081101561012157600080fd5b506001600160a01b038135811691602081013590911690604001356102de565b6101496103b9565b604080516001600160a01b039092168252519081900360200190f35b6100f76103c8565b6100e56004803603606081101561018357600080fd5b506001600160a01b038135811691602081013590911690604001356103d9565b6100b661050c565b610149610513565b6100e5600480360360208110156101c957600080fd5b50356001600160a01b0316610522565b60025481565b6101e76103c8565b6101f057600080fd5b4281118015610200575060025481115b61023b5760405162461bcd60e51b81526004018080602001828103825260228152602001806105e96022913960400191505060405180910390fd5b62278d0061024f824263ffffffff61056816565b111561028c5760405162461bcd60e51b815260040180806020018281038252603281526020018061060b6032913960400191505060405180910390fd5b600255565b3361029857fe5b6001546001600160a01b031633146102af57600080fd5b6001546102c4906001600160a01b031661057a565b600180546001600160a01b0319169055565b600254421190565b6102e66103c8565b6102ef57600080fd5b6102f76102d6565b61033c576040805162461bcd60e51b81526020600482015260116024820152704e6f7420556e6c6f636b6564205965742160781b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561039c57600080fd5b505af11580156103b0573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6103e16103c8565b6103ea57600080fd5b6103f26102d6565b610437576040805162461bcd60e51b81526020600482015260116024820152704e6f7420556e6c6f636b6564205965742160781b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050506040513d60208110156104c157600080fd5b5051610507576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572204661696c65642160801b604482015290519081900360640190fd5b505050565b62278d0081565b6001546001600160a01b031681565b61052a6103c8565b61053357600080fd5b6001600160a01b03811661054657600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561057457fe5b50900390565b6001600160a01b03811661058d57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe43616e6e6f742073657420616e20756e6c6f636b2074696d6520696e20706173742143616e6e6f7420657874656e64206265796f6e64204d41585f455854454e53494f4e5f414c4c4f57454420706572696f6421a2646970667358221220f390a8a54f5a10382e7c40ccc8065e8b8581cc41ab0995da5def17660ee9c23f64736f6c634300060b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000061a0b267
-----Decoded View---------------
Arg [0] : initialUnlockTime (uint256): 1637921383
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000061a0b267
Deployed Bytecode Sourcemap
3287:1427:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3380:22;;;:::i;:::-;;;;;;;;;;;;;;;;3848:383;;;;;;;;;;;;;;;;-1:-1:-1;3848:383:0;;:::i;:::-;;2641:137;;;:::i;3745:91::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;4487:224;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4487:224:0;;;;;;;;;;;;;;;;;:::i;1563:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1563:79:0;;;;;;;;;;;;;;2128:92;;;:::i;4243:236::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4243:236:0;;;;;;;;;;;;;;;;;:::i;3495:52::-;;;:::i;1121:27::-;;;:::i;2395:149::-;;;;;;;;;;;;;;;;-1:-1:-1;2395:149:0;-1:-1:-1;;;;;2395:149:0;;:::i;3380:22::-;;;;:::o;3848:383::-;1775:9;:7;:9::i;:::-;1767:18;;;;;;3962:3:::1;3936:23;:29;:69;;;;;3995:10;;3969:23;:36;3936:69;3928:117;;;;-1:-1:-1::0;;;3928:117:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3540:7;4064:32;:23:::0;4092:3:::1;4064:32;:27;:32;:::i;:::-;:57;;4056:120;;;;-1:-1:-1::0;;;4056:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4187:10;:36:::0;3848:383::o;2641:137::-;1944:10;1937:32;;;;2002:12;;-1:-1:-1;;;;;2002:12:0;1988:10;:26;1980:35;;;;;;2721:12:::1;::::0;2702:32:::1;::::0;-1:-1:-1;;;;;2721:12:0::1;2702:18;:32::i;:::-;2745:12;:25:::0;;-1:-1:-1;;;;;;2745:25:0::1;::::0;;2641:137::o;3745:91::-;3818:10;;3812:3;:16;3745:91;:::o;4487:224::-;1775:9;:7;:9::i;:::-;1767:18;;;;;;4605:12:::1;:10;:12::i;:::-;4597:42;;;::::0;;-1:-1:-1;;;4597:42:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4597:42:0;;;;;;;;;;;;;::::1;;4662:12;-1:-1:-1::0;;;;;4650:34:0::1;;4685:9;4696:6;4650:53;;;;;;;;;;;;;-1:-1:-1::0;;;;;4650:53:0::1;-1:-1:-1::0;;;;;4650:53:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4487:224:::0;;;:::o;1563:79::-;1601:7;1628:6;-1:-1:-1;;;;;1628:6:0;1563:79;:::o;2128:92::-;2168:4;2206:6;-1:-1:-1;;;;;2206:6:0;2192:10;:20;;2128:92::o;4243:236::-;1775:9;:7;:9::i;:::-;1767:18;;;;;;4350:12:::1;:10;:12::i;:::-;4342:42;;;::::0;;-1:-1:-1;;;4342:42:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4342:42:0;;;;;;;;;;;;;::::1;;4409:12;-1:-1:-1::0;;;;;4403:28:0::1;;4432:9;4443:6;4403:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;4403:47:0::1;-1:-1:-1::0;;;;;4403:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;4403:47:0;4395:76:::1;;;::::0;;-1:-1:-1;;;4395:76:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4395:76:0;;;;;;;;;;;;;::::1;;4243:236:::0;;;:::o;3495:52::-;3540:7;3495:52;:::o;1121:27::-;;;-1:-1:-1;;;;;1121:27:0;;:::o;2395:149::-;1775:9;:7;:9::i;:::-;1767:18;;;;;;-1:-1:-1;;;;;2477:23:0;::::1;2469:32;;;::::0;::::1;;2512:12;:24:::0;;-1:-1:-1;;;;;;2512:24:0::1;-1:-1:-1::0;;;;;2512:24:0;;;::::1;::::0;;;::::1;::::0;;2395:149::o;614:113::-;672:7;700:1;695;:6;;688:14;;;;-1:-1:-1;716:5:0;;;614:113::o;2928:187::-;-1:-1:-1;;;;;3002:22:0;;2994:31;;;;;;3062:6;;;3041:38;;-1:-1:-1;;;;;3041:38:0;;;;3062:6;;;3041:38;;;3090:6;:17;;-1:-1:-1;;;;;;3090:17:0;-1:-1:-1;;;;;3090:17:0;;;;;;;;;;2928:187::o
Swarm Source
ipfs://f390a8a54f5a10382e7c40ccc8065e8b8581cc41ab0995da5def17660ee9c23f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000512 | 135,015,374 | $69,144.07 |
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.