ETH Price: $2,651.20 (-5.53%)
Gas: 1.39 Gwei

Token

ICBX (ICBX)
 

Overview

Max Total Supply

1,000,000,000 ICBX

Holders

1,900

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 ICBX

Value
$0.00
0xacb992f034ca7a06c17b63c30ba1ddf54ada57b2
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:
TokenICBX

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Multiple files format)

File 6 of 6: TokenICBX.sol
pragma solidity ^0.4.25;

import "./TokenERC865.sol";

contract TokenICBX is TokenERC865 {

//    uint256 public sellPrice;
//    uint256 public buyPrice;
    mapping (address => bool) public frozenAccount;
    mapping (address => uint256) public freezeOf;

    /* This generates a public event on the blockchain that will notify clients */
    event FrozenFunds(address target, bool frozen);

    /* This notifies clients about the amount frozen */
    event Freeze(address indexed from, uint256 value);

    /* This notifies clients about the amount unfrozen */
    event Unfreeze(address indexed from, uint256 value);

    /* Initializes contract with initial supply tokens to the creator of the contract */
    constructor(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) TokenERC20(initialSupply, tokenName, tokenSymbol) public {}

    /* Internal transfer, only can be called by this contract */
    function _transfer(address _from, address _to, uint _value) internal {
        require (_to != 0x0);                               // Prevent transfer to 0x0 address. Use burn() instead
        require (balanceOf[_from] >= _value);               // Check if the sender has enough
        require (balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows
        require(!frozenAccount[_from]);                     // Check if sender is frozen
        require(!frozenAccount[_to]);                       // Check if recipient is frozen
        // balanceOf[_from] -= _value;                         // Subtract from the sender
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        // balanceOf[_to] += _value;                           // Add the same to the recipient
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        emit Transfer(_from, _to, _value);
    }

    /// @notice Create `mintedAmount` tokens and send it to `target`
    /// @param target Address to receive the tokens
    /// @param mintedAmount the amount of tokens it will receive
    function mintToken(address target, uint256 mintedAmount) onlyOwner public {
        // balanceOf[target] += mintedAmount;
        balanceOf[target] = safeAdd(balanceOf[target], mintedAmount);
        // totalSupply += mintedAmount;
        totalSupply = safeAdd(totalSupply, mintedAmount);
        emit Transfer(0, this, mintedAmount);
        emit Transfer(this, target, mintedAmount);
    }

    /// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens
    /// @param target Address to be frozen
    /// @param freeze either to freeze it or not
    function freezeAccount(address target, bool freeze) onlyOwner public {
        frozenAccount[target] = freeze;
        emit FrozenFunds(target, freeze);
    }

//    /// @notice Allow users to buy tokens for `newBuyPrice` eth and sell tokens for `newSellPrice` eth
//    /// @param newSellPrice Price the users can sell to the contract
//    /// @param newBuyPrice Price users can buy from the contract
//    function setPrices(uint256 newSellPrice, uint256 newBuyPrice) onlyOwner public {
//        sellPrice = newSellPrice;
//        buyPrice = newBuyPrice;
//    }
//
//    /// @notice Buy tokens from contract by sending ether
//    function buy() payable public {
//        //uint amount = msg.value / buyPrice;               // calculates the amount
//        uint amount = safeDiv(msg.value, buyPrice);
//        _transfer(this, msg.sender, amount);              // makes the transfers
//    }
//
//    /// @notice Sell `amount` tokens to contract
//    /// @param amount amount of tokens to be sold
//    function sell(uint256 amount) public {
//        address myAddress = this;
//        require(myAddress.balance >= amount * sellPrice);      // checks if the contract has enough ether to buy
//        _transfer(msg.sender, this, amount);              // makes the transfers
//        //msg.sender.transfer(amount * sellPrice);          // sends ether to the seller. It's important to do this last to avoid recursion attacks
//        msg.sender.transfer(safeMul(amount, sellPrice));
//    }

    function freeze(uint256 _value) returns (bool success) {
        require(balanceOf[msg.sender] >= _value);            // Check if the sender has enough
        require(_value > 0);
        balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _value);                      // Subtract from the sender
        freezeOf[msg.sender] = safeAdd(freezeOf[msg.sender], _value);                                // Updates totalSupply
        emit Freeze(msg.sender, _value);
        return true;
    }

    function unfreeze(uint256 _value) returns (bool success) {
        require(freezeOf[msg.sender] >= _value);            // Check if the sender has enough
        require(_value >= 0);
        freezeOf[msg.sender] = safeSub(freezeOf[msg.sender], _value);                      // Subtract from the sender
        balanceOf[msg.sender] = safeAdd(balanceOf[msg.sender], _value);
        emit Unfreeze(msg.sender, _value);
        return true;
    }

    // transfer balance to owner
    function withdrawEther(uint256 amount) onlyOwner {
        owner.transfer(amount);
    }

    // can accept ether
    function() payable {

    }

}

File 1 of 6: Ownable.sol
pragma solidity ^0.4.25;

contract Ownable {

    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "You are not owner of this token!");
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

File 2 of 6: Pausable.sol
pragma solidity ^0.4.25;


import "./Ownable.sol";


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism. Identical to OpenZeppelin version
 * except that it uses local Ownable contract
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused, "This token is not pausing!");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused, "This token is pausing!");
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

File 3 of 6: SafeMath.sol
pragma solidity ^0.4.25;


