ETH Price: $2,385.24 (-3.89%)

Contract

0xf62E5cB35ee81b3c259FB002D61D7C7733Ed3476
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Unlock Vested To...208776292024-10-02 11:50:4719 hrs ago1727869847IN
0xf62E5cB3...733Ed3476
0 ETH0.000472927.03106782
Unlock Vested To...208758912024-10-02 6:02:2325 hrs ago1727848943IN
0xf62E5cB3...733Ed3476
0 ETH0.000363475.44260993
Unlock Vested To...208700052024-10-01 10:19:3544 hrs ago1727777975IN
0xf62E5cB3...733Ed3476
0 ETH0.0008258312.27785895
Unlock Vested To...208642462024-09-30 15:04:232 days ago1727708663IN
0xf62E5cB3...733Ed3476
0 ETH0.0017333425.77010864
Unlock Vested To...208609982024-09-30 4:12:593 days ago1727669579IN
0xf62E5cB3...733Ed3476
0 ETH0.000373534.42777435
Unlock Vested To...208537992024-09-29 4:06:354 days ago1727582795IN
0xf62E5cB3...733Ed3476
0 ETH0.000518076.14113172
Unlock Vested To...208462642024-09-28 2:51:475 days ago1727491907IN
0xf62E5cB3...733Ed3476
0 ETH0.000542846.43473291
Unlock Vested To...208401402024-09-27 6:22:596 days ago1727418179IN
0xf62E5cB3...733Ed3476
0 ETH0.0008128112.08427066
Unlock Vested To...208395142024-09-27 4:17:356 days ago1727410655IN
0xf62E5cB3...733Ed3476
0 ETH0.0010062811.92820309
Unlock Vested To...208255362024-09-25 5:28:358 days ago1727242115IN
0xf62E5cB3...733Ed3476
0 ETH0.0008991710.65856297
Unlock Vested To...208210902024-09-24 14:35:238 days ago1727188523IN
0xf62E5cB3...733Ed3476
0 ETH0.0032526848.35839844
Unlock Vested To...208210562024-09-24 14:28:358 days ago1727188115IN
0xf62E5cB3...733Ed3476
0 ETH0.0033821550.28328779
Unlock Vested To...208056932024-09-22 11:02:5910 days ago1727002979IN
0xf62E5cB3...733Ed3476
0 ETH0.0007825311.63407662
Unlock Vested To...208026192024-09-22 0:45:5911 days ago1726965959IN
0xf62E5cB3...733Ed3476
0 ETH0.00040546.02721749
Unlock Vested To...208020562024-09-21 22:52:5911 days ago1726959179IN
0xf62E5cB3...733Ed3476
0 ETH0.000444615.27027155
Unlock Vested To...207889792024-09-20 3:00:2313 days ago1726801223IN
0xf62E5cB3...733Ed3476
0 ETH0.000384064.55263683
Revoke207781952024-09-18 14:52:3514 days ago1726671155IN
0xf62E5cB3...733Ed3476
0 ETH0.0008921913.38466887
Revoke207781832024-09-18 14:50:1114 days ago1726671011IN
0xf62E5cB3...733Ed3476
0 ETH0.0009735612.11840752
Unlock Vested To...207768272024-09-18 10:16:5914 days ago1726654619IN
0xf62E5cB3...733Ed3476
0 ETH0.0007150410.63081166
Unlock Vested To...207766192024-09-18 9:35:2314 days ago1726652123IN
0xf62E5cB3...733Ed3476
0 ETH0.000665759.89788678
Unlock Vested To...207766032024-09-18 9:32:1114 days ago1726651931IN
0xf62E5cB3...733Ed3476
0 ETH0.000902810.70150848
Unlock Vested To...207746092024-09-18 2:50:2315 days ago1726627823IN
0xf62E5cB3...733Ed3476
0 ETH0.000566366.7135677
Unlock Vested To...207552172024-09-15 9:48:1117 days ago1726393691IN
0xf62E5cB3...733Ed3476
0 ETH0.000186812.21442377
Unlock Vested To...207548912024-09-15 8:42:5917 days ago1726389779IN
0xf62E5cB3...733Ed3476
0 ETH0.00013842.05763035
Unlock Vested To...207498452024-09-14 15:49:1118 days ago1726328951IN
0xf62E5cB3...733Ed3476
0 ETH0.00030213.58103252
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultipleVesting

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.21;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    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 a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        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 public owner;


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


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(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));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract ERC20Token {
    function mintTokens(address _atAddress, uint256 _amount) public;

}

