ETH Price: $3,351.23 (-1.97%)

Token

CLEAR Token (CLEAR)
 

Overview

Max Total Supply

102,400,000,000 CLEAR

Holders

14,080

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
150.064799122719569336 CLEAR

Value
$0.00
0xddc7ab9c08f0cfe61897596470958a8ef224b9d6
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:
ClearToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-08
*/

pragma solidity ^0.4.11;
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;
    }
}
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);
}
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);
}
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];
    }

}
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;
    }

}
library Bonus {
    uint256 constant pointMultiplier = 1e18; //100% = 1*10^18 points

    uint16 constant ORIGIN_YEAR = 1970;

    function getBonusFactor(uint256 basisTokens, uint timestamp)
    internal pure returns (uint256 factor)
    {
        uint256[4][5] memory factors = [[uint256(300), 400, 500, 750],
        [uint256(200), 300, 400, 600],
        [uint256(150), 250, 300, 500],
        [uint256(100), 150, 250, 400],
        [uint256(0),   100, 150, 300]];

        uint[4] memory cutofftimes = [toTimestamp(2018, 3, 24),
        toTimestamp(2018, 4, 5),
        toTimestamp(2018, 5, 5),
        toTimestamp(2018, 6, 5)];

        //compare whole tokens
        uint256 tokenAmount = basisTokens / pointMultiplier;

        //set default to the 0% bonus
        uint256 timeIndex = 4;
        uint256 amountIndex = 0;

        // 0.02 NZD per token = 50 tokens per NZD
        if (tokenAmount >= 500000000) {
            // >10M NZD
            amountIndex = 3;
        } else if (tokenAmount >= 100000000) {
            // >2M NZD
            amountIndex = 2;
        } else if (tokenAmount >= 25000000) {
            // >500K NZD
            amountIndex = 1;
        } else {
            // <500K NZD
            //amountIndex = 0;
        }

        uint256 maxcutoffindex = cutofftimes.length;
        for (uint256 i = 0; i < maxcutoffindex; i++) {
            if (timestamp < cutofftimes[i]) {
                timeIndex = i;
                break;
            }
        }

        return factors[timeIndex][amountIndex];
    }

    // Timestamp functions based on
    // https://github.com/pipermerriam/ethereum-datetime/blob/master/contracts/DateTime.sol
    function toTimestamp(uint16 year, uint8 month, uint8 day)
    internal pure returns (uint timestamp) {
        uint16 i;

        // Year
        timestamp += (year - ORIGIN_YEAR) * 1 years;
        timestamp += (leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR)) * 1 days;

        // Month
        uint8[12] memory monthDayCounts;
        monthDayCounts[0] = 31;
        if (isLeapYear(year)) {
            monthDayCounts[1] = 29;
        }
        else {
            monthDayCounts[1] = 28;
        }
        monthDayCounts[2] = 31;
        monthDayCounts[3] = 30;
        monthDayCounts[4] = 31;
        monthDayCounts[5] = 30;
        monthDayCounts[6] = 31;
        monthDayCounts[7] = 31;
        monthDayCounts[8] = 30;
        monthDayCounts[9] = 31;
        monthDayCounts[10] = 30;
        monthDayCounts[11] = 31;

        for (i = 1; i < month; i++) {
            timestamp += monthDayCounts[i - 1] * 1 days;
        }

        // Day
        timestamp += (day - 1) * 1 days;

        // Hour, Minute, and Second are assumed as 0 (we calculate in GMT)

        return timestamp;
    }

    function leapYearsBefore(uint year)
    internal pure returns (uint) {
        year -= 1;
        return year / 4 - year / 100 + year / 400;
    }

    function isLeapYear(uint16 year)
    internal pure returns (bool) {
        if (year % 4 != 0) {
            return false;
        }
        if (year % 100 != 0) {
            return true;
        }
        if (year % 400 != 0) {
            return false;
        }
        return true;
    }
}

