ETH Price: $3,098.17 (-1.08%)

Token

DeepToken (DTA)
 

Overview

Max Total Supply

15,297,501.611740058444298062 DTA

Holders

4,826

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4 DTA

Value
$0.00
0xbFeE05287dC6C678C4d2A4E827CBB41534d88864
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:
DeepToken

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-28
*/

pragma solidity ^0.4.11;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

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

  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}



/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}



/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}



/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }

}



/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    uint256 _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue)
    returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue)
    returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}



contract DeepToken is StandardToken {

    using SafeMath for uint256;

    // data structures
    enum States {
    Initial, // deployment time
    ValuationSet, // set ICO parameters
    Ico, // whitelist addresses, accept funds, update balances
    Operational, // manage contests
    Paused // for contract upgrades
    }

    string public constant name = "DeepToken";

    string public constant symbol = "DTA";

    uint8 public constant decimals = 18;

    uint256 public constant pointMultiplier = (10 ** uint256(decimals));

    mapping (address => bool) public whitelist;

    address public initialHolder;

    address public stateControl;

    address public whitelistControl;

    address public withdrawControl;

    address public usdCurrencyFunding;

    States public state;

    uint256 public tokenPriceInWei;

    uint256 public percentForSale;

    uint256 public totalNumberOfTokensForSale;

    uint256 public silencePeriod;

    uint256 public startAcceptingFundsBlock;

    uint256 public endBlock;

    uint256 public etherBalance;

    uint256 public usdCentsBalance;

    uint256 public tokensSold;

    //this creates the contract and stores the owner. it also passes in 3 addresses to be used later during the lifetime of the contract.
    function DeepToken(address _stateControl, address _whitelistControl, address _withdraw, address _initialHolder, address _usdCurrencyFunding) {
        require (_initialHolder != address(0));
        require (_stateControl != address(0));
        require (_whitelistControl != address(0));
        require (_withdraw != address(0));
        require (_usdCurrencyFunding != address(0));
        initialHolder = _initialHolder;
        stateControl = _stateControl;
        whitelistControl = _whitelistControl;
        withdrawControl = _withdraw;
        usdCurrencyFunding = _usdCurrencyFunding;
        moveToState(States.Initial);
        totalSupply = 0;
        tokenPriceInWei = 0;
        percentForSale = 0;
        totalNumberOfTokensForSale = 0;
        silencePeriod = 0;
        startAcceptingFundsBlock = uint256(int256(-1));
        endBlock = 0;
        etherBalance = 0;
        usdCentsBalance = 0;
        tokensSold = 0;
        balances[initialHolder] = totalSupply;
    }

    event Whitelisted(address addr);

    event Dewhitelisted(address addr);

    event Credited(address addr, uint balance, uint txAmount);

    event USDCentsBalance(uint balance);

    event TokenByFiatCredited(address addr, uint balance, uint txAmount, uint256 requestId);

    event StateTransition(States oldState, States newState);

    modifier onlyWhitelist() {
        require(msg.sender == whitelistControl);
        _;
    }

    modifier onlyStateControl() {
        require(msg.sender == stateControl);
        _;
    }

    modifier requireState(States _requiredState) {
        require(state == _requiredState);
        _;
    }

    /**
    BEGIN ICO functions
    */

    //this is the main funding function, it updates the balances of DeepTokens during the ICO.
    //no particular incentive schemes have been implemented here
    //it is only accessible during the "ICO" phase.
    function() payable
    requireState(States.Ico)
    {
        require(msg.sender != whitelistControl);
        require(whitelist[msg.sender] == true);
        uint256 deepTokenIncrease = (msg.value * pointMultiplier) / tokenPriceInWei;
        require(getTokensAvailableForSale() >= deepTokenIncrease);
        require(block.number < endBlock);
        require(block.number >= startAcceptingFundsBlock);
        etherBalance = etherBalance.add(msg.value);
        balances[initialHolder] = balances[initialHolder].sub(deepTokenIncrease);
        balances[msg.sender] = balances[msg.sender].add(deepTokenIncrease);
        tokensSold = tokensSold.add(deepTokenIncrease);
        withdrawControl.transfer(msg.value);
        Credited(msg.sender, balances[msg.sender], msg.value);
    }

    function recordPayment(uint256 usdCentsAmount, uint256 tokenAmount, uint256 requestId)
    onlyWhitelist
    requireState(States.Ico)
    {
        require(getTokensAvailableForSale() >= tokenAmount);
        require(block.number < endBlock);
        require(block.number >= startAcceptingFundsBlock);

        usdCentsBalance = usdCentsBalance.add(usdCentsAmount);
        balances[initialHolder] = balances[initialHolder].sub(tokenAmount);
        balances[usdCurrencyFunding] = balances[usdCurrencyFunding].add(tokenAmount);
        tokensSold = tokensSold.add(tokenAmount);

        USDCentsBalance(usdCentsBalance);
        TokenByFiatCredited(usdCurrencyFunding, balances[usdCurrencyFunding], tokenAmount, requestId);
    }

    function moveToState(States _newState)
    internal
    {
        StateTransition(state, _newState);
        state = _newState;
    }

    function getTokensAvailableForSale()
    constant
    returns (uint256 tokensAvailableForSale)
    {
        return (totalNumberOfTokensForSale.sub(tokensSold));
    }

    // ICO contract configuration function
    // _newTotalSupply is the number of tokens available
    // _newTokenPriceInWei is the token price in wei
    // _newPercentForSale is the percentage of _newTotalSupply available for sale
    // _newsilencePeriod is a number of blocks to wait after starting the ICO. No funds are accepted during the silence period. It can be set to zero.
    // _newEndBlock is the absolute block number at which the ICO must stop. It must be set after now + silence period.
    function updateEthICOThresholds(uint256 _newTotalSupply, uint256 _newTokenPriceInWei, uint256 _newPercentForSale, uint256 _newSilencePeriod, uint256 _newEndBlock)
    onlyStateControl
    {
        require(state == States.Initial || state == States.ValuationSet);
        require(_newTotalSupply > 0);
        require(_newTokenPriceInWei > 0);
        require(_newPercentForSale > 0);
        require(_newPercentForSale <= 100);
        require((_newTotalSupply * _newPercentForSale / 100) > 0);
        require(block.number < _newEndBlock);
        require(block.number + _newSilencePeriod < _newEndBlock);

        totalSupply = _newTotalSupply;
        percentForSale = _newPercentForSale;
        totalNumberOfTokensForSale = totalSupply.mul(percentForSale).div(100);
        tokenPriceInWei = _newTokenPriceInWei;
        silencePeriod = _newSilencePeriod;
        endBlock = _newEndBlock;

        balances[initialHolder] = totalSupply;

        moveToState(States.ValuationSet);
    }

    function startICO()
    onlyStateControl
    requireState(States.ValuationSet)
    {
        require(block.number < endBlock);
        require(block.number + silencePeriod < endBlock);
        startAcceptingFundsBlock = block.number + silencePeriod;
        moveToState(States.Ico);
    }

    function endICO()
    onlyStateControl
    requireState(States.Ico)
    {
        burnUnsoldCoins();
        moveToState(States.Operational);
    }

    function anyoneEndICO()
    requireState(States.Ico)
    {
        require(block.number > endBlock);
        burnUnsoldCoins();
        moveToState(States.Operational);
    }

    function burnUnsoldCoins()
    internal
    {
        //slashing the initial supply, so that the ICO is selling percentForSale% total
        totalSupply = tokensSold.mul(100).div(percentForSale);
        balances[initialHolder] = totalSupply.sub(tokensSold);
    }

    function addToWhitelist(address _whitelisted)
    onlyWhitelist
    {
        whitelist[_whitelisted] = true;
        Whitelisted(_whitelisted);
    }

    function removeFromWhitelist(address _whitelisted)
    onlyWhitelist
    {
        whitelist[_whitelisted] = false;
        Dewhitelisted(_whitelisted);
    }

    //emergency pause for the ICO
    function pause()
    onlyStateControl
    requireState(States.Ico)
    {
        moveToState(States.Paused);
    }

    //un-pause
    function resumeICO()
    onlyStateControl
    requireState(States.Paused)
    {
        moveToState(States.Ico);
    }
    /**
    END ICO functions
    */

    /**
    BEGIN ERC20 functions
    */

    function transfer(address _to, uint256 _value)
    returns (bool success) {
        require((state == States.Ico) || (state == States.Operational));
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value)
    returns (bool success) {
        require((state == States.Ico) || (state == States.Operational));
        return super.transferFrom(_from, _to, _value);
    }

    function balanceOf(address _account)
    constant
    returns (uint256 balance) {
        return balances[_account];
    }

    /**
    END ERC20 functions
    */
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"stateControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenPriceInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"anyoneEndICO","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"silencePeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"whitelistControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalNumberOfTokensForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pointMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"withdrawControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"usdCurrencyFunding","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_whitelisted","type":"address"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startAcceptingFundsBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"resumeICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"usdCentsAmount","type":"uint256"},{"name":"tokenAmount","type":"uint256"},{"name":"requestId","type":"uint256"}],"name":"recordPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etherBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"percentForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"initialHolder","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newTotalSupply","type":"uint256"},{"name":"_newTokenPriceInWei","type":"uint256"},{"name":"_newPercentForSale","type":"uint256"},{"name":"_newSilencePeriod","type":"uint256"},{"name":"_newEndBlock","type":"uint256"}],"name":"updateEthICOThresholds","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"usdCentsBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"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":"_whitelisted","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTokensAvailableForSale","outputs":[{"name":"tokensAvailableForSale","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_stateControl","type":"address"},{"name":"_whitelistControl","type":"address"},{"name":"_withdraw","type":"address"},{"name":"_initialHolder","type":"address"},{"name":"_usdCurrencyFunding","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"Dewhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"balance","type":"uint256"},{"indexed":false,"name":"txAmount","type":"uint256"}],"name":"Credited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"balance","type":"uint256"}],"name":"USDCentsBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"balance","type":"uint256"},{"indexed":false,"name":"txAmount","type":"uint256"},{"indexed":false,"name":"requestId","type":"uint256"}],"name":"TokenByFiatCredited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldState","type":"uint8"},{"indexed":false,"name":"newState","type":"uint8"}],"name":"StateTransition","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"},{"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"}]