contract SafeMath {
    function safeMul(uint256 a, uint256 b) internal returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeDiv(uint256 a, uint256 b) internal returns (uint256) {
        assert(b > 0);
        uint256 c = a / b;
        assert(a == b * c + a % b);
        return c;
    }

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

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

    function assert(bool assertion) internal {
        if (!assertion) {
            throw;
        }
    }
}

File 4 of 6: TokenERC20.sol
pragma solidity ^0.4.25;

import "./SafeMath.sol";
import "./Pausable.sol";

interface tokenRecipient {
    //function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external;
    function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external;
}

contract TokenERC20 is SafeMath, Pausable{

    // Public variables of the token
    address public manager;
    string public name;
    string public symbol;
    uint8 public decimals = 18;
    // 18 decimals is the strongly suggested default, avoid changing it
    uint256 public totalSupply;

    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This generates a public event on the blockchain that will notify clients
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    /**
     * Constructor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    constructor(
        uint256 initialSupply,
        string memory tokenName,
        string memory tokenSymbol
    ) public {
        totalSupply = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                // Give the creator all initial tokens
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
        manager = msg.sender;
    }
    /**
     *
     * Get balance of 'tokenOwner'
     *
     * @param tokenOwner The address of 'tokenOwner'
     */
    function balanceOf(address tokenOwner) public view returns (uint) {
        return balanceOf[tokenOwner];
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal {
        // Prevent transfer to 0x0 address. Use burn() instead
        require(_to != address(0x0));
        // Check if the sender has enough
        require(balanceOf[_from] >= _value);
        // Check for overflows
        require(balanceOf[_to] + _value >= balanceOf[_to]);
        // Save this for an assertion in the future
        uint previousBalances = balanceOf[_from] + balanceOf[_to];
        // Subtract from the sender
        // balanceOf[_from] -= _value;
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        // Add the same to the recipient
        // balanceOf[_to] += _value;
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        emit Transfer(_from, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) whenNotPaused public returns (bool success) {
        _transfer(msg.sender, _to, _value);
        return true;
    }


    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` on behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) whenNotPaused public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }


    // This function returns the current approved number of tokens by an '_owner' to a specific '_spender',
    // as set in the approve function.
    function allowance(address _owner, address _spender) public view returns (uint) {
        return allowance[_owner][_spender];
    }

    /**
     * Set allowance for other address and notify
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     * @param _extraData some extra information to send to the approved contract
     */
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, address(this), _extraData);
            return true;
        }
    }

    /**
     * Destroy tokens
     *
     * Remove `_value` tokens from the system irreversibly
     *
     * @param _value the amount of money to burn
     */
    function burn(uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value);   // Check if the sender has enough
        // balanceOf[msg.sender] -= _value;            // Subtract from the sender
        balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _value);
        // totalSupply -= _value;                      // Updates totalSupply
        totalSupply = safeSub(totalSupply, _value);
        emit Burn(msg.sender, _value);
        return true;
    }

    /**
     * Destroy tokens from other account
     *
     * Remove `_value` tokens from the system irreversibly on behalf of `_from`.
     *
     * @param _from the address of the sender
     * @param _value the amount of money to burn
     */
    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value);                // Check if the targeted balance is enough
        require(_value <= allowance[_from][msg.sender]);    // Check allowance
        // balanceOf[_from] -= _value;                         // Subtract from the targeted balance
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        // allowance[_from][msg.sender] -= _value;             // Subtract from the sender's allowance
        allowance[_from][msg.sender] = safeSub(allowance[_from][msg.sender], _value);
        // totalSupply -= _value;                              // Update totalSupply
        totalSupply = safeSub(totalSupply, _value);
        emit Burn(_from, _value);
        return true;
    }

}

File 5 of 6: TokenERC865.sol
pragma solidity ^0.4.25;

import "./TokenERC20.sol";

contract TokenERC865 is TokenERC20 {

    event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);
    event TransferPreSignedNotFeeToken(address indexed from, address indexed to, address indexed delegate, uint256 amount);

    function transferPreSigned(address _from, address _to, uint256 _value, uint256 _fee) onlyOwner public returns (bool) {
        require(_to != address(0));
        require(_from != address(0));
        require(balanceOf[_from] >= safeAdd(_value, _fee));
        balanceOf[_from] = safeSub(safeSub(balanceOf[_from], _value), _fee);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        balanceOf[msg.sender] = safeAdd(balanceOf[msg.sender], _fee);
        emit Transfer(_from, _to, _value);
        emit Transfer(_from, msg.sender, _fee);
        emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);
        return true;
    }

    function transferPreSignedNotFeeToken(address _from, address _to, uint256 _value) onlyOwner public returns (bool) {
        require(_to != address(0));
        require(_from != address(0));
        require(balanceOf[_from] >= _value);
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        emit Transfer(_from, _to, _value);
        emit TransferPreSignedNotFeeToken(_from, _to, msg.sender, _value);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferPreSignedNotFeeToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint256"}],"name":"transferPreSigned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"unfreeze","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"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":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"freezeOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"freeze","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":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"delegate","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"}],"name":"TransferPreSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"delegate","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TransferPreSignedNotFeeToken","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"},{"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":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526000805460a060020a60ff02191690556004805460ff191660121790553480156200002e57600080fd5b506040516200194d3803806200194d83398101604090815281516020808401518385015160008054600160a060020a03191633908117825560045460ff16600a0a86026005819055908252600685529590209490945584018051929490930191849184918491620000a591600291850190620000db565b508051620000bb906003906020840190620000db565b505060018054600160a060020a0319163317905550620001809350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011e57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014e57825182559160200191906001019062000131565b506200015c92915062000160565b5090565b6200017d91905b808211156200015c576000815560010162000167565b90565b6117bd80620001906000396000f30060806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610160578063095ea7b3146101ea5780630ac966371461022257806318160ddd1461024c57806323b872dd14610273578063313ce5671461029d5780633bed33ce146102c85780633f4ba83a146102e057806342966c68146102f557806343cabbc41461030d578063481c6a751461033a5780635c975abb1461036b5780636623fc461461038057806370a082311461039857806379c65068146103b957806379cc6790146103dd5780638456cb59146104015780638da5cb5b1461041657806395d89b411461042b578063a9059cbb14610440578063b414d4b614610464578063cae9ca5114610485578063cd4217c1146104ee578063d7a78db81461050f578063dd62ed3e14610527578063e724529c1461054e578063f2fde38b14610574575b005b34801561016c57600080fd5b50610175610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101af578181015183820152602001610197565b50505050905090810190601f1680156101dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f657600080fd5b5061020e600160a060020a0360043516602435610620565b604080519115158252519081900360200190f35b34801561022e57600080fd5b5061020e600160a060020a03600435811690602435166044356106ea565b34801561025857600080fd5b50610261610880565b60408051918252519081900360200190f35b34801561027f57600080fd5b5061020e600160a060020a0360043581169060243516604435610886565b3480156102a957600080fd5b506102b26108f5565b6040805160ff9092168252519081900360200190f35b3480156102d457600080fd5b5061015e6004356108fe565b3480156102ec57600080fd5b5061015e61098b565b34801561030157600080fd5b5061020e600435610a85565b34801561031957600080fd5b5061020e600160a060020a0360043581169060243516604435606435610b19565b34801561034657600080fd5b5061034f610d27565b60408051600160a060020a039092168252519081900360200190f35b34801561037757600080fd5b5061020e610d36565b34801561038c57600080fd5b5061020e600435610d46565b3480156103a457600080fd5b50610261600160a060020a0360043516610e01565b3480156103c557600080fd5b5061015e600160a060020a0360043516602435610e1c565b3480156103e957600080fd5b5061020e600160a060020a0360043516602435610f10565b34801561040d57600080fd5b5061015e61103b565b34801561042257600080fd5b5061034f61113a565b34801561043757600080fd5b50610175611149565b34801561044c57600080fd5b5061020e600160a060020a03600435166024356111a4565b34801561047057600080fd5b5061020e600160a060020a036004351661121b565b34801561049157600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261020e948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506112309650505050505050565b3480156104fa57600080fd5b50610261600160a060020a0360043516611349565b34801561051b57600080fd5b5061020e60043561135b565b34801561053357600080fd5b50610261600160a060020a0360043581169060243516611415565b34801561055a57600080fd5b5061015e600160a060020a03600435166024351515611440565b34801561058057600080fd5b5061015e600160a060020a03600435166114f4565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b505050505081565b6000805460a060020a900460ff1615610683576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60008054600160a060020a0316331461073b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038316151561075057600080fd5b600160a060020a038416151561076557600080fd5b600160a060020a03841660009081526006602052604090205482111561078a57600080fd5b600160a060020a0384166000908152600660205260409020546107ad90836115c1565b600160a060020a0380861660009081526006602052604080822093909355908516815220546107dc90836115d5565b600160a060020a03808516600081815260066020908152604091829020949094558051868152905191939288169260008051602061177283398151915292918290030190a333600160a060020a031683600160a060020a031685600160a060020a03167f2c129692f5d92371b9ed81539d53819e9d6b781347dcd39506176e00720cf862856040518082815260200191505060405180910390a45060019392505050565b60055481565b600160a060020a03831660009081526007602090815260408083203384529091528120548211156108b657600080fd5b600160a060020a03841660009081526007602090815260408083203384529091529020805483900390556108eb8484846115f9565b5060019392505050565b60045460ff1681565b600054600160a060020a0316331461094e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60008054604051600160a060020a039091169183156108fc02918491818181858888f19350505050158015610987573d6000803e3d6000fd5b5050565b600054600160a060020a031633146109db576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610a3e576040805160e560020a62461bcd02815260206004820152601660248201527f5468697320746f6b656e2069732070617573696e672100000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b33600090815260066020526040812054821115610aa157600080fd5b33600090815260066020526040902054610abb90836115c1565b33600090815260066020526040902055600554610ad890836115c1565b60055560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b60008054600160a060020a03163314610b6a576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a0384161515610b7f57600080fd5b600160a060020a0385161515610b9457600080fd5b610b9e83836115d5565b600160a060020a0386166000908152600660205260409020541015610bc257600080fd5b600160a060020a038516600090815260066020526040902054610bef90610be990856115c1565b836115c1565b600160a060020a038087166000908152600660205260408082209390935590861681522054610c1e90846115d5565b600160a060020a038516600090815260066020526040808220929092553381522054610c4a90836115d5565b336000908152600660209081526040918290209290925580518581529051600160a060020a038781169390891692600080516020611772833981519152929081900390910190a36040805183815290513391600160a060020a038816916000805160206117728339815191529181900360200190a333600160a060020a031684600160a060020a031686600160a060020a03167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48686604051808381526020018281526020019250505060405180910390a4506001949350505050565b600154600160a060020a031681565b60005460a060020a900460ff1681565b33600090815260096020526040812054821115610d6257600080fd5b6000821015610d7057600080fd5b33600090815260096020526040902054610d8a90836115c1565b33600090815260096020908152604080832093909355600690522054610db090836115d5565b33600081815260066020908152604091829020939093558051858152905191927f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f92918290030190a2506001919050565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a03163314610e6c576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260066020526040902054610e8f90826115d5565b600160a060020a038316600090815260066020526040902055600554610eb590826115d5565b60055560408051828152905130916000916000805160206117728339815191529181900360200190a3604080518281529051600160a060020a0384169130916000805160206117728339815191529181900360200190a35050565b600160a060020a038216600090815260066020526040812054821115610f3557600080fd5b600160a060020a0383166000908152600760209081526040808320338452909152902054821115610f6557600080fd5b600160a060020a038316600090815260066020526040902054610f8890836115c1565b600160a060020a0384166000908152600660209081526040808320939093556007815282822033835290522054610fbf90836115c1565b600160a060020a0384166000908152600760209081526040808320338452909152902055600554610ff090836115c1565b600555604080518381529051600160a060020a038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250600192915050565b600054600160a060020a0316331461108b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156110ed576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106185780601f106105ed57610100808354040283529160200191610618565b6000805460a060020a900460ff1615611207576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b6112123384846115f9565b50600192915050565b60086020526000908152604090205460ff1681565b60008361123d8185610620565b15611341576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b838110156112d55781810151838201526020016112bd565b50505050905090810190601f1680156113025780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b50505050600191505b509392505050565b60096020526000908152604090205481565b3360009081526006602052604081205482111561137757600080fd5b6000821161138457600080fd5b3360009081526006602052604090205461139e90836115c1565b336000908152600660209081526040808320939093556009905220546113c490836115d5565b33600081815260096020908152604091829020939093558051858152905191927ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e092918290030190a2506001919050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b600054600160a060020a03163314611490576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038216600081815260086020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600054600160a060020a03163314611544576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038116151561155957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006115cf83831115611742565b50900390565b60008282016115f28482108015906115ed5750838210155b611742565b9392505050565b600160a060020a038216151561160e57600080fd5b600160a060020a03831660009081526006602052604090205481111561163357600080fd5b600160a060020a038216600090815260066020526040902054818101101561165a57600080fd5b600160a060020a03831660009081526008602052604090205460ff161561168057600080fd5b600160a060020a03821660009081526008602052604090205460ff16156116a657600080fd5b600160a060020a0383166000908152600660205260409020546116c990826115c1565b600160a060020a0380851660009081526006602052604080822093909355908416815220546116f890826115d5565b600160a060020a03808416600081815260066020908152604091829020949094558051858152905191939287169260008051602061177283398151915292918290030190a3505050565b80151561174e57600080fd5b505600596f7520617265206e6f74206f776e6572206f66207468697320746f6b656e21ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e9b9e7559d777b98e00e663b349a3e1e853411beca5e1876a75bb10715af7dc30029000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004494342580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044943425800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610160578063095ea7b3146101ea5780630ac966371461022257806318160ddd1461024c57806323b872dd14610273578063313ce5671461029d5780633bed33ce146102c85780633f4ba83a146102e057806342966c68146102f557806343cabbc41461030d578063481c6a751461033a5780635c975abb1461036b5780636623fc461461038057806370a082311461039857806379c65068146103b957806379cc6790146103dd5780638456cb59146104015780638da5cb5b1461041657806395d89b411461042b578063a9059cbb14610440578063b414d4b614610464578063cae9ca5114610485578063cd4217c1146104ee578063d7a78db81461050f578063dd62ed3e14610527578063e724529c1461054e578063f2fde38b14610574575b005b34801561016c57600080fd5b50610175610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101af578181015183820152602001610197565b50505050905090810190601f1680156101dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f657600080fd5b5061020e600160a060020a0360043516602435610620565b604080519115158252519081900360200190f35b34801561022e57600080fd5b5061020e600160a060020a03600435811690602435166044356106ea565b34801561025857600080fd5b50610261610880565b60408051918252519081900360200190f35b34801561027f57600080fd5b5061020e600160a060020a0360043581169060243516604435610886565b3480156102a957600080fd5b506102b26108f5565b6040805160ff9092168252519081900360200190f35b3480156102d457600080fd5b5061015e6004356108fe565b3480156102ec57600080fd5b5061015e61098b565b34801561030157600080fd5b5061020e600435610a85565b34801561031957600080fd5b5061020e600160a060020a0360043581169060243516604435606435610b19565b34801561034657600080fd5b5061034f610d27565b60408051600160a060020a039092168252519081900360200190f35b34801561037757600080fd5b5061020e610d36565b34801561038c57600080fd5b5061020e600435610d46565b3480156103a457600080fd5b50610261600160a060020a0360043516610e01565b3480156103c557600080fd5b5061015e600160a060020a0360043516602435610e1c565b3480156103e957600080fd5b5061020e600160a060020a0360043516602435610f10565b34801561040d57600080fd5b5061015e61103b565b34801561042257600080fd5b5061034f61113a565b34801561043757600080fd5b50610175611149565b34801561044c57600080fd5b5061020e600160a060020a03600435166024356111a4565b34801561047057600080fd5b5061020e600160a060020a036004351661121b565b34801561049157600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261020e948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506112309650505050505050565b3480156104fa57600080fd5b50610261600160a060020a0360043516611349565b34801561051b57600080fd5b5061020e60043561135b565b34801561053357600080fd5b50610261600160a060020a0360043581169060243516611415565b34801561055a57600080fd5b5061015e600160a060020a03600435166024351515611440565b34801561058057600080fd5b5061015e600160a060020a03600435166114f4565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b505050505081565b6000805460a060020a900460ff1615610683576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60008054600160a060020a0316331461073b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038316151561075057600080fd5b600160a060020a038416151561076557600080fd5b600160a060020a03841660009081526006602052604090205482111561078a57600080fd5b600160a060020a0384166000908152600660205260409020546107ad90836115c1565b600160a060020a0380861660009081526006602052604080822093909355908516815220546107dc90836115d5565b600160a060020a03808516600081815260066020908152604091829020949094558051868152905191939288169260008051602061177283398151915292918290030190a333600160a060020a031683600160a060020a031685600160a060020a03167f2c129692f5d92371b9ed81539d53819e9d6b781347dcd39506176e00720cf862856040518082815260200191505060405180910390a45060019392505050565b60055481565b600160a060020a03831660009081526007602090815260408083203384529091528120548211156108b657600080fd5b600160a060020a03841660009081526007602090815260408083203384529091529020805483900390556108eb8484846115f9565b5060019392505050565b60045460ff1681565b600054600160a060020a0316331461094e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60008054604051600160a060020a039091169183156108fc02918491818181858888f19350505050158015610987573d6000803e3d6000fd5b5050565b600054600160a060020a031633146109db576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610a3e576040805160e560020a62461bcd02815260206004820152601660248201527f5468697320746f6b656e2069732070617573696e672100000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b33600090815260066020526040812054821115610aa157600080fd5b33600090815260066020526040902054610abb90836115c1565b33600090815260066020526040902055600554610ad890836115c1565b60055560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b60008054600160a060020a03163314610b6a576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a0384161515610b7f57600080fd5b600160a060020a0385161515610b9457600080fd5b610b9e83836115d5565b600160a060020a0386166000908152600660205260409020541015610bc257600080fd5b600160a060020a038516600090815260066020526040902054610bef90610be990856115c1565b836115c1565b600160a060020a038087166000908152600660205260408082209390935590861681522054610c1e90846115d5565b600160a060020a038516600090815260066020526040808220929092553381522054610c4a90836115d5565b336000908152600660209081526040918290209290925580518581529051600160a060020a038781169390891692600080516020611772833981519152929081900390910190a36040805183815290513391600160a060020a038816916000805160206117728339815191529181900360200190a333600160a060020a031684600160a060020a031686600160a060020a03167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48686604051808381526020018281526020019250505060405180910390a4506001949350505050565b600154600160a060020a031681565b60005460a060020a900460ff1681565b33600090815260096020526040812054821115610d6257600080fd5b6000821015610d7057600080fd5b33600090815260096020526040902054610d8a90836115c1565b33600090815260096020908152604080832093909355600690522054610db090836115d5565b33600081815260066020908152604091829020939093558051858152905191927f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f92918290030190a2506001919050565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a03163314610e6c576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260066020526040902054610e8f90826115d5565b600160a060020a038316600090815260066020526040902055600554610eb590826115d5565b60055560408051828152905130916000916000805160206117728339815191529181900360200190a3604080518281529051600160a060020a0384169130916000805160206117728339815191529181900360200190a35050565b600160a060020a038216600090815260066020526040812054821115610f3557600080fd5b600160a060020a0383166000908152600760209081526040808320338452909152902054821115610f6557600080fd5b600160a060020a038316600090815260066020526040902054610f8890836115c1565b600160a060020a0384166000908152600660209081526040808320939093556007815282822033835290522054610fbf90836115c1565b600160a060020a0384166000908152600760209081526040808320338452909152902055600554610ff090836115c1565b600555604080518381529051600160a060020a038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250600192915050565b600054600160a060020a0316331461108b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156110ed576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106185780601f106105ed57610100808354040283529160200191610618565b6000805460a060020a900460ff1615611207576040805160e560020a62461bcd02815260206004820152601a60248201527f5468697320746f6b656e206973206e6f742070617573696e6721000000000000604482015290519081900360640190fd5b6112123384846115f9565b50600192915050565b60086020526000908152604090205460ff1681565b60008361123d8185610620565b15611341576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b838110156112d55781810151838201526020016112bd565b50505050905090810190601f1680156113025780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b50505050600191505b509392505050565b60096020526000908152604090205481565b3360009081526006602052604081205482111561137757600080fd5b6000821161138457600080fd5b3360009081526006602052604090205461139e90836115c1565b336000908152600660209081526040808320939093556009905220546113c490836115d5565b33600081815260096020908152604091829020939093558051858152905191927ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e092918290030190a2506001919050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b600054600160a060020a03163314611490576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038216600081815260086020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600054600160a060020a03163314611544576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611752833981519152604482015290519081900360640190fd5b600160a060020a038116151561155957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006115cf83831115611742565b50900390565b60008282016115f28482108015906115ed5750838210155b611742565b9392505050565b600160a060020a038216151561160e57600080fd5b600160a060020a03831660009081526006602052604090205481111561163357600080fd5b600160a060020a038216600090815260066020526040902054818101101561165a57600080fd5b600160a060020a03831660009081526008602052604090205460ff161561168057600080fd5b600160a060020a03821660009081526008602052604090205460ff16156116a657600080fd5b600160a060020a0383166000908152600660205260409020546116c990826115c1565b600160a060020a0380851660009081526006602052604080822093909355908416815220546116f890826115d5565b600160a060020a03808416600081815260066020908152604091829020949094558051858152905191939287169260008051602061177283398151915292918290030190a3505050565b80151561174e57600080fd5b505600596f7520617265206e6f74206f776e6572206f66207468697320746f6b656e21ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e9b9e7559d777b98e00e663b349a3e1e853411beca5e1876a75bb10715af7dc30029

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

000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004494342580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044943425800000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 1000000000
Arg [1] : tokenName (string): ICBX
Arg [2] : tokenSymbol (string): ICBX

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 4943425800000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 4943425800000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

59:5305:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:18:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:18:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;453:18:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4516:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4516:230:3;-1:-1:-1;;;;;4516:230:3;;;;;;;;;;;;;;;;;;;;;;;;;1020:508:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1020:508:4;-1:-1:-1;;;;;1020:508:4;;;;;;;;;;;;611:26:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;611:26:3;;;;;;;;;;;;;;;;;;;;3951:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3951:296:3;-1:-1:-1;;;;;3951:296:3;;;;;;;;;;;;505:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;505:26:3;;;;;;;;;;;;;;;;;;;;;;;5207:90:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5207:90:5;;;;;1076:105:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1076:105:1;;;;5957:506:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5957:506:3;;;;;356:656:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;356:656:4;-1:-1:-1;;;;;356:656:4;;;;;;;;;;;;;;424:22:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:22:3;;;;;;;;-1:-1:-1;;;;;424:22:3;;;;;;;;;;;;;;337:26:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;337:26:1;;;;4715:450:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4715:450:5;;;;;2110:113:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2110:113:3;-1:-1:-1;;;;;2110:113:3;;;;;2084:399:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2084:399:5;-1:-1:-1;;;;;2084:399:5;;;;;;;6726:823:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6726:823:3;-1:-1:-1;;;;;6726:823:3;;;;;;;878:103:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;878:103:1;;;;54:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;54:20:0;;;;478::3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;478:20:3;;;;3503:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3503:166:3;-1:-1:-1;;;;;3503:166:3;;;;;;;167:46:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;167:46:5;-1:-1:-1;;;;;167:46:5;;;;;5437:345:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5437:345:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5437:345:3;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5437:345:3;;-1:-1:-1;5437:345:3;;-1:-1:-1;;;;;;;5437:345:3;220:44:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;220:44:5;-1:-1:-1;;;;;220:44:5;;;;;4207:500;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4207:500:5;;;;;4905:133:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4905:133:3;-1:-1:-1;;;;;4905:133:3;;;;;;;;;;2669:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2669:161:5;-1:-1:-1;;;;;2669:161:5;;;;;;;;;751:192:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;751:192:0;-1:-1:-1;;;;;751:192:0;;;;;453:18:3;;;;;;;;;;;;;;-1:-1:-1;;453:18:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4516:230::-;4597:12;525:6:1;;-1:-1:-1;;;525:6:1;;;;524:7;516:46;;;;;-1:-1:-1;;;;;516:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4632:10:3;4622:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4622:31:3;;;;;;;;;;;;:40;;;4678:38;;;;;;;4622:31;;4632:10;4678:38;;;;;;;;;;;-1:-1:-1;4734:4:3;4516:230;;;;:::o;1020:508:4:-;1128:4;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1153:17:4;;;;1145:26;;;;;;-1:-1:-1;;;;;1190:19:4;;;;1182:28;;;;;;-1:-1:-1;;;;;1229:16:4;;;;;;:9;:16;;;;;;:26;-1:-1:-1;1229:26:4;1221:35;;;;;;-1:-1:-1;;;;;1294:16:4;;;;;;:9;:16;;;;;;1286:33;;1312:6;1286:7;:33::i;:::-;-1:-1:-1;;;;;1267:16:4;;;;;;;:9;:16;;;;;;:52;;;;1355:14;;;;;;;1347:31;;1371:6;1347:7;:31::i;:::-;-1:-1:-1;;;;;1330:14:4;;;;;;;:9;:14;;;;;;;;;:48;;;;1394:28;;;;;;;1330:14;;1394:28;;;;-1:-1:-1;;;;;;;;;;;1394:28:4;;;;;;;;1479:10;-1:-1:-1;;;;;1438:60:4;1474:3;-1:-1:-1;;;;;1438:60:4;1467:5;-1:-1:-1;;;;;1438:60:4;;1491:6;1438:60;;;;;;;;;;;;;;;;;;-1:-1:-1;1516:4:4;1020:508;;;;;:::o;611:26:3:-;;;;:::o;3951:296::-;-1:-1:-1;;;;;4076:16:3;;4033:12;4076:16;;;:9;:16;;;;;;;;4093:10;4076:28;;;;;;;;4066:38;;;4058:47;;;;;;-1:-1:-1;;;;;4139:16:3;;;;;;:9;:16;;;;;;;;4156:10;4139:28;;;;;;;:38;;;;;;;4188:29;4149:5;4205:3;4171:6;4188:9;:29::i;:::-;-1:-1:-1;4235:4:3;3951:296;;;;;:::o;505:26::-;;;;;;:::o;5207:90:5:-;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;5267:5:5;;;:22;;-1:-1:-1;;;;;5267:5:5;;;;:22;;;;;5282:6;;5267:22;:5;:22;5282:6;5267:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5267:22:5;5207:90;:::o;1076:105:1:-;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;733:6:1;;-1:-1:-1;;;733:6:1;;;;725:41;;;;;;;-1:-1:-1;;;;;725:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:5;1134:14;;-1:-1:-1;;1134:14:1;;;1164:9;;;;1143:5;1164:9;1076:105::o;5957:506:3:-;6046:10;6003:12;6036:21;;;:9;:21;;;;;;:31;-1:-1:-1;6036:31:3;6028:40;;;;;;6241:10;6231:21;;;;:9;:21;;;;;;6223:38;;6254:6;6223:7;:38::i;:::-;6209:10;6199:21;;;;:9;:21;;;;;:62;6373:11;;6365:28;;6386:6;6365:7;:28::i;:::-;6351:11;:42;6409:24;;;;;;;;6414:10;;6409:24;;;;;;;;;;-1:-1:-1;6451:4:3;5957:506;;;:::o;356:656:4:-;467:4;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;492:17:4;;;;484:26;;;;;;-1:-1:-1;;;;;529:19:4;;;;521:28;;;;;;588:21;596:6;604:4;588:7;:21::i;:::-;-1:-1:-1;;;;;568:16:4;;;;;;:9;:16;;;;;;:41;;560:50;;;;;;-1:-1:-1;;;;;656:16:4;;;;;;:9;:16;;;;;;640:48;;648:33;;674:6;648:7;:33::i;:::-;683:4;640:7;:48::i;:::-;-1:-1:-1;;;;;621:16:4;;;;;;;:9;:16;;;;;;:67;;;;724:14;;;;;;;716:31;;740:6;716:7;:31::i;:::-;-1:-1:-1;;;;;699:14:4;;;;;;:9;:14;;;;;;:48;;;;800:10;790:21;;;;782:36;;813:4;782:7;:36::i;:::-;768:10;758:21;;;;:9;:21;;;;;;;;;:60;;;;834:28;;;;;;;-1:-1:-1;;;;;834:28:4;;;;;;;;-1:-1:-1;;;;;;;;;;;834:28:4;;;;;;;;;;878:33;;;;;;;;894:10;;-1:-1:-1;;;;;878:33:4;;;-1:-1:-1;;;;;;;;;;;878:33:4;;;;;;;;957:10;-1:-1:-1;;;;;927:55:4;952:3;-1:-1:-1;;;;;927:55:4;945:5;-1:-1:-1;;;;;927:55:4;;969:6;977:4;927:55;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1000:4:4;356:656;;;;;;:::o;424:22:3:-;;;-1:-1:-1;;;;;424:22:3;;:::o;337:26:1:-;;;-1:-1:-1;;;337:26:1;;;;;:::o;4715:450:5:-;4800:10;4758:12;4791:20;;;:8;:20;;;;;;:30;-1:-1:-1;4791:30:5;4783:39;;;;;;4896:1;4886:11;;;4878:20;;;;;;4949:10;4940:20;;;;:8;:20;;;;;;4932:37;;4962:6;4932:7;:37::i;:::-;4918:10;4909:20;;;;:8;:20;;;;;;;;:60;;;;5061:9;:21;;;;5053:38;;5084:6;5053:7;:38::i;:::-;5039:10;5029:21;;;;:9;:21;;;;;;;;;:62;;;;5107:28;;;;;;;5039:10;;5107:28;;;;;;;;;-1:-1:-1;5153:4:5;4715:450;;;:::o;2110:113:3:-;-1:-1:-1;;;;;2194:21:3;2170:4;2194:21;;;:9;:21;;;;;;;2110:113::o;2084:399:5:-;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2244:17:5;;;;;;:9;:17;;;;;;2236:40;;2263:12;2236:7;:40::i;:::-;-1:-1:-1;;;;;2216:17:5;;;;;;:9;:17;;;;;:60;2350:11;;2342:34;;2363:12;2342:7;:34::i;:::-;2328:11;:48;2392:31;;;;;;;;2404:4;;2401:1;;-1:-1:-1;;;;;;;;;;;2392:31:5;;;;;;;;2439:36;;;;;;;;-1:-1:-1;;;;;2439:36:5;;;2448:4;;-1:-1:-1;;;;;;;;;;;2439:36:5;;;;;;;;2084:399;;:::o;6726:823:3:-;-1:-1:-1;;;;;6824:16:3;;6791:12;6824:16;;;:9;:16;;;;;;:26;-1:-1:-1;6824:26:3;6816:35;;;;;;-1:-1:-1;;;;;6938:16:3;;;;;;:9;:16;;;;;;;;6955:10;6938:28;;;;;;;;6928:38;;;6920:47;;;;;;-1:-1:-1;;;;;7129:16:3;;;;;;:9;:16;;;;;;7121:33;;7147:6;7121:7;:33::i;:::-;-1:-1:-1;;;;;7102:16:3;;;;;;:9;:16;;;;;;;;:52;;;;7308:9;:16;;;;;7325:10;7308:28;;;;;;7300:45;;7338:6;7300:7;:45::i;:::-;-1:-1:-1;;;;;7269:16:3;;;;;;:9;:16;;;;;;;;7286:10;7269:28;;;;;;;:76;7464:11;;7456:28;;7477:6;7456:7;:28::i;:::-;7442:11;:42;7500:19;;;;;;;;-1:-1:-1;;;;;7500:19:3;;;;;;;;;;;;;-1:-1:-1;7537:4:3;6726:823;;;;:::o;878:103:1:-;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;525:6:1;;-1:-1:-1;;;525:6:1;;;;524:7;516:46;;;;;-1:-1:-1;;;;;516:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:6;:13;;-1:-1:-1;;937:13:1;-1:-1:-1;;;937:13:1;;;966:7;;;;937:6;966:7;878:103::o;54:20:0:-;;;-1:-1:-1;;;;;54:20:0;;:::o;478::3:-;;;;;;;;;;;;;;;-1:-1:-1;;478:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3503:166;3580:12;525:6:1;;-1:-1:-1;;;525:6:1;;;;524:7;516:46;;;;;-1:-1:-1;;;;;516:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3605:34:3;3615:10;3627:3;3632:6;3605:9;:34::i;:::-;-1:-1:-1;3657:4:3;3503:166;;;;:::o;167:46:5:-;;;;;;;;;;;;;;;:::o;5437:345:3:-;5536:12;5601:8;5625:25;5601:8;5643:6;5625:7;:25::i;:::-;5621:154;;;5667:70;;;;;5691:10;5667:70;;;;;;;;;;;;5719:4;5667:70;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5667:23:3;;;;;5691:10;5703:6;;5719:4;5726:10;;5667:70;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5667:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5667:70:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5667:70:3;;;;5759:4;5752:11;;5621:154;5437:345;;;;;;:::o;220:44:5:-;;;;;;;;;;;;;:::o;4207:500::-;4291:10;4248:12;4281:21;;;:9;:21;;;;;;:31;-1:-1:-1;4281:31:5;4273:40;;;;;;4386:1;4377:10;;4369:19;;;;;;4441:10;4431:21;;;;:9;:21;;;;;;4423:38;;4454:6;4423:7;:38::i;:::-;4409:10;4399:21;;;;:9;:21;;;;;;;;:62;;;;4552:8;:20;;;;4544:37;;4574:6;4544:7;:37::i;:::-;4530:10;4521:20;;;;:8;:20;;;;;;;;;:60;;;;4651:26;;;;;;;4530:10;;4651:26;;;;;;;;;-1:-1:-1;4695:4:5;4207:500;;;:::o;4905:133:3:-;-1:-1:-1;;;;;5003:17:3;;;4979:4;5003:17;;;:9;:17;;;;;;;;:27;;;;;;;;;;;;;4905:133::o;2669:161:5:-;512:5:0;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2749:21:5;;;;;;:13;:21;;;;;;;;;:30;;-1:-1:-1;;2749:30:5;;;;;;;;;;2795:27;;;;;;;;;;;;;;;;;;;;;2669:161;;:::o;751:192:0:-;512:5;;-1:-1:-1;;;;;512:5:0;498:10;:19;490:64;;;;;-1:-1:-1;;;;;490:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;490:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:22:0;;;;824:31;;;;;;892:5;;;871:37;;-1:-1:-1;;;;;871:37:0;;;;892:5;;;871:37;;;919:5;:16;;-1:-1:-1;;919:16:0;-1:-1:-1;;;;;919:16:0;;;;;;;;;;751:192::o;413:122:2:-;470:7;490:14;502:1;497;:6;;490;:14::i;:::-;-1:-1:-1;522:5:2;;;413:122::o;543:152::-;600:7;632:5;;;648:20;655:4;;;;;;:12;;;666:1;663;:4;;655:12;648:6;:20::i;:::-;686:1;543:152;-1:-1:-1;;;543:152:2:o;976:911:5:-;-1:-1:-1;;;;;1065:10:5;;;;1056:20;;;;;;-1:-1:-1;;;;;1181:16:5;;;;;;:9;:16;;;;;;:26;-1:-1:-1;1181:26:5;1172:36;;;;;;-1:-1:-1;;;;;1303:14:5;;;;;;:9;:14;;;;;;1276:23;;;:41;;1267:51;;;;;;-1:-1:-1;;;;;1361:20:5;;;;;;:13;:20;;;;;;;;1360:21;1352:30;;;;;;-1:-1:-1;;;;;1451:18:5;;;;;;:13;:18;;;;;;;;1450:19;1442:28;;;;;;-1:-1:-1;;;;;1654:16:5;;;;;;:9;:16;;;;;;1646:33;;1672:6;1646:7;:33::i;:::-;-1:-1:-1;;;;;1627:16:5;;;;;;;:9;:16;;;;;;:52;;;;1812:14;;;;;;;1804:31;;1828:6;1804:7;:31::i;:::-;-1:-1:-1;;;;;1787:14:5;;;;;;;:9;:14;;;;;;;;;:48;;;;1851:28;;;;;;;1787:14;;1851:28;;;;-1:-1:-1;;;;;;;;;;;1851:28:5;;;;;;;;976:911;;;:::o;703:107:2:-;760:9;759:10;755:48;;;786:5;;;755:48;703:107;:::o

Swarm Source

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