ETH Price: $2,380.09 (+0.93%)

Contract

0x86f7a33B61655528f2c1BBe8180844Fb3CA37333
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Tokens80734012019-07-02 17:25:051897 days ago1562088305IN
0x86f7a33B...b3CA37333
0 ETH0.0007844420
Transfer Tokens80733962019-07-02 17:23:481897 days ago1562088228IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733902019-07-02 17:22:281897 days ago1562088148IN
0x86f7a33B...b3CA37333
0 ETH0.0013844420
Transfer Tokens80733872019-07-02 17:21:491897 days ago1562088109IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733852019-07-02 17:21:401897 days ago1562088100IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733812019-07-02 17:20:461897 days ago1562088046IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733722019-07-02 17:19:311897 days ago1562087971IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733682019-07-02 17:19:121897 days ago1562087952IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733642019-07-02 17:18:071897 days ago1562087887IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733592019-07-02 17:16:551897 days ago1562087815IN
0x86f7a33B...b3CA37333
0 ETH0.0010831620
Transfer Tokens80733542019-07-02 17:15:441897 days ago1562087744IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733522019-07-02 17:14:571897 days ago1562087697IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733492019-07-02 17:14:181897 days ago1562087658IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733422019-07-02 17:12:341897 days ago1562087554IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733392019-07-02 17:12:021897 days ago1562087522IN
0x86f7a33B...b3CA37333
0 ETH0.0010831620
Transfer Tokens80733322019-07-02 17:10:251897 days ago1562087425IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733322019-07-02 17:10:251897 days ago1562087425IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733232019-07-02 17:09:021897 days ago1562087342IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733142019-07-02 17:07:231897 days ago1562087243IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733122019-07-02 17:06:511897 days ago1562087211IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733052019-07-02 17:04:421897 days ago1562087082IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer Tokens80733032019-07-02 17:03:571897 days ago1562087037IN
0x86f7a33B...b3CA37333
0 ETH0.0010844420
Transfer78726352019-06-01 8:19:261928 days ago1559377166IN
0x86f7a33B...b3CA37333
0 ETH0.0002104610
Transfer Tokens78682842019-05-31 16:10:201929 days ago1559319020IN
0x86f7a33B...b3CA37333
0 ETH0.0011361810
Transfer Tokens78682832019-05-31 16:10:091929 days ago1559319009IN
0x86f7a33B...b3CA37333
0 ETH0.0011361810
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:
IOVTokenVesting

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-07-16
*/

pragma solidity ^0.4.23;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        emit LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

contract DSStop is DSNote, DSAuth {

    bool public stopped;

    modifier stoppable {
        require(!stopped);
        _;
    }
    function stop() public auth note {
        stopped = true;
    }
    function start() public auth note {
        stopped = false;
    }

}

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

contract ERC20Events {
    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
}

contract ERC20 is ERC20Events {
    function totalSupply() public view returns (uint);
    function balanceOf(address guy) public view returns (uint);
    function allowance(address src, address guy) public view returns (uint);

    function approve(address guy, uint wad) public returns (bool);
    function transfer(address dst, uint wad) public returns (bool);
    function transferFrom(
        address src, address dst, uint wad
    ) public returns (bool);
}

