ETH Price: $1,884.27 (-2.75%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Destroy194338892024-03-14 14:39:23367 days ago1710427163IN
0x1D86A854...68F8c19Ee
0 ETH0.0032904575.13144829
Destroy Benefici...194311662024-03-14 5:26:11367 days ago1710393971IN
0x1D86A854...68F8c19Ee
0 ETH0.0030608644.5884913
Transfer171773092023-05-03 2:41:47683 days ago1683081707IN
0x1D86A854...68F8c19Ee
0.00182454 ETH0.0067881867.63562105
Transfer171752262023-05-02 19:42:23684 days ago1683056543IN
0x1D86A854...68F8c19Ee
0.0000154 ETH0.0097191496.83893839
Transfer141216982022-02-01 18:23:501139 days ago1643739830IN
0x1D86A854...68F8c19Ee
0 ETH0.00447061212.88663214
Transfer128834232021-07-23 15:35:271332 days ago1627054527IN
0x1D86A854...68F8c19Ee
0 ETH0.0033314234
Destroy Benefici...128655882021-07-20 20:35:411335 days ago1626813341IN
0x1D86A854...68F8c19Ee
0 ETH0.0035956421
Add Beneficiary128654412021-07-20 20:04:151335 days ago1626811455IN
0x1D86A854...68F8c19Ee
0 ETH0.0018844722
Destroy Benefici...128593372021-07-19 21:11:151336 days ago1626729075IN
0x1D86A854...68F8c19Ee
0 ETH0.0051366330
Add Beneficiary128593202021-07-19 21:07:311336 days ago1626728851IN
0x1D86A854...68F8c19Ee
0 ETH0.0031023333
Destroy Benefici...128591642021-07-19 20:31:321336 days ago1626726692IN
0x1D86A854...68F8c19Ee
0 ETH0.0027924823.1
Destroy Benefici...128591032021-07-19 20:17:351336 days ago1626725855IN
0x1D86A854...68F8c19Ee
0 ETH0.003467224
Destroy Benefici...128591032021-07-19 20:17:351336 days ago1626725855IN
0x1D86A854...68F8c19Ee
0 ETH0.0025936421
Destroy Benefici...128590472021-07-19 20:03:151336 days ago1626724995IN
0x1D86A854...68F8c19Ee
0 ETH0.0028893420
Destroy Benefici...128590312021-07-19 19:58:151336 days ago1626724695IN
0x1D86A854...68F8c19Ee
0 ETH0.0027845420
Destroy Benefici...128590272021-07-19 19:57:571336 days ago1626724677IN
0x1D86A854...68F8c19Ee
0 ETH0.0024515316
Destroy Benefici...128590272021-07-19 19:57:571336 days ago1626724677IN
0x1D86A854...68F8c19Ee
0 ETH0.0016407516
Destroy Benefici...128589652021-07-19 19:42:571336 days ago1626723777IN
0x1D86A854...68F8c19Ee
0 ETH0.0016111717.5
Destroy Benefici...128589402021-07-19 19:40:101336 days ago1626723610IN
0x1D86A854...68F8c19Ee
0 ETH0.0015482621
Transfer126818442021-06-22 4:17:251363 days ago1624335445IN
0x1D86A854...68F8c19Ee
0 ETH0.0023083723
Transfer126808392021-06-22 0:38:061363 days ago1624322286IN
0x1D86A854...68F8c19Ee
0 ETH0.0033350275
Transfer125128952021-05-26 23:31:291390 days ago1622071889IN
0x1D86A854...68F8c19Ee
0 ETH0.0021686234.00000145
Transfer125049592021-05-25 17:54:441391 days ago1621965284IN
0x1D86A854...68F8c19Ee
0 ETH0.00102949
Destroy Benefici...122072992021-04-09 18:36:431437 days ago1617993403IN
0x1D86A854...68F8c19Ee
0 ETH0.02259565110
Destroy Benefici...122072662021-04-09 18:29:161437 days ago1617992956IN
0x1D86A854...68F8c19Ee
0 ETH0.01855043111
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer194338892024-03-14 14:39:23367 days ago1710427163
0x1D86A854...68F8c19Ee
0.00323946 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiVesting

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.21;
/**
 * Changes by https://www.docademic.com/
 */

/**
 * @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;
  }
}
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}
contract Destroyable is Ownable{
    /**
     * @notice Allows to destroy the contract and return the tokens to the owner.
     */
    function destroy() public onlyOwner{
        selfdestruct(owner);
    }
}
interface Token {
    function transfer(address _to, uint256 _value) external;

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

contract MultiVesting is Ownable, Destroyable {
    using SafeMath for uint256;

    // beneficiary of tokens
    struct Beneficiary {
        string description;
        uint256 vested;
        uint256 released;
        uint256 start;
        uint256 cliff;
        uint256 duration;
        bool revoked;
        bool revocable;
        bool isBeneficiary;
    }

    event Released(address _beneficiary, uint256 amount);
    event Revoked(address _beneficiary);
    event NewBeneficiary(address _beneficiary);
    event BeneficiaryDestroyed(address _beneficiary);


    mapping(address => Beneficiary) public beneficiaries;
    address[] public addresses;
    Token public token;
    uint256 public totalVested;
    uint256 public totalReleased;

    /*
     *  Modifiers
     */
    modifier isNotBeneficiary(address _beneficiary) {
        require(!beneficiaries[_beneficiary].isBeneficiary);
        _;
    }
    modifier isBeneficiary(address _beneficiary) {
        require(beneficiaries[_beneficiary].isBeneficiary);
        _;
    }

    modifier wasRevoked(address _beneficiary) {
        require(beneficiaries[_beneficiary].revoked);
        _;
    }

    modifier wasNotRevoked(address _beneficiary) {
        require(!beneficiaries[_beneficiary].revoked);
        _;
    }

    /**
     * @dev Creates a vesting contract that vests its balance of any ERC20 token to the
     * beneficiary, gradually in a linear fashion until _start + _duration. By then all
     * of the balance will have vested.
     * @param _token address of the token of vested tokens
     */
    function MultiVesting (address _token) public {
        require(_token != address(0));
        token = Token(_token);
    }

    function() payable public {
        release(msg.sender);
    }

    /**
     * @notice Transfers vested tokens to beneficiary (alternative to fallback function).
     */
    function release() public {
        release(msg.sender);
    }

    /**
     * @notice Transfers vested tokens to beneficiary.
     * @param _beneficiary Beneficiary address
     */
    function release(address _beneficiary) private
    isBeneficiary(_beneficiary)
    {
        Beneficiary storage beneficiary = beneficiaries[_beneficiary];

        uint256 unreleased = releasableAmount(_beneficiary);

        require(unreleased > 0);

        beneficiary.released = beneficiary.released.add(unreleased);

        totalReleased = totalReleased.add(unreleased);

        token.transfer(_beneficiary, unreleased);

        if ((beneficiary.vested - beneficiary.released) == 0) {
            beneficiary.isBeneficiary = false;
        }

        emit Released(_beneficiary, unreleased);
    }

    /**
     * @notice Allows the owner to transfers vested tokens to beneficiary.
     * @param _beneficiary Beneficiary address
     */
    function releaseTo(address _beneficiary) public onlyOwner {
        release(_beneficiary);
    }

    /**
     * @dev Add new beneficiary to start vesting
     * @param _beneficiary address of the beneficiary to whom vested tokens are transferred
     * @param _start time in seconds which the tokens will vest
     * @param _cliff time in seconds of the cliff in which tokens will begin to vest
     * @param _duration duration in seconds of the period in which the tokens will vest
     * @param _revocable whether the vesting is revocable or not
     */
    function addBeneficiary(address _beneficiary, uint256 _vested, uint256 _start, uint256 _cliff, uint256 _duration, bool _revocable, string _description)
    onlyOwner
    isNotBeneficiary(_beneficiary)
    public {
        require(_beneficiary != address(0));
        require(_cliff >= _start);
        require(token.balanceOf(this) >= totalVested.sub(totalReleased).add(_vested));
        beneficiaries[_beneficiary] = Beneficiary({
            released : 0,
            vested : _vested,
            start : _start,
            cliff : _cliff,
            duration : _duration,
            revoked : false,
            revocable : _revocable,
            isBeneficiary : true,
            description : _description
            });
        totalVested = totalVested.add(_vested);
        addresses.push(_beneficiary);
        emit NewBeneficiary(_beneficiary);
    }

    /**
     * @notice Allows the owner to revoke the vesting. Tokens already vested
     * remain in the contract, the rest are returned to the owner.
     * @param _beneficiary Beneficiary address
     */
    function revoke(address _beneficiary) public onlyOwner {
        Beneficiary storage beneficiary = beneficiaries[_beneficiary];
        require(beneficiary.revocable);
        require(!beneficiary.revoked);

        uint256 balance = beneficiary.vested.sub(beneficiary.released);

        uint256 unreleased = releasableAmount(_beneficiary);
        uint256 refund = balance.sub(unreleased);

        token.transfer(owner, refund);

        totalReleased = totalReleased.add(refund);

        beneficiary.revoked = true;
        beneficiary.released = beneficiary.released.add(refund);

        emit Revoked(_beneficiary);
    }

    /**
     * @notice Allows the owner to destroy a beneficiary. Remain tokens are returned to the owner.
     * @param _beneficiary Beneficiary address
     */
    function destroyBeneficiary(address _beneficiary) public onlyOwner {
        Beneficiary storage beneficiary = beneficiaries[_beneficiary];

        uint256 balance = beneficiary.vested.sub(beneficiary.released);

        token.transfer(owner, balance);

        totalReleased = totalReleased.add(balance);

        beneficiary.isBeneficiary = false;
        beneficiary.released = beneficiary.released.add(balance);

        for (uint i = 0; i < addresses.length - 1; i++)
            if (addresses[i] == _beneficiary) {
                addresses[i] = addresses[addresses.length - 1];
                break;
            }

        addresses.length -= 1;

        emit BeneficiaryDestroyed(_beneficiary);
    }

    /**
     * @notice Allows the owner to clear the contract. Remain tokens are returned to the owner.
     */
    function clearAll() public onlyOwner {

        token.transfer(owner, token.balanceOf(this));

        for (uint i = 0; i < addresses.length; i++) {
            Beneficiary storage beneficiary = beneficiaries[addresses[i]];
            beneficiary.isBeneficiary = false;
            beneficiary.released = 0;
            beneficiary.vested = 0;
            beneficiary.start = 0;
            beneficiary.cliff = 0;
            beneficiary.duration = 0;
            beneficiary.revoked = false;
            beneficiary.revocable = false;
            beneficiary.description = "";
        }
        addresses.length = 0;

    }

    /**
     * @dev Calculates the amount that has already vested but hasn't been released yet.
     * @param _beneficiary Beneficiary address
     */
    function releasableAmount(address _beneficiary) public view returns (uint256) {
        return vestedAmount(_beneficiary).sub(beneficiaries[_beneficiary].released);
    }

    /**
     * @dev Calculates the amount that has already vested.
     * @param _beneficiary Beneficiary address
     */
    function vestedAmount(address _beneficiary) public view returns (uint256) {
        Beneficiary storage beneficiary = beneficiaries[_beneficiary];
        uint256 totalBalance = beneficiary.vested;

        if (now < beneficiary.cliff) {
            return 0;
        } else if (now >= beneficiary.start.add(beneficiary.duration) || beneficiary.revoked) {
            return totalBalance;
        } else {
            return totalBalance.mul(now.sub(beneficiary.start)).div(beneficiary.duration);
        }
    }

    /**
     * @dev Get the remain MTC on the contract.
     */
    function Balance() view public returns (uint256) {
        return token.balanceOf(address(this));
    }

    /**
     * @dev Get the numbers of beneficiaries in the vesting contract.
     */
    function beneficiariesLength() view public returns (uint256) {
        return addresses.length;
    }

    /**
     * @notice Allows the owner to flush the eth.
     */
    function flushEth() public onlyOwner {
        owner.transfer(address(this).balance);
    }

    /**
     * @notice Allows the owner to destroy the contract and return the tokens to the owner.
     */
    function destroy() public onlyOwner {
        token.transfer(owner, token.balanceOf(this));
        selfdestruct(owner);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"beneficiaries","outputs":[{"name":"description","type":"string"},{"name":"vested","type":"uint256"},{"name":"released","type":"uint256"},{"name":"start","type":"uint256"},{"name":"cliff","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"revoked","type":"bool"},{"name":"revocable","type":"bool"},{"name":"isBeneficiary","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"releasableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalVested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"flushEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"vestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"destroyBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"beneficiariesLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"releaseTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalReleased","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"clearAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"addresses","outputs":[{"name":"","type":"address"}],"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"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_vested","type":"uint256"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"},{"name":"_duration","type":"uint256"},{"name":"_revocable","type":"bool"},{"name":"_description","type":"string"}],"name":"addBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"}],"name":"Revoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"}],"name":"NewBeneficiary","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"}],"name":"BeneficiaryDestroyed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052341561000f57600080fd5b6040516020806113ef8339810160405280805160008054600160a060020a03191633600160a060020a039081169190911790915590925082161515905061005557600080fd5b60038054600160a060020a031916600160a060020a039290921691909117905561136b806100846000396000f3006060604052600436106100ed5763ffffffff60e060020a6000350416630156773981146100f85780630ef67887146101d35780631726cbc8146101f8578063199cbc54146102175780631d4233b91461022a578063384711cc1461023d57806374a8f1031461025c57806383197ef01461027b57806386d1a69f1461028e5780638da5cb5b146102a15780639742d64a146102d0578063c0659108146102ef578063d1fb564614610302578063e33b7de314610321578063ebb689a114610334578063edf26d9b14610347578063f2fde38b1461035d578063fc0c546a1461037c578063fcf7e73d1461038f575b6100f633610406565b005b341561010357600080fd5b610117600160a060020a036004351661056c565b6040516020810189905260408101889052606081018790526080810186905260a0810185905283151560c082015282151560e0820152811515610100820152610120808252819081018b818151815260200191508051906020019080838360005b83811015610190578082015183820152602001610178565b50505050905090810190601f1680156101bd5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156101de57600080fd5b6101e661065f565b60405190815260200160405180910390f35b341561020357600080fd5b6101e6600160a060020a03600435166106ce565b341561022257600080fd5b6101e6610709565b341561023557600080fd5b6100f661070f565b341561024857600080fd5b6101e6600160a060020a0360043516610765565b341561026757600080fd5b6100f6600160a060020a0360043516610815565b341561028657600080fd5b6100f66109a5565b341561029957600080fd5b6100f6610a97565b34156102ac57600080fd5b6102b4610aa0565b604051600160a060020a03909116815260200160405180910390f35b34156102db57600080fd5b6100f6600160a060020a0360043516610aaf565b34156102fa57600080fd5b6101e6610ccb565b341561030d57600080fd5b6100f6600160a060020a0360043516610cd1565b341561032c57600080fd5b6101e6610cf8565b341561033f57600080fd5b6100f6610cfe565b341561035257600080fd5b6102b4600435610e9f565b341561036857600080fd5b6100f6600160a060020a0360043516610ec7565b341561038757600080fd5b6102b4610f62565b341561039a57600080fd5b6100f660048035600160a060020a031690602480359160443591606435916084359160a4351515919060e49060c43590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f7195505050505050565b600160a060020a0381166000908152600160205260408120600601548190839062010000900460ff16151561043a57600080fd5b600160a060020a0384166000908152600160205260409020925061045d846106ce565b91506000821161046c57600080fd5b6002830154610481908363ffffffff61121516565b6002840155600554610499908363ffffffff61121516565b600555600354600160a060020a031663a9059cbb858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156104f257600080fd5b5af115156104ff57600080fd5b505050600283015460018401540315156105225760068301805462ff0000191690555b7fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e8483604051600160a060020a03909216825260208201526040908101905180910390a150505050565b6001602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b5050506001840154600285015460038601546004870154600588015460069098015496979396929550909350919060ff808216916101008104821691620100009091041689565b600354600090600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b257600080fd5b5af115156106bf57600080fd5b50505060405180519150505b90565b600160a060020a038116600090815260016020526040812060020154610703906106f784610765565b9063ffffffff61122f16565b92915050565b60045481565b60005433600160a060020a0390811691161461072a57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561076357600080fd5b565b600160a060020a03811660009081526001602081905260408220908101546004820154421015610798576000925061080e565b600582015460038301546107b19163ffffffff61121516565b421015806107c35750600682015460ff165b156107d05780925061080e565b61080b82600501546107ff6107f285600301544261122f90919063ffffffff16565b849063ffffffff61124116565b9063ffffffff61126c16565b92505b5050919050565b6000805481908190819033600160a060020a0390811691161461083757600080fd5b600160a060020a03851660009081526001602052604090206006810154909450610100900460ff16151561086a57600080fd5b600684015460ff161561087c57600080fd5b600284015460018501546108959163ffffffff61122f16565b92506108a0856106ce565b91506108b2838363ffffffff61122f16565b600354600054919250600160a060020a039081169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561091257600080fd5b5af1151561091f57600080fd5b505060055461093591508263ffffffff61121516565b60055560068401805460ff19166001179055600284015461095c908263ffffffff61121516565b60028501557fb6fa8b8bd5eab60f292eca876e3ef90722275b785309d84b1de113ce0b8c4e7485604051600160a060020a03909116815260200160405180910390a15050505050565b60005433600160a060020a039081169116146109c057600080fd5b600354600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a1e57600080fd5b5af11515610a2b57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a7857600080fd5b5af11515610a8557600080fd5b5050600054600160a060020a03169050ff5b61076333610406565b600054600160a060020a031681565b600080548190819033600160a060020a03908116911614610acf57600080fd5b600160a060020a0384166000908152600160208190526040909120600281015491810154909450610b059163ffffffff61122f16565b600354600054919350600160a060020a039081169163a9059cbb91168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b6557600080fd5b5af11515610b7257600080fd5b5050600554610b8891508363ffffffff61121516565b60055560068301805462ff0000191690556002830154610bae908363ffffffff61121516565b60028401555060005b60025460001901811015610c745783600160a060020a0316600282815481101515610bde57fe5b600091825260209091200154600160a060020a03161415610c6c57600280546000198101908110610c0b57fe5b60009182526020909120015460028054600160a060020a039092169183908110610c3157fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610c74565b600101610bb7565b600280546000190190610c879082611283565b507feab6d74c4333dc545afc8f0ffc059c43b97bbb19562cf6cc91ec8c2595ae107384604051600160a060020a03909116815260200160405180910390a150505050565b60025490565b60005433600160a060020a03908116911614610cec57600080fd5b610cf581610406565b50565b60055481565b60008054819033600160a060020a03908116911614610d1c57600080fd5b600354600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d7a57600080fd5b5af11515610d8757600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610dd457600080fd5b5af11515610de157600080fd5b505050600091505b600254821015610e8d5760016000600284815481101515610e0657fe5b6000918252602080832090910154600160a060020a03168352828101939093526040918201812060068101805460028301849055600183018490556003830184905560048301849055600583019390935562ffffff199092169091559250519081016040526000815281908051610e819291602001906112a7565b50600190910190610de9565b6000610e9a600282611283565b505050565b6002805482908110610ead57fe5b600091825260209091200154600160a060020a0316905081565b60005433600160a060020a03908116911614610ee257600080fd5b600160a060020a0381161515610ef757600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a03908116911614610f8c57600080fd5b600160a060020a038716600090815260016020526040902060060154879062010000900460ff1615610fbd57600080fd5b600160a060020a0388161515610fd257600080fd5b85851015610fdf57600080fd5b61100687610ffa60055460045461122f90919063ffffffff16565b9063ffffffff61121516565b600354600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561105657600080fd5b5af1151561106357600080fd5b505050604051805190501015151561107a57600080fd5b610120604051908101604090815283825260208083018a90526000828401819052606084018a90526080840189905260a0840188905260c0840181905286151560e085015260016101008501819052600160a060020a038d168252909152208151819080516110ed9291602001906112a7565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c082015160068201805460ff191691151591909117905560e082015160068201805461ff001916610100921515830217905582015160069091018054911515620100000262ff00001990921691909117905550600454611187908863ffffffff61121516565b600455600280546001810161119c8382611283565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a161790557fb7f9091934668a9f014cd4f5f11b64f9d04811a9ad304aaf178f1f0d70a2cd6d88604051600160a060020a03909116815260200160405180910390a15050505050505050565b60008282018381101561122457fe5b8091505b5092915050565b60008282111561123b57fe5b50900390565b6000808315156112545760009150611228565b5082820282848281151561126457fe5b041461122457fe5b600080828481151561127a57fe5b04949350505050565b815481835581811511610e9a57600083815260209020610e9a918101908301611325565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112e857805160ff1916838001178555611315565b82800160010185558215611315579182015b828111156113155782518255916020019190600101906112fa565b50611321929150611325565b5090565b6106cb91905b80821115611321576000815560010161132b5600a165627a7a7230582041619356153f7807e8f9c15fc1e55b7d8c10fc3a18337e6021dd4e71bd0084290029000000000000000000000000905e337c6c8645263d3521205aa37bf4d034e745

Deployed Bytecode

0x6060604052600436106100ed5763ffffffff60e060020a6000350416630156773981146100f85780630ef67887146101d35780631726cbc8146101f8578063199cbc54146102175780631d4233b91461022a578063384711cc1461023d57806374a8f1031461025c57806383197ef01461027b57806386d1a69f1461028e5780638da5cb5b146102a15780639742d64a146102d0578063c0659108146102ef578063d1fb564614610302578063e33b7de314610321578063ebb689a114610334578063edf26d9b14610347578063f2fde38b1461035d578063fc0c546a1461037c578063fcf7e73d1461038f575b6100f633610406565b005b341561010357600080fd5b610117600160a060020a036004351661056c565b6040516020810189905260408101889052606081018790526080810186905260a0810185905283151560c082015282151560e0820152811515610100820152610120808252819081018b818151815260200191508051906020019080838360005b83811015610190578082015183820152602001610178565b50505050905090810190601f1680156101bd5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156101de57600080fd5b6101e661065f565b60405190815260200160405180910390f35b341561020357600080fd5b6101e6600160a060020a03600435166106ce565b341561022257600080fd5b6101e6610709565b341561023557600080fd5b6100f661070f565b341561024857600080fd5b6101e6600160a060020a0360043516610765565b341561026757600080fd5b6100f6600160a060020a0360043516610815565b341561028657600080fd5b6100f66109a5565b341561029957600080fd5b6100f6610a97565b34156102ac57600080fd5b6102b4610aa0565b604051600160a060020a03909116815260200160405180910390f35b34156102db57600080fd5b6100f6600160a060020a0360043516610aaf565b34156102fa57600080fd5b6101e6610ccb565b341561030d57600080fd5b6100f6600160a060020a0360043516610cd1565b341561032c57600080fd5b6101e6610cf8565b341561033f57600080fd5b6100f6610cfe565b341561035257600080fd5b6102b4600435610e9f565b341561036857600080fd5b6100f6600160a060020a0360043516610ec7565b341561038757600080fd5b6102b4610f62565b341561039a57600080fd5b6100f660048035600160a060020a031690602480359160443591606435916084359160a4351515919060e49060c43590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f7195505050505050565b600160a060020a0381166000908152600160205260408120600601548190839062010000900460ff16151561043a57600080fd5b600160a060020a0384166000908152600160205260409020925061045d846106ce565b91506000821161046c57600080fd5b6002830154610481908363ffffffff61121516565b6002840155600554610499908363ffffffff61121516565b600555600354600160a060020a031663a9059cbb858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156104f257600080fd5b5af115156104ff57600080fd5b505050600283015460018401540315156105225760068301805462ff0000191690555b7fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e8483604051600160a060020a03909216825260208201526040908101905180910390a150505050565b6001602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b5050506001840154600285015460038601546004870154600588015460069098015496979396929550909350919060ff808216916101008104821691620100009091041689565b600354600090600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b257600080fd5b5af115156106bf57600080fd5b50505060405180519150505b90565b600160a060020a038116600090815260016020526040812060020154610703906106f784610765565b9063ffffffff61122f16565b92915050565b60045481565b60005433600160a060020a0390811691161461072a57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561076357600080fd5b565b600160a060020a03811660009081526001602081905260408220908101546004820154421015610798576000925061080e565b600582015460038301546107b19163ffffffff61121516565b421015806107c35750600682015460ff165b156107d05780925061080e565b61080b82600501546107ff6107f285600301544261122f90919063ffffffff16565b849063ffffffff61124116565b9063ffffffff61126c16565b92505b5050919050565b6000805481908190819033600160a060020a0390811691161461083757600080fd5b600160a060020a03851660009081526001602052604090206006810154909450610100900460ff16151561086a57600080fd5b600684015460ff161561087c57600080fd5b600284015460018501546108959163ffffffff61122f16565b92506108a0856106ce565b91506108b2838363ffffffff61122f16565b600354600054919250600160a060020a039081169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561091257600080fd5b5af1151561091f57600080fd5b505060055461093591508263ffffffff61121516565b60055560068401805460ff19166001179055600284015461095c908263ffffffff61121516565b60028501557fb6fa8b8bd5eab60f292eca876e3ef90722275b785309d84b1de113ce0b8c4e7485604051600160a060020a03909116815260200160405180910390a15050505050565b60005433600160a060020a039081169116146109c057600080fd5b600354600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a1e57600080fd5b5af11515610a2b57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a7857600080fd5b5af11515610a8557600080fd5b5050600054600160a060020a03169050ff5b61076333610406565b600054600160a060020a031681565b600080548190819033600160a060020a03908116911614610acf57600080fd5b600160a060020a0384166000908152600160208190526040909120600281015491810154909450610b059163ffffffff61122f16565b600354600054919350600160a060020a039081169163a9059cbb91168460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b6557600080fd5b5af11515610b7257600080fd5b5050600554610b8891508363ffffffff61121516565b60055560068301805462ff0000191690556002830154610bae908363ffffffff61121516565b60028401555060005b60025460001901811015610c745783600160a060020a0316600282815481101515610bde57fe5b600091825260209091200154600160a060020a03161415610c6c57600280546000198101908110610c0b57fe5b60009182526020909120015460028054600160a060020a039092169183908110610c3157fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610c74565b600101610bb7565b600280546000190190610c879082611283565b507feab6d74c4333dc545afc8f0ffc059c43b97bbb19562cf6cc91ec8c2595ae107384604051600160a060020a03909116815260200160405180910390a150505050565b60025490565b60005433600160a060020a03908116911614610cec57600080fd5b610cf581610406565b50565b60055481565b60008054819033600160a060020a03908116911614610d1c57600080fd5b600354600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d7a57600080fd5b5af11515610d8757600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610dd457600080fd5b5af11515610de157600080fd5b505050600091505b600254821015610e8d5760016000600284815481101515610e0657fe5b6000918252602080832090910154600160a060020a03168352828101939093526040918201812060068101805460028301849055600183018490556003830184905560048301849055600583019390935562ffffff199092169091559250519081016040526000815281908051610e819291602001906112a7565b50600190910190610de9565b6000610e9a600282611283565b505050565b6002805482908110610ead57fe5b600091825260209091200154600160a060020a0316905081565b60005433600160a060020a03908116911614610ee257600080fd5b600160a060020a0381161515610ef757600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a03908116911614610f8c57600080fd5b600160a060020a038716600090815260016020526040902060060154879062010000900460ff1615610fbd57600080fd5b600160a060020a0388161515610fd257600080fd5b85851015610fdf57600080fd5b61100687610ffa60055460045461122f90919063ffffffff16565b9063ffffffff61121516565b600354600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561105657600080fd5b5af1151561106357600080fd5b505050604051805190501015151561107a57600080fd5b610120604051908101604090815283825260208083018a90526000828401819052606084018a90526080840189905260a0840188905260c0840181905286151560e085015260016101008501819052600160a060020a038d168252909152208151819080516110ed9291602001906112a7565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c082015160068201805460ff191691151591909117905560e082015160068201805461ff001916610100921515830217905582015160069091018054911515620100000262ff00001990921691909117905550600454611187908863ffffffff61121516565b600455600280546001810161119c8382611283565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a161790557fb7f9091934668a9f014cd4f5f11b64f9d04811a9ad304aaf178f1f0d70a2cd6d88604051600160a060020a03909116815260200160405180910390a15050505050505050565b60008282018381101561122457fe5b8091505b5092915050565b60008282111561123b57fe5b50900390565b6000808315156112545760009150611228565b5082820282848281151561126457fe5b041461122457fe5b600080828481151561127a57fe5b04949350505050565b815481835581811511610e9a57600083815260209020610e9a918101908301611325565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112e857805160ff1916838001178555611315565b82800160010185558215611315579182015b828111156113155782518255916020019190600101906112fa565b50611321929150611325565b5090565b6106cb91905b80821115611321576000815560010161132b5600a165627a7a7230582041619356153f7807e8f9c15fc1e55b7d8c10fc3a18337e6021dd4e71bd0084290029

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

000000000000000000000000905e337c6c8645263d3521205aa37bf4d034e745

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000905e337c6c8645263d3521205aa37bf4d034e745


Swarm Source

bzzr://41619356153f7807e8f9c15fc1e55b7d8c10fc3a18337e6021dd4e71bd008429

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
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.