ETH Price: $3,264.60 (+0.52%)
Gas: 3 Gwei

Contract

0xd2943044A142895Fe07650C3bcd70BD2e17885D9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy_the_tokens50357222018-02-05 14:46:512364 days ago1517842011IN
0xd2943044...2e17885D9
0 ETH0.000232172
Set_sale_address50356412018-02-05 14:26:492364 days ago1517840809IN
0xd2943044...2e17885D9
0 ETH0.000132753
Transfer50253102018-02-03 20:58:452365 days ago1517691525IN
0xd2943044...2e17885D9
0 ETH0.0000351
Transfer50252482018-02-03 20:44:062365 days ago1517690646IN
0xd2943044...2e17885D9
4.99985283 ETH0.000039051
Transfer50251222018-02-03 20:15:132365 days ago1517688913IN
0xd2943044...2e17885D9
500 ETH0.000069051
Transfer50203652018-02-03 1:13:172366 days ago1517620397IN
0xd2943044...2e17885D9
5 ETH0.000069051
Transfer50198872018-02-02 23:18:112366 days ago1517613491IN
0xd2943044...2e17885D9
2.02 ETH0.000069051
Transfer50196412018-02-02 22:19:592366 days ago1517609999IN
0xd2943044...2e17885D9
10.1 ETH0.003452750
Transfer50191542018-02-02 20:20:502366 days ago1517602850IN
0xd2943044...2e17885D9
10 ETH0.0041432460
Transfer50191112018-02-02 20:10:402366 days ago1517602240IN
0xd2943044...2e17885D9
10 ETH0.00013812
Transfer50190382018-02-02 19:54:592366 days ago1517601299IN
0xd2943044...2e17885D9
2 ETH0.000276214
Transfer50189602018-02-02 19:38:392366 days ago1517600319IN
0xd2943044...2e17885D9
17.1717 ETH0.0006905410
Transfer50189542018-02-02 19:37:062366 days ago1517600226IN
0xd2943044...2e17885D9
0.5 ETH0.0006905410
Transfer50188602018-02-02 19:10:492366 days ago1517598649IN
0xd2943044...2e17885D9
2 ETH0.000552438
Transfer50187662018-02-02 18:47:362366 days ago1517597256IN
0xd2943044...2e17885D9
5.005 ETH0.000414326
Transfer50186132018-02-02 18:09:052366 days ago1517594945IN
0xd2943044...2e17885D9
3.03 ETH0.000276214
Transfer50183912018-02-02 17:15:392367 days ago1517591739IN
0xd2943044...2e17885D9
25.25 ETH0.0032455347
Transfer50181882018-02-02 16:27:382367 days ago1517588858IN
0xd2943044...2e17885D9
0.5 ETH0.000276214
Transfer50179792018-02-02 15:35:092367 days ago1517585709IN
0xd2943044...2e17885D9
10.1 ETH0.003452750
Transfer50178742018-02-02 15:06:442367 days ago1517584004IN
0xd2943044...2e17885D9
15.15 ETH0.000345275
Transfer50176632018-02-02 14:12:182367 days ago1517580738IN
0xd2943044...2e17885D9
1.01 ETH0.0017263525
Transfer50170162018-02-02 11:32:062367 days ago1517571126IN
0xd2943044...2e17885D9
10.1 ETH0.0028312141
Transfer50162442018-02-02 8:25:452367 days ago1517559945IN
0xd2943044...2e17885D9
6.6 ETH0.0006905410
Transfer50162422018-02-02 8:24:542367 days ago1517559894IN
0xd2943044...2e17885D9
18.4 ETH0.0041432460
Transfer50154022018-02-02 5:01:272367 days ago1517547687IN
0xd2943044...2e17885D9
0.909 ETH0.0046956768
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
50357222018-02-05 14:46:512364 days ago1517842011
0xd2943044...2e17885D9
1,957.4193898 ETH
50357222018-02-05 14:46:512364 days ago1517842011
0xd2943044...2e17885D9
1.64765941 ETH
50357222018-02-05 14:46:512364 days ago1517842011
0xd2943044...2e17885D9
3.29531883 ETH
50357222018-02-05 14:46:512364 days ago1517842011
0xd2943044...2e17885D9
14.82893477 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Moongang

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

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

