ETH Price: $2,166.98 (+0.51%)

Contract

0xcbfE11b78C2E6cB25C6eDA2C6Ff46CD4755c8fCA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Release192769632024-02-21 15:36:47763 days ago1708529807IN
Polygon (Matic): Vesting Contract
0 ETH0.0019628438.20177028
Release152582212022-08-01 18:14:281332 days ago1659377668IN
Polygon (Matic): Vesting Contract
0 ETH0.0007094711.63429182
Release152582192022-08-01 18:13:501332 days ago1659377630IN
Polygon (Matic): Vesting Contract
0 ETH0.000622110.20169584
Release152582112022-08-01 18:12:251332 days ago1659377545IN
Polygon (Matic): Vesting Contract
0 ETH0.0006996411.47309941
Release152582052022-08-01 18:11:241332 days ago1659377484IN
Polygon (Matic): Vesting Contract
0 ETH0.0007199211.80574511
Release152582012022-08-01 18:10:441332 days ago1659377444IN
Polygon (Matic): Vesting Contract
0 ETH0.0007787612.77069021
Release152581822022-08-01 18:07:191332 days ago1659377239IN
Polygon (Matic): Vesting Contract
0 ETH0.0010071916.51652631
Release152581772022-08-01 18:06:411332 days ago1659377201IN
Polygon (Matic): Vesting Contract
0 ETH0.0011209718.38232058
Release152581722022-08-01 18:06:011332 days ago1659377161IN
Polygon (Matic): Vesting Contract
0 ETH0.0011815819.37622747
Release152581192022-08-01 17:53:521332 days ago1659376432IN
Polygon (Matic): Vesting Contract
0 ETH0.0012086919.82082687
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
0x68747470139444462022-01-05 8:47:051540 days ago1641372425IN
Polygon (Matic): Vesting Contract
0 ETH0.0020955792
View all transactions

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:
MaticTokenVesting

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-20
*/

pragma solidity 0.5.2;

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @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;

    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());
        _;
    }

    /**
     * @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 relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @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 {
        _transferOwnership(newOwner);
    }

    /**
     * @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;
    }
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol

/**
 * @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 {
    using SafeMath for uint256;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        require(token.transfer(to, value));
    }

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

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require((value == 0) || (token.allowance(msg.sender, spender) == 0));
        require(token.approve(spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        require(token.approve(spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value);
        require(token.approve(spender, newAllowance));
    }
}

// File: contracts/MaticTokenVesting.sol

/**
 * @title TokenVesting
 * @dev A token holder contract that can release its token balance gradually like a
 * typical vesting scheme, with a cliff and vesting period. Optionally revocable by the
 * owner.
 */