contract IOVTokenBase is ERC20, DSMath {
    uint256                                            _supply;
    mapping (address => uint256)                       _balances;
    mapping (address => mapping (address => uint256))  _approvals;

    uint256  public  airdropBSupply = 5*10**6*10**8; // airdrop total supply = 500W
    uint256  public  currentAirdropAmount = 0;
    uint256  airdropNum  =  10*10**8;                // 10IOV each time for airdrop
    mapping (address => bool) touched;               //records whether an address has received an airdrop;

    constructor(uint supply) public {
        _balances[msg.sender] = sub(supply, airdropBSupply);
        _supply = supply;
        emit Transfer(0x0, msg.sender, _balances[msg.sender]);
    }

    function totalSupply() public view returns (uint) {
        return _supply;
    }
    function balanceOf(address src) public view returns (uint) {
        return getBalance(src);
    }
    function allowance(address src, address guy) public view returns (uint) {
        return _approvals[src][guy];
    }

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        require(_balances[src] >= wad);

        if (src != msg.sender) {
            require(_approvals[src][msg.sender] >= wad);
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function approve(address guy, uint wad) public returns (bool) {
        _approvals[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }

    //
    function getBalance(address src) internal constant returns(uint) {
        if( currentAirdropAmount < airdropBSupply && !touched[src]) {
            return add(_balances[src], airdropNum);
        } else {
            return _balances[src];
        }
    }
}

contract ContractLock is DSStop {

    uint  public  unlockTime;         // Start time for token transferring
    mapping (address => bool) public isAdmin;  // Admin accounts

    event LogAddAdmin(address whoAdded, address newAdmin);
    event LogRemoveAdmin(address whoRemoved, address admin);

    constructor(uint _unlockTime) public {
        unlockTime = _unlockTime;
        isAdmin[msg.sender] = true;
        emit LogAddAdmin(msg.sender, msg.sender);
    }

    function addAdmin(address admin) public auth returns (bool) {
        if(isAdmin[admin] == false) {
            isAdmin[admin] = true;
            emit LogAddAdmin(msg.sender, admin);
        }
        return true;
    }

    function removeAdmin(address admin) public auth returns (bool) {
        if(isAdmin[admin] == true) {
            isAdmin[admin] = false;
            emit LogRemoveAdmin(msg.sender, admin);
        }
        return true;
    }

    function setOwner(address owner_)
        public
        auth
    {
        removeAdmin(owner);
        owner = owner_;
        addAdmin(owner);
        emit LogSetOwner(owner);

    }


    modifier onlyAdmin {
        require (isAdmin[msg.sender]);
        _;
    }


    modifier isUnlocked {
        require( now > unlockTime || isAdmin[msg.sender]);
        _;
    }

    function setUnlockTime(uint unlockTime_) public auth {
        unlockTime = unlockTime_;
    }

}

contract IOVToken is IOVTokenBase(10*10**9*10**8), ContractLock(1527782400) {

    string  public  symbol;
    uint256  public  decimals = 8; // standard token precision. override to customize

    constructor(string symbol_) public {
        symbol = symbol_;
    }

    function approve(address guy) public stoppable returns (bool) {
        return super.approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        return super.approve(guy, wad);
    }

    function transferFrom(address src, address dst, uint wad) public stoppable isUnlocked returns (bool)
    {
        require(_balances[src] >= wad);

        if(!touched[src] && currentAirdropAmount < airdropBSupply) {
            _balances[src] = add( _balances[src], airdropNum );
            touched[src] = true;
            currentAirdropAmount = add(currentAirdropAmount, airdropNum);
        }

        if (src != msg.sender && _approvals[src][msg.sender] != uint(-1)) {
            require(_approvals[src][msg.sender] >= wad);
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) public {
        transferFrom(msg.sender, dst, wad);
    }
    function pull(address src, uint wad) public {
        transferFrom(src, msg.sender, wad);
    }
    function move(address src, address dst, uint wad) public {
        transferFrom(src, dst, wad);
    }

    // Optional token name
    string   public  name = "CarLive Chain";

    function setName(string name_) public auth {
        name = name_;
    }

    //
}


/**
 * @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 IOVTokenVesting is DSAuth, DSMath {

  event LogNewAllocation(address indexed _recipient, uint256 _totalAllocated);
  event LogIOVClaimed(address indexed _recipient, uint256 _amountClaimed);
  event LogDisable(address indexed _recipient, bool _disable);

  event LogAddVestingAdmin(address whoAdded, address indexed newAdmin);
  event LogRemoveVestingAdmin(address whoRemoved, address indexed admin);

  //Allocation with vesting information
  struct Allocation {
    uint256  start;          // Start time of vesting contract
    uint256  cliff;          // cliff time in which tokens will begin to vest
    uint256  periods;        // Periods for vesting
    uint256  totalAllocated; // Total tokens allocated
    uint256  amountClaimed;  // Total tokens claimed
    bool     disable;        // allocation disabled or not.
  }

  IOVToken  public  IOV;
  mapping (address => Allocation) public beneficiaries;
  mapping (address => bool) public isVestingAdmin;  // community Admin accounts

  // constructor function
  constructor(IOVToken iov) public {
    assert(address(IOV) == address(0));
    IOV = iov;
  }

  // Contract admin related functions
  function addVestingAdmin(address admin) public auth returns (bool) {
      if(isVestingAdmin[admin] == false) {
          isVestingAdmin[admin] = true;
          emit LogAddVestingAdmin(msg.sender, admin);
      }
      return true;
  }

  function removeVestingAdmin(address admin) public auth returns (bool) {
      if(isVestingAdmin[admin] == true) {
          isVestingAdmin[admin] = false;
          emit LogRemoveVestingAdmin(msg.sender, admin);
      }
      return true;
  }

  modifier onlyVestingAdmin {
      require ( msg.sender == owner || isVestingAdmin[msg.sender] );
      _;
  }

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

  function totalUnClaimed() public view returns (uint256) {
    return IOV.balanceOf(this);
  }

  /**
  * @dev Allow the owner of the contract to assign a new allocation
  * @param _recipient The recipient of the allocation
  * @param _totalAllocated The total amount of IOV allocated to the receipient (after vesting)
  * @param _start Start time of vesting contract
  * @param _cliff cliff time in which tokens will begin to vest
  * @param _period Periods for vesting
  */
  function setAllocation(address _recipient, uint256 _totalAllocated, uint256 _start, uint256 _cliff, uint256 _period) public onlyVestingAdmin {
    require(_recipient != address(0));
    require(beneficiaries[_recipient].totalAllocated == 0 && _totalAllocated > 0);
    require(_start > 0 && _start < 32503680000);
    require(_cliff >= _start);
    require(_period > 0);

    beneficiaries[_recipient] = Allocation(_start, _cliff, _period, _totalAllocated, 0, false);
    emit LogNewAllocation(_recipient, _totalAllocated);
  }

  function setDisable(address _recipient, bool disable) public onlyVestingAdmin {
    require(beneficiaries[_recipient].totalAllocated > 0);
    beneficiaries[_recipient].disable = disable;
    emit LogDisable(_recipient, disable);
  }

  /**
   * @notice Transfer a recipients available allocation to their address.
   * @param _recipient The address to withdraw tokens for
   */
  function transferTokens(address _recipient) public {
    require(beneficiaries[_recipient].amountClaimed < beneficiaries[_recipient].totalAllocated);
    require( now >= beneficiaries[_recipient].cliff );
    require(!beneficiaries[_recipient].disable);

    uint256 unreleased = releasableAmount(_recipient);
    require( unreleased > 0);

    IOV.transfer(_recipient, unreleased);

    beneficiaries[_recipient].amountClaimed = vestedAmount(_recipient);

    emit LogIOVClaimed(_recipient, unreleased);
  }


  /**
   * @dev Calculates the amount that has already vested but hasn't been released yet.
   * @param _recipient The address which is being vested
   */
  function releasableAmount(address _recipient) public view returns (uint256) {
    require( vestedAmount(_recipient) >= beneficiaries[_recipient].amountClaimed );
    require( vestedAmount(_recipient) <= beneficiaries[_recipient].totalAllocated );
    return sub( vestedAmount(_recipient), beneficiaries[_recipient].amountClaimed );
  }

  // /**
  //  * @dev Calculates the amount that has already vested.
  //  * @param _recipient The address which is being vested
  //  */
  // function vestedAmount(address _recipient) public view returns (uint256) {
  //   if( block.timestamp < add(beneficiaries[_recipient].start, beneficiaries[_recipient].cliff) ) {
  //     return 0;
  //   } else if( block.timestamp >= add( beneficiaries[_recipient].start, beneficiaries[_recipient].duration) ) {
  //     return beneficiaries[_recipient].totalAllocated;
  //   } else {
  //     return div( mul(beneficiaries[_recipient].totalAllocated, sub(block.timestamp, beneficiaries[_recipient].start)), beneficiaries[_recipient].duration );
  //   }
  // }

    /**
   * @dev Calculates the amount that has already vested.
   * @param _recipient The address which is being vested
   */
  function vestedAmount(address _recipient) public view returns (uint256) {
    if( block.timestamp < beneficiaries[_recipient].cliff ) {
      return 0;
    }else if( block.timestamp >= add( beneficiaries[_recipient].cliff, (30 days)*beneficiaries[_recipient].periods ) ) {
      return beneficiaries[_recipient].totalAllocated;
    }else {
      for(uint i = 0; i < beneficiaries[_recipient].periods; i++) {
        if( block.timestamp >= add( beneficiaries[_recipient].cliff, (30 days)*i ) && block.timestamp < add( beneficiaries[_recipient].cliff, (30 days)*(i+1) ) ) {
          return div( mul(i, beneficiaries[_recipient].totalAllocated), beneficiaries[_recipient].periods );
        }
      }
    }
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"beneficiaries","outputs":[{"name":"start","type":"uint256"},{"name":"cliff","type":"uint256"},{"name":"periods","type":"uint256"},{"name":"totalAllocated","type":"uint256"},{"name":"amountClaimed","type":"uint256"},{"name":"disable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"transferTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_recipient","type":"address"}],"name":"releasableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_recipient","type":"address"}],"name":"vestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalUnClaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isVestingAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_totalAllocated","type":"uint256"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"},{"name":"_period","type":"uint256"}],"name":"setAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"IOV","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"disable","type":"bool"}],"name":"setDisable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"admin","type":"address"}],"name":"removeVestingAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"admin","type":"address"}],"name":"addVestingAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"iov","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_totalAllocated","type":"uint256"}],"name":"LogNewAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_amountClaimed","type":"uint256"}],"name":"LogIOVClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_disable","type":"bool"}],"name":"LogDisable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"whoAdded","type":"address"},{"indexed":true,"name":"newAdmin","type":"address"}],"name":"LogAddVestingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"whoRemoved","type":"address"},{"indexed":true,"name":"admin","type":"address"}],"name":"LogRemoveVestingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