606060405234156200001057600080fd5b60405160a08062001acb83398101604052808051919060200180519190602001805191906020018051919060200180519150505b600160a060020a03821615156200005a57600080fd5b600160a060020a03851615156200007057600080fd5b600160a060020a03841615156200008657600080fd5b600160a060020a03831615156200009c57600080fd5b600160a060020a0381161515620000b257600080fd5b60048054600160a060020a0319908116600160a060020a0385811691909117909255600580548216888416179055600680548216878416179055600780548216868416179055600880549091169183169190911790556200012260006401000000006200017981026200169b1704565b60008080556009819055600a819055600b819055600c819055600019600d55600e819055600f81905560108190556011819055600454600160a060020a03168152600160205260408120555b505050505062000231565b6008547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79074010000000000000000000000000000000000000000900460ff168260405180836004811115620001cb57fe5b60ff168152602001826004811115620001e057fe5b60ff1681526020019250505060405180910390a16008805482919060a060020a60ff021916740100000000000000000000000000000000000000008360048111156200022857fe5b02179055505b50565b61188a80620002416000396000f300606060405236156101d55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166304b2bf9981146103f057806306fdde031461041f578063083c6323146104aa578063095ea7b3146104cf57806318160ddd1461050557806323b872dd1461052a5780632f8de81014610566578063313ce5671461058b57806332b3c323146105b45780633cae09ac146105c957806341f1d4dd146105ee5780634f2484091461061d578063518ab2a8146106325780635e15d64214610657578063658b98a91461067c57806366188463146106a15780636aa9c82b146106d757806370a08231146107065780637dbece3c146107375780637fa8c158146107665780638456cb591461077b5780638ab1d6811461079057806390c79af9146107b157806395d89b41146107d65780639b19251a146108615780639cbd7da514610894578063a9059cbb146108a9578063ac281ca6146108df578063ad66e52a146108fd578063b21ed44e14610922578063b72218e314610947578063c19d93fb14610976578063c66bd6aa146109ad578063cf5c2ac7146109d1578063d73dd623146109f6578063dd62ed3e14610a2c578063e43252d714610a63578063e646350d14610a84575b5b60006002805b60085460a060020a900460ff1660048111156101f457fe5b146101fe57600080fd5b60065433600160a060020a039081169116141561021a57600080fd5b600160a060020a03331660009081526003602052604090205460ff16151560011461024457600080fd5b60095434670de0b6b3a76400000281151561025b57fe5b04915081610267610aa9565b101561027257600080fd5b600e54431061028057600080fd5b600d5443101561028f57600080fd5b600f546102a2903463ffffffff610ac816565b600f55600454600160a060020a03166000908152600160205260409020546102d0908363ffffffff610ae216565b600454600160a060020a03908116600090815260016020526040808220939093553390911681522054610309908363ffffffff610ac816565b600160a060020a033316600090815260016020526040902055601154610335908363ffffffff610ac816565b601155600754600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561036c57600080fd5b7f796a6ec99f41042b589b3c8dfab9ec6ae027e9c6599a6a4e311aa00a19ebdb1f336001600033600160a060020a0316600160a060020a0316815260200190815260200160002054346040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b5050005b34156103fb57600080fd5b610403610af9565b604051600160a060020a03909116815260200160405180910390f35b341561042a57600080fd5b610432610b08565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f5780820151818401525b602001610456565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b557600080fd5b6104bd610b3f565b60405190815260200160405180910390f35b34156104da57600080fd5b6104f1600160a060020a0360043516602435610b45565b604051901515815260200160405180910390f35b341561051057600080fd5b6104bd610bb2565b60405190815260200160405180910390f35b341561053557600080fd5b6104f1600160a060020a0360043581169060243516604435610bb8565b604051901515815260200160405180910390f35b341561057157600080fd5b6104bd610c19565b60405190815260200160405180910390f35b341561059657600080fd5b61059e610c1f565b60405160ff909116815260200160405180910390f35b34156105bf57600080fd5b6105c7610c24565b005b34156105d457600080fd5b6104bd610c6f565b60405190815260200160405180910390f35b34156105f957600080fd5b610403610c75565b604051600160a060020a03909116815260200160405180910390f35b341561062857600080fd5b6105c7610c84565b005b341561063d57600080fd5b6104bd610cdd565b60405190815260200160405180910390f35b341561066257600080fd5b6104bd610ce3565b60405190815260200160405180910390f35b341561068757600080fd5b6104bd610ce9565b60405190815260200160405180910390f35b34156106ac57600080fd5b6104f1600160a060020a0360043516602435610cf5565b604051901515815260200160405180910390f35b34156106e257600080fd5b610403610df1565b604051600160a060020a03909116815260200160405180910390f35b341561071157600080fd5b6104bd600160a060020a0360043516610e00565b60405190815260200160405180910390f35b341561074257600080fd5b610403610e1f565b604051600160a060020a03909116815260200160405180910390f35b341561077157600080fd5b6105c7610e2e565b005b341561078657600080fd5b6105c7610ea7565b005b341561079b57600080fd5b6105c7600160a060020a0360043516610ef8565b005b34156107bc57600080fd5b6104bd610f77565b60405190815260200160405180910390f35b34156107e157600080fd5b610432610f7d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f5780820151818401525b602001610456565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086c57600080fd5b6104f1600160a060020a0360043516610fb4565b604051901515815260200160405180910390f35b341561089f57600080fd5b6105c7610fc9565b005b34156108b457600080fd5b6104f1600160a060020a036004351660243561101a565b604051901515815260200160405180910390f35b34156108ea57600080fd5b6105c7600435602435604435611079565b005b341561090857600080fd5b6104bd611255565b60405190815260200160405180910390f35b341561092d57600080fd5b6104bd61125b565b60405190815260200160405180910390f35b341561095257600080fd5b610403611261565b604051600160a060020a03909116815260200160405180910390f35b341561098157600080fd5b610989611270565b6040518082600481111561099957fe5b60ff16815260200191505060405180910390f35b34156109b857600080fd5b6105c7600435602435604435606435608435611280565b005b34156109dc57600080fd5b6104bd6113b7565b60405190815260200160405180910390f35b3415610a0157600080fd5b6104f1600160a060020a03600435166024356113bd565b604051901515815260200160405180910390f35b3415610a3757600080fd5b6104bd600160a060020a0360043581169060243516611462565b60405190815260200160405180910390f35b3415610a6e57600080fd5b6105c7600160a060020a036004351661148f565b005b3415610a8f57600080fd5b6104bd610aa9565b60405190815260200160405180910390f35b6000610ac2601154600b54610ae290919063ffffffff16565b90505b90565b600082820183811015610ad757fe5b8091505b5092915050565b600082821115610aee57fe5b508082035b92915050565b600554600160a060020a031681565b60408051908101604052600981527f44656570546f6b656e0000000000000000000000000000000000000000000000602082015281565b600e5481565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b600060025b60085460a060020a900460ff166004811115610bd557fe5b1480610bf9575060035b60085460a060020a900460ff166004811115610bf757fe5b145b1515610c0457600080fd5b610c0f848484611511565b90505b9392505050565b60095481565b601281565b6002805b60085460a060020a900460ff166004811115610c4057fe5b14610c4a57600080fd5b600e544311610c5857600080fd5b610c6061163d565b610c6a600361169b565b5b5b50565b600c5481565b600654600160a060020a031681565b60055433600160a060020a03908116911614610c9f57600080fd5b6002805b60085460a060020a900460ff166004811115610cbb57fe5b14610c5857600080fd5b610c6061163d565b610c6a600361169b565b5b5b505b565b60115481565b600b5481565b670de0b6b3a764000081565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610d5257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d89565b610d62818463ffffffff610ae216565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600754600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600854600160a060020a031681565b60055433600160a060020a03908116911614610e4957600080fd5b6001805b60085460a060020a900460ff166004811115610e6557fe5b14610e6f57600080fd5b600e544310610e7d57600080fd5b600e54600c54430110610e8f57600080fd5b600c544301600d55610c6a600261169b565b5b5b505b565b60055433600160a060020a03908116911614610ec257600080fd5b6002805b60085460a060020a900460ff166004811115610ede57fe5b14610ee857600080fd5b610c6a600461169b565b5b5b505b565b60065433600160a060020a03908116911614610f1357600080fd5b600160a060020a03811660009081526003602052604090819020805460ff191690557f78c8e01ebc9b1b82f14af9f3a9b6fa7bdba5e36f9e96d15ca3aebc36cf72ce8590829051600160a060020a03909116815260200160405180910390a15b5b50565b600d5481565b60408051908101604052600381527f4454410000000000000000000000000000000000000000000000000000000000602082015281565b60036020526000908152604090205460ff1681565b60055433600160a060020a03908116911614610fe457600080fd5b6004805b60085460a060020a900460ff16600481111561100057fe5b1461100a57600080fd5b610c6a600261169b565b5b5b505b565b600060025b60085460a060020a900460ff16600481111561103757fe5b148061105b575060035b60085460a060020a900460ff16600481111561105957fe5b145b151561106657600080fd5b611070838361173c565b90505b92915050565b60065433600160a060020a0390811691161461109457600080fd5b6002805b60085460a060020a900460ff1660048111156110b057fe5b146110ba57600080fd5b826110c3610aa9565b10156110ce57600080fd5b600e5443106110dc57600080fd5b600d544310156110eb57600080fd5b6010546110fe908563ffffffff610ac816565b601055600454600160a060020a031660009081526001602052604090205461112c908463ffffffff610ae216565b600454600160a060020a039081166000908152600160205260408082209390935560085490911681522054611167908463ffffffff610ac816565b600854600160a060020a0316600090815260016020526040902055601154611195908463ffffffff610ac816565b6011556010547fd16242cc632ea59145e2e93bed9cd76509350ba1a3fdb5b294ddae778b657b4a9060405190815260200160405180910390a1600854600160a060020a031660008181526001602052604090819020547f3335a5e44eec3fe7d2a4e45d426b6c7ca14e6c5782468890f09e3104e3de42f1929186908690518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15b5b505b505050565b600f5481565b600a5481565b600454600160a060020a031681565b60085460a060020a900460ff1681565b60055433600160a060020a0390811691161461129b57600080fd5b60005b60085460a060020a900460ff1660048111156112b657fe5b14806112da575060015b60085460a060020a900460ff1660048111156112d857fe5b145b15156112e557600080fd5b600085116112f257600080fd5b600084116112ff57600080fd5b6000831161130c57600080fd5b606483111561131a57600080fd5b600060648685025b041161132d57600080fd5b4381901061133a57600080fd5b43820181901061134957600080fd5b6000859055600a8390556113746064611368878663ffffffff61181316565b9063ffffffff61184216565b600b556009849055600c829055600e81905560008054600454600160a060020a03168252600160208190526040909220556113ae9061169b565b5b5b5050505050565b60105481565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546113f5908363ffffffff610ac816565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116146114aa57600080fd5b600160a060020a03811660009081526003602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a15b5b50565b600080600160a060020a038416151561152957600080fd5b50600160a060020a0380851660008181526002602090815260408083203390951683529381528382205492825260019052919091205461156f908463ffffffff610ae216565b600160a060020a0380871660009081526001602052604080822093909355908616815220546115a4908463ffffffff610ac816565b600160a060020a0385166000908152600160205260409020556115cd818463ffffffff610ae216565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b611665600a54611368606460115461181390919063ffffffff16565b9063ffffffff61184216565b600081905560115461167d919063ffffffff610ae216565b600454600160a060020a03166000908152600160205260409020555b565b6008547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360048111156116db57fe5b60ff1681526020018260048111156116ef57fe5b60ff1681526020019250505060405180910390a16008805482919074ff0000000000000000000000000000000000000000191660a060020a83600481111561173357fe5b02179055505b50565b6000600160a060020a038316151561175357600080fd5b600160a060020a03331660009081526001602052604090205461177c908363ffffffff610ae216565b600160a060020a0333811660009081526001602052604080822093909355908516815220546117b1908363ffffffff610ac816565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820283158061182f575082848281151561182c57fe5b04145b1515610ad757fe5b8091505b5092915050565b600080828481151561185057fe5b0490508091505b50929150505600a165627a7a7230582071956f8a2d1ab90fecde41225c4d714a588685a935d1e87f336ecbbde000a4a6002900000000000000000000000024a33a6e7575ec1a1c75143abd9cc02bff9f9ebd000000000000000000000000c7db06b791f38dc3bd09c1fafbcfcb2cce47f388000000000000000000000000152227da7a1050d2b0a564b0aab87340ca6c69a3000000000000000000000000bb833152d96acfc6bb0f668f71eddfc2575af5340000000000000000000000006946777f05cc5ba54ca03945a2b4bdfcce1afe72