contract MaticTokenVesting is Ownable {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    IERC20 private maticToken;
    uint256 private tokensToVest = 0;
    uint256 private vestingId = 0;

    string private constant INSUFFICIENT_BALANCE = "Insufficient balance";
    string private constant INVALID_VESTING_ID = "Invalid vesting id";
    string private constant VESTING_ALREADY_RELEASED = "Vesting already released";
    string private constant INVALID_BENEFICIARY = "Invalid beneficiary address";
    string private constant NOT_VESTED = "Tokens have not vested yet";

    struct Vesting {
        uint256 releaseTime;
        uint256 amount;
        address beneficiary;
        bool released;
    }
    mapping(uint256 => Vesting) public vestings;

    event TokenVestingReleased(uint256 indexed vestingId, address indexed beneficiary, uint256 amount);
    event TokenVestingAdded(uint256 indexed vestingId, address indexed beneficiary, uint256 amount);
    event TokenVestingRemoved(uint256 indexed vestingId, address indexed beneficiary, uint256 amount);

    constructor(IERC20 _token) public {
        require(address(_token) != address(0x0), "Matic token address is not valid");
        maticToken = _token;

        uint256 SCALING_FACTOR = 10 ** 18;
        uint256 day = 1 days;

        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 0, 3230085552 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 30 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 61 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 91 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 122 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 153 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 183 * day, 1088418885 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 214 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 244 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 275 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 306 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 335 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 366 * day, 1218304816 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 396 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 427 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 457 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 488 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 519 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 549 * day, 1218304816 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 580 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 610 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 641 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 672 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 700 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 731 * day, 1084971483 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 761 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 792 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 822 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 853 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 884 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 914 * day, 618304816 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 945 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 975 * day, 25000000 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 1096 * day, 593304816 * SCALING_FACTOR);
        addVesting(0xb316fa9Fa91700D7084D377bfdC81Eb9F232f5Ff, now + 1279 * day, 273304816 * SCALING_FACTOR);
    }

    function token() public view returns (IERC20) {
        return maticToken;
    }

    function beneficiary(uint256 _vestingId) public view returns (address) {
        return vestings[_vestingId].beneficiary;
    }

    function releaseTime(uint256 _vestingId) public view returns (uint256) {
        return vestings[_vestingId].releaseTime;
    }

    function vestingAmount(uint256 _vestingId) public view returns (uint256) {
        return vestings[_vestingId].amount;
    }

    function removeVesting(uint256 _vestingId) public onlyOwner {
        Vesting storage vesting = vestings[_vestingId];
        require(vesting.beneficiary != address(0x0), INVALID_VESTING_ID);
        require(!vesting.released , VESTING_ALREADY_RELEASED);
        vesting.released = true;
        tokensToVest = tokensToVest.sub(vesting.amount);
        emit TokenVestingRemoved(_vestingId, vesting.beneficiary, vesting.amount);
    }

    function addVesting(address _beneficiary, uint256 _releaseTime, uint256 _amount) public onlyOwner {
        require(_beneficiary != address(0x0), INVALID_BENEFICIARY);
        tokensToVest = tokensToVest.add(_amount);
        vestingId = vestingId.add(1);
        vestings[vestingId] = Vesting({
            beneficiary: _beneficiary,
            releaseTime: _releaseTime,
            amount: _amount,
            released: false
        });
        emit TokenVestingAdded(vestingId, _beneficiary, _amount);
    }

    function release(uint256 _vestingId) public {
        Vesting storage vesting = vestings[_vestingId];
        require(vesting.beneficiary != address(0x0), INVALID_VESTING_ID);
        require(!vesting.released , VESTING_ALREADY_RELEASED);
        // solhint-disable-next-line not-rely-on-time
        require(block.timestamp >= vesting.releaseTime, NOT_VESTED);

        require(maticToken.balanceOf(address(this)) >= vesting.amount, INSUFFICIENT_BALANCE);
        vesting.released = true;
        tokensToVest = tokensToVest.sub(vesting.amount);
        maticToken.safeTransfer(vesting.beneficiary, vesting.amount);
        emit TokenVestingReleased(_vestingId, vesting.beneficiary, vesting.amount);
    }

    function retrieveExcessTokens(uint256 _amount) public onlyOwner {
        require(_amount <= maticToken.balanceOf(address(this)).sub(tokensToVest), INSUFFICIENT_BALANCE);
        maticToken.safeTransfer(owner(), _amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"_vestingId","type":"uint256"}],"name":"vestingAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_vestingId","type":"uint256"}],"name":"releaseTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vestingId","type":"uint256"}],"name":"removeVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vestingId","type":"uint256"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_releaseTime","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"addVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_vestingId","type":"uint256"}],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"retrieveExcessTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"vestings","outputs":[{"name":"releaseTime","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"beneficiary","type":"address"},{"name":"released","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vestingId","type":"uint256"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenVestingReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vestingId","type":"uint256"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenVestingAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vestingId","type":"uint256"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenVestingRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052600060025560006003553480156200001b57600080fd5b5060405160208062001870833981018060405260208110156200003d57600080fd5b505160008054600160a060020a0319163317808255604051600160a060020a039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600160a060020a03811615156200010057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d6174696320746f6b656e2061646472657373206973206e6f742076616c6964604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a038316179055670de0b6b3a7640000620151806200015960008051602062001850833981519152426b0a6fdd38a3be444938c00000640100000000620007dc810204565b620001896000805160206200185083398151915242601e84020163017d78408502640100000000620007dc810204565b620001b96000805160206200185083398151915242603d84020163017d78408502640100000000620007dc810204565b620001e96000805160206200185083398151915242605b84020163017d78408502640100000000620007dc810204565b620002196000805160206200185083398151915242607a84020163017d78408502640100000000620007dc810204565b620002496000805160206200185083398151915242609984020163017d78408502640100000000620007dc810204565b62000279600080516020620018508339815191524260b78402016340dff4458502640100000000620007dc810204565b620002a9600080516020620018508339815191524260d684020163017d78408502640100000000620007dc810204565b620002d9600080516020620018508339815191524260f484020163017d78408502640100000000620007dc810204565b6200030a600080516020620018508339815191524261011384020163017d78408502640100000000620007dc810204565b6200033b600080516020620018508339815191524261013284020163017d78408502640100000000620007dc810204565b6200036c600080516020620018508339815191524261014f84020163017d78408502640100000000620007dc810204565b6200039d600080516020620018508339815191524261016e84020163489ddb308502640100000000620007dc810204565b620003ce600080516020620018508339815191524261018c84020163017d78408502640100000000620007dc810204565b620003ff60008051602062001850833981519152426101ab84020163017d78408502640100000000620007dc810204565b6200043060008051602062001850833981519152426101c984020163017d78408502640100000000620007dc810204565b6200046160008051602062001850833981519152426101e884020163017d78408502640100000000620007dc810204565b62000492600080516020620018508339815191524261020784020163017d78408502640100000000620007dc810204565b620004c3600080516020620018508339815191524261022584020163489ddb308502640100000000620007dc810204565b620004f4600080516020620018508339815191524261024484020163017d78408502640100000000620007dc810204565b62000525600080516020620018508339815191524261026284020163017d78408502640100000000620007dc810204565b62000556600080516020620018508339815191524261028184020163017d78408502640100000000620007dc810204565b6200058760008051602062001850833981519152426102a084020163017d78408502640100000000620007dc810204565b620005b860008051602062001850833981519152426102bc84020163017d78408502640100000000620007dc810204565b620005e960008051602062001850833981519152426102db8402016340ab59db8502640100000000620007dc810204565b6200061a60008051602062001850833981519152426102f984020163017d78408502640100000000620007dc810204565b6200064b600080516020620018508339815191524261031884020163017d78408502640100000000620007dc810204565b6200067c600080516020620018508339815191524261033684020163017d78408502640100000000620007dc810204565b620006ad600080516020620018508339815191524261035584020163017d78408502640100000000620007dc810204565b620006de600080516020620018508339815191524261037484020163017d78408502640100000000620007dc810204565b6200070f60008051602062001850833981519152426103928402016324da95308502640100000000620007dc810204565b6200074060008051602062001850833981519152426103b184020163017d78408502640100000000620007dc810204565b6200077160008051602062001850833981519152426103cf84020163017d78408502640100000000620007dc810204565b620007a2600080516020620018508339815191524261044884020163235d1cf08502640100000000620007dc810204565b620007d360008051602062001850833981519152426104ff84020163104a4cf08502640100000000620007dc810204565b50505062000a19565b620007ef640100000000620009ee810204565b1515620007fb57600080fd5b60408051808201909152601b81527f496e76616c69642062656e6566696369617279206164647265737300000000006020820152600160a060020a0384161515620008e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620008a55781810151838201526020016200088b565b50505050905090810190601f168015620008d35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600254620008ff908264010000000062000d65620009ff82021704565b6002556003546200092090600164010000000062000d65620009ff82021704565b6003818155604080516080810182528581526020808201868152600160a060020a038981168486018181526000606087018181529981526004865287902095518655925160018601559151600290940180549751600160a060020a0319909816949091169390931760a060020a60ff02191674010000000000000000000000000000000000000000961515969096029590951790915591548151858152915190927ffbd41c6118c5ed14f196c270a1793d95e8517e43031d9bb61aa71cb2a38bf557928290030190a3505050565b600054600160a060020a0316331490565b60008282018381101562000a1257600080fd5b9392505050565b610e278062000a296000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c0100000000000000000000000000000000000000000000000000000000900480636eb48096116100a95780638da5cb5b116100835780638da5cb5b146102565780638f32d59b1461025e578063f2fde38b1461027a578063fc0c546a146102a0576100ec565b80636eb48096146101e4578063715018a614610201578063821bee7314610209576100ec565b806307ad23ef146100f157806309c4bb2b146101205780631bcde4ec1461013d57806337bdc99b1461015c5780634691a998146101795780635daa3160146101ab575b600080fd5b61010e6004803603602081101561010757600080fd5b50356102a8565b60408051918252519081900360200190f35b61010e6004803603602081101561013657600080fd5b50356102bd565b61015a6004803603602081101561015357600080fd5b50356102cf565b005b61015a6004803603602081101561017257600080fd5b50356104ea565b61015a6004803603606081101561018f57600080fd5b50600160a060020a038135169060208101359060400135610887565b6101c8600480360360208110156101c157600080fd5b5035610a2c565b60408051600160a060020a039092168252519081900360200190f35b61015a600480360360208110156101fa57600080fd5b5035610a4a565b61015a610bad565b6102266004803603602081101561021f57600080fd5b5035610c17565b604080519485526020850193909352600160a060020a039091168383015215156060830152519081900360800190f35b6101c8610c4d565b610266610c5c565b604080519115158252519081900360200190f35b61015a6004803603602081101561029057600080fd5b5035600160a060020a0316610c6d565b6101c8610c89565b60009081526004602052604090206001015490565b60009081526004602052604090205490565b6102d7610c5c565b15156102e257600080fd5b60008181526004602090815260409182902060028101548351808501909452601284527f496e76616c69642076657374696e672069640000000000000000000000000000928401929092529190600160a060020a031615156103c55760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561038a578181015183820152602001610372565b50505050905090810190601f1680156103b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600281015460408051808201909152601881527f56657374696e6720616c72656164792072656c6561736564000000000000000060208201529060a060020a900460ff161561045a5760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506002808201805474ff0000000000000000000000000000000000000000191660a060020a179055600182015490546104989163ffffffff610c9816565b600290815581015460018201546040805191825251600160a060020a039092169184917fdc8b9c8cc0c8d05e10824e69ee88995716a539af94a1c60fb9898367f613477c919081900360200190a35050565b60008181526004602090815260409182902060028101548351808501909452601284527f496e76616c69642076657374696e672069640000000000000000000000000000928401929092529190600160a060020a031615156105915760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50600281015460408051808201909152601881527f56657374696e6720616c72656164792072656c6561736564000000000000000060208201529060a060020a900460ff16156106265760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50805460408051808201909152601a81527f546f6b656e732068617665206e6f7420766573746564207965740000000000006020820152904210156106b05760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506001808201549054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a0823191602480820192602092909190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d602081101561074457600080fd5b505160408051808201909152601481527f496e73756666696369656e742062616c616e636500000000000000000000000060208201529111156107cc5760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506002808201805474ff0000000000000000000000000000000000000000191660a060020a1790556001820154905461080a9163ffffffff610c9816565b6002908155810154600180830154905461083892600160a060020a039182169291169063ffffffff610cad16565b600281015460018201546040805191825251600160a060020a039092169184917f295ac83a3c5cf518a125ba974be97dca6a668bae6dd90b6902b2618cdff1fcc6919081900360200190a35050565b61088f610c5c565b151561089a57600080fd5b60408051808201909152601b81527f496e76616c69642062656e6566696369617279206164647265737300000000006020820152600160a060020a03841615156109295760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b5060025461093d908263ffffffff610d6516565b60025560035461095490600163ffffffff610d6516565b6003818155604080516080810182528581526020808201868152600160a060020a03898116848601818152600060608701818152998152600486528790209551865592516001860155915160029094018054975173ffffffffffffffffffffffffffffffffffffffff19909816949091169390931774ff0000000000000000000000000000000000000000191660a060020a961515969096029590951790915591548151858152915190927ffbd41c6118c5ed14f196c270a1793d95e8517e43031d9bb61aa71cb2a38bf557928290030190a3505050565b600090815260046020526040902060020154600160a060020a031690565b610a52610c5c565b1515610a5d57600080fd5b600254600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610afe9392600160a060020a0316916370a08231916024808301926020929190829003018186803b158015610ac657600080fd5b505afa158015610ada573d6000803e3d6000fd5b505050506040513d6020811015610af057600080fd5b50519063ffffffff610c9816565b60408051808201909152601481527f496e73756666696369656e742062616c616e6365000000000000000000000000602082015290821115610b855760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50610baa610b91610c4d565b600154600160a060020a0316908363ffffffff610cad16565b50565b610bb5610c5c565b1515610bc057600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600460205260009081526040902080546001820154600290920154909190600160a060020a0381169060a060020a900460ff1684565b600054600160a060020a031690565b600054600160a060020a0316331490565b610c75610c5c565b1515610c8057600080fd5b610baa81610d7e565b600154600160a060020a031690565b600082821115610ca757600080fd5b50900390565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d6020811015610d5357600080fd5b50511515610d6057600080fd5b505050565b600082820183811015610d7757600080fd5b9392505050565b600160a060020a0381161515610d9357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820046a751077692eb01fa3666bbb91ddfc6f0430124208076bcc0e5e0cb3abca0f0029000000000000000000000000b316fa9fa91700d7084d377bfdc81eb9f232f5ff0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb0

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ec576000357c0100000000000000000000000000000000000000000000000000000000900480636eb48096116100a95780638da5cb5b116100835780638da5cb5b146102565780638f32d59b1461025e578063f2fde38b1461027a578063fc0c546a146102a0576100ec565b80636eb48096146101e4578063715018a614610201578063821bee7314610209576100ec565b806307ad23ef146100f157806309c4bb2b146101205780631bcde4ec1461013d57806337bdc99b1461015c5780634691a998146101795780635daa3160146101ab575b600080fd5b61010e6004803603602081101561010757600080fd5b50356102a8565b60408051918252519081900360200190f35b61010e6004803603602081101561013657600080fd5b50356102bd565b61015a6004803603602081101561015357600080fd5b50356102cf565b005b61015a6004803603602081101561017257600080fd5b50356104ea565b61015a6004803603606081101561018f57600080fd5b50600160a060020a038135169060208101359060400135610887565b6101c8600480360360208110156101c157600080fd5b5035610a2c565b60408051600160a060020a039092168252519081900360200190f35b61015a600480360360208110156101fa57600080fd5b5035610a4a565b61015a610bad565b6102266004803603602081101561021f57600080fd5b5035610c17565b604080519485526020850193909352600160a060020a039091168383015215156060830152519081900360800190f35b6101c8610c4d565b610266610c5c565b604080519115158252519081900360200190f35b61015a6004803603602081101561029057600080fd5b5035600160a060020a0316610c6d565b6101c8610c89565b60009081526004602052604090206001015490565b60009081526004602052604090205490565b6102d7610c5c565b15156102e257600080fd5b60008181526004602090815260409182902060028101548351808501909452601284527f496e76616c69642076657374696e672069640000000000000000000000000000928401929092529190600160a060020a031615156103c55760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561038a578181015183820152602001610372565b50505050905090810190601f1680156103b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600281015460408051808201909152601881527f56657374696e6720616c72656164792072656c6561736564000000000000000060208201529060a060020a900460ff161561045a5760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506002808201805474ff0000000000000000000000000000000000000000191660a060020a179055600182015490546104989163ffffffff610c9816565b600290815581015460018201546040805191825251600160a060020a039092169184917fdc8b9c8cc0c8d05e10824e69ee88995716a539af94a1c60fb9898367f613477c919081900360200190a35050565b60008181526004602090815260409182902060028101548351808501909452601284527f496e76616c69642076657374696e672069640000000000000000000000000000928401929092529190600160a060020a031615156105915760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50600281015460408051808201909152601881527f56657374696e6720616c72656164792072656c6561736564000000000000000060208201529060a060020a900460ff16156106265760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50805460408051808201909152601a81527f546f6b656e732068617665206e6f7420766573746564207965740000000000006020820152904210156106b05760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506001808201549054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a0823191602480820192602092909190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d602081101561074457600080fd5b505160408051808201909152601481527f496e73756666696369656e742062616c616e636500000000000000000000000060208201529111156107cc5760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b506002808201805474ff0000000000000000000000000000000000000000191660a060020a1790556001820154905461080a9163ffffffff610c9816565b6002908155810154600180830154905461083892600160a060020a039182169291169063ffffffff610cad16565b600281015460018201546040805191825251600160a060020a039092169184917f295ac83a3c5cf518a125ba974be97dca6a668bae6dd90b6902b2618cdff1fcc6919081900360200190a35050565b61088f610c5c565b151561089a57600080fd5b60408051808201909152601b81527f496e76616c69642062656e6566696369617279206164647265737300000000006020820152600160a060020a03841615156109295760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b5060025461093d908263ffffffff610d6516565b60025560035461095490600163ffffffff610d6516565b6003818155604080516080810182528581526020808201868152600160a060020a03898116848601818152600060608701818152998152600486528790209551865592516001860155915160029094018054975173ffffffffffffffffffffffffffffffffffffffff19909816949091169390931774ff0000000000000000000000000000000000000000191660a060020a961515969096029590951790915591548151858152915190927ffbd41c6118c5ed14f196c270a1793d95e8517e43031d9bb61aa71cb2a38bf557928290030190a3505050565b600090815260046020526040902060020154600160a060020a031690565b610a52610c5c565b1515610a5d57600080fd5b600254600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610afe9392600160a060020a0316916370a08231916024808301926020929190829003018186803b158015610ac657600080fd5b505afa158015610ada573d6000803e3d6000fd5b505050506040513d6020811015610af057600080fd5b50519063ffffffff610c9816565b60408051808201909152601481527f496e73756666696369656e742062616c616e6365000000000000000000000000602082015290821115610b855760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360008381101561038a578181015183820152602001610372565b50610baa610b91610c4d565b600154600160a060020a0316908363ffffffff610cad16565b50565b610bb5610c5c565b1515610bc057600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600460205260009081526040902080546001820154600290920154909190600160a060020a0381169060a060020a900460ff1684565b600054600160a060020a031690565b600054600160a060020a0316331490565b610c75610c5c565b1515610c8057600080fd5b610baa81610d7e565b600154600160a060020a031690565b600082821115610ca757600080fd5b50900390565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d6020811015610d5357600080fd5b50511515610d6057600080fd5b505050565b600082820183811015610d7757600080fd5b9392505050565b600160a060020a0381161515610d9357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820046a751077692eb01fa3666bbb91ddfc6f0430124208076bcc0e5e0cb3abca0f0029

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

0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb0

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb0


Swarm Source

bzzr://046a751077692eb01fa3666bbb91ddfc6f0430124208076bcc0e5e0cb3abca0f

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.