608060405234801561001057600080fd5b50604051602080611c1f8339810180604052810190808051906020019092919050505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561011157fe5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611abd806101626000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301567739146100e05780630c89a0df1461015e57806313af4035146101a15780631726cbc8146101e4578063384711cc1461023b57806339694f47146102925780636c32d13f146102bd5780636d290d34146103185780637a9e5e4b146103835780637c475ade146103c65780638da5cb5b1461041d578063a6ddce1314610474578063bf7e214f146104c3578063f3dbaf0d1461051a578063fb14f05814610575575b600080fd5b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d0565b6040518087815260200186815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b34801561016a57600080fd5b5061019f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610619565b005b3480156101ad57600080fd5b506101e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610916565b005b3480156101f057600080fd5b50610225600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f8565b6040518082815260200191505060405180910390f35b34801561024757600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b07565b6040518082815260200191505060405180910390f35b34801561029e57600080fd5b506102a7610dfa565b6040518082815260200191505060405180910390f35b3480156102c957600080fd5b506102fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef9565b604051808215151515815260200191505060405180910390f35b34801561032457600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610f19565b005b34801561038f57600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ba565b005b3480156103d257600080fd5b506103db61129a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042957600080fd5b506104326112c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048057600080fd5b506104c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506112e6565b005b3480156104cf57600080fd5b506104d8611497565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052657600080fd5b5061055b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114bc565b604051808215151515815260200191505060405180910390f35b34801561058157600080fd5b506105b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162c565b604051808215151515815260200191505060405180910390f35b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541015156106ad57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442101515156106fe57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160009054906101000a900460ff1615151561075a57600080fd5b610763826109f8565b905060008111151561077457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d602081101561086357600080fd5b81019080805190602001909291905050505061087e82610b07565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508173ffffffffffffffffffffffffffffffffffffffff167f93599291d41f4d7af83a538cbaf1922f30f4af62c4baa8916c0a5cb0e4364ff6826040518082815260200191505060405180910390a25050565b610944336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b151561094f57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154610a4683610b07565b10151515610a5357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154610a9f83610b07565b11151515610aac57600080fd5b610b00610ab883610b07565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154611a13565b9050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154421015610b5d5760009150610df4565b610bf0600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015462278d0002611a2f565b42101515610c4257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150610df4565b600090505b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154811015610df357610ce2600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548262278d0002611a2f565b4210158015610d435750610d40600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546001830162278d0002611a2f565b42105b15610de657610ddf610d9782600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154611a4b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a7b565b9150610df4565b8080600101915050610c47565b5b50919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b505050506040513d6020811015610ee357600080fd5b8101908080519060200190929190505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fbe5750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610fc957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561100557600080fd5b6000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541480156110575750600084115b151561106257600080fd5b60008311801561107657506407915ecc0083105b151561108157600080fd5b82821015151561109057600080fd5b60008111151561109f57600080fd5b60c0604051908101604052808481526020018381526020018281526020018581526020016000815260200160001515815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff0219169083151502179055509050508473ffffffffffffffffffffffffffffffffffffffff167f83c0dd2551bb8129e7b8847d762bed002e08f7ea159af7b10047c49371092da9856040518082815260200191505060405180910390a25050505050565b6111e8336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b15156111f357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061138b5750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561139657600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156113e757600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fe1fa840b88958e9c7031fd297bbf4af40855eacfbd52e524705b56e2bb0954ec82604051808215151515815260200191505060405180910390a25050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ec336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b15156114f757600080fd5b60011515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611623576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fa3c83651289a336285a54ccb929a82dd80e97714a88145e9b70005ec04d6d8ee33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60019050919050565b600061165c336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b151561166757600080fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611793576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fced8b4d13d8e97a0ec432dc5a3a3289f757e4863504928b32d13adb4226e445f33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117db5760019050611a0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561183a5760019050611a0d565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118995760009050611a0d565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019350505050602060405180830381600087803b1580156119cf57600080fd5b505af11580156119e3573d6000803e3d6000fd5b505050506040513d60208110156119f957600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111151515611a2957600080fd5b92915050565b60008282840191508110151515611a4557600080fd5b92915050565b600080821480611a6a57508282838502925082811515611a6757fe5b04145b1515611a7557600080fd5b92915050565b60008183811515611a8857fe5b049050929150505600a165627a7a72305820f3564e47a860161a4c4d867da109271431705e12f3295ae6b87125ab9ad1431a00290000000000000000000000000e69d0a2bbb30abcb7e5cfea0e4fde19c00a8d47