Deployed Bytecode

0x606060405236156101d55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166304b2bf9981146103f057806306fdde031461041f578063083c6323146104aa578063095ea7b3146104cf57806318160ddd1461050557806323b872dd1461052a5780632f8de81014610566578063313ce5671461058b57806332b3c323146105b45780633cae09ac146105c957806341f1d4dd146105ee5780634f2484091461061d578063518ab2a8146106325780635e15d64214610657578063658b98a91461067c57806366188463146106a15780636aa9c82b146106d757806370a08231146107065780637dbece3c146107375780637fa8c158146107665780638456cb591461077b5780638ab1d6811461079057806390c79af9146107b157806395d89b41146107d65780639b19251a146108615780639cbd7da514610894578063a9059cbb146108a9578063ac281ca6146108df578063ad66e52a146108fd578063b21ed44e14610922578063b72218e314610947578063c19d93fb14610976578063c66bd6aa146109ad578063cf5c2ac7146109d1578063d73dd623146109f6578063dd62ed3e14610a2c578063e43252d714610a63578063e646350d14610a84575b5b60006002805b60085460a060020a900460ff1660048111156101f457fe5b146101fe57600080fd5b60065433600160a060020a039081169116141561021a57600080fd5b600160a060020a03331660009081526003602052604090205460ff16151560011461024457600080fd5b60095434670de0b6b3a76400000281151561025b57fe5b04915081610267610aa9565b101561027257600080fd5b600e54431061028057600080fd5b600d5443101561028f57600080fd5b600f546102a2903463ffffffff610ac816565b600f55600454600160a060020a03166000908152600160205260409020546102d0908363ffffffff610ae216565b600454600160a060020a03908116600090815260016020526040808220939093553390911681522054610309908363ffffffff610ac816565b600160a060020a033316600090815260016020526040902055601154610335908363ffffffff610ac816565b601155600754600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561036c57600080fd5b7f796a6ec99f41042b589b3c8dfab9ec6ae027e9c6599a6a4e311aa00a19ebdb1f336001600033600160a060020a0316600160a060020a0316815260200190815260200160002054346040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b5050005b34156103fb57600080fd5b610403610af9565b604051600160a060020a03909116815260200160405180910390f35b341561042a57600080fd5b610432610b08565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f5780820151818401525b602001610456565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b557600080fd5b6104bd610b3f565b60405190815260200160405180910390f35b34156104da57600080fd5b6104f1600160a060020a0360043516602435610b45565b604051901515815260200160405180910390f35b341561051057600080fd5b6104bd610bb2565b60405190815260200160405180910390f35b341561053557600080fd5b6104f1600160a060020a0360043581169060243516604435610bb8565b604051901515815260200160405180910390f35b341561057157600080fd5b6104bd610c19565b60405190815260200160405180910390f35b341561059657600080fd5b61059e610c1f565b60405160ff909116815260200160405180910390f35b34156105bf57600080fd5b6105c7610c24565b005b34156105d457600080fd5b6104bd610c6f565b60405190815260200160405180910390f35b34156105f957600080fd5b610403610c75565b604051600160a060020a03909116815260200160405180910390f35b341561062857600080fd5b6105c7610c84565b005b341561063d57600080fd5b6104bd610cdd565b60405190815260200160405180910390f35b341561066257600080fd5b6104bd610ce3565b60405190815260200160405180910390f35b341561068757600080fd5b6104bd610ce9565b60405190815260200160405180910390f35b34156106ac57600080fd5b6104f1600160a060020a0360043516602435610cf5565b604051901515815260200160405180910390f35b34156106e257600080fd5b610403610df1565b604051600160a060020a03909116815260200160405180910390f35b341561071157600080fd5b6104bd600160a060020a0360043516610e00565b60405190815260200160405180910390f35b341561074257600080fd5b610403610e1f565b604051600160a060020a03909116815260200160405180910390f35b341561077157600080fd5b6105c7610e2e565b005b341561078657600080fd5b6105c7610ea7565b005b341561079b57600080fd5b6105c7600160a060020a0360043516610ef8565b005b34156107bc57600080fd5b6104bd610f77565b60405190815260200160405180910390f35b34156107e157600080fd5b610432610f7d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f5780820151818401525b602001610456565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086c57600080fd5b6104f1600160a060020a0360043516610fb4565b604051901515815260200160405180910390f35b341561089f57600080fd5b6105c7610fc9565b005b34156108b457600080fd5b6104f1600160a060020a036004351660243561101a565b604051901515815260200160405180910390f35b34156108ea57600080fd5b6105c7600435602435604435611079565b005b341561090857600080fd5b6104bd611255565b60405190815260200160405180910390f35b341561092d57600080fd5b6104bd61125b565b60405190815260200160405180910390f35b341561095257600080fd5b610403611261565b604051600160a060020a03909116815260200160405180910390f35b341561098157600080fd5b610989611270565b6040518082600481111561099957fe5b60ff16815260200191505060405180910390f35b34156109b857600080fd5b6105c7600435602435604435606435608435611280565b005b34156109dc57600080fd5b6104bd6113b7565b60405190815260200160405180910390f35b3415610a0157600080fd5b6104f1600160a060020a03600435166024356113bd565b604051901515815260200160405180910390f35b3415610a3757600080fd5b6104bd600160a060020a0360043581169060243516611462565b60405190815260200160405180910390f35b3415610a6e57600080fd5b6105c7600160a060020a036004351661148f565b005b3415610a8f57600080fd5b6104bd610aa9565b60405190815260200160405180910390f35b6000610ac2601154600b54610ae290919063ffffffff16565b90505b90565b600082820183811015610ad757fe5b8091505b5092915050565b600082821115610aee57fe5b508082035b92915050565b600554600160a060020a031681565b60408051908101604052600981527f44656570546f6b656e0000000000000000000000000000000000000000000000602082015281565b600e5481565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b600060025b60085460a060020a900460ff166004811115610bd557fe5b1480610bf9575060035b60085460a060020a900460ff166004811115610bf757fe5b145b1515610c0457600080fd5b610c0f848484611511565b90505b9392505050565b60095481565b601281565b6002805b60085460a060020a900460ff166004811115610c4057fe5b14610c4a57600080fd5b600e544311610c5857600080fd5b610c6061163d565b610c6a600361169b565b5b5b50565b600c5481565b600654600160a060020a031681565b60055433600160a060020a03908116911614610c9f57600080fd5b6002805b60085460a060020a900460ff166004811115610cbb57fe5b14610c5857600080fd5b610c6061163d565b610c6a600361169b565b5b5b505b565b60115481565b600b5481565b670de0b6b3a764000081565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610d5257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d89565b610d62818463ffffffff610ae216565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600754600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600854600160a060020a031681565b60055433600160a060020a03908116911614610e4957600080fd5b6001805b60085460a060020a900460ff166004811115610e6557fe5b14610e6f57600080fd5b600e544310610e7d57600080fd5b600e54600c54430110610e8f57600080fd5b600c544301600d55610c6a600261169b565b5b5b505b565b60055433600160a060020a03908116911614610ec257600080fd5b6002805b60085460a060020a900460ff166004811115610ede57fe5b14610ee857600080fd5b610c6a600461169b565b5b5b505b565b60065433600160a060020a03908116911614610f1357600080fd5b600160a060020a03811660009081526003602052604090819020805460ff191690557f78c8e01ebc9b1b82f14af9f3a9b6fa7bdba5e36f9e96d15ca3aebc36cf72ce8590829051600160a060020a03909116815260200160405180910390a15b5b50565b600d5481565b60408051908101604052600381527f4454410000000000000000000000000000000000000000000000000000000000602082015281565b60036020526000908152604090205460ff1681565b60055433600160a060020a03908116911614610fe457600080fd5b6004805b60085460a060020a900460ff16600481111561100057fe5b1461100a57600080fd5b610c6a600261169b565b5b5b505b565b600060025b60085460a060020a900460ff16600481111561103757fe5b148061105b575060035b60085460a060020a900460ff16600481111561105957fe5b145b151561106657600080fd5b611070838361173c565b90505b92915050565b60065433600160a060020a0390811691161461109457600080fd5b6002805b60085460a060020a900460ff1660048111156110b057fe5b146110ba57600080fd5b826110c3610aa9565b10156110ce57600080fd5b600e5443106110dc57600080fd5b600d544310156110eb57600080fd5b6010546110fe908563ffffffff610ac816565b601055600454600160a060020a031660009081526001602052604090205461112c908463ffffffff610ae216565b600454600160a060020a039081166000908152600160205260408082209390935560085490911681522054611167908463ffffffff610ac816565b600854600160a060020a0316600090815260016020526040902055601154611195908463ffffffff610ac816565b6011556010547fd16242cc632ea59145e2e93bed9cd76509350ba1a3fdb5b294ddae778b657b4a9060405190815260200160405180910390a1600854600160a060020a031660008181526001602052604090819020547f3335a5e44eec3fe7d2a4e45d426b6c7ca14e6c5782468890f09e3104e3de42f1929186908690518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15b5b505b505050565b600f5481565b600a5481565b600454600160a060020a031681565b60085460a060020a900460ff1681565b60055433600160a060020a0390811691161461129b57600080fd5b60005b60085460a060020a900460ff1660048111156112b657fe5b14806112da575060015b60085460a060020a900460ff1660048111156112d857fe5b145b15156112e557600080fd5b600085116112f257600080fd5b600084116112ff57600080fd5b6000831161130c57600080fd5b606483111561131a57600080fd5b600060648685025b041161132d57600080fd5b4381901061133a57600080fd5b43820181901061134957600080fd5b6000859055600a8390556113746064611368878663ffffffff61181316565b9063ffffffff61184216565b600b556009849055600c829055600e81905560008054600454600160a060020a03168252600160208190526040909220556113ae9061169b565b5b5b5050505050565b60105481565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546113f5908363ffffffff610ac816565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116146114aa57600080fd5b600160a060020a03811660009081526003602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a15b5b50565b600080600160a060020a038416151561152957600080fd5b50600160a060020a0380851660008181526002602090815260408083203390951683529381528382205492825260019052919091205461156f908463ffffffff610ae216565b600160a060020a0380871660009081526001602052604080822093909355908616815220546115a4908463ffffffff610ac816565b600160a060020a0385166000908152600160205260409020556115cd818463ffffffff610ae216565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b611665600a54611368606460115461181390919063ffffffff16565b9063ffffffff61184216565b600081905560115461167d919063ffffffff610ae216565b600454600160a060020a03166000908152600160205260409020555b565b6008547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360048111156116db57fe5b60ff1681526020018260048111156116ef57fe5b60ff1681526020019250505060405180910390a16008805482919074ff0000000000000000000000000000000000000000191660a060020a83600481111561173357fe5b02179055505b50565b6000600160a060020a038316151561175357600080fd5b600160a060020a03331660009081526001602052604090205461177c908363ffffffff610ae216565b600160a060020a0333811660009081526001602052604080822093909355908516815220546117b1908363ffffffff610ac816565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820283158061182f575082848281151561182c57fe5b04145b1515610ad757fe5b8091505b5092915050565b600080828481151561185057fe5b0490508091505b50929150505600a165627a7a7230582071956f8a2d1ab90fecde41225c4d714a588685a935d1e87f336ecbbde000a4a60029

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

