ETH Price: $3,248.63 (-2.75%)

Contract

0x268b7976e94e84a48bf8B2B57Ba34b59eD836A74
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204309342024-08-01 3:13:11103 days ago1722481991IN
0x268b7976...9eD836A74
0 ETH0.00025865.617131
Transfer204309262024-08-01 3:11:35104 days ago1722481895IN
0x268b7976...9eD836A74
0 ETH0.00125186.55204138
Approve198925942024-05-17 22:13:59179 days ago1715984039IN
0x268b7976...9eD836A74
0 ETH0.000142763.10424305
Approve198424852024-05-10 22:00:59186 days ago1715378459IN
0x268b7976...9eD836A74
0 ETH0.000273965.90925284
Approve193515392024-03-03 2:04:23255 days ago1709431463IN
0x268b7976...9eD836A74
0 ETH0.0019881442.88309515
Approve187108842023-12-04 5:21:35344 days ago1701667295IN
0x268b7976...9eD836A74
0 ETH0.0009145638.04028752
Approve181178612023-09-12 4:25:23427 days ago1694492723IN
0x268b7976...9eD836A74
0 ETH0.000437499.44391312
Approve178787402023-08-09 17:10:11461 days ago1691601011IN
0x268b7976...9eD836A74
0 ETH0.0021078445.79683036
Approve178573102023-08-06 17:09:23464 days ago1691341763IN
0x268b7976...9eD836A74
0 ETH0.000867118.8345462
Approve175269142023-06-21 8:41:23510 days ago1687336883IN
0x268b7976...9eD836A74
0 ETH0.0007045915.19771269
Approve174458102023-06-09 23:05:35522 days ago1686351935IN
0x268b7976...9eD836A74
0 ETH0.000913619.70598632
Approve170768442023-04-18 23:35:23574 days ago1681860923IN
0x268b7976...9eD836A74
0 ETH0.0030943666.74348179
Transfer170486382023-04-14 23:32:35578 days ago1681515155IN
0x268b7976...9eD836A74
0 ETH0.0049464825.88862374
Approve155747822022-09-20 12:46:47784 days ago1663678007IN
0x268b7976...9eD836A74
0 ETH0.000311086.70989108
Transfer155747232022-09-20 12:34:59784 days ago1663677299IN
0x268b7976...9eD836A74
0 ETH0.001777519.07617214
Transfer149226782022-06-07 19:56:10889 days ago1654631770IN
0x268b7976...9eD836A74
0 ETH0.0138145870.53006102
Transfer146841092022-04-30 6:52:39927 days ago1651301559IN
0x268b7976...9eD836A74
0 ETH0.0070781836.13972392
Approve146387132022-04-23 3:31:20934 days ago1650684680IN
0x268b7976...9eD836A74
0 ETH0.0017549237.85258538
Transfer146350962022-04-22 14:01:45935 days ago1650636105IN
0x268b7976...9eD836A74
0 ETH0.0032621617.0754383
Transfer145322042022-04-06 11:53:54951 days ago1649246034IN
0x268b7976...9eD836A74
0 ETH0.0058231129.73162519
Approve145191432022-04-04 11:02:15953 days ago1649070135IN
0x268b7976...9eD836A74
0 ETH0.0022767349.107781
Approve145190252022-04-04 10:35:40953 days ago1649068540IN
0x268b7976...9eD836A74
0 ETH0.0016014834.54300909
Transfer143592872022-03-10 13:17:40978 days ago1646918260IN
0x268b7976...9eD836A74
0 ETH0.0096023755.2
Transfer143592672022-03-10 13:12:44978 days ago1646917964IN
0x268b7976...9eD836A74
0 ETH0.0090178447.2
Approve142093082022-02-15 7:08:051001 days ago1644908885IN
0x268b7976...9eD836A74
0 ETH0.0021246745.82789114
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:
AICoin

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.11;

/*******************************************************************************
 * ERC Token Standard #20 Interface
 * https://github.com/ethereum/EIPs/issues/20
 *******************************************************************************/