Deployed Bytecode

0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301567739146100e05780630c89a0df1461015e57806313af4035146101a15780631726cbc8146101e4578063384711cc1461023b57806339694f47146102925780636c32d13f146102bd5780636d290d34146103185780637a9e5e4b146103835780637c475ade146103c65780638da5cb5b1461041d578063a6ddce1314610474578063bf7e214f146104c3578063f3dbaf0d1461051a578063fb14f05814610575575b600080fd5b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d0565b6040518087815260200186815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b34801561016a57600080fd5b5061019f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610619565b005b3480156101ad57600080fd5b506101e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610916565b005b3480156101f057600080fd5b50610225600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f8565b6040518082815260200191505060405180910390f35b34801561024757600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b07565b6040518082815260200191505060405180910390f35b34801561029e57600080fd5b506102a7610dfa565b6040518082815260200191505060405180910390f35b3480156102c957600080fd5b506102fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef9565b604051808215151515815260200191505060405180910390f35b34801561032457600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610f19565b005b34801561038f57600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ba565b005b3480156103d257600080fd5b506103db61129a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042957600080fd5b506104326112c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048057600080fd5b506104c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506112e6565b005b3480156104cf57600080fd5b506104d8611497565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052657600080fd5b5061055b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114bc565b604051808215151515815260200191505060405180910390f35b34801561058157600080fd5b506105b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162c565b604051808215151515815260200191505060405180910390f35b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541015156106ad57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442101515156106fe57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160009054906101000a900460ff1615151561075a57600080fd5b610763826109f8565b905060008111151561077457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d602081101561086357600080fd5b81019080805190602001909291905050505061087e82610b07565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508173ffffffffffffffffffffffffffffffffffffffff167f93599291d41f4d7af83a538cbaf1922f30f4af62c4baa8916c0a5cb0e4364ff6826040518082815260200191505060405180910390a25050565b610944336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b151561094f57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154610a4683610b07565b10151515610a5357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154610a9f83610b07565b11151515610aac57600080fd5b610b00610ab883610b07565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154611a13565b9050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154421015610b5d5760009150610df4565b610bf0600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015462278d0002611a2f565b42101515610c4257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150610df4565b600090505b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154811015610df357610ce2600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548262278d0002611a2f565b4210158015610d435750610d40600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546001830162278d0002611a2f565b42105b15610de657610ddf610d9782600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154611a4b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a7b565b9150610df4565b8080600101915050610c47565b5b50919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b505050506040513d6020811015610ee357600080fd5b8101908080519060200190929190505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fbe5750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610fc957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561100557600080fd5b6000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541480156110575750600084115b151561106257600080fd5b60008311801561107657506407915ecc0083105b151561108157600080fd5b82821015151561109057600080fd5b60008111151561109f57600080fd5b60c0604051908101604052808481526020018381526020018281526020018581526020016000815260200160001515815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff0219169083151502179055509050508473ffffffffffffffffffffffffffffffffffffffff167f83c0dd2551bb8129e7b8847d762bed002e08f7ea159af7b10047c49371092da9856040518082815260200191505060405180910390a25050505050565b6111e8336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b15156111f357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061138b5750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561139657600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156113e757600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fe1fa840b88958e9c7031fd297bbf4af40855eacfbd52e524705b56e2bb0954ec82604051808215151515815260200191505060405180910390a25050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ec336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b15156114f757600080fd5b60011515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611623576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fa3c83651289a336285a54ccb929a82dd80e97714a88145e9b70005ec04d6d8ee33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60019050919050565b600061165c336000357fffffffff000000000000000000000000000000000000000000000000000000001661179c565b151561166757600080fd5b60001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611793576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fced8b4d13d8e97a0ec432dc5a3a3289f757e4863504928b32d13adb4226e445f33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117db5760019050611a0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561183a5760019050611a0d565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118995760009050611a0d565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019350505050602060405180830381600087803b1580156119cf57600080fd5b505af11580156119e3573d6000803e3d6000fd5b505050506040513d60208110156119f957600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111151515611a2957600080fd5b92915050565b60008282840191508110151515611a4557600080fd5b92915050565b600080821480611a6a57508282838502925082811515611a6757fe5b04145b1515611a7557600080fd5b92915050565b60008183811515611a8857fe5b049050929150505600a165627a7a72305820f3564e47a860161a4c4d867da109271431705e12f3295ae6b87125ab9ad1431a0029

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

0000000000000000000000000e69d0a2bbb30abcb7e5cfea0e4fde19c00a8d47

-----Decoded View---------------
Arg [0] : iov (address): 0x0E69D0A2bbB30aBcB7e5CfEA0E4FDe19C00A8d47

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e69d0a2bbb30abcb7e5cfea0e4fde19c00a8d47


Swarm Source

bzzr://f3564e47a860161a4c4d867da109271431705e12f3295ae6b87125ab9ad1431a

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.