// Author : shift

pragma solidity ^0.4.18;

//--------- OpenZeppelin's Safe Math
//Source : https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
/**
 * @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) {
    uint256 c = a / b;
    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;
  }
}
//-----------------------------------------------------

// ERC20 Interface: https://github.com/ethereum/EIPs/issues/20
contract ERC20 {
  function transfer(address _to, uint256 _value) public returns (bool success);
  function balanceOf(address _owner) public constant returns (uint256 balance);
}

/*
  This contract stores twice every key value in order to be able to redistribute funds
  when the bonus tokens are received (which is typically X months after the initial buy).
*/

contract Moongang {

  modifier onlyOwner {
    require(msg.sender == owner);
    _;
  }

  modifier minAmountReached {
    //In reality, the correct amount is the amount + 1%
    require(this.balance >= SafeMath.div(SafeMath.mul(min_amount, 100), 99));
    _;
  }

  modifier underMaxAmount {
    require(max_amount == 0 || this.balance <= max_amount);
    _;
  }

  //Constants of the contract
  uint256 constant FEE = 100;    //1% fee
  //SafeMath.div(20, 3) = 6
  uint256 constant FEE_DEV = 6; //15% on the 1% fee
  uint256 constant FEE_AUDIT = 12; //7.5% on the 1% fee
  address public owner;
  address constant public developer = 0xEE06BdDafFA56a303718DE53A5bc347EfbE4C68f;
  address constant public auditor = 0x63F7547Ac277ea0B52A0B060Be6af8C5904953aa;
  uint256 public individual_cap;

  //Variables subject to changes
  uint256 public max_amount;  //0 means there is no limit
  uint256 public min_amount;

  //Store the amount of ETH deposited by each account.
  mapping (address => uint256) public balances;
  mapping (address => uint256) public balances_bonus;
  //whitelist
  mapping (address => bool) public whitelist;
  // Track whether the contract has bought the tokens yet.
  bool public bought_tokens;
  // Record ETH value of tokens currently held by contract.
  uint256 public contract_eth_value;
  uint256 public contract_eth_value_bonus;
  //Set by the owner in order to allow the withdrawal of bonus tokens.
  bool public bonus_received;
  //The address of the contact.
  address public sale;
  //Token address
  ERC20 public token;
  //Records the fees that have to be sent
  uint256 fees;
  //Set by the owner. Allows people to refund totally or partially.
  bool public allow_refunds;
  //The reduction of the allocation in % | example : 40 -> 40% reduction
  uint256 public percent_reduction;
  //flag controlled by owner to enable/disable whitelists
  bool public whitelist_enabled;

  //Internal functions
  function Moongang(uint256 max, uint256 min, uint256 cap) {
    /*
    Constructor
    */
    owner = msg.sender;
    max_amount = SafeMath.div(SafeMath.mul(max, 100), 99);
    min_amount = min;
    individual_cap = cap;
    //enable whitelist by default
    whitelist_enabled = true;
  }

  //Functions for the owner

  // Buy the tokens. Sends ETH to the presale wallet and records the ETH amount held in the contract.
  function buy_the_tokens() onlyOwner minAmountReached {
    //Avoids burning the funds
    require(!bought_tokens && sale != 0x0);
    //Record that the contract has bought the tokens.
    bought_tokens = true;
    //Sends the fee before so the contract_eth_value contains the correct balance
    uint256 dev_fee = SafeMath.div(fees, FEE_DEV);
    uint256 audit_fee = SafeMath.div(fees, FEE_AUDIT);
    owner.transfer(SafeMath.sub(SafeMath.sub(fees, dev_fee), audit_fee));
    developer.transfer(dev_fee);
    auditor.transfer(audit_fee);
    //Record the amount of ETH sent as the contract's current value.
    contract_eth_value = this.balance;
    contract_eth_value_bonus = this.balance;
    // Transfer all the funds to the crowdsale address.
    sale.transfer(contract_eth_value);
  }

  function force_refund(address _to_refund) onlyOwner {
    require(!bought_tokens);
    uint256 eth_to_withdraw = SafeMath.div(SafeMath.mul(balances[_to_refund], 100), 99);
    balances[_to_refund] = 0;
    balances_bonus[_to_refund] = 0;
    fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    _to_refund.transfer(eth_to_withdraw);
  }

  function force_partial_refund(address _to_refund) onlyOwner {
    require(percent_reduction > 0);
    //Amount to refund is the amount minus the X% of the reduction
    //amount_to_refund = balance*X
    uint256 basic_amount = SafeMath.div(SafeMath.mul(balances[_to_refund], percent_reduction), 100);
    uint256 eth_to_withdraw = basic_amount;
    if (!bought_tokens) {
      //We have to take in account the partial refund of the fee too if the tokens weren't bought yet
      eth_to_withdraw = SafeMath.div(SafeMath.mul(basic_amount, 100), 99);
      fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    }
    balances[_to_refund] = SafeMath.sub(balances[_to_refund], eth_to_withdraw);
    balances_bonus[_to_refund] = balances[_to_refund];
    _to_refund.transfer(eth_to_withdraw);
  }

  function whitelist_addys(address[] _addys) onlyOwner {
    for (uint256 i = 0; i < _addys.length; i++) {
      whitelist[_addys[i]] = true;
    }
  }

  function blacklist_addys(address[] _addys) onlyOwner {
    for (uint256 i = 0; i < _addys.length; i++) {
      whitelist[_addys[i]] = false;
    }
  }

  function set_sale_address(address _sale) onlyOwner {
    //Avoid mistake of putting 0x0 and can't change twice the sale address
    require(_sale != 0x0);
    sale = _sale;
  }

  function set_token_address(address _token) onlyOwner {
    require(_token != 0x0);
    token = ERC20(_token);
  }

  function set_bonus_received(bool _boolean) onlyOwner {
    bonus_received = _boolean;
  }

  function set_allow_refunds(bool _boolean) onlyOwner {
    /*
    In case, for some reasons, the project refunds the money
    */
    allow_refunds = _boolean;
  }

  function set_percent_reduction(uint256 _reduction) onlyOwner {
    require(_reduction <= 100);
    percent_reduction = _reduction;
  }

  function set_whitelist_enabled(bool _boolean) onlyOwner {
    whitelist_enabled = _boolean;
  }

  function change_individual_cap(uint256 _cap) onlyOwner {
    individual_cap = _cap;
  }

  function change_owner(address new_owner) onlyOwner {
    require(new_owner != 0x0);
    owner = new_owner;
  }

  function change_max_amount(uint256 _amount) onlyOwner {
      //ATTENTION! The new amount should be in wei
      //Use https://etherconverter.online/
      max_amount = SafeMath.div(SafeMath.mul(_amount, 100), 99);
  }

  function change_min_amount(uint256 _amount) onlyOwner {
      //ATTENTION! The new amount should be in wei
      //Use https://etherconverter.online/
      min_amount = _amount;
  }

  //Public functions

  // Allows any user to withdraw his tokens.
  function withdraw() {
    // Disallow withdraw if tokens haven't been bought yet.
    require(bought_tokens);
    uint256 contract_token_balance = token.balanceOf(address(this));
    // Disallow token withdrawals if there are no tokens to withdraw.
    require(contract_token_balance != 0);
    uint256 tokens_to_withdraw = SafeMath.div(SafeMath.mul(balances[msg.sender], contract_token_balance), contract_eth_value);
    // Update the value of tokens currently held by the contract.
    contract_eth_value = SafeMath.sub(contract_eth_value, balances[msg.sender]);
    // Update the user's balance prior to sending to prevent recursive call.
    balances[msg.sender] = 0;
    // Send the funds.  Throws on failure to prevent loss of funds.
    require(token.transfer(msg.sender, tokens_to_withdraw));
  }

  function withdraw_bonus() {
  /*
    Special function to withdraw the bonus tokens after the 6 months lockup.
    bonus_received has to be set to true.
  */
    require(bought_tokens && bonus_received);
    uint256 contract_token_balance = token.balanceOf(address(this));
    require(contract_token_balance != 0);
    uint256 tokens_to_withdraw = SafeMath.div(SafeMath.mul(balances_bonus[msg.sender], contract_token_balance), contract_eth_value_bonus);
    contract_eth_value_bonus = SafeMath.sub(contract_eth_value_bonus, balances_bonus[msg.sender]);
    balances_bonus[msg.sender] = 0;
    require(token.transfer(msg.sender, tokens_to_withdraw));
  }

  // Allows any user to get his eth refunded before the purchase is made.
  function refund() {
    require(!bought_tokens && allow_refunds && percent_reduction == 0);
    //balance of contributor = contribution * 0.99
    //so contribution = balance/0.99
    uint256 eth_to_withdraw = SafeMath.div(SafeMath.mul(balances[msg.sender], 100), 99);
    // Update the user's balance prior to sending ETH to prevent recursive call.
    balances[msg.sender] = 0;
    //Updates the balances_bonus too
    balances_bonus[msg.sender] = 0;
    //Updates the fees variable by substracting the refunded fee
    fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    // Return the user's funds.  Throws on failure to prevent loss of funds.
    msg.sender.transfer(eth_to_withdraw);
  }

  //Allows any user to get a part of his ETH refunded, in proportion
  //to the % reduced of the allocation
  function partial_refund() {
    require(allow_refunds && percent_reduction > 0);
    //Amount to refund is the amount minus the X% of the reduction
    //amount_to_refund = balance*X
    uint256 basic_amount = SafeMath.div(SafeMath.mul(balances[msg.sender], percent_reduction), 100);
    uint256 eth_to_withdraw = basic_amount;
    if (!bought_tokens) {
      //We have to take in account the partial refund of the fee too if the tokens weren't bought yet
      eth_to_withdraw = SafeMath.div(SafeMath.mul(basic_amount, 100), 99);
      fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    }
    balances[msg.sender] = SafeMath.sub(balances[msg.sender], eth_to_withdraw);
    balances_bonus[msg.sender] = balances[msg.sender];
    msg.sender.transfer(eth_to_withdraw);
  }

  // Default function.  Called when a user sends ETH to the contract.
  function () payable underMaxAmount {
    require(!bought_tokens);
    if (whitelist_enabled) {
      require(whitelist[msg.sender]);
    }
    //1% fee is taken on the ETH
    uint256 fee = SafeMath.div(msg.value, FEE);
    fees = SafeMath.add(fees, fee);
    //Updates both of the balances
    balances[msg.sender] = SafeMath.add(balances[msg.sender], SafeMath.sub(msg.value, fee));
    //Checks if the individual cap is respected
    //If it's not, changes are reverted
    require(individual_cap == 0 || balances[msg.sender] <= individual_cap);
    balances_bonus[msg.sender] = balances[msg.sender];
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"withdraw_bonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_whitelist_enabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"individual_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to_refund","type":"address"}],"name":"force_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max_amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances_bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allow_refunds","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"change_owner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy_the_tokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cap","type":"uint256"}],"name":"change_individual_cap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"change_min_amount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_bonus_received","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"change_max_amount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"auditor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"set_token_address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addys","type":"address[]"}],"name":"whitelist_addys","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bought_tokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_reduction","type":"uint256"}],"name":"set_percent_reduction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"partial_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to_refund","type":"address"}],"name":"force_partial_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"min_amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelist_enabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus_received","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contract_eth_value_bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent_reduction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contract_eth_value","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"developer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addys","type":"address[]"}],"name":"blacklist_addys","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_allow_refunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sale","type":"address"}],"name":"set_sale_address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"max","type":"uint256"},{"name":"min","type":"uint256"},{"name":"cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

606060405234156200001057600080fd5b6040516060806200271183398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c0620000a4846064620000f86401000000000262002547176401000000009004565b6063620001376401000000000262000b97176401000000009004565b60028190555081600381905550806001819055506001600f60006101000a81548160ff02191690831515021790555050505062000153565b60008060008414156200010f576000915062000130565b82840290508284828115156200012157fe5b041415156200012c57fe5b8091505b5092915050565b60008082848115156200014657fe5b0490508091505092915050565b6125ae80620001636000396000f3006060604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630107a8df1461042457806310d2f2e514610439578063111485ef1461045e57806318af7021146104875780631a34fe81146104c05780631e4532f1146104e9578063223db31514610536578063253c8bd41461056357806327e235e31461059c57806328b8e9cf146105e957806329d98a7b146105fe5780632fbfe95114610621578063346f2eb714610644578063398f2648146106695780633ccfd60b1461068c5780633ec045a6146106a157806342263aa2146106f657806343abab261461072f578063590e1ae3146107895780636360fc3f1461079e578063678f7033146107cb578063689f2456146107ee5780636ad1fe02146108035780637036f9d91461085857806372a85604146108915780638a8b7e02146108ba5780638d521149146108e75780638da5cb5b146109145780639b19251a14610969578063a8644cd5146109ba578063c34dd141146109e3578063c42bb1e414610a0c578063ca4b208b14610a35578063d81494ba14610a8a578063ebc56eec14610ae4578063f2bee03d14610b09578063fc0c546a14610b42575b60008060025414806101f857506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561020357600080fd5b600760009054906101000a900460ff1615151561021f57600080fd5b600f60009054906101000a900460ff161561028d57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561028c57600080fd5b5b610298346064610b97565b90506102a6600c5482610bb2565b600c819055506102fe600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102f93484610bd0565b610bb2565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060015414806103935750600154600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b151561039e57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050005b341561042f57600080fd5b610437610be9565b005b341561044457600080fd5b61045c60048080351515906020019091905050610ef4565b005b341561046957600080fd5b610471610f6c565b6040518082815260200191505060405180910390f35b341561049257600080fd5b6104be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f72565b005b34156104cb57600080fd5b6104d361112b565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611131565b6040518082815260200191505060405180910390f35b341561054157600080fd5b610549611149565b604051808215151515815260200191505060405180910390f35b341561056e57600080fd5b61059a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115c565b005b34156105a757600080fd5b6105d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611220565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611238565b005b341561060957600080fd5b61061f600480803590602001909190505061152d565b005b341561062c57600080fd5b6106426004808035906020019091905050611592565b005b341561064f57600080fd5b610667600480803515159060200190919050506115f7565b005b341561067457600080fd5b61068a600480803590602001909190505061166f565b005b341561069757600080fd5b61069f6116e8565b005b34156106ac57600080fd5b6106b46119db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070157600080fd5b61072d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119f3565b005b341561073a57600080fd5b610787600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611ab8565b005b341561079457600080fd5b61079c611ba3565b005b34156107a957600080fd5b6107b1611d26565b604051808215151515815260200191505060405180910390f35b34156107d657600080fd5b6107ec6004808035906020019091905050611d39565b005b34156107f957600080fd5b610801611dae565b005b341561080e57600080fd5b610816611fd1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086357600080fd5b61088f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ff7565b005b341561089c57600080fd5b6108a461225e565b6040518082815260200191505060405180910390f35b34156108c557600080fd5b6108cd612264565b604051808215151515815260200191505060405180910390f35b34156108f257600080fd5b6108fa612277565b604051808215151515815260200191505060405180910390f35b341561091f57600080fd5b61092761228a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561097457600080fd5b6109a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122af565b604051808215151515815260200191505060405180910390f35b34156109c557600080fd5b6109cd6122cf565b6040518082815260200191505060405180910390f35b34156109ee57600080fd5b6109f66122d5565b6040518082815260200191505060405180910390f35b3415610a1757600080fd5b610a1f6122db565b6040518082815260200191505060405180910390f35b3415610a4057600080fd5b610a486122e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ae26004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506122f9565b005b3415610aef57600080fd5b610b07600480803515159060200190919050506123e4565b005b3415610b1457600080fd5b610b40600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061245c565b005b3415610b4d57600080fd5b610b55612521565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808284811515610ba557fe5b0490508091505092915050565b6000808284019050838110151515610bc657fe5b8091505092915050565b6000828211151515610bde57fe5b818303905092915050565b600080600760009054906101000a900460ff168015610c145750600a60009054906101000a900460ff165b1515610c1f57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610ce457600080fd5b6102c65a03f11515610cf557600080fd5b50505060405180519050915060008214151515610d1157600080fd5b610d65610d5d600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612547565b600954610b97565b9050610db2600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6009819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610eca57600080fd5b6102c65a03f11515610edb57600080fd5b505050604051805190501515610ef057600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4f57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fcf57600080fd5b600760009054906101000a900460ff16151515610feb57600080fd5b61103f611038600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546064612547565b6063610b97565b90506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e1600c546110dc836064610b97565b610bd0565b600c819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561112757600080fd5b5050565b60025481565b60056020528060005260406000206000915090505481565b600d60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156111dd57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129657600080fd5b6112ad6112a66003546064612547565b6063610b97565b3073ffffffffffffffffffffffffffffffffffffffff1631101515156112d257600080fd5b600760009054906101000a900460ff1615801561132857506000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561133357600080fd5b6001600760006101000a81548160ff02191690831515021790555061135b600c546006610b97565b915061136a600c54600c610b97565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6113bc6113b6600c5486610bd0565b84610bd0565b9081150290604051600060405180830381858888f1935050505015156113e157600080fd5b73ee06bddaffa56a303718de53a5bc347efbe4c68f73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561143557600080fd5b7363f7547ac277ea0b52a0b060be6af8c5904953aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561148957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16316008819055503073ffffffffffffffffffffffffffffffffffffffff1631600981905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f19350505050151561152957600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8060038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165257600080fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ca57600080fd5b6116df6116d8826064612547565b6063610b97565b60028190555050565b600080600760009054906101000a900460ff16151561170657600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156117cb57600080fd5b6102c65a03f115156117dc57600080fd5b505050604051805190509150600082141515156117f857600080fd5b61184c611844600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612547565b600854610b97565b9050611899600854600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6008819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119b157600080fd5b6102c65a03f115156119c257600080fd5b5050506040518051905015156119d757600080fd5b5050565b7363f7547ac277ea0b52a0b060be6af8c5904953aa81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4e57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611a7457600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1557600080fd5b600090505b8151811015611b9f576001600660008484815181101515611b3757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b1a565b5050565b6000600760009054906101000a900460ff16158015611bce5750600d60009054906101000a900460ff165b8015611bdc57506000600e54145b1515611be757600080fd5b611c3b611c34600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546064612547565b6063610b97565b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cdd600c54611cd8836064610b97565b610bd0565b600c819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d2357600080fd5b50565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9457600080fd5b60648111151515611da457600080fd5b80600e8190555050565b600080600d60009054906101000a900460ff168015611dcf57506000600e54115b1515611dda57600080fd5b611e2f611e28600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54612547565b6064610b97565b9150819050600760009054906101000a900460ff161515611e7e57611e5f611e58836064612547565b6063610b97565b9050611e77600c54611e72836064610b97565b610bd0565b600c819055505b611ec7600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611fcd57600080fd5b5050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561205557600080fd5b6000600e5411151561206657600080fd5b6120bb6120b4600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54612547565b6064610b97565b9150819050600760009054906101000a900460ff16151561210a576120eb6120e4836064612547565b6063610b97565b9050612103600c546120fe836064610b97565b610bd0565b600c819055505b612153600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561225957600080fd5b505050565b60035481565b600f60009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e5481565b60085481565b73ee06bddaffa56a303718de53a5bc347efbe4c68f81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235657600080fd5b600090505b81518110156123e057600060066000848481518110151561237857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061235b565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243f57600080fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156124dd57600080fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600084141561255c576000915061257b565b828402905082848281151561256d57fe5b0414151561257757fe5b8091505b50929150505600a165627a7a7230582095adaf20be73606ba6056e4a39a3b2d385d932cf582a0afd3262de5e0ab8af88002900000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6060604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630107a8df1461042457806310d2f2e514610439578063111485ef1461045e57806318af7021146104875780631a34fe81146104c05780631e4532f1146104e9578063223db31514610536578063253c8bd41461056357806327e235e31461059c57806328b8e9cf146105e957806329d98a7b146105fe5780632fbfe95114610621578063346f2eb714610644578063398f2648146106695780633ccfd60b1461068c5780633ec045a6146106a157806342263aa2146106f657806343abab261461072f578063590e1ae3146107895780636360fc3f1461079e578063678f7033146107cb578063689f2456146107ee5780636ad1fe02146108035780637036f9d91461085857806372a85604146108915780638a8b7e02146108ba5780638d521149146108e75780638da5cb5b146109145780639b19251a14610969578063a8644cd5146109ba578063c34dd141146109e3578063c42bb1e414610a0c578063ca4b208b14610a35578063d81494ba14610a8a578063ebc56eec14610ae4578063f2bee03d14610b09578063fc0c546a14610b42575b60008060025414806101f857506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561020357600080fd5b600760009054906101000a900460ff1615151561021f57600080fd5b600f60009054906101000a900460ff161561028d57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561028c57600080fd5b5b610298346064610b97565b90506102a6600c5482610bb2565b600c819055506102fe600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102f93484610bd0565b610bb2565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060015414806103935750600154600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b151561039e57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050005b341561042f57600080fd5b610437610be9565b005b341561044457600080fd5b61045c60048080351515906020019091905050610ef4565b005b341561046957600080fd5b610471610f6c565b6040518082815260200191505060405180910390f35b341561049257600080fd5b6104be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f72565b005b34156104cb57600080fd5b6104d361112b565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611131565b6040518082815260200191505060405180910390f35b341561054157600080fd5b610549611149565b604051808215151515815260200191505060405180910390f35b341561056e57600080fd5b61059a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115c565b005b34156105a757600080fd5b6105d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611220565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611238565b005b341561060957600080fd5b61061f600480803590602001909190505061152d565b005b341561062c57600080fd5b6106426004808035906020019091905050611592565b005b341561064f57600080fd5b610667600480803515159060200190919050506115f7565b005b341561067457600080fd5b61068a600480803590602001909190505061166f565b005b341561069757600080fd5b61069f6116e8565b005b34156106ac57600080fd5b6106b46119db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070157600080fd5b61072d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119f3565b005b341561073a57600080fd5b610787600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611ab8565b005b341561079457600080fd5b61079c611ba3565b005b34156107a957600080fd5b6107b1611d26565b604051808215151515815260200191505060405180910390f35b34156107d657600080fd5b6107ec6004808035906020019091905050611d39565b005b34156107f957600080fd5b610801611dae565b005b341561080e57600080fd5b610816611fd1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086357600080fd5b61088f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ff7565b005b341561089c57600080fd5b6108a461225e565b6040518082815260200191505060405180910390f35b34156108c557600080fd5b6108cd612264565b604051808215151515815260200191505060405180910390f35b34156108f257600080fd5b6108fa612277565b604051808215151515815260200191505060405180910390f35b341561091f57600080fd5b61092761228a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561097457600080fd5b6109a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122af565b604051808215151515815260200191505060405180910390f35b34156109c557600080fd5b6109cd6122cf565b6040518082815260200191505060405180910390f35b34156109ee57600080fd5b6109f66122d5565b6040518082815260200191505060405180910390f35b3415610a1757600080fd5b610a1f6122db565b6040518082815260200191505060405180910390f35b3415610a4057600080fd5b610a486122e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ae26004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506122f9565b005b3415610aef57600080fd5b610b07600480803515159060200190919050506123e4565b005b3415610b1457600080fd5b610b40600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061245c565b005b3415610b4d57600080fd5b610b55612521565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808284811515610ba557fe5b0490508091505092915050565b6000808284019050838110151515610bc657fe5b8091505092915050565b6000828211151515610bde57fe5b818303905092915050565b600080600760009054906101000a900460ff168015610c145750600a60009054906101000a900460ff165b1515610c1f57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610ce457600080fd5b6102c65a03f11515610cf557600080fd5b50505060405180519050915060008214151515610d1157600080fd5b610d65610d5d600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612547565b600954610b97565b9050610db2600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6009819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610eca57600080fd5b6102c65a03f11515610edb57600080fd5b505050604051805190501515610ef057600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4f57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fcf57600080fd5b600760009054906101000a900460ff16151515610feb57600080fd5b61103f611038600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546064612547565b6063610b97565b90506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e1600c546110dc836064610b97565b610bd0565b600c819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561112757600080fd5b5050565b60025481565b60056020528060005260406000206000915090505481565b600d60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156111dd57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129657600080fd5b6112ad6112a66003546064612547565b6063610b97565b3073ffffffffffffffffffffffffffffffffffffffff1631101515156112d257600080fd5b600760009054906101000a900460ff1615801561132857506000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561133357600080fd5b6001600760006101000a81548160ff02191690831515021790555061135b600c546006610b97565b915061136a600c54600c610b97565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6113bc6113b6600c5486610bd0565b84610bd0565b9081150290604051600060405180830381858888f1935050505015156113e157600080fd5b73ee06bddaffa56a303718de53a5bc347efbe4c68f73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561143557600080fd5b7363f7547ac277ea0b52a0b060be6af8c5904953aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561148957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16316008819055503073ffffffffffffffffffffffffffffffffffffffff1631600981905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f19350505050151561152957600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8060038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165257600080fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ca57600080fd5b6116df6116d8826064612547565b6063610b97565b60028190555050565b600080600760009054906101000a900460ff16151561170657600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156117cb57600080fd5b6102c65a03f115156117dc57600080fd5b505050604051805190509150600082141515156117f857600080fd5b61184c611844600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612547565b600854610b97565b9050611899600854600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6008819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119b157600080fd5b6102c65a03f115156119c257600080fd5b5050506040518051905015156119d757600080fd5b5050565b7363f7547ac277ea0b52a0b060be6af8c5904953aa81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4e57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611a7457600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1557600080fd5b600090505b8151811015611b9f576001600660008484815181101515611b3757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b1a565b5050565b6000600760009054906101000a900460ff16158015611bce5750600d60009054906101000a900460ff165b8015611bdc57506000600e54145b1515611be757600080fd5b611c3b611c34600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546064612547565b6063610b97565b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cdd600c54611cd8836064610b97565b610bd0565b600c819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d2357600080fd5b50565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9457600080fd5b60648111151515611da457600080fd5b80600e8190555050565b600080600d60009054906101000a900460ff168015611dcf57506000600e54115b1515611dda57600080fd5b611e2f611e28600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54612547565b6064610b97565b9150819050600760009054906101000a900460ff161515611e7e57611e5f611e58836064612547565b6063610b97565b9050611e77600c54611e72836064610b97565b610bd0565b600c819055505b611ec7600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611fcd57600080fd5b5050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561205557600080fd5b6000600e5411151561206657600080fd5b6120bb6120b4600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54612547565b6064610b97565b9150819050600760009054906101000a900460ff16151561210a576120eb6120e4836064612547565b6063610b97565b9050612103600c546120fe836064610b97565b610bd0565b600c819055505b612153600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561225957600080fd5b505050565b60035481565b600f60009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e5481565b60085481565b73ee06bddaffa56a303718de53a5bc347efbe4c68f81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235657600080fd5b600090505b81518110156123e057600060066000848481518110151561237857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061235b565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243f57600080fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156124dd57600080fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600084141561255c576000915061257b565b828402905082848281151561256d57fe5b0414151561257757fe5b8091505b50929150505600a165627a7a7230582095adaf20be73606ba6056e4a39a3b2d385d932cf582a0afd3262de5e0ab8af880029

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

00000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : max (uint256): 2000000000000000000000
Arg [1] : min (uint256): 0
Arg [2] : cap (uint256): 0

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://95adaf20be73606ba6056e4a39a3b2d385d932cf582a0afd3262de5e0ab8af88

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  ]
[ 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.