contract ERC20Interface {
  // Get the total token supply
  function totalSupply() constant returns (uint256 totalSupply);

  // Get the account balance of another account with address _owner
  function balanceOf(address _owner) constant returns (uint256 balance);

  // Send _value amount of tokens to address _to
  function transfer(address _to, uint256 _value) returns (bool success);

  // Send _value amount of tokens from address _from to address _to
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success);

  // Allow _spender to withdraw from your account, multiple times, up to the _value amount.
  // If this function is called again it overwrites the current allowance with _value.
  // this function is required for some DEX functionality.
  function approve(address _spender, uint256 _value) returns (bool success);

  // Returns the amount which _spender is still allowed to withdraw from _owner
  function allowance(address _owner, address _spender) constant returns (uint256 remaining);

  // Triggered when tokens are transferred.
  event Transfer(address indexed _from, address indexed _to, uint256 _value);

  // Triggered whenever approve(address _spender, uint256 _value) is called.
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/*******************************************************************************
 * AICoin - Smart Contract with token and ballot handling
 *******************************************************************************/
contract AICoin is ERC20Interface {

  /* ******************************
   * COIN data / functions
   * ******************************/

  /* Token constants */
  string public constant name = 'AICoin';
  string public constant symbol = 'XAI';
  uint8 public constant decimals = 8;
  string public constant smallestUnit = 'Hofstadter';

  /* Token internal data */
  address m_administrator;
  uint256 m_totalSupply;

  /* Current balances for each account */
  mapping(address => uint256) balances;

  /* Account holder approves the transfer of an amount to another account */
  mapping(address => mapping (address => uint256)) allowed;

  /* One-time create function: initialize the supply and set the admin address */
  function AICoin (uint256 _initialSupply) {
    m_administrator = msg.sender;
    m_totalSupply = _initialSupply;
    balances[msg.sender] = _initialSupply;
  }

  /* Get the admin address */
  function administrator() constant returns (address adminAddress) {
    return m_administrator;
  }

  /* Get the total coin supply */
  function totalSupply() constant returns (uint256 totalSupply) {
    return m_totalSupply;
  }

  /* Get the balance of a specific account by its address */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

  /* Transfer an amount from the owner's account to an indicated account */
  function transfer(address _to, uint256 _amount) returns (bool success) {
    if (balances[msg.sender] >= _amount
        && _amount > 0
        && balances[_to] + _amount > balances[_to]
        && (! accountHasCurrentVote(msg.sender))) {
      balances[msg.sender] -= _amount;
      balances[_to] += _amount;
      Transfer(msg.sender, _to, _amount);
      return true;
    } else {
      return false;
    }
  }

  /* Send _value amount of tokens from address _from to address _to
   * The transferFrom method is used for a withdraw workflow, allowing contracts to send
   * tokens on your behalf, for example to "deposit" to a contract address and/or to charge
   * fees in sub-currencies; the command should fail unless the _from account has
   * deliberately authorized the sender of the message via some mechanism; we propose
   * these standardized APIs for approval:
   */
  function transferFrom(address _from, address _to, uint256 _amount) returns (bool success) {
    if (balances[_from] >= _amount
        && allowed[_from][msg.sender] >= _amount
        && _amount > 0
        && balances[_to] + _amount > balances[_to]
        && (! accountHasCurrentVote(_from))) {
      balances[_from] -= _amount;
      allowed[_from][msg.sender] -= _amount;
      balances[_to] += _amount;
      Transfer(_from, _to, _amount);
      return true;
    } else {
      return false;
    }
  }

  /* Pre-authorize an address to withdraw from your account, up to the _value amount.
   * Doing so (using transferFrom) reduces the remaining authorized amount,
   * as well as the actual account balance)
   * Subsequent calls to this function overwrite any existing authorized amount.
   * Therefore, to cancel an authorization, simply write a zero amount.
   */
  function approve(address _spender, uint256 _amount) returns (bool success) {
    allowed[msg.sender][_spender] = _amount;
    Approval(msg.sender, _spender, _amount);
    return true;
  }

  /* Get the currently authorized that can be withdrawn by account _spender from account _owner */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /* ******************************
   * BALLOT data / functions
   * ******************************/

  /* Dev Note: creating a struct that contained a string, uint values and
   * an array of option structs, etc, would consistently fail.
   * So the ballot details are held in separate mappings with a common integer
   * key for each ballot. The IDs are 1-indexed, sequential and contiguous.
   */

  /* Basic ballot details: time frame and number of options */
  struct BallotDetails {
    uint256 start;
    uint256 end;
    uint32 numOptions; // 1-indexed for readability
    bool sealed;
  }

  uint32 public numBallots = 0; // 1-indexed for readability
  mapping (uint32 => string) public ballotNames;
  mapping (uint32 => BallotDetails) public ballotDetails;
  mapping (uint32 => mapping (uint32 => string) ) public ballotOptions;

  /* Create a new ballot and set the basic details (proposal description, dates)
   * The ballot still need to have options added and then to be sealed
   */
  function adminAddBallot(string _proposal, uint256 _start, uint256 _end) {

    /* Admin functions must be called by the contract creator. */
    require(msg.sender == m_administrator);

    /* Create and store the new ballot objects */
    numBallots++;
    uint32 ballotId = numBallots;
    ballotNames[ballotId] = _proposal;
    ballotDetails[ballotId] = BallotDetails(_start, _end, 0, false);
  }

  /* Create a new ballot and set the basic details (proposal description, dates)
   * The ballot still need to have options added and then to be sealed
   */
  function adminAmendBallot(uint32 _ballotId, string _proposal, uint256 _start, uint256 _end) {

    /* Admin functions must be called by the contract creator. */
    require(msg.sender == m_administrator);

    /* verify that the ballot exists */
    require(_ballotId > 0 && _ballotId <= numBallots);

    /* update the ballot object */
    ballotNames[_ballotId] = _proposal;
    ballotDetails[_ballotId].start = _start;
    ballotDetails[_ballotId].end = _end;
  }

  /* Add an option to an existing Ballot
   */
  function adminAddBallotOption(uint32 _ballotId, string _option) {

    /* Admin functions must be called by the contract creator. */
    require(msg.sender == m_administrator);

    /* verify that the ballot exists */
    require(_ballotId > 0 && _ballotId <= numBallots);

    /* cannot change a ballot once it is sealed */
    if(isBallotSealed(_ballotId)) {
      revert();
    }

    /* store the new ballot option */
    ballotDetails[_ballotId].numOptions += 1;
    uint32 optionId = ballotDetails[_ballotId].numOptions;
    ballotOptions[_ballotId][optionId] = _option;
  }

  /* Amend and option in an existing Ballot
   */
  function adminEditBallotOption(uint32 _ballotId, uint32 _optionId, string _option) {

    /* Admin functions must be called by the contract creator. */
    require(msg.sender == m_administrator);

    /* verify that the ballot exists */
    require(_ballotId > 0 && _ballotId <= numBallots);

    /* cannot change a ballot once it is sealed */
    if(isBallotSealed(_ballotId)) {
      revert();
    }

    /* validate the ballot option */
    require(_optionId > 0 && _optionId <= ballotDetails[_ballotId].numOptions);

    /* update the ballot option */
    ballotOptions[_ballotId][_optionId] = _option;
  }

  /* Seal a ballot - after this the ballot is official and no changes can be made.
   */
  function adminSealBallot(uint32 _ballotId) {

    /* Admin functions must be called by the contract creator. */
    require(msg.sender == m_administrator);

    /* verify that the ballot exists */
    require(_ballotId > 0 && _ballotId <= numBallots);

    /* cannot change a ballot once it is sealed */
    if(isBallotSealed(_ballotId)) {
      revert();
    }

    /* set the ballot seal flag */
    ballotDetails[_ballotId].sealed = true;
  }

  /* Function to determine if a ballot is currently in progress, based on its
   * start and end dates, and that it has been sealed.
   */
  function isBallotInProgress(uint32 _ballotId) private constant returns (bool) {
    return (isBallotSealed(_ballotId)
            && ballotDetails[_ballotId].start <= now
            && ballotDetails[_ballotId].end >= now);
  }

  /* Function to determine if a ballot has ended, based on its end date */
  function hasBallotEnded(uint32 _ballotId) private constant returns (bool) {
    return (ballotDetails[_ballotId].end < now);
  }

  /* Function to determine if a ballot has been sealed, which means it has been
   * authorized by the administrator and can no longer be changed.
   */
  function isBallotSealed(uint32 _ballotId) private returns (bool) {
    return ballotDetails[_ballotId].sealed;
  }

  /* ******************************
   * VOTING data / functions
   * ******************************/

  mapping (uint32 => mapping (address => uint256) ) public ballotVoters;
  mapping (uint32 => mapping (uint32 => uint256) ) public ballotVoteCount;

  /* function to allow a coin holder add to the vote count of an option in an
   * active ballot. The votes added equals the balance of the account. Once this is called successfully
   * the coins cannot be transferred out of the account until the end of the ballot.
   *
   * NB: The timing of the start and end of the voting period is determined by
   * the timestamp of the block in which the transaction is included. As given by
   * the current Ethereum standard this is *NOT* guaranteed to be accurate to any
   * given external time source. Therefore, votes should be placed well in advance
   * of the UTC end time of the Ballot.
   */
  function vote(uint32 _ballotId, uint32 _selectedOptionId) {

    /* verify that the ballot exists */
    require(_ballotId > 0 && _ballotId <= numBallots);

    /* Ballot must be in progress in order to vote */
    require(isBallotInProgress(_ballotId));

    /* Calculate the balance which which the coin holder has not yet voted, which is the difference between
     * the current balance for the senders address and the amount they already voted in this ballot.
     * If the difference is zero, this attempt to vote will fail.
     */
    uint256 votableBalance = balanceOf(msg.sender) - ballotVoters[_ballotId][msg.sender];
    require(votableBalance > 0);

    /* validate the ballot option */
    require(_selectedOptionId > 0 && _selectedOptionId <= ballotDetails[_ballotId].numOptions);

    /* update the vote count and record the voter */
    ballotVoteCount[_ballotId][_selectedOptionId] += votableBalance;
    ballotVoters[_ballotId][msg.sender] += votableBalance;
  }

  /* function to determine if an address has already voted in a given ballot */
  function hasAddressVotedInBallot(uint32 _ballotId, address _voter) constant returns (bool hasVoted) {
    return ballotVoters[_ballotId][_voter] > 0;
  }

  /* function to determine if an account has voted in any current ballot */
  function accountHasCurrentVote(address _voter) constant returns (bool) {
    for(uint32 id = 1; id <= numBallots; id++) {
      if (isBallotInProgress(id) && hasAddressVotedInBallot(id, _voter)) {
        return true;
      }
    }
    return false;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ballotId","type":"uint32"}],"name":"adminSealBallot","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numBallots","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"ballotVoters","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proposal","type":"string"},{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"}],"name":"adminAddBallot","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ballotId","type":"uint32"},{"name":"_optionId","type":"uint32"},{"name":"_option","type":"string"}],"name":"adminEditBallotOption","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"smallestUnit","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"ballotNames","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_voter","type":"address"}],"name":"accountHasCurrentVote","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ballotId","type":"uint32"},{"name":"_option","type":"string"}],"name":"adminAddBallotOption","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint32"}],"name":"ballotOptions","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_ballotId","type":"uint32"},{"name":"_voter","type":"address"}],"name":"hasAddressVotedInBallot","outputs":[{"name":"hasVoted","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"ballotDetails","outputs":[{"name":"start","type":"uint256"},{"name":"end","type":"uint256"},{"name":"numOptions","type":"uint32"},{"name":"sealed","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ballotId","type":"uint32"},{"name":"_selectedOptionId","type":"uint32"}],"name":"vote","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ballotId","type":"uint32"},{"name":"_proposal","type":"string"},{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"}],"name":"adminAmendBallot","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint32"}],"name":"ballotVoteCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"administrator","outputs":[{"name":"adminAddress","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000600460006101000a81548163ffffffff021916908363ffffffff160217905550341561002e57fe5b6040516020806120bb833981016040528080519060200190919050505b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b611fd2806100e96000396000f30060606040523615610147576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610149578063095ea7b3146101e257806318160ddd1461023957806323b872dd1461025f5780632db78d88146102d5578063313ce567146102fb5780634beb031b1461032757806351b9a2f81461035957806362ec8e53146103b257806364445d9e1461041e57806370a08231146104965780637c858e02146104e057806380f89a31146105795780638e4fa7881461062657806395d89b4114610674578063a9059cbb1461070d578063a95bfd3614610764578063b5e989c7146107cd578063ba9a4d6e14610889578063cdc62d39146108e6578063cff9293a14610945578063dd62ed3e1461097a578063dda0c1d6146109e3578063e927ea7a14610a5e578063f53d0a8e14610aa7575bfe5b341561015157fe5b610159610af9565b60405180806020018281038252838181518152602001915080519060200190808383600083146101a8575b8051825260208311156101a857602082019150602081019050602083039250610184565b505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ea57fe5b61021f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b33565b604051808215151515815260200191505060405180910390f35b341561024157fe5b610249610c26565b6040518082815260200191505060405180910390f35b341561026757fe5b6102bb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c31565b604051808215151515815260200191505060405180910390f35b34156102dd57fe5b6102f9600480803563ffffffff16906020019091905050610f4f565b005b341561030357fe5b61030b61103f565b604051808260ff1660ff16815260200191505060405180910390f35b341561032f57fe5b610337611044565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561036157fe5b61039c600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061105a565b6040518082815260200191505060405180910390f35b34156103ba57fe5b61041c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190505061107f565b005b341561042657fe5b610494600480803563ffffffff1690602001909190803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611212565b005b341561049e57fe5b6104ca600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061137a565b6040518082815260200191505060405180910390f35b34156104e857fe5b6104f06113c4565b604051808060200182810382528381815181526020019150805190602001908083836000831461053f575b80518252602083111561053f5760208201915060208101905060208303925061051b565b505050905090810190601f16801561056b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561058157fe5b61059d600480803563ffffffff169060200190919050506113fe565b60405180806020018281038252838181518152602001915080519060200190808383600083146105ec575b8051825260208311156105ec576020820191506020810190506020830392506105c8565b505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561062e57fe5b61065a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114ae565b604051808215151515815260200191505060405180910390f35b341561067c57fe5b610684611520565b60405180806020018281038252838181518152602001915080519060200190808383600083146106d3575b8051825260208311156106d3576020820191506020810190506020830392506106af565b505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561071557fe5b61074a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061155a565b604051808215151515815260200191505060405180910390f35b341561076c57fe5b6107cb600480803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611765565b005b34156107d557fe5b610800600480803563ffffffff1690602001909190803563ffffffff169060200190919050506118fb565b604051808060200182810382528381815181526020019150805190602001908083836000831461084f575b80518252602083111561084f5760208201915060208101905060208303925061082b565b505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561089157fe5b6108cc600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119b8565b604051808215151515815260200191505060405180910390f35b34156108ee57fe5b61090a600480803563ffffffff16906020019091905050611a23565b604051808581526020018481526020018363ffffffff1663ffffffff1681526020018215151515815260200194505050505060405180910390f35b341561094d57fe5b610978600480803563ffffffff1690602001909190803563ffffffff16906020019091905050611a70565b005b341561098257fe5b6109cd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c5a565b6040518082815260200191505060405180910390f35b34156109eb57fe5b610a5c600480803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091905050611ce2565b005b3415610a6657fe5b610a91600480803563ffffffff1690602001909190803563ffffffff16906020019091905050611e08565b6040518082815260200191505060405180910390f35b3415610aaf57fe5b610ab7611e2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b604060405190810160405280600681526020017f4149436f696e000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b600060015490505b90565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610cfe575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015610d0a5750600082115b8015610d955750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b8015610da75750610da5846114ae565b155b15610f3e5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610f48565b60009050610f48565b5b9392505050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fac5760006000fd5b60008163ffffffff16118015610fe05750600460009054906101000a900463ffffffff1663ffffffff168163ffffffff1611155b1515610fec5760006000fd5b610ff581611e58565b156110005760006000fd5b6001600660008363ffffffff1663ffffffff16815260200190815260200160002060020160046101000a81548160ff0219169083151502179055505b50565b600881565b600460009054906101000a900463ffffffff1681565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110de5760006000fd5b6004600081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555050600460009054906101000a900463ffffffff16905083600560008363ffffffff1663ffffffff1681526020019081526020016000209080519060200190611161929190611f01565b50608060405190810160405280848152602001838152602001600063ffffffff16815260200160001515815250600660008363ffffffff1663ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548163ffffffff021916908363ffffffff16021790555060608201518160020160046101000a81548160ff0219169083151502179055509050505b50505050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126f5760006000fd5b60008363ffffffff161180156112a35750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b15156112af5760006000fd5b6112b883611e58565b156112c35760006000fd5b60008263ffffffff161180156113175750600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff168263ffffffff1611155b15156113235760006000fd5b80600760008563ffffffff1663ffffffff16815260200190815260200160002060008463ffffffff1663ffffffff1681526020019081526020016000209080519060200190611373929190611f01565b505b505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b604060405190810160405280600a81526020017f486f66737461647465720000000000000000000000000000000000000000000081525081565b60056020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114a65780601f1061147b576101008083540402835291602001916114a6565b820191906000526020600020905b81548152906001019060200180831161148957829003601f168201915b505050505081565b60006000600190505b600460009054906101000a900463ffffffff1663ffffffff168163ffffffff16111515611515576114e781611e92565b80156114f957506114f881846119b8565b5b15611507576001915061151a565b5b80806001019150506114b7565b600091505b50919050565b604060405190810160405280600381526020017f584149000000000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156115ab5750600082115b80156116365750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b80156116485750611646336114ae565b155b156117555781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061175f565b6000905061175f565b5b92915050565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117c45760006000fd5b60008363ffffffff161180156117f85750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b15156118045760006000fd5b61180d83611e58565b156118185760006000fd5b6001600660008563ffffffff1663ffffffff16815260200190815260200160002060020160008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff160217905550600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff16905081600760008563ffffffff1663ffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002090805190602001906118f4929190611f01565b505b505050565b6007602052816000526040600020602052806000526040600020600091509150508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119b05780601f10611985576101008083540402835291602001916119b0565b820191906000526020600020905b81548152906001019060200180831161199357829003601f168201915b505050505081565b60006000600860008563ffffffff1663ffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541190505b92915050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900463ffffffff16908060020160049054906101000a900460ff16905084565b600060008363ffffffff16118015611aa65750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b1515611ab25760006000fd5b611abb83611e92565b1515611ac75760006000fd5b600860008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2d3361137a565b039050600081111515611b405760006000fd5b60008263ffffffff16118015611b945750600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff168263ffffffff1611155b1515611ba05760006000fd5b80600960008563ffffffff1663ffffffff16815260200190815260200160002060008463ffffffff1663ffffffff1681526020019081526020016000206000828254019250508190555080600860008563ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d3f5760006000fd5b60008463ffffffff16118015611d735750600460009054906101000a900463ffffffff1663ffffffff168463ffffffff1611155b1515611d7f5760006000fd5b82600560008663ffffffff1663ffffffff1681526020019081526020016000209080519060200190611db2929190611f01565b5081600660008663ffffffff1663ffffffff1681526020019081526020016000206000018190555080600660008663ffffffff1663ffffffff168152602001908152602001600020600101819055505b50505050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b6000600660008363ffffffff1663ffffffff16815260200190815260200160002060020160049054906101000a900460ff1690505b919050565b6000611e9d82611e58565b8015611ecb575042600660008463ffffffff1663ffffffff1681526020019081526020016000206000015411155b8015611ef9575042600660008463ffffffff1663ffffffff1681526020019081526020016000206001015410155b90505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f4257805160ff1916838001178555611f70565b82800160010185558215611f70579182015b82811115611f6f578251825591602001919060010190611f54565b5b509050611f7d9190611f81565b5090565b611fa391905b80821115611f9f576000816000905550600101611f87565b5090565b905600a165627a7a723058202ddfb56690bcb419a0e6e5929f5558b1cdc4df000de325a956fa787217bb60630029000000000000000000000000000000000000000000000000001b751d3558960c

Deployed Bytecode

0x60606040523615610147576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610149578063095ea7b3146101e257806318160ddd1461023957806323b872dd1461025f5780632db78d88146102d5578063313ce567146102fb5780634beb031b1461032757806351b9a2f81461035957806362ec8e53146103b257806364445d9e1461041e57806370a08231146104965780637c858e02146104e057806380f89a31146105795780638e4fa7881461062657806395d89b4114610674578063a9059cbb1461070d578063a95bfd3614610764578063b5e989c7146107cd578063ba9a4d6e14610889578063cdc62d39146108e6578063cff9293a14610945578063dd62ed3e1461097a578063dda0c1d6146109e3578063e927ea7a14610a5e578063f53d0a8e14610aa7575bfe5b341561015157fe5b610159610af9565b60405180806020018281038252838181518152602001915080519060200190808383600083146101a8575b8051825260208311156101a857602082019150602081019050602083039250610184565b505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ea57fe5b61021f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b33565b604051808215151515815260200191505060405180910390f35b341561024157fe5b610249610c26565b6040518082815260200191505060405180910390f35b341561026757fe5b6102bb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c31565b604051808215151515815260200191505060405180910390f35b34156102dd57fe5b6102f9600480803563ffffffff16906020019091905050610f4f565b005b341561030357fe5b61030b61103f565b604051808260ff1660ff16815260200191505060405180910390f35b341561032f57fe5b610337611044565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561036157fe5b61039c600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061105a565b6040518082815260200191505060405180910390f35b34156103ba57fe5b61041c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190505061107f565b005b341561042657fe5b610494600480803563ffffffff1690602001909190803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611212565b005b341561049e57fe5b6104ca600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061137a565b6040518082815260200191505060405180910390f35b34156104e857fe5b6104f06113c4565b604051808060200182810382528381815181526020019150805190602001908083836000831461053f575b80518252602083111561053f5760208201915060208101905060208303925061051b565b505050905090810190601f16801561056b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561058157fe5b61059d600480803563ffffffff169060200190919050506113fe565b60405180806020018281038252838181518152602001915080519060200190808383600083146105ec575b8051825260208311156105ec576020820191506020810190506020830392506105c8565b505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561062e57fe5b61065a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114ae565b604051808215151515815260200191505060405180910390f35b341561067c57fe5b610684611520565b60405180806020018281038252838181518152602001915080519060200190808383600083146106d3575b8051825260208311156106d3576020820191506020810190506020830392506106af565b505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561071557fe5b61074a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061155a565b604051808215151515815260200191505060405180910390f35b341561076c57fe5b6107cb600480803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611765565b005b34156107d557fe5b610800600480803563ffffffff1690602001909190803563ffffffff169060200190919050506118fb565b604051808060200182810382528381815181526020019150805190602001908083836000831461084f575b80518252602083111561084f5760208201915060208101905060208303925061082b565b505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561089157fe5b6108cc600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119b8565b604051808215151515815260200191505060405180910390f35b34156108ee57fe5b61090a600480803563ffffffff16906020019091905050611a23565b604051808581526020018481526020018363ffffffff1663ffffffff1681526020018215151515815260200194505050505060405180910390f35b341561094d57fe5b610978600480803563ffffffff1690602001909190803563ffffffff16906020019091905050611a70565b005b341561098257fe5b6109cd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c5a565b6040518082815260200191505060405180910390f35b34156109eb57fe5b610a5c600480803563ffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091905050611ce2565b005b3415610a6657fe5b610a91600480803563ffffffff1690602001909190803563ffffffff16906020019091905050611e08565b6040518082815260200191505060405180910390f35b3415610aaf57fe5b610ab7611e2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b604060405190810160405280600681526020017f4149436f696e000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b600060015490505b90565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610cfe575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015610d0a5750600082115b8015610d955750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b8015610da75750610da5846114ae565b155b15610f3e5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610f48565b60009050610f48565b5b9392505050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fac5760006000fd5b60008163ffffffff16118015610fe05750600460009054906101000a900463ffffffff1663ffffffff168163ffffffff1611155b1515610fec5760006000fd5b610ff581611e58565b156110005760006000fd5b6001600660008363ffffffff1663ffffffff16815260200190815260200160002060020160046101000a81548160ff0219169083151502179055505b50565b600881565b600460009054906101000a900463ffffffff1681565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110de5760006000fd5b6004600081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555050600460009054906101000a900463ffffffff16905083600560008363ffffffff1663ffffffff1681526020019081526020016000209080519060200190611161929190611f01565b50608060405190810160405280848152602001838152602001600063ffffffff16815260200160001515815250600660008363ffffffff1663ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548163ffffffff021916908363ffffffff16021790555060608201518160020160046101000a81548160ff0219169083151502179055509050505b50505050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126f5760006000fd5b60008363ffffffff161180156112a35750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b15156112af5760006000fd5b6112b883611e58565b156112c35760006000fd5b60008263ffffffff161180156113175750600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff168263ffffffff1611155b15156113235760006000fd5b80600760008563ffffffff1663ffffffff16815260200190815260200160002060008463ffffffff1663ffffffff1681526020019081526020016000209080519060200190611373929190611f01565b505b505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b604060405190810160405280600a81526020017f486f66737461647465720000000000000000000000000000000000000000000081525081565b60056020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114a65780601f1061147b576101008083540402835291602001916114a6565b820191906000526020600020905b81548152906001019060200180831161148957829003601f168201915b505050505081565b60006000600190505b600460009054906101000a900463ffffffff1663ffffffff168163ffffffff16111515611515576114e781611e92565b80156114f957506114f881846119b8565b5b15611507576001915061151a565b5b80806001019150506114b7565b600091505b50919050565b604060405190810160405280600381526020017f584149000000000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156115ab5750600082115b80156116365750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b80156116485750611646336114ae565b155b156117555781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061175f565b6000905061175f565b5b92915050565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117c45760006000fd5b60008363ffffffff161180156117f85750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b15156118045760006000fd5b61180d83611e58565b156118185760006000fd5b6001600660008563ffffffff1663ffffffff16815260200190815260200160002060020160008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff160217905550600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff16905081600760008563ffffffff1663ffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002090805190602001906118f4929190611f01565b505b505050565b6007602052816000526040600020602052806000526040600020600091509150508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119b05780601f10611985576101008083540402835291602001916119b0565b820191906000526020600020905b81548152906001019060200180831161199357829003601f168201915b505050505081565b60006000600860008563ffffffff1663ffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541190505b92915050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900463ffffffff16908060020160049054906101000a900460ff16905084565b600060008363ffffffff16118015611aa65750600460009054906101000a900463ffffffff1663ffffffff168363ffffffff1611155b1515611ab25760006000fd5b611abb83611e92565b1515611ac75760006000fd5b600860008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2d3361137a565b039050600081111515611b405760006000fd5b60008263ffffffff16118015611b945750600660008463ffffffff1663ffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff168263ffffffff1611155b1515611ba05760006000fd5b80600960008563ffffffff1663ffffffff16815260200190815260200160002060008463ffffffff1663ffffffff1681526020019081526020016000206000828254019250508190555080600860008563ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d3f5760006000fd5b60008463ffffffff16118015611d735750600460009054906101000a900463ffffffff1663ffffffff168463ffffffff1611155b1515611d7f5760006000fd5b82600560008663ffffffff1663ffffffff1681526020019081526020016000209080519060200190611db2929190611f01565b5081600660008663ffffffff1663ffffffff1681526020019081526020016000206000018190555080600660008663ffffffff1663ffffffff168152602001908152602001600020600101819055505b50505050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b6000600660008363ffffffff1663ffffffff16815260200190815260200160002060020160049054906101000a900460ff1690505b919050565b6000611e9d82611e58565b8015611ecb575042600660008463ffffffff1663ffffffff1681526020019081526020016000206000015411155b8015611ef9575042600660008463ffffffff1663ffffffff1681526020019081526020016000206001015410155b90505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f4257805160ff1916838001178555611f70565b82800160010185558215611f70579182015b82811115611f6f578251825591602001919060010190611f54565b5b509050611f7d9190611f81565b5090565b611fa391905b80821115611f9f576000816000905550600101611f87565b5090565b905600a165627a7a723058202ddfb56690bcb419a0e6e5929f5558b1cdc4df000de325a956fa787217bb60630029

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

000000000000000000000000000000000000000000000000001b751d3558960c

-----Decoded View---------------
Arg [0] : _initialSupply (uint256): 7728592680687116

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000001b751d3558960c


Swarm Source

bzzr://2ddfb56690bcb419a0e6e5929f5558b1cdc4df000de325a956fa787217bb6063

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.