contract MultipleVesting is Ownable {
    using SafeMath for uint256;

    struct Grant {
        uint256 start;
        uint256 cliff;
        uint256 duration;
        uint256 value;
        uint256 transferred;
        bool revocable;
    }

    mapping (address => Grant) public grants;
    mapping (uint256 => address) public indexedGrants;
    uint256 public index;
    uint256 public totalVesting;
    ERC20Token token;

    event NewGrant(address indexed _address, uint256 _value);
    event UnlockGrant(address indexed _holder, uint256 _value);
    event RevokeGrant(address indexed _holder, uint256 _refund);

    function setToken(address _token) public onlyOwner {
        token = ERC20Token(_token);
    }

    /**
     * @dev Allows the current owner to add new grant
     * @param _address Address of grant
     * @param _start Start time of vesting in timestamp
     * @param _cliff Cliff in timestamp
     * @param _duration End of vesting in timestamp
     * @param _value Number of tokens to be vested
     * @param _revocable Can grant be revoked
     */
    function newGrant(address _address, uint256 _start, uint256 _cliff, uint256 _duration, uint256 _value, bool _revocable) public onlyOwner {
        if(grants[_address].value == 0) {
            indexedGrants[index] = _address;
            index = index.add(1);
        }
        grants[_address] = Grant({
            start: _start,
            cliff: _cliff,
            duration: _duration,
            value: _value,
            transferred: 0,
            revocable: _revocable
            });

        totalVesting = totalVesting.add(_value);
        emit NewGrant(_address, _value);
    }

    /**
     * @dev Allows the curretn owner to revoke grant
     * @param _grant Address of grant to be revoked
     */
    function revoke(address _grant) public onlyOwner {
        Grant storage grant = grants[_grant];
        require(grant.revocable);

        uint256 refund = grant.value.sub(grant.transferred);

        // Remove the grant.
        delete grants[_grant];
        totalVesting = totalVesting.sub(refund);

        token.mintTokens(msg.sender, refund);
        emit RevokeGrant(_grant, refund);
    }

    /**
     * @dev Number of veset token for _holder on _time
     * @param _holder Address of holder
     * @param _time Timestamp of time to check for vest amount
     */
    function vestedTokens(address _holder, uint256 _time) public constant returns (uint256) {
        Grant storage grant = grants[_holder];
        if (grant.value == 0) {
            return 0;
        }

        return calculateVestedTokens(grant, _time);
    }

    /**
     * @dev Calculate amount of vested tokens
     * @param _grant Grant to calculate for
     * @param _time Timestamp of time to check for
     */
    function calculateVestedTokens(Grant _grant, uint256 _time) private pure returns (uint256) {
        // If we're before the cliff, then nothing is vested.
        if (_time < _grant.cliff) {
            return 0;
        }

        // If we're after the end of the vesting period - everything is vested;
        if (_time >= _grant.duration) {
            return _grant.value;
        }

        // Interpolate all vested tokens: vestedTokens = tokens/// (time - start) / (end - start)
        return _grant.value.mul(_time.sub(_grant.start)).div(_grant.duration.sub(_grant.start));
    }

    /**
     * @dev Distribute tokens to grants
     */
    function vest() public onlyOwner {
        for(uint16 i = 0; i < index; i++) {
            Grant storage grant = grants[indexedGrants[i]];
            if(grant.value == 0) continue;
            uint256 vested = calculateVestedTokens(grant, now);
            if (vested == 0) {
                continue;
            }

            // Make sure the holder doesn't transfer more than what he already has.
            uint256 transferable = vested.sub(grant.transferred);
            if (transferable == 0) {
                continue;
            }

            grant.transferred = grant.transferred.add(transferable);
            totalVesting = totalVesting.sub(transferable);
            token.mintTokens(indexedGrants[i], transferable);

            emit UnlockGrant(msg.sender, transferable);
        }
    }

    function unlockVestedTokens() public {
        Grant storage grant = grants[msg.sender];
        require(grant.value != 0);

        // Get the total amount of vested tokens, acccording to grant.
        uint256 vested = calculateVestedTokens(grant, now);
        if (vested == 0) {
            return;
        }

        // Make sure the holder doesn't transfer more than what he already has.
        uint256 transferable = vested.sub(grant.transferred);
        if (transferable == 0) {
            return;
        }

        grant.transferred = grant.transferred.add(transferable);
        totalVesting = totalVesting.sub(transferable);
        token.mintTokens(msg.sender, transferable);

        emit UnlockGrant(msg.sender, transferable);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"},{"name":"_duration","type":"uint256"},{"name":"_value","type":"uint256"},{"name":"_revocable","type":"bool"}],"name":"newGrant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_time","type":"uint256"}],"name":"vestedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"index","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"vest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_grant","type":"address"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalVesting","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unlockVestedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"indexedGrants","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"grants","outputs":[{"name":"start","type":"uint256"},{"name":"cliff","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"value","type":"uint256"},{"name":"transferred","type":"uint256"},{"name":"revocable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"NewGrant","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_holder","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"UnlockGrant","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_holder","type":"address"},{"indexed":false,"name":"_refund","type":"uint256"}],"name":"RevokeGrant","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f4806100536000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063144fa6d7146100bf57806319c9652c146100f85780631a64adae146101605780632986c0e5146101b6578063458efde3146101df57806374a8f103146101f45780637c17357d1461022d57806383fcf973146102565780638da5cb5b1461026b578063910bfecc146102c0578063b869cea314610323578063f2fde38b14610397575b600080fd5b34156100ca57600080fd5b6100f6600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506103d0565b005b341561010357600080fd5b61015e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035151590602001909190505061046f565b005b341561016b57600080fd5b6101a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106bc565b6040518082815260200191505060405180910390f35b34156101c157600080fd5b6101c9610783565b6040518082815260200191505060405180910390f35b34156101ea57600080fd5b6101f2610789565b005b34156101ff57600080fd5b61022b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ac8565b005b341561023857600080fd5b610240610d61565b6040518082815260200191505060405180910390f35b341561026157600080fd5b610269610d67565b005b341561027657600080fd5b61027e610fbd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102cb57600080fd5b6102e16004808035906020019091905050610fe2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032e57600080fd5b61035a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611015565b6040518087815260200186815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061105e565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561042b57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104ca57600080fd5b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541415610586578560026000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061057f60016003546111b390919063ffffffff16565b6003819055505b60c06040519081016040528086815260200185815260200184815260200183815260200160008152602001821515815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff021916908315150217905550905050610660826004546111b390919063ffffffff16565b6004819055508573ffffffffffffffffffffffffffffffffffffffff167f9f808b48aa49d6354341cec305ba80825f6548f485ac497629c213c699e0b456836040518082815260200191505060405180910390a2505050505050565b600080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301541415610716576000915061077c565b6107798160c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050846111cf565b91505b5092915050565b60035481565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107ea57600080fd5b600093505b6003548461ffff161015610ac25760016000600260008761ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060008360030154141561088757610ab5565b6108ea8360c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050426111cf565b915060008214156108fa57610ab5565b61091183600401548361126190919063ffffffff16565b9050600081141561092157610ab5565b6109388184600401546111b390919063ffffffff16565b83600401819055506109558160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600260008761ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610a5657600080fd5b5af11515610a6357600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f18a0e773189b1ed3c86000a786f0a897168a9b8b2a805c482c91e69ca25e4b3c826040518082815260200191505060405180910390a25b83806001019450506107ef565b50505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b2657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160050160009054906101000a900460ff161515610b8457600080fd5b610b9f8260040154836003015461126190919063ffffffff16565b9050600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549060ff02191690555050610c348160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610cfe57600080fd5b5af11515610d0b57600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167fe25d8515ad21a65f901eaac99e62ae923aa01c8eb5812dce069abd9ea2785b57826040518082815260200191505060405180910390a2505050565b60045481565b6000806000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092506000836003015414151515610dc157600080fd5b610e248360c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050426111cf565b91506000821415610e3457610fb8565b610e4b83600401548361126190919063ffffffff16565b90506000811415610e5b57610fb8565b610e728184600401546111b390919063ffffffff16565b8360040181905550610e8f8160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610f5957600080fd5b5af11515610f6657600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f18a0e773189b1ed3c86000a786f0a897168a9b8b2a805c482c91e69ca25e4b3c826040518082815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110f557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081830190508281101515156111c657fe5b80905092915050565b600082602001518210156111e6576000905061125b565b8260400151821015156111ff578260600151905061125b565b61125861121d8460000151856040015161126190919063ffffffff16565b61124a61123786600001518661126190919063ffffffff16565b866060015161127a90919063ffffffff16565b6112b290919063ffffffff16565b90505b92915050565b600082821115151561126f57fe5b818303905092915050565b60008083141561128d57600090506112ac565b818302905081838281151561129e57fe5b041415156112a857fe5b8090505b92915050565b600081838115156112bf57fe5b049050929150505600a165627a7a72305820ff5e8c3409e91fc32ce0446d66d9389ee288cd410c5098c9a0d99ededafd6a950029

Deployed Bytecode

0x6060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063144fa6d7146100bf57806319c9652c146100f85780631a64adae146101605780632986c0e5146101b6578063458efde3146101df57806374a8f103146101f45780637c17357d1461022d57806383fcf973146102565780638da5cb5b1461026b578063910bfecc146102c0578063b869cea314610323578063f2fde38b14610397575b600080fd5b34156100ca57600080fd5b6100f6600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506103d0565b005b341561010357600080fd5b61015e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035151590602001909190505061046f565b005b341561016b57600080fd5b6101a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106bc565b6040518082815260200191505060405180910390f35b34156101c157600080fd5b6101c9610783565b6040518082815260200191505060405180910390f35b34156101ea57600080fd5b6101f2610789565b005b34156101ff57600080fd5b61022b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ac8565b005b341561023857600080fd5b610240610d61565b6040518082815260200191505060405180910390f35b341561026157600080fd5b610269610d67565b005b341561027657600080fd5b61027e610fbd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102cb57600080fd5b6102e16004808035906020019091905050610fe2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032e57600080fd5b61035a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611015565b6040518087815260200186815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061105e565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561042b57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104ca57600080fd5b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541415610586578560026000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061057f60016003546111b390919063ffffffff16565b6003819055505b60c06040519081016040528086815260200185815260200184815260200183815260200160008152602001821515815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff021916908315150217905550905050610660826004546111b390919063ffffffff16565b6004819055508573ffffffffffffffffffffffffffffffffffffffff167f9f808b48aa49d6354341cec305ba80825f6548f485ac497629c213c699e0b456836040518082815260200191505060405180910390a2505050505050565b600080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301541415610716576000915061077c565b6107798160c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050846111cf565b91505b5092915050565b60035481565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107ea57600080fd5b600093505b6003548461ffff161015610ac25760016000600260008761ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060008360030154141561088757610ab5565b6108ea8360c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050426111cf565b915060008214156108fa57610ab5565b61091183600401548361126190919063ffffffff16565b9050600081141561092157610ab5565b6109388184600401546111b390919063ffffffff16565b83600401819055506109558160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600260008761ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610a5657600080fd5b5af11515610a6357600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f18a0e773189b1ed3c86000a786f0a897168a9b8b2a805c482c91e69ca25e4b3c826040518082815260200191505060405180910390a25b83806001019450506107ef565b50505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b2657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160050160009054906101000a900460ff161515610b8457600080fd5b610b9f8260040154836003015461126190919063ffffffff16565b9050600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549060ff02191690555050610c348160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610cfe57600080fd5b5af11515610d0b57600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167fe25d8515ad21a65f901eaac99e62ae923aa01c8eb5812dce069abd9ea2785b57826040518082815260200191505060405180910390a2505050565b60045481565b6000806000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092506000836003015414151515610dc157600080fd5b610e248360c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900460ff161515151581525050426111cf565b91506000821415610e3457610fb8565b610e4b83600401548361126190919063ffffffff16565b90506000811415610e5b57610fb8565b610e728184600401546111b390919063ffffffff16565b8360040181905550610e8f8160045461126190919063ffffffff16565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610f5957600080fd5b5af11515610f6657600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f18a0e773189b1ed3c86000a786f0a897168a9b8b2a805c482c91e69ca25e4b3c826040518082815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110f557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081830190508281101515156111c657fe5b80905092915050565b600082602001518210156111e6576000905061125b565b8260400151821015156111ff578260600151905061125b565b61125861121d8460000151856040015161126190919063ffffffff16565b61124a61123786600001518661126190919063ffffffff16565b866060015161127a90919063ffffffff16565b6112b290919063ffffffff16565b90505b92915050565b600082821115151561126f57fe5b818303905092915050565b60008083141561128d57600090506112ac565b818302905081838281151561129e57fe5b041415156112a857fe5b8090505b92915050565b600081838115156112bf57fe5b049050929150505600a165627a7a72305820ff5e8c3409e91fc32ce0446d66d9389ee288cd410c5098c9a0d99ededafd6a950029

Swarm Source

bzzr://ff5e8c3409e91fc32ce0446d66d9389ee288cd410c5098c9a0d99ededafd6a95

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.