ETH Price: $2,474.99 (+1.82%)

Contract

0xF7d93efA5616836D48573fdEE9d6d92873fFe5d5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Release59275032018-07-08 13:13:282283 days ago1531055608IN
0xF7d93efA...873fFe5d5
0 ETH0.0024646440
Release59264362018-07-08 8:51:242283 days ago1531039884IN
0xF7d93efA...873fFe5d5
0 ETH0.0013863622.5
0xa82fe65959264242018-07-08 8:47:132283 days ago1531039633IN
0xF7d93efA...873fFe5d5
0 ETH0.0003516415
0xe2dceef059263322018-07-08 8:21:042283 days ago1531038064IN
0xF7d93efA...873fFe5d5
0 ETH0.0005157422
0x6080604056842732018-05-27 6:41:392325 days ago1527403299IN
 Create: TokenTimelock
0 ETH0.004892927

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenTimelock

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.23;

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    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 SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
        require(token.transfer(to, value));
    }

    function safeTransferFrom(
            ERC20 token,
            address from,
            address to,
            uint256 value
            )
        internal
        {
            require(token.transferFrom(from, to, value));
        }

    function safeApprove(ERC20 token, address spender, uint256 value) internal {
        require(token.approve(spender, 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 {
    using SafeERC20 for ERC20Basic;

    // ERC20 basic token contract being held
    ERC20Basic public token;

    // beneficiary of tokens after they are released
    address public beneficiary = 0x2F1C2Fb4cf9b46172D59d8878Fc795277b8a2c9a;

    // timestamp when token release is enabled
    uint256 public firstTime = 1529942400;         //2018-06-26
    uint256 public secondTime = 1532534400;        //2018-07-26
    uint256 public thirdTime = 1535212800;         //2018-08-26

    uint256 public firstPay = 900000000000000000000000000;    //900 million  FTI
    uint256 public secondPay = 900000000000000000000000000;    //900 million  FTI
    uint256 public thirdPay = 600000000000000000000000000;    //900 million  FTI

    constructor(
            ERC20Basic _token
            )
        public
        {
            token = _token;
        }

    /**
     * @notice Transfers tokens held by timelock to beneficiary.
     */
    function release() public {
        uint256 tmpPay = 0;
        if(block.timestamp >= firstTime && firstPay > 0){
            tmpPay = firstPay;
            firstPay = 0;
        }else if(block.timestamp >= secondTime && secondPay > 0 ){
            tmpPay = secondPay;
            secondPay = 0;
        }else if (block.timestamp >= thirdTime && thirdPay > 0) {
            tmpPay = token.balanceOf(this);
            thirdPay = 0;
        }
        require(tmpPay > 0);
        uint256 amount = token.balanceOf(this);
        require(amount >= tmpPay);
        token.safeTransfer(beneficiary, tmpPay);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"firstPay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thirdPay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"secondPay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thirdTime","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"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

6080604052732f1c2fb4cf9b46172d59d8878fc795277b8a2c9a600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550635b311180600255635b589e80600355635b817d006004556b02e87669c308736a040000006005556b02e87669c308736a040000006006556b01f04ef12cb04cf1580000006007553480156100ad57600080fd5b5060405160208061081183398101806040528101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506106f1806101206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632ca781f11461009e57806338af3eed146100c957806341d76a9c14610120578063499caf091461014b5780637dcbd0781461017657806386d1a69f146101a15780639448807a146101b8578063e00ac9a3146101e3578063fc0c546a1461020e575b600080fd5b3480156100aa57600080fd5b506100b3610265565b6040518082815260200191505060405180910390f35b3480156100d557600080fd5b506100de61026b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012c57600080fd5b50610135610291565b6040518082815260200191505060405180910390f35b34801561015757600080fd5b50610160610297565b6040518082815260200191505060405180910390f35b34801561018257600080fd5b5061018b61029d565b6040518082815260200191505060405180910390f35b3480156101ad57600080fd5b506101b66102a3565b005b3480156101c457600080fd5b506101cd6105a6565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f86105ac565b6040518082815260200191505060405180910390f35b34801561021a57600080fd5b506102236105b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60035481565b60075481565b6000806000915060025442101580156102be57506000600554115b156102d5576005549150600060058190555061041d565b60035442101580156102e957506000600654115b15610300576006549150600060068190555061041c565b600454421015801561031457506000600754115b1561041b576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156103d557600080fd5b505af11580156103e9573d6000803e3d6000fd5b505050506040513d60208110156103ff57600080fd5b8101908080519060200190929190505050915060006007819055505b5b5b60008211151561042c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b505050506040513d602081101561051257600080fd5b8101908080519060200190929190505050905081811015151561053457600080fd5b6105a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d79092919063ffffffff16565b5050565b60065481565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d60208110156106a457600080fd5b810190808051906020019092919050505015156106c057600080fd5b5050505600a165627a7a72305820ba6c864e04c96db63fe0f79593668780eac75352222786f1e2309d29d4130c060029000000000000000000000000943ed852dadb5c3938ecdc6883718df8142de4c8

Deployed Bytecode

0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632ca781f11461009e57806338af3eed146100c957806341d76a9c14610120578063499caf091461014b5780637dcbd0781461017657806386d1a69f146101a15780639448807a146101b8578063e00ac9a3146101e3578063fc0c546a1461020e575b600080fd5b3480156100aa57600080fd5b506100b3610265565b6040518082815260200191505060405180910390f35b3480156100d557600080fd5b506100de61026b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012c57600080fd5b50610135610291565b6040518082815260200191505060405180910390f35b34801561015757600080fd5b50610160610297565b6040518082815260200191505060405180910390f35b34801561018257600080fd5b5061018b61029d565b6040518082815260200191505060405180910390f35b3480156101ad57600080fd5b506101b66102a3565b005b3480156101c457600080fd5b506101cd6105a6565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f86105ac565b6040518082815260200191505060405180910390f35b34801561021a57600080fd5b506102236105b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60035481565b60075481565b6000806000915060025442101580156102be57506000600554115b156102d5576005549150600060058190555061041d565b60035442101580156102e957506000600654115b15610300576006549150600060068190555061041c565b600454421015801561031457506000600754115b1561041b576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156103d557600080fd5b505af11580156103e9573d6000803e3d6000fd5b505050506040513d60208110156103ff57600080fd5b8101908080519060200190929190505050915060006007819055505b5b5b60008211151561042c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b505050506040513d602081101561051257600080fd5b8101908080519060200190929190505050905081811015151561053457600080fd5b6105a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d79092919063ffffffff16565b5050565b60065481565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d60208110156106a457600080fd5b810190808051906020019092919050505015156106c057600080fd5b5050505600a165627a7a72305820ba6c864e04c96db63fe0f79593668780eac75352222786f1e2309d29d4130c060029

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

000000000000000000000000943ed852dadb5c3938ecdc6883718df8142de4c8

-----Decoded View---------------
Arg [0] : _token (address): 0x943ED852DadB5C3938ECdC6883718df8142DE4C8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000943ed852dadb5c3938ecdc6883718df8142de4c8


Swarm Source

bzzr://ba6c864e04c96db63fe0f79593668780eac75352222786f1e2309d29d4130c06

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.