00000000000000000000000024a33a6e7575ec1a1c75143abd9cc02bff9f9ebd000000000000000000000000c7db06b791f38dc3bd09c1fafbcfcb2cce47f388000000000000000000000000152227da7a1050d2b0a564b0aab87340ca6c69a3000000000000000000000000bb833152d96acfc6bb0f668f71eddfc2575af5340000000000000000000000006946777f05cc5ba54ca03945a2b4bdfcce1afe72

-----Decoded View---------------
Arg [0] : _stateControl (address): 0x24A33a6E7575ec1a1c75143ABd9cC02BfF9F9eBd
Arg [1] : _whitelistControl (address): 0xC7db06b791F38Dc3Bd09C1fAfBcFCb2CCE47f388
Arg [2] : _withdraw (address): 0x152227dA7A1050d2B0A564B0aAB87340cA6C69a3
Arg [3] : _initialHolder (address): 0xbb833152d96AcfC6bb0F668f71edDfc2575Af534
Arg [4] : _usdCurrencyFunding (address): 0x6946777F05CC5Ba54ca03945A2b4bDFcCE1AFE72

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000024a33a6e7575ec1a1c75143abd9cc02bff9f9ebd
Arg [1] : 000000000000000000000000c7db06b791f38dc3bd09c1fafbcfcb2cce47f388
Arg [2] : 000000000000000000000000152227da7a1050d2b0a564b0aab87340ca6c69a3
Arg [3] : 000000000000000000000000bb833152d96acfc6bb0f668f71eddfc2575af534
Arg [4] : 0000000000000000000000006946777f05cc5ba54ca03945a2b4bdfcce1afe72


Swarm Source

bzzr://71956f8a2d1ab90fecde41225c4d714a588685a935d1e87f336ecbbde000a4a6
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.