contract ClearToken is StandardToken {

    // data structures
    enum States {
        Initial, // deployment time
        ValuationSet,
        Ico, // whitelist addresses, accept funds, update balances
        Underfunded, // ICO time finished and minimal amount not raised
        Operational, // production phase
        Paused         // for contract upgrades
    }

    mapping(address => uint256) public ethPossibleRefunds;

    uint256 public soldTokens;

    string public constant name = "CLEAR Token";

    string public constant symbol = "CLEAR";

    uint8 public constant decimals = 18;

    mapping(address => bool) public whitelist;

    address public reserves;

    address public stateControl;

    address public whitelistControl;

    address public withdrawControl;

    address public tokenAssignmentControl;

    States public state;

    uint256 public startAcceptingFundsBlock;

    uint256 public endTimestamp;

    uint256 public ETH_CLEAR; //number of tokens per ETH

    uint256 public constant NZD_CLEAR = 50; //fixed rate of 50 CLEAR to 1 NZD

    uint256 constant pointMultiplier = 1e18; //100% = 1*10^18 points

    uint256 public constant maxTotalSupply = 102400000000 * pointMultiplier; //102.4B tokens

    uint256 public constant percentForSale = 50;

    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    bool public mintingFinished = false;


    //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 ClearToken(
        address _stateControl
    , address _whitelistControl
    , address _withdrawControl
    , address _tokenAssignmentControl
    , address _reserves
    ) public
    {
        stateControl = _stateControl;
        whitelistControl = _whitelistControl;
        withdrawControl = _withdrawControl;
        tokenAssignmentControl = _tokenAssignmentControl;
        moveToState(States.Initial);
        endTimestamp = 0;
        ETH_CLEAR = 0;
        totalSupply = maxTotalSupply;
        soldTokens = 0;
        reserves = _reserves;
        balances[reserves] = totalSupply;
        Mint(reserves, totalSupply);
        Transfer(0x0, reserves, totalSupply);
    }

    event Whitelisted(address addr);

    event StateTransition(States oldState, States newState);

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

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

    modifier onlyTokenAssignmentControl() {
        require(msg.sender == tokenAssignmentControl);
        _;
    }

    modifier onlyWithdraw() {
        require(msg.sender == withdrawControl);
        _;
    }

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

    /**
    BEGIN ICO functions
    */

    //this is the main funding function, it updates the balances of tokens during the ICO.
    //no particular incentive schemes have been implemented here
    //it is only accessible during the "ICO" phase.
    function() payable
    public
    requireState(States.Ico)
    {
        require(whitelist[msg.sender] == true);

        require(block.timestamp < endTimestamp);
        require(block.number >= startAcceptingFundsBlock);

        uint256 soldToTuserWithBonus = calcBonus(msg.value);

        issueTokensToUser(msg.sender, soldToTuserWithBonus);
        ethPossibleRefunds[msg.sender] = ethPossibleRefunds[msg.sender].add(msg.value);
    }

    function issueTokensToUser(address beneficiary, uint256 amount)
    internal
    {
        uint256 soldTokensAfterInvestment = soldTokens.add(amount);
        require(soldTokensAfterInvestment <= maxTotalSupply.mul(percentForSale).div(100));

        balances[beneficiary] = balances[beneficiary].add(amount);
        balances[reserves] = balances[reserves].sub(amount);
        soldTokens = soldTokensAfterInvestment;
        Transfer(reserves, beneficiary, amount);
    }

    function calcBonus(uint256 weiAmount)
    constant
    public
    returns (uint256 resultingTokens)
    {
        uint256 basisTokens = weiAmount.mul(ETH_CLEAR);
        //percentages are integer numbers as per mill (promille) so we can accurately calculate 0.5% = 5. 100% = 1000
        uint256 perMillBonus = Bonus.getBonusFactor(basisTokens, now);
        //100% + bonus % times original amount divided by 100%.
        return basisTokens.mul(per_mill + perMillBonus).div(per_mill);
    }

    uint256 constant per_mill = 1000;


    function moveToState(States _newState)
    internal
    {
        StateTransition(state, _newState);
        state = _newState;
    }
    // ICO contract configuration function
    // new_ETH_NZD is the new rate of ETH in NZD (from which to derive tokens per ETH)
    // newTimestamp is the number of seconds since 1970-01-01 00:00:00 GMT at which the ICO must stop. It must be set in the future.
    function updateEthICOVariables(uint256 _new_ETH_NZD, uint256 _newEndTimestamp)
    public
    onlyStateControl
    {
        require(state == States.Initial || state == States.ValuationSet);
        require(_new_ETH_NZD > 0);
        require(block.timestamp < _newEndTimestamp);
        endTimestamp = _newEndTimestamp;
        // initial conversion rate of ETH_CLEAR set now, this is used during the Ico phase.
        ETH_CLEAR = _new_ETH_NZD.mul(NZD_CLEAR);
        // check pointMultiplier
        moveToState(States.ValuationSet);
    }

    function updateETHNZD(uint256 _new_ETH_NZD)
    public
    onlyTokenAssignmentControl
    requireState(States.Ico)
    {
        require(_new_ETH_NZD > 0);
        ETH_CLEAR = _new_ETH_NZD.mul(NZD_CLEAR);
    }

    function startICO()
    public
    onlyStateControl
    requireState(States.ValuationSet)
    {
        require(block.timestamp < endTimestamp);
        startAcceptingFundsBlock = block.number;
        moveToState(States.Ico);
    }

    function addPresaleAmount(address beneficiary, uint256 amount)
    public
    onlyTokenAssignmentControl
    {
        require(state == States.ValuationSet || state == States.Ico);
        issueTokensToUser(beneficiary, amount);
    }


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

    function anyoneEndICO()
    public
    requireState(States.Ico)
    {
        require(block.timestamp > endTimestamp);
        finishMinting();
        moveToState(States.Operational);
    }

    function finishMinting()
    internal
    {
        mintingFinished = true;
        MintFinished();
    }

    function addToWhitelist(address _whitelisted)
    public
    onlyWhitelist
        //    requireState(States.Ico)
    {
        whitelist[_whitelisted] = true;
        Whitelisted(_whitelisted);
    }


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

    //in case we want to completely abort
    function abort()
    public
    onlyStateControl
    requireState(States.Paused)
    {
        moveToState(States.Underfunded);
    }

    //un-pause
    function resumeICO()
    public
    onlyStateControl
    requireState(States.Paused)
    {
        moveToState(States.Ico);
    }

    //in case of a failed/aborted ICO every investor can get back their money
    function requestRefund()
    public
    requireState(States.Underfunded)
    {
        require(ethPossibleRefunds[msg.sender] > 0);
        //there is no need for updateAccount(msg.sender) since the token never became active.
        uint256 payout = ethPossibleRefunds[msg.sender];
        //reverse calculate the amount to pay out
        ethPossibleRefunds[msg.sender] = 0;
        msg.sender.transfer(payout);
    }

    //after the ico has run its course, the withdraw account can drain funds bit-by-bit as needed.
    function requestPayout(uint _amount)
    public
    onlyWithdraw //very important!
    requireState(States.Operational)
    {
        msg.sender.transfer(_amount);
    }

    //if this contract gets a balance in some other ERC20 contract - or even iself - then we can rescue it.
    function rescueToken(ERC20Basic _foreignToken, address _to)
    public
    onlyTokenAssignmentControl
    requireState(States.Operational)
    {
        _foreignToken.transfer(_to, _foreignToken.balanceOf(this));
    }
    /**
    END ICO functions
    */

    /**
    BEGIN ERC20 functions
    */
    function transfer(address _to, uint256 _value)
    public
    requireState(States.Operational)
    returns (bool success) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value)
    public
    requireState(States.Operational)
    returns (bool success) {
        return super.transferFrom(_from, _to, _value);
    }

    function balanceOf(address _account)
    public
    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,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"weiAmount","type":"uint256"}],"name":"calcBonus","outputs":[{"name":"resultingTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"anyoneEndICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_new_ETH_NZD","type":"uint256"},{"name":"_newEndTimestamp","type":"uint256"}],"name":"updateEthICOVariables","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_foreignToken","type":"address"},{"name":"_to","type":"address"}],"name":"rescueToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"soldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserves","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"requestPayout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startAcceptingFundsBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ETH_CLEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"percentForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NZD_CLEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAssignmentControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"addPresaleAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"requestRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_whitelisted","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_new_ETH_NZD","type":"uint256"}],"name":"updateETHNZD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethPossibleRefunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_stateControl","type":"address"},{"name":"_whitelistControl","type":"address"},{"name":"_withdrawControl","type":"address"},{"name":"_tokenAssignmentControl","type":"address"},{"name":"_reserves","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"Whitelisted","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"}]

6060604052600e805460ff19169055341561001957600080fd5b60405160a08062001c6b833981016040528080519190602001805191906020018051919060200180519190602001805160078054600160a060020a03808a16600160a060020a0319928316179092556008805489841690831617905560098054888416908316179055600a80549287169290911691909117905591506100ae9050600064010000000061166d61018882021704565b6000600c819055600d8190556c014adf4b7320334b9000000000808255600482905560068054600160a060020a031916600160a060020a0385811691909117808355811684526001602052604093849020839055905416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688591905190815260200160405180910390a260065460008054600160a060020a03909216917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060405190815260200160405180910390a3505050505061023c565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79074010000000000000000000000000000000000000000900460ff1682604051808360058111156101d957fe5b60ff1681526020018260058111156101ed57fe5b60ff1681526020019250505060405180910390a1600a805482919060a060020a60ff0219167401000000000000000000000000000000000000000083600581111561023457fe5b021790555050565b611a1f806200024c6000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166304b2bf9981146102a857806305d2035b146102d757806306fdde03146102fe578063095ea7b31461038857806309f3ad26146103aa57806318160ddd146103d257806323b872dd146103e55780632ab4d0521461040d578063313ce5671461042057806332b3c3231461044957806334bb3ee11461045e57806335a063b41461047757806341f1d4dd1461048a5780634707d0001461049d5780634f248409146104c25780635ed9ebfc146104d557806366188463146104e85780636aa9c82b1461050a57806370a082311461051d57806375172a8b1461053c5780637fa8c1581461054f5780638456cb59146105625780638f97e3a01461057557806390c79af91461058b57806395d89b411461059e5780639b19251a146105b15780639cbd7da5146105d0578063a1391297146105e3578063a85adeab146105f6578063a9059cbb14610609578063b21ed44e1461062b578063c19d93fb1461063e578063c6e9ce111461062b578063c8c2ed5414610675578063cc577f3814610688578063d5cef133146106aa578063d73dd623146106bd578063dd62ed3e146106df578063e43252d714610704578063f80e77d214610723578063f8b1fb1214610739575b6000600280600a5460a060020a900460ff1660058111156101fc57fe5b1461020657600080fd5b600160a060020a03331660009081526005602052604090205460ff16151560011461023057600080fd5b600c54421061023e57600080fd5b600b5443101561024d57600080fd5b61025634610758565b915061026233836107ac565b600160a060020a03331660009081526003602052604090205461028b903463ffffffff6108bd16565b600160a060020a0333166000908152600360205260409020555050005b34156102b357600080fd5b6102bb6108d3565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea6108e2565b604051901515815260200160405180910390f35b341561030957600080fd5b6103116108eb565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034d578082015183820152602001610335565b50505050905090810190601f16801561037a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039357600080fd5b6102ea600160a060020a0360043516602435610922565b34156103b557600080fd5b6103c0600435610758565b60405190815260200160405180910390f35b34156103dd57600080fd5b6103c061098e565b34156103f057600080fd5b6102ea600160a060020a0360043581169060243516604435610994565b341561041857600080fd5b6103c06109cf565b341561042b57600080fd5b6104336109e0565b60405160ff909116815260200160405180910390f35b341561045457600080fd5b61045c6109e5565b005b341561046957600080fd5b61045c600435602435610a2d565b341561048257600080fd5b61045c610ad1565b341561049557600080fd5b6102bb610b1b565b34156104a857600080fd5b61045c600160a060020a0360043581169060243516610b2a565b34156104cd57600080fd5b61045c610c4f565b34156104e057600080fd5b6103c0610c8f565b34156104f357600080fd5b6102ea600160a060020a0360043516602435610c95565b341561051557600080fd5b6102bb610d8f565b341561052857600080fd5b6103c0600160a060020a0360043516610d9e565b341561054757600080fd5b6102bb610dbd565b341561055a57600080fd5b61045c610dcc565b341561056d57600080fd5b61045c610e28565b341561058057600080fd5b61045c600435610e72565b341561059657600080fd5b6103c0610ee3565b34156105a957600080fd5b610311610ee9565b34156105bc57600080fd5b6102ea600160a060020a0360043516610f20565b34156105db57600080fd5b61045c610f35565b34156105ee57600080fd5b6103c0610f7f565b341561060157600080fd5b6103c0610f85565b341561061457600080fd5b6102ea600160a060020a0360043516602435610f8b565b341561063657600080fd5b6103c0610fbc565b341561064957600080fd5b610651610fc1565b6040518082600581111561066157fe5b60ff16815260200191505060405180910390f35b341561068057600080fd5b6102bb610fd1565b341561069357600080fd5b61045c600160a060020a0360043516602435610fe0565b34156106b557600080fd5b61045c61104d565b34156106c857600080fd5b6102ea600160a060020a03600435166024356110df565b34156106ea57600080fd5b6103c0600160a060020a0360043581169060243516611183565b341561070f57600080fd5b61045c600160a060020a03600435166111ae565b341561072e57600080fd5b61045c60043561122e565b341561074457600080fd5b6103c0600160a060020a0360043516611293565b6000806000610772600d54856112a590919063ffffffff16565b915061077e82426112c9565b90506107a46103e86107988482850163ffffffff6112a516565b9063ffffffff6114df16565b949350505050565b6004546000906107c2908363ffffffff6108bd16565b90506107e760646107986c014adf4b7320334b9000000000603263ffffffff6112a516565b8111156107f357600080fd5b600160a060020a03831660009081526001602052604090205461081c908363ffffffff6108bd16565b600160a060020a038085166000908152600160205260408082209390935560065490911681522054610854908363ffffffff6114f616565b60068054600160a060020a03908116600090815260016020526040908190209390935560048490559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b6000828201838110156108cc57fe5b9392505050565b600754600160a060020a031681565b600e5460ff1681565b60408051908101604052600b81527f434c45415220546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600480600a5460a060020a900460ff1660058111156109b157fe5b146109bb57600080fd5b6109c6858585611508565b95945050505050565b6c014adf4b7320334b900000000081565b601281565b600280600a5460a060020a900460ff166005811115610a0057fe5b14610a0a57600080fd5b600c544211610a1857600080fd5b610a20611632565b610a2a600461166d565b50565b60075433600160a060020a03908116911614610a4857600080fd5b6000600a5460a060020a900460ff166005811115610a6257fe5b1480610a8557506001600a5460a060020a900460ff166005811115610a8357fe5b145b1515610a9057600080fd5b60008211610a9d57600080fd5b42819010610aaa57600080fd5b600c819055610ac082603263ffffffff6112a516565b600d55610acd600161166d565b5050565b60075433600160a060020a03908116911614610aec57600080fd5b600580600a5460a060020a900460ff166005811115610b0757fe5b14610b1157600080fd5b610a2a600361166d565b600854600160a060020a031681565b600a5433600160a060020a03908116911614610b4557600080fd5b600480600a5460a060020a900460ff166005811115610b6057fe5b14610b6a57600080fd5b600160a060020a03831663a9059cbb83826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610bc857600080fd5b6102c65a03f11515610bd957600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c2f57600080fd5b6102c65a03f11515610c4057600080fd5b50505060405180515050505050565b60075433600160a060020a03908116911614610c6a57600080fd5b600280600a5460a060020a900460ff166005811115610c8557fe5b14610a1857600080fd5b60045481565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610cf257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d29565b610d02818463ffffffff6114f616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600954600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600654600160a060020a031681565b60075433600160a060020a03908116911614610de757600080fd5b600180600a5460a060020a900460ff166005811115610e0257fe5b14610e0c57600080fd5b600c544210610e1a57600080fd5b43600b55610a2a600261166d565b60075433600160a060020a03908116911614610e4357600080fd5b600280600a5460a060020a900460ff166005811115610e5e57fe5b14610e6857600080fd5b610a2a600561166d565b60095433600160a060020a03908116911614610e8d57600080fd5b600480600a5460a060020a900460ff166005811115610ea857fe5b14610eb257600080fd5b600160a060020a03331682156108fc0283604051600060405180830381858888f193505050501515610acd57600080fd5b600b5481565b60408051908101604052600581527f434c454152000000000000000000000000000000000000000000000000000000602082015281565b60056020526000908152604090205460ff1681565b60075433600160a060020a03908116911614610f5057600080fd5b600580600a5460a060020a900460ff166005811115610f6b57fe5b14610f7557600080fd5b610a2a600261166d565b600d5481565b600c5481565b6000600480600a5460a060020a900460ff166005811115610fa857fe5b14610fb257600080fd5b6107a4848461170d565b603281565b600a5460a060020a900460ff1681565b600a54600160a060020a031681565b600a5433600160a060020a03908116911614610ffb57600080fd5b6001600a5460a060020a900460ff16600581111561101557fe5b148061103857506002600a5460a060020a900460ff16600581111561103657fe5b145b151561104357600080fd5b610acd82826107ac565b6000600380600a5460a060020a900460ff16600581111561106a57fe5b1461107457600080fd5b600160a060020a0333166000908152600360205260408120541161109757600080fd5b600160a060020a033316600081815260036020526040808220805492905590935083156108fc0290849051600060405180830381858888f193505050501515610acd57600080fd5b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611117908363ffffffff6108bd16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085433600160a060020a039081169116146111c957600080fd5b600160a060020a03811660009081526005602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a150565b600a5433600160a060020a0390811691161461124957600080fd5b600280600a5460a060020a900460ff16600581111561126457fe5b1461126e57600080fd5b6000821161127b57600080fd5b61128c82603263ffffffff6112a516565b600d555050565b60036020526000908152604090205481565b60008282028315806112c157508284828115156112be57fe5b04145b15156108cc57fe5b60006112d3611975565b6112db6119a3565b600080600080600060a06040519081016040528060806040519081016040528061012c815260200161019081526020016101f481526020016102ee815250815260200160806040519081016040528060c8815260200161012c8152602001610190815260200161025881525081526020016080604051908101604052806096815260200160fa815260200161012c81526020016101f48152508152602001608060405190810160405280606481526020016096815260200160fa8152602001610190815250815260200160806040519081016040528060008152602001606481526020016096815260200161012c81525081525096506080604051908101604052806113ec6107e2600360186117e3565b81526020016114006107e2600460056117e3565b81526020016114136107e26005806117e3565b81526020016114276107e2600660056117e3565b90529550670de0b6b3a76400008a0494506004935060009250631dcd650085106114545760039250611478565b6305f5e10085106114685760029250611478565b63017d7840851061147857600192505b506004905060005b818110156114b05785816004811061149457fe5b60200201518910156114a8578093506114b0565b600101611480565b8684600581106114bc57fe5b602002015183600481106114cc57fe5b60200201519a9950505050505050505050565b60008082848115156114ed57fe5b04949350505050565b60008282111561150257fe5b50900390565b600080600160a060020a038416151561152057600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054611566908463ffffffff6114f616565b600160a060020a03808716600090815260016020526040808220939093559086168152205461159b908463ffffffff6108bd16565b600160a060020a0385166000908152600160205260409020556115c4818463ffffffff6114f616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b600e805460ff191660011790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360058111156116ad57fe5b60ff1681526020018260058111156116c157fe5b60ff1681526020019250505060405180910390a1600a805482919074ff0000000000000000000000000000000000000000191660a060020a83600581111561170557fe5b021790555050565b6000600160a060020a038316151561172457600080fd5b600160a060020a03331660009081526001602052604090205461174d908363ffffffff6114f616565b600160a060020a033381166000908152600160205260408082209390935590851681522054611782908363ffffffff6108bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000806117ee6119ca565b63ffffffff6301e1338061ffff6107b119890116021692909201916118146107b2611904565b6118218761ffff16611904565b601f835203620151800292909201916118398661191f565b1561184a57601d6020820152611852565b601c60208201525b601f60408201819052601e606083018190526080830182905260a0830181905260c0830182905260e0830182905261010083018190526101208301829052610140830152610160820152600191505b8460ff168261ffff1610156118e7578061ffff600019840116600c81106118c457fe5b602002015160ff16620151800262ffffff168301925081806001019250506118a1565b50506000199190910160ff16620151800262ffffff160192915050565b60001901600061019082046064830460048404030192915050565b6000600461ffff83160661ffff161561193a57506000610db8565b606461ffff83160661ffff161561195357506001610db8565b61019061ffff83160661ffff161561196d57506000610db8565b506001919050565b6102806040519081016040526005815b61198d6119a3565b8152602001906001900390816119855790505090565b60806040519081016040526004815b60008152602001906001900390816119b25790505090565b610180604051908101604052600c815b6000815260001990910190602001816119da57905050905600a165627a7a72305820843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d130002900000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e80000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e1600000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163

Deployed Bytecode

0x6060604052600436106101df5763ffffffff60e060020a60003504166304b2bf9981146102a857806305d2035b146102d757806306fdde03146102fe578063095ea7b31461038857806309f3ad26146103aa57806318160ddd146103d257806323b872dd146103e55780632ab4d0521461040d578063313ce5671461042057806332b3c3231461044957806334bb3ee11461045e57806335a063b41461047757806341f1d4dd1461048a5780634707d0001461049d5780634f248409146104c25780635ed9ebfc146104d557806366188463146104e85780636aa9c82b1461050a57806370a082311461051d57806375172a8b1461053c5780637fa8c1581461054f5780638456cb59146105625780638f97e3a01461057557806390c79af91461058b57806395d89b411461059e5780639b19251a146105b15780639cbd7da5146105d0578063a1391297146105e3578063a85adeab146105f6578063a9059cbb14610609578063b21ed44e1461062b578063c19d93fb1461063e578063c6e9ce111461062b578063c8c2ed5414610675578063cc577f3814610688578063d5cef133146106aa578063d73dd623146106bd578063dd62ed3e146106df578063e43252d714610704578063f80e77d214610723578063f8b1fb1214610739575b6000600280600a5460a060020a900460ff1660058111156101fc57fe5b1461020657600080fd5b600160a060020a03331660009081526005602052604090205460ff16151560011461023057600080fd5b600c54421061023e57600080fd5b600b5443101561024d57600080fd5b61025634610758565b915061026233836107ac565b600160a060020a03331660009081526003602052604090205461028b903463ffffffff6108bd16565b600160a060020a0333166000908152600360205260409020555050005b34156102b357600080fd5b6102bb6108d3565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea6108e2565b604051901515815260200160405180910390f35b341561030957600080fd5b6103116108eb565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034d578082015183820152602001610335565b50505050905090810190601f16801561037a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039357600080fd5b6102ea600160a060020a0360043516602435610922565b34156103b557600080fd5b6103c0600435610758565b60405190815260200160405180910390f35b34156103dd57600080fd5b6103c061098e565b34156103f057600080fd5b6102ea600160a060020a0360043581169060243516604435610994565b341561041857600080fd5b6103c06109cf565b341561042b57600080fd5b6104336109e0565b60405160ff909116815260200160405180910390f35b341561045457600080fd5b61045c6109e5565b005b341561046957600080fd5b61045c600435602435610a2d565b341561048257600080fd5b61045c610ad1565b341561049557600080fd5b6102bb610b1b565b34156104a857600080fd5b61045c600160a060020a0360043581169060243516610b2a565b34156104cd57600080fd5b61045c610c4f565b34156104e057600080fd5b6103c0610c8f565b34156104f357600080fd5b6102ea600160a060020a0360043516602435610c95565b341561051557600080fd5b6102bb610d8f565b341561052857600080fd5b6103c0600160a060020a0360043516610d9e565b341561054757600080fd5b6102bb610dbd565b341561055a57600080fd5b61045c610dcc565b341561056d57600080fd5b61045c610e28565b341561058057600080fd5b61045c600435610e72565b341561059657600080fd5b6103c0610ee3565b34156105a957600080fd5b610311610ee9565b34156105bc57600080fd5b6102ea600160a060020a0360043516610f20565b34156105db57600080fd5b61045c610f35565b34156105ee57600080fd5b6103c0610f7f565b341561060157600080fd5b6103c0610f85565b341561061457600080fd5b6102ea600160a060020a0360043516602435610f8b565b341561063657600080fd5b6103c0610fbc565b341561064957600080fd5b610651610fc1565b6040518082600581111561066157fe5b60ff16815260200191505060405180910390f35b341561068057600080fd5b6102bb610fd1565b341561069357600080fd5b61045c600160a060020a0360043516602435610fe0565b34156106b557600080fd5b61045c61104d565b34156106c857600080fd5b6102ea600160a060020a03600435166024356110df565b34156106ea57600080fd5b6103c0600160a060020a0360043581169060243516611183565b341561070f57600080fd5b61045c600160a060020a03600435166111ae565b341561072e57600080fd5b61045c60043561122e565b341561074457600080fd5b6103c0600160a060020a0360043516611293565b6000806000610772600d54856112a590919063ffffffff16565b915061077e82426112c9565b90506107a46103e86107988482850163ffffffff6112a516565b9063ffffffff6114df16565b949350505050565b6004546000906107c2908363ffffffff6108bd16565b90506107e760646107986c014adf4b7320334b9000000000603263ffffffff6112a516565b8111156107f357600080fd5b600160a060020a03831660009081526001602052604090205461081c908363ffffffff6108bd16565b600160a060020a038085166000908152600160205260408082209390935560065490911681522054610854908363ffffffff6114f616565b60068054600160a060020a03908116600090815260016020526040908190209390935560048490559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b6000828201838110156108cc57fe5b9392505050565b600754600160a060020a031681565b600e5460ff1681565b60408051908101604052600b81527f434c45415220546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600480600a5460a060020a900460ff1660058111156109b157fe5b146109bb57600080fd5b6109c6858585611508565b95945050505050565b6c014adf4b7320334b900000000081565b601281565b600280600a5460a060020a900460ff166005811115610a0057fe5b14610a0a57600080fd5b600c544211610a1857600080fd5b610a20611632565b610a2a600461166d565b50565b60075433600160a060020a03908116911614610a4857600080fd5b6000600a5460a060020a900460ff166005811115610a6257fe5b1480610a8557506001600a5460a060020a900460ff166005811115610a8357fe5b145b1515610a9057600080fd5b60008211610a9d57600080fd5b42819010610aaa57600080fd5b600c819055610ac082603263ffffffff6112a516565b600d55610acd600161166d565b5050565b60075433600160a060020a03908116911614610aec57600080fd5b600580600a5460a060020a900460ff166005811115610b0757fe5b14610b1157600080fd5b610a2a600361166d565b600854600160a060020a031681565b600a5433600160a060020a03908116911614610b4557600080fd5b600480600a5460a060020a900460ff166005811115610b6057fe5b14610b6a57600080fd5b600160a060020a03831663a9059cbb83826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610bc857600080fd5b6102c65a03f11515610bd957600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c2f57600080fd5b6102c65a03f11515610c4057600080fd5b50505060405180515050505050565b60075433600160a060020a03908116911614610c6a57600080fd5b600280600a5460a060020a900460ff166005811115610c8557fe5b14610a1857600080fd5b60045481565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610cf257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d29565b610d02818463ffffffff6114f616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600954600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600654600160a060020a031681565b60075433600160a060020a03908116911614610de757600080fd5b600180600a5460a060020a900460ff166005811115610e0257fe5b14610e0c57600080fd5b600c544210610e1a57600080fd5b43600b55610a2a600261166d565b60075433600160a060020a03908116911614610e4357600080fd5b600280600a5460a060020a900460ff166005811115610e5e57fe5b14610e6857600080fd5b610a2a600561166d565b60095433600160a060020a03908116911614610e8d57600080fd5b600480600a5460a060020a900460ff166005811115610ea857fe5b14610eb257600080fd5b600160a060020a03331682156108fc0283604051600060405180830381858888f193505050501515610acd57600080fd5b600b5481565b60408051908101604052600581527f434c454152000000000000000000000000000000000000000000000000000000602082015281565b60056020526000908152604090205460ff1681565b60075433600160a060020a03908116911614610f5057600080fd5b600580600a5460a060020a900460ff166005811115610f6b57fe5b14610f7557600080fd5b610a2a600261166d565b600d5481565b600c5481565b6000600480600a5460a060020a900460ff166005811115610fa857fe5b14610fb257600080fd5b6107a4848461170d565b603281565b600a5460a060020a900460ff1681565b600a54600160a060020a031681565b600a5433600160a060020a03908116911614610ffb57600080fd5b6001600a5460a060020a900460ff16600581111561101557fe5b148061103857506002600a5460a060020a900460ff16600581111561103657fe5b145b151561104357600080fd5b610acd82826107ac565b6000600380600a5460a060020a900460ff16600581111561106a57fe5b1461107457600080fd5b600160a060020a0333166000908152600360205260408120541161109757600080fd5b600160a060020a033316600081815260036020526040808220805492905590935083156108fc0290849051600060405180830381858888f193505050501515610acd57600080fd5b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611117908363ffffffff6108bd16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085433600160a060020a039081169116146111c957600080fd5b600160a060020a03811660009081526005602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a150565b600a5433600160a060020a0390811691161461124957600080fd5b600280600a5460a060020a900460ff16600581111561126457fe5b1461126e57600080fd5b6000821161127b57600080fd5b61128c82603263ffffffff6112a516565b600d555050565b60036020526000908152604090205481565b60008282028315806112c157508284828115156112be57fe5b04145b15156108cc57fe5b60006112d3611975565b6112db6119a3565b600080600080600060a06040519081016040528060806040519081016040528061012c815260200161019081526020016101f481526020016102ee815250815260200160806040519081016040528060c8815260200161012c8152602001610190815260200161025881525081526020016080604051908101604052806096815260200160fa815260200161012c81526020016101f48152508152602001608060405190810160405280606481526020016096815260200160fa8152602001610190815250815260200160806040519081016040528060008152602001606481526020016096815260200161012c81525081525096506080604051908101604052806113ec6107e2600360186117e3565b81526020016114006107e2600460056117e3565b81526020016114136107e26005806117e3565b81526020016114276107e2600660056117e3565b90529550670de0b6b3a76400008a0494506004935060009250631dcd650085106114545760039250611478565b6305f5e10085106114685760029250611478565b63017d7840851061147857600192505b506004905060005b818110156114b05785816004811061149457fe5b60200201518910156114a8578093506114b0565b600101611480565b8684600581106114bc57fe5b602002015183600481106114cc57fe5b60200201519a9950505050505050505050565b60008082848115156114ed57fe5b04949350505050565b60008282111561150257fe5b50900390565b600080600160a060020a038416151561152057600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054611566908463ffffffff6114f616565b600160a060020a03808716600090815260016020526040808220939093559086168152205461159b908463ffffffff6108bd16565b600160a060020a0385166000908152600160205260409020556115c4818463ffffffff6114f616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b600e805460ff191660011790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360058111156116ad57fe5b60ff1681526020018260058111156116c157fe5b60ff1681526020019250505060405180910390a1600a805482919074ff0000000000000000000000000000000000000000191660a060020a83600581111561170557fe5b021790555050565b6000600160a060020a038316151561172457600080fd5b600160a060020a03331660009081526001602052604090205461174d908363ffffffff6114f616565b600160a060020a033381166000908152600160205260408082209390935590851681522054611782908363ffffffff6108bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000806117ee6119ca565b63ffffffff6301e1338061ffff6107b119890116021692909201916118146107b2611904565b6118218761ffff16611904565b601f835203620151800292909201916118398661191f565b1561184a57601d6020820152611852565b601c60208201525b601f60408201819052601e606083018190526080830182905260a0830181905260c0830182905260e0830182905261010083018190526101208301829052610140830152610160820152600191505b8460ff168261ffff1610156118e7578061ffff600019840116600c81106118c457fe5b602002015160ff16620151800262ffffff168301925081806001019250506118a1565b50506000199190910160ff16620151800262ffffff160192915050565b60001901600061019082046064830460048404030192915050565b6000600461ffff83160661ffff161561193a57506000610db8565b606461ffff83160661ffff161561195357506001610db8565b61019061ffff83160661ffff161561196d57506000610db8565b506001919050565b6102806040519081016040526005815b61198d6119a3565b8152602001906001900390816119855790505090565b60806040519081016040526004815b60008152602001906001900390816119b25790505090565b610180604051908101604052600c815b6000815260001990910190602001816119da57905050905600a165627a7a72305820843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d1300029

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

00000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e80000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e1600000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163

-----Decoded View---------------
Arg [0] : _stateControl (address): 0x09848f88307e6e2ADf95eBecEd073D63802ece69
Arg [1] : _whitelistControl (address): 0xBe0AcE1E742A5CC246D719bF20Be908b2Ed905e8
Arg [2] : _withdrawControl (address): 0x8B5ab35b50dEb29d84DFF4053BB013d1fa82FcfB
Arg [3] : _tokenAssignmentControl (address): 0x71AB6571680F7745008B3Adfb4081f7e20429E16
Arg [4] : _reserves (address): 0x02C4E5d881e22C094731aD3073eE8AFe5DFB4163

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69
Arg [1] : 000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e8
Arg [2] : 0000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb
Arg [3] : 00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e16
Arg [4] : 00000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163


Swarm Source

bzzr://843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d130
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.