ETH Price: $2,968.22 (+3.60%)
Gas: 2 Gwei

Token

Timelocked Paperclip (LOCK_CLIP)
 

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)

Filtered by Token Holder
vyze.eth
Balance
1 LOCK_CLIP

Value
$0.00
0xcca11a8edb05d64a654092e9551f9122d70ea80e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Timelock

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 40 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 3 : IERC20.sol
// 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);
}

File 2 of 3 : IERC20Metadata.sol
// 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);
}

File 3 of 3 : Timelock.sol
// 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);
    }
}

Settings
{
  "evmVersion": "berlin",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 40
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"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"}]

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.