ETH Price: $2,886.61 (-4.74%)
Gas: 2 Gwei

Token

AICoin (XAI)
 

Overview

Max Total Supply

77,285,926.80687116 XAI

Holders

1,408

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

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

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.