ETH Price: $3,119.40 (-0.46%)

Token

XPAHKD (HKX)
 

Overview

Max Total Supply

41,042,770 HKX

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
11 HKX

Value
$0.00
0x660E230DA3b802CCB96f8FD027F16866056182D4
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0080d4B7...8Da771743
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
XPAAssetToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.21;

interface Token {
    function totalSupply() constant external returns (uint256 ts);
    function balanceOf(address _owner) constant external returns (uint256 balance);
    function transfer(address _to, uint256 _value) external returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _owner, address _spender) constant external returns (uint256 remaining);
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

interface Baliv {
    function getPrice(address fromToken_, address toToken_) external view returns(uint256);
}

contract TokenRecipient {
    function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external;
}

contract SafeMath {
    function safeAdd(uint x, uint y)
        internal
        pure
    returns(uint) {
        uint256 z = x + y;
        require((z >= x) && (z >= y));
        return z;
    }

    function safeSub(uint x, uint y)
        internal
        pure
    returns(uint) {
        require(x >= y);
        uint256 z = x - y;
        return z;
    }

    function safeMul(uint x, uint y)
        internal
        pure
    returns(uint) {
        uint z = x * y;
        require((x == 0) || (z / x == y));
        return z;
    }
    
    function safeDiv(uint x, uint y)
        internal
        pure
    returns(uint) {
        require(y > 0);
        return x / y;
    }

    function random(uint N, uint salt)
        internal
        view
    returns(uint) {
        bytes32 hash = keccak256(block.number, msg.sender, salt);
        return uint(hash) % N;
    }
}

contract Authorization {
    mapping(address => bool) internal authbook;
    address[] public operators;
    address public owner;
    bool public powerStatus = true;
    function Authorization()
        public
        payable
    {
        owner = msg.sender;
        assignOperator(msg.sender);
    }
    modifier onlyOwner
    {
        assert(msg.sender == owner);
        _;
    }
    modifier onlyOperator
    {
        assert(checkOperator(msg.sender));
        _;
    }
    modifier onlyActive
    {
        assert(powerStatus);
        _;
    }
    function powerSwitch(
        bool onOff_
    )
        public
        onlyOperator
    {
        powerStatus = onOff_;
    }
    function transferOwnership(address newOwner_)
        onlyOwner
        public
    {
        owner = newOwner_;
    }
    
    function assignOperator(address user_)
        public
        onlyOwner
    {
        if(user_ != address(0) && !authbook[user_]) {
            authbook[user_] = true;
            operators.push(user_);
        }
    }
    
    function dismissOperator(address user_)
        public
        onlyOwner
    {
        delete authbook[user_];
        for(uint i = 0; i < operators.length; i++) {
            if(operators[i] == user_) {
                operators[i] = operators[operators.length - 1];
                operators.length -= 1;
            }
        }
    }

    function checkOperator(address user_)
        public
        view
    returns(bool) {
        return authbook[user_];
    }
}

contract StandardToken is SafeMath {
    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    uint256 public totalSupply;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event Issue(address indexed _to, uint256 indexed _value);
    event Burn(address indexed _from, uint256 indexed _value);

    /* constructure */
    function StandardToken() public payable {}

    /* Send coins */
    function transfer(
        address to_,
        uint256 amount_
    )
        public
    returns(bool success) {
        if(balances[msg.sender] >= amount_ && amount_ > 0) {
            balances[msg.sender] = safeSub(balances[msg.sender], amount_);
            balances[to_] = safeAdd(balances[to_], amount_);
            emit Transfer(msg.sender, to_, amount_);
            return true;
        } else {
            return false;
        }
    }

    /* A contract attempts to get the coins */
    function transferFrom(
        address from_,
        address to_,
        uint256 amount_
    ) public returns(bool success) {
        if(balances[from_] >= amount_ && allowed[from_][msg.sender] >= amount_ && amount_ > 0) {
            balances[to_] = safeAdd(balances[to_], amount_);
            balances[from_] = safeSub(balances[from_], amount_);
            allowed[from_][msg.sender] = safeSub(allowed[from_][msg.sender], amount_);
            emit Transfer(from_, to_, amount_);
            return true;
        } else {
            return false;
        }
    }

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

    /* Allow another contract to spend some tokens in your behalf */
    function approve(
        address _spender,
        uint256 _value
    )
        public
    returns (bool success) {
        assert((_value == 0) || (allowed[msg.sender][_spender] == 0));
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /* Approve and then communicate the approved contract in a single tx */
    function approveAndCall(
        address _spender,
        uint256 _value,
        bytes _extraData
    )
        public
    returns (bool success) {    
        if (approve(_spender, _value)) {
            TokenRecipient(_spender).receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }

    function allowance(address _owner, address _spender) constant public returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
}

contract XPAAssetToken is StandardToken, Authorization {
    // metadata
    address[] public burners;
    string public name;
    string public symbol;
    uint256 public defaultExchangeRate;
    uint256 public constant decimals = 18;

    // constructor
    function XPAAssetToken(
        string symbol_,
        string name_,
        uint256 defaultExchangeRate_
    )
        public
    {
        totalSupply = 0;
        symbol = symbol_;
        name = name_;
        defaultExchangeRate = defaultExchangeRate_ > 0 ? defaultExchangeRate_ : 0.01 ether;
    }

    function transferOwnership(
        address newOwner_
    )
        onlyOwner
        public
    {
        owner = newOwner_;
    }

    function create(
        address user_,
        uint256 amount_
    )
        public
        onlyOperator
    returns(bool success) {
        if(amount_ > 0 && user_ != address(0)) {
            totalSupply = safeAdd(totalSupply, amount_);
            balances[user_] = safeAdd(balances[user_], amount_);
            emit Issue(owner, amount_);
            emit Transfer(owner, user_, amount_);
            return true;
        }
    }

    function burn(
        uint256 amount_
    )
        public
    returns(bool success) {
        require(allowToBurn(msg.sender));
        if(amount_ > 0 && balances[msg.sender] >= amount_) {
            balances[msg.sender] = safeSub(balances[msg.sender], amount_);
            totalSupply = safeSub(totalSupply, amount_);
            emit Transfer(msg.sender, owner, amount_);
            emit Burn(owner, amount_);
            return true;
        }
    }

    function burnFrom(
        address user_,
        uint256 amount_
    )
        public
    returns(bool success) {
        require(allowToBurn(msg.sender));
        if(balances[user_] >= amount_ && allowed[user_][msg.sender] >= amount_ && amount_ > 0) {
            balances[user_] = safeSub(balances[user_], amount_);
            totalSupply = safeSub(totalSupply, amount_);
            allowed[user_][msg.sender] = safeSub(allowed[user_][msg.sender], amount_);
            emit Transfer(user_, owner, amount_);
            emit Burn(owner, amount_);
            return true;
        }
    }

    function getDefaultExchangeRate(
    )
        public
        view
    returns(uint256) {
        return defaultExchangeRate;
    }

    function getSymbol(
    )
        public
        view
    returns(bytes32) {
        return keccak256(symbol);
    }

    function assignBurner(
        address account_
    )
        public
        onlyOperator
    {
        require(account_ != address(0));
        for(uint256 i = 0; i < burners.length; i++) {
            if(burners[i] == account_) {
                return;
            }
        }
        burners.push(account_);
    }

    function dismissBunner(
        address account_
    )
        public
        onlyOperator
    {
        require(account_ != address(0));
        for(uint256 i = 0; i < burners.length; i++) {
            if(burners[i] == account_) {
                burners[i] = burners[burners.length - 1];
                burners.length -= 1;
            }
        }
    }

    function allowToBurn(
        address account_
    )
        public
        view
    returns(bool) {
        if(checkOperator(account_)) {
            return true;
        }
        for(uint256 i = 0; i < burners.length; i++) {
            if(burners[i] == account_) {
                return true;
            }
        }
    }
}

contract TokenFactory is Authorization {
    string public version = "0.5.0";

    event eNominatingExchange(address);
    event eNominatingXPAAssets(address);
    event eNominatingETHAssets(address);
    event eCancelNominatingExchange(address);
    event eCancelNominatingXPAAssets(address);
    event eCancelNominatingETHAssets(address);
    event eChangeExchange(address, address);
    event eChangeXPAAssets(address, address);
    event eChangeETHAssets(address, address);
    event eAddFundAccount(address);
    event eRemoveFundAccount(address);

    address[] public assetTokens;
    address[] public fundAccounts;
    address public exchange = 0x008ea74569c1b9bbb13780114b6b5e93396910070a;
    address public exchangeOldVersion = 0x0013b4b9c415213bb2d0a5d692b6f2e787b927c211;
    address public XPAAssets = address(0);
    address public ETHAssets = address(0);
    address public candidateXPAAssets = address(0);
    address public candidateETHAssets = address(0);
    address public candidateExchange = address(0);
    uint256 public candidateTillXPAAssets = 0;
    uint256 public candidateTillETHAssets = 0;
    uint256 public candidateTillExchange = 0;
    address public XPA = 0x0090528aeb3a2b736b780fd1b6c478bb7e1d643170;
    address public ETH = address(0);

     /* constructor */
    function TokenFactory(
        address XPAAddr, 
        address balivAddr
    ) public {
        XPA = XPAAddr;
        exchange = balivAddr;
    }

    function createToken(
        string symbol_,
        string name_,
        uint256 defaultExchangeRate_
    )
        public
    returns(address) {
        require(msg.sender == XPAAssets);
        bool tokenRepeat = false;
        address newAsset;
        for(uint256 i = 0; i < assetTokens.length; i++) {
            if(XPAAssetToken(assetTokens[i]).getSymbol() == keccak256(symbol_)){
                tokenRepeat = true;
                newAsset = assetTokens[i];
                break;
            }
        }
        if(!tokenRepeat){
            newAsset = new XPAAssetToken(symbol_, name_, defaultExchangeRate_);
            XPAAssetToken(newAsset).assignOperator(XPAAssets);
            XPAAssetToken(newAsset).assignOperator(ETHAssets);
            for(uint256 j = 0; j < fundAccounts.length; j++) {
                XPAAssetToken(newAsset).assignBurner(fundAccounts[j]);
            }
            assetTokens.push(newAsset);
        }
        return newAsset;
    }

    // set to candadite, after 7 days set to exchange, set again after 7 days
    function setExchange(
        address exchange_
    )
        public
        onlyOperator
    {
        require(
            exchange_ != address(0)
        );
        if(
            exchange_ == exchange &&
            candidateExchange != address(0)
        ) {
            emit eCancelNominatingExchange(candidateExchange);
            candidateExchange = address(0);
            candidateTillExchange = 0;
        } else if(
            exchange == address(0)
        ) {
            // initial value
            emit eChangeExchange(address(0), exchange_);
            exchange = exchange_;
            exchangeOldVersion = exchange_;
        } else if(
            exchange_ != candidateExchange &&
            candidateTillExchange + 86400 * 7 < block.timestamp
        ) {
            // set to candadite
            emit eNominatingExchange(exchange_);
            candidateExchange = exchange_;
            candidateTillExchange = block.timestamp + 86400 * 7;
        } else if(
            exchange_ == candidateExchange &&
            candidateTillExchange < block.timestamp
        ) {
            // set to exchange
            emit eChangeExchange(exchange, candidateExchange);
            exchangeOldVersion = exchange;
            exchange = candidateExchange;
            candidateExchange = address(0);
        }
    }

    function setXPAAssets(
        address XPAAssets_
    )
        public
        onlyOperator
    {
        require(
            XPAAssets_ != address(0)
        );
        if(
            XPAAssets_ == XPAAssets &&
            candidateXPAAssets != address(0)
        ) {
            emit eCancelNominatingXPAAssets(candidateXPAAssets);
            candidateXPAAssets = address(0);
            candidateTillXPAAssets = 0;
        } else if(
            XPAAssets == address(0)
        ) {
            // initial value
            emit eChangeXPAAssets(address(0), XPAAssets_);
            XPAAssets = XPAAssets_;
        } else if(
            XPAAssets_ != candidateXPAAssets &&
            candidateTillXPAAssets + 86400 * 7 < block.timestamp
        ) {
            // set to candadite
            emit eNominatingXPAAssets(XPAAssets_);
            candidateXPAAssets = XPAAssets_;
            candidateTillXPAAssets = block.timestamp + 86400 * 7;
        } else if(
            XPAAssets_ == candidateXPAAssets &&
            candidateTillXPAAssets < block.timestamp
        ) {
            // set to XPAAssets
            emit eChangeXPAAssets(XPAAssets, candidateXPAAssets);
            dismissTokenOperator(XPAAssets);
            assignTokenOperator(candidateXPAAssets);
            XPAAssets = candidateXPAAssets;
            candidateXPAAssets = address(0);
        }
    }

    function setETHAssets(
        address ETHAssets_
    )
        public
        onlyOperator
    {
        require(
            ETHAssets_ != address(0)
        );
        if(
            ETHAssets_ == ETHAssets &&
            candidateETHAssets != address(0)
        ) {
            emit eCancelNominatingETHAssets(candidateETHAssets);
            candidateETHAssets = address(0);
            candidateTillETHAssets = 0;
        } else if(
            ETHAssets == address(0)
        ) {
            // initial value
            ETHAssets = ETHAssets_;
        } else if(
            ETHAssets_ != candidateETHAssets &&
            candidateTillETHAssets + 86400 * 7 < block.timestamp
        ) {
            // set to candadite
            emit eNominatingETHAssets(ETHAssets_);
            candidateETHAssets = ETHAssets_;
            candidateTillETHAssets = block.timestamp + 86400 * 7;
        } else if(
            ETHAssets_ == candidateETHAssets &&
            candidateTillETHAssets < block.timestamp
        ) {
            // set to ETHAssets
            emit eChangeETHAssets(ETHAssets, candidateETHAssets);
            dismissTokenOperator(ETHAssets);
            assignTokenOperator(candidateETHAssets);
            ETHAssets = candidateETHAssets;
            candidateETHAssets = address(0);
        }
    }

    function addFundAccount(
        address account_
    )
        public
        onlyOperator
    {
        require(account_ != address(0));
        for(uint256 i = 0; i < fundAccounts.length; i++) {
            if(fundAccounts[i] == account_) {
                return;
            }
        }
        for(uint256 j = 0; j < assetTokens.length; j++) {
            XPAAssetToken(assetTokens[i]).assignBurner(account_);
        }
        emit eAddFundAccount(account_);
        fundAccounts.push(account_);
    }

    function removeFundAccount(
        address account_
    )
        public
        onlyOperator
    {
        require(account_ != address(0));
        uint256 i = 0;
        uint256 j = 0;
        for(i = 0; i < fundAccounts.length; i++) {
            if(fundAccounts[i] == account_) {
                for(j = 0; j < assetTokens.length; j++) {
                    XPAAssetToken(assetTokens[i]).dismissBunner(account_);
                }
                fundAccounts[i] = fundAccounts[fundAccounts.length - 1];
                fundAccounts.length -= 1;
            }
        }
    }

    function getPrice(
        address token_
    ) 
        public
        view
    returns(uint256) {
        uint256 currPrice = Baliv(exchange).getPrice(XPA, token_);
        if(currPrice == 0) {
            currPrice = XPAAssetToken(token_).getDefaultExchangeRate();
        }
        return currPrice;
    }

    function getAssetLength(
    )
        public
        view
    returns(uint256) {
        return assetTokens.length;
    }

    function getAssetToken(
        uint256 index_
    )
        public
        view
    returns(address) {
        return assetTokens[index_];
    }

    function assignTokenOperator(address user_)
        internal
    {
        if(user_ != address(0)) {
            for(uint256 i = 0; i < assetTokens.length; i++) {
                XPAAssetToken(assetTokens[i]).assignOperator(user_);
            }
        }
    }
    
    function dismissTokenOperator(address user_)
        internal
    {
        if(user_ != address(0)) {
            for(uint256 i = 0; i < assetTokens.length; i++) {
                XPAAssetToken(assetTokens[i]).dismissOperator(user_);
            }
        }
    }
}

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":"user_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"create","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getSymbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from_","type":"address"},{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount_","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account_","type":"address"}],"name":"allowToBurn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user_","type":"address"}],"name":"assignOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user_","type":"address"}],"name":"dismissOperator","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":"","type":"uint256"}],"name":"burners","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":"account_","type":"address"}],"name":"assignBurner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"onOff_","type":"bool"}],"name":"powerSwitch","outputs":[],"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":true,"inputs":[{"name":"user_","type":"address"}],"name":"checkOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"powerStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDefaultExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"operators","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account_","type":"address"}],"name":"dismissBunner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"symbol_","type":"string"},{"name":"name_","type":"string"},{"name":"defaultExchangeRate_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"}]

60606040526005805460a060020a60ff0219167401000000000000000000000000000000000000000017905534156200003757600080fd5b6040516200171f3803806200171f8339810160405280805182019190602001805182019190602001805160058054600160a060020a03191633600160a060020a038116919091179091559092506200009e9150640100000000620000f5810262000c811704565b60006002556008838051620000b8929160200190620001a9565b506007828051620000ce929160200190620001a9565b5060008111620000e657662386f26fc10000620000e8565b805b600955506200027a915050565b60055433600160a060020a039081169116146200010e57fe5b600160a060020a03811615801590620001405750600160a060020a03811660009081526003602052604090205460ff16155b15620001a657600160a060020a0381166000908152600360205260409020805460ff1916600190811790915560048054909181016200018083826200022e565b5060009182526020909120018054600160a060020a031916600160a060020a0383161790555b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200025a565b5090565b8154818355818115116200025557600083815260209020620002559181019083016200025a565b505050565b6200027791905b808211156200022a576000815560010162000261565b90565b611495806200028a6000396000f3006060604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f85780630ecaea731461022e578063150704011461025057806318160ddd146102755780632362189a1461028857806323b872dd1461029b578063313ce567146102c357806342966c68146102d657806343e0c65a146102ec57806370a082311461030b57806379cc67901461032a57806384385c6f1461034c57806385ddf7261461036d5780638da5cb5b1461038c57806395bf1305146103bb57806395d89b41146103d157806397c08da6146103e4578063a9059cbb14610403578063cae9ca5114610425578063dd1219fd1461048a578063dd62ed3e146104a2578063de1ac2fd146104c7578063df9204b6146104e6578063e0da4abd146104f9578063e28d49061461050c578063f2fde38b14610522578063ffde8eae14610541575b600080fd5b341561017957600080fd5b610181610560565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a03600435166024356105fe565b604051901515815260200160405180910390f35b341561023957600080fd5b61021a600160a060020a03600435166024356106a2565b341561025b57600080fd5b61026361078f565b60405190815260200160405180910390f35b341561028057600080fd5b610263610801565b341561029357600080fd5b610263610807565b34156102a657600080fd5b61021a600160a060020a036004358116906024351660443561080d565b34156102ce57600080fd5b61026361095f565b34156102e157600080fd5b61021a600435610964565b34156102f757600080fd5b61021a600160a060020a0360043516610a69565b341561031657600080fd5b610263600160a060020a0360043516610adc565b341561033557600080fd5b61021a600160a060020a0360043516602435610af7565b341561035757600080fd5b61036b600160a060020a0360043516610c81565b005b341561037857600080fd5b61036b600160a060020a0360043516610d3d565b341561039757600080fd5b61039f610e47565b604051600160a060020a03909116815260200160405180910390f35b34156103c657600080fd5b61039f600435610e56565b34156103dc57600080fd5b610181610e7e565b34156103ef57600080fd5b61036b600160a060020a0360043516610ee9565b341561040e57600080fd5b61021a600160a060020a0360043516602435610faa565b341561043057600080fd5b61021a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061109795505050505050565b341561049557600080fd5b61036b60043515156111c0565b34156104ad57600080fd5b610263600160a060020a0360043581169060243516611211565b34156104d257600080fd5b61021a600160a060020a036004351661123c565b34156104f157600080fd5b61021a61125a565b341561050457600080fd5b61026361127b565b341561051757600080fd5b61039f600435611281565b341561052d57600080fd5b61036b600160a060020a036004351661128f565b341561054c57600080fd5b61036b600160a060020a03600435166112d6565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b505050505081565b60008115806106305750600160a060020a03338116600090815260016020908152604080832093871683529290522054155b151561063857fe5b600160a060020a03338116600081815260016020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60006106ad3361123c565b15156106b557fe5b6000821180156106cd5750600160a060020a03831615155b1561069c576106de600254836113cb565b600255600160a060020a03831660009081526020819052604090205461070490836113cb565b600160a060020a03808516600090815260208190526040908190209290925560055484929116907fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16905160405180910390a3600554600160a060020a03808516911660008051602061144a8339815191528460405190815260200160405180910390a350600161069c565b6000600860405180828054600181600116156101000203166002900480156107ee5780601f106107cc5761010080835404028352918201916107ee565b820191906000526020600020905b8154815290600101906020018083116107da575b5050915050604051809103902090505b90565b60025481565b60095481565b600160a060020a03831660009081526020819052604081205482901080159061085d5750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b80156108695750600082115b1561095457600160a060020a03831660009081526020819052604090205461089190836113cb565b600160a060020a0380851660009081526020819052604080822093909355908616815220546108c090836113eb565b600160a060020a0380861660009081526020818152604080832094909455600181528382203390931682529190915220546108fb90836113eb565b600160a060020a038086166000818152600160209081526040808320338616845290915290819020939093559085169160008051602061144a8339815191529085905190815260200160405180910390a3506001610958565b5060005b9392505050565b601281565b600061096f33610a69565b151561097a57600080fd5b6000821180156109a35750600160a060020a033316600090815260208190526040902054829010155b15610a6457600160a060020a0333166000908152602081905260409020546109cb90836113eb565b600160a060020a0333166000908152602081905260409020556002546109f190836113eb565b600255600554600160a060020a0390811690331660008051602061144a8339815191528460405190815260200160405180910390a36005548290600160a060020a03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a35060015b919050565b600080610a758361123c565b15610a835760019150610ad6565b5060005b600654811015610ad65782600160a060020a0316600682815481101515610aaa57fe5b600091825260209091200154600160a060020a03161415610ace5760019150610ad6565b600101610a87565b50919050565b600160a060020a031660009081526020819052604090205490565b6000610b0233610a69565b1515610b0d57600080fd5b600160a060020a038316600090815260208190526040902054829010801590610b5d5750600160a060020a0380841660009081526001602090815260408083203390941683529290522054829010155b8015610b695750600082115b1561069c57600160a060020a038316600090815260208190526040902054610b9190836113eb565b600160a060020a038416600090815260208190526040902055600254610bb790836113eb565b600255600160a060020a0380841660009081526001602090815260408083203390941683529290522054610beb90836113eb565b600160a060020a038085166000818152600160209081526040808320338616845290915290819020939093556005549091169160008051602061144a8339815191529085905190815260200160405180910390a36005548290600160a060020a03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a350600161069c565b60055433600160a060020a03908116911614610c9957fe5b600160a060020a03811615801590610cca5750600160a060020a03811660009081526003602052604090205460ff16155b15610d3a57600160a060020a0381166000908152600360205260409020805460ff191660019081179091556004805490918101610d078382611402565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60055460009033600160a060020a03908116911614610d5857fe5b50600160a060020a0381166000908152600360205260408120805460ff191690555b600454811015610e435781600160a060020a0316600482815481101515610d9d57fe5b600091825260209091200154600160a060020a03161415610e3b57600480546000198101908110610dca57fe5b60009182526020909120015460048054600160a060020a039092169183908110610df057fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600480546000190190610e399082611402565b505b600101610d7a565b5050565b600554600160a060020a031681565b6006805482908110610e6457fe5b600091825260209091200154600160a060020a0316905081565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105f65780601f106105cb576101008083540402835291602001916105f6565b6000610ef43361123c565b1515610efc57fe5b600160a060020a0382161515610f1157600080fd5b5060005b600654811015610f605781600160a060020a0316600682815481101515610f3857fe5b600091825260209091200154600160a060020a03161415610f5857610e43565b600101610f15565b6006805460018101610f728382611402565b5060009182526020909120018054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff199091161790555050565b600160a060020a033316600090815260208190526040812054829010801590610fd35750600082115b1561108f57600160a060020a033316600090815260208190526040902054610ffb90836113eb565b600160a060020a03338116600090815260208190526040808220939093559085168152205461102a90836113cb565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a031660008051602061144a8339815191528460405190815260200160405180910390a350600161069c565b50600061069c565b60006110a384846105fe565b156109585783600160a060020a0316638f4ffcb1338530866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611159578082015183820152602001611141565b50505050905090810190601f1680156111865780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156111a757600080fd5b5af115156111b457600080fd5b50505060019050610958565b6111c93361123c565b15156111d157fe5b60058054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600160a060020a031660009081526003602052604090205460ff1690565b60055474010000000000000000000000000000000000000000900460ff1681565b60095490565b6004805482908110610e6457fe5b60055433600160a060020a039081169116146112a757fe5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006112e13361123c565b15156112e957fe5b600160a060020a03821615156112fe57600080fd5b5060005b600654811015610e435781600160a060020a031660068281548110151561132557fe5b600091825260209091200154600160a060020a031614156113c35760068054600019810190811061135257fe5b60009182526020909120015460068054600160a060020a03909216918390811061137857fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556006805460001901906113c19082611402565b505b600101611302565b60008282018381108015906113e05750828110155b151561095857600080fd5b600080828410156113fb57600080fd5b5050900390565b8154818355818115116114265760008381526020902061142691810190830161142b565b505050565b6107fe91905b808211156114455760008155600101611431565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204577ac0ba9eb8d87fea651b988ff807b0bc94dd32592f4ce9f9e2bf22ea472a30029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000000003555358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065850415553440000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6060604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f85780630ecaea731461022e578063150704011461025057806318160ddd146102755780632362189a1461028857806323b872dd1461029b578063313ce567146102c357806342966c68146102d657806343e0c65a146102ec57806370a082311461030b57806379cc67901461032a57806384385c6f1461034c57806385ddf7261461036d5780638da5cb5b1461038c57806395bf1305146103bb57806395d89b41146103d157806397c08da6146103e4578063a9059cbb14610403578063cae9ca5114610425578063dd1219fd1461048a578063dd62ed3e146104a2578063de1ac2fd146104c7578063df9204b6146104e6578063e0da4abd146104f9578063e28d49061461050c578063f2fde38b14610522578063ffde8eae14610541575b600080fd5b341561017957600080fd5b610181610560565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a03600435166024356105fe565b604051901515815260200160405180910390f35b341561023957600080fd5b61021a600160a060020a03600435166024356106a2565b341561025b57600080fd5b61026361078f565b60405190815260200160405180910390f35b341561028057600080fd5b610263610801565b341561029357600080fd5b610263610807565b34156102a657600080fd5b61021a600160a060020a036004358116906024351660443561080d565b34156102ce57600080fd5b61026361095f565b34156102e157600080fd5b61021a600435610964565b34156102f757600080fd5b61021a600160a060020a0360043516610a69565b341561031657600080fd5b610263600160a060020a0360043516610adc565b341561033557600080fd5b61021a600160a060020a0360043516602435610af7565b341561035757600080fd5b61036b600160a060020a0360043516610c81565b005b341561037857600080fd5b61036b600160a060020a0360043516610d3d565b341561039757600080fd5b61039f610e47565b604051600160a060020a03909116815260200160405180910390f35b34156103c657600080fd5b61039f600435610e56565b34156103dc57600080fd5b610181610e7e565b34156103ef57600080fd5b61036b600160a060020a0360043516610ee9565b341561040e57600080fd5b61021a600160a060020a0360043516602435610faa565b341561043057600080fd5b61021a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061109795505050505050565b341561049557600080fd5b61036b60043515156111c0565b34156104ad57600080fd5b610263600160a060020a0360043581169060243516611211565b34156104d257600080fd5b61021a600160a060020a036004351661123c565b34156104f157600080fd5b61021a61125a565b341561050457600080fd5b61026361127b565b341561051757600080fd5b61039f600435611281565b341561052d57600080fd5b61036b600160a060020a036004351661128f565b341561054c57600080fd5b61036b600160a060020a03600435166112d6565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b505050505081565b60008115806106305750600160a060020a03338116600090815260016020908152604080832093871683529290522054155b151561063857fe5b600160a060020a03338116600081815260016020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60006106ad3361123c565b15156106b557fe5b6000821180156106cd5750600160a060020a03831615155b1561069c576106de600254836113cb565b600255600160a060020a03831660009081526020819052604090205461070490836113cb565b600160a060020a03808516600090815260208190526040908190209290925560055484929116907fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16905160405180910390a3600554600160a060020a03808516911660008051602061144a8339815191528460405190815260200160405180910390a350600161069c565b6000600860405180828054600181600116156101000203166002900480156107ee5780601f106107cc5761010080835404028352918201916107ee565b820191906000526020600020905b8154815290600101906020018083116107da575b5050915050604051809103902090505b90565b60025481565b60095481565b600160a060020a03831660009081526020819052604081205482901080159061085d5750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b80156108695750600082115b1561095457600160a060020a03831660009081526020819052604090205461089190836113cb565b600160a060020a0380851660009081526020819052604080822093909355908616815220546108c090836113eb565b600160a060020a0380861660009081526020818152604080832094909455600181528382203390931682529190915220546108fb90836113eb565b600160a060020a038086166000818152600160209081526040808320338616845290915290819020939093559085169160008051602061144a8339815191529085905190815260200160405180910390a3506001610958565b5060005b9392505050565b601281565b600061096f33610a69565b151561097a57600080fd5b6000821180156109a35750600160a060020a033316600090815260208190526040902054829010155b15610a6457600160a060020a0333166000908152602081905260409020546109cb90836113eb565b600160a060020a0333166000908152602081905260409020556002546109f190836113eb565b600255600554600160a060020a0390811690331660008051602061144a8339815191528460405190815260200160405180910390a36005548290600160a060020a03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a35060015b919050565b600080610a758361123c565b15610a835760019150610ad6565b5060005b600654811015610ad65782600160a060020a0316600682815481101515610aaa57fe5b600091825260209091200154600160a060020a03161415610ace5760019150610ad6565b600101610a87565b50919050565b600160a060020a031660009081526020819052604090205490565b6000610b0233610a69565b1515610b0d57600080fd5b600160a060020a038316600090815260208190526040902054829010801590610b5d5750600160a060020a0380841660009081526001602090815260408083203390941683529290522054829010155b8015610b695750600082115b1561069c57600160a060020a038316600090815260208190526040902054610b9190836113eb565b600160a060020a038416600090815260208190526040902055600254610bb790836113eb565b600255600160a060020a0380841660009081526001602090815260408083203390941683529290522054610beb90836113eb565b600160a060020a038085166000818152600160209081526040808320338616845290915290819020939093556005549091169160008051602061144a8339815191529085905190815260200160405180910390a36005548290600160a060020a03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a350600161069c565b60055433600160a060020a03908116911614610c9957fe5b600160a060020a03811615801590610cca5750600160a060020a03811660009081526003602052604090205460ff16155b15610d3a57600160a060020a0381166000908152600360205260409020805460ff191660019081179091556004805490918101610d078382611402565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60055460009033600160a060020a03908116911614610d5857fe5b50600160a060020a0381166000908152600360205260408120805460ff191690555b600454811015610e435781600160a060020a0316600482815481101515610d9d57fe5b600091825260209091200154600160a060020a03161415610e3b57600480546000198101908110610dca57fe5b60009182526020909120015460048054600160a060020a039092169183908110610df057fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600480546000190190610e399082611402565b505b600101610d7a565b5050565b600554600160a060020a031681565b6006805482908110610e6457fe5b600091825260209091200154600160a060020a0316905081565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105f65780601f106105cb576101008083540402835291602001916105f6565b6000610ef43361123c565b1515610efc57fe5b600160a060020a0382161515610f1157600080fd5b5060005b600654811015610f605781600160a060020a0316600682815481101515610f3857fe5b600091825260209091200154600160a060020a03161415610f5857610e43565b600101610f15565b6006805460018101610f728382611402565b5060009182526020909120018054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff199091161790555050565b600160a060020a033316600090815260208190526040812054829010801590610fd35750600082115b1561108f57600160a060020a033316600090815260208190526040902054610ffb90836113eb565b600160a060020a03338116600090815260208190526040808220939093559085168152205461102a90836113cb565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a031660008051602061144a8339815191528460405190815260200160405180910390a350600161069c565b50600061069c565b60006110a384846105fe565b156109585783600160a060020a0316638f4ffcb1338530866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611159578082015183820152602001611141565b50505050905090810190601f1680156111865780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156111a757600080fd5b5af115156111b457600080fd5b50505060019050610958565b6111c93361123c565b15156111d157fe5b60058054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600160a060020a031660009081526003602052604090205460ff1690565b60055474010000000000000000000000000000000000000000900460ff1681565b60095490565b6004805482908110610e6457fe5b60055433600160a060020a039081169116146112a757fe5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006112e13361123c565b15156112e957fe5b600160a060020a03821615156112fe57600080fd5b5060005b600654811015610e435781600160a060020a031660068281548110151561132557fe5b600091825260209091200154600160a060020a031614156113c35760068054600019810190811061135257fe5b60009182526020909120015460068054600160a060020a03909216918390811061137857fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556006805460001901906113c19082611402565b505b600101611302565b60008282018381108015906113e05750828110155b151561095857600080fd5b600080828410156113fb57600080fd5b5050900390565b8154818355818115116114265760008381526020902061142691810190830161142b565b505050565b6107fe91905b808211156114455760008155600101611431565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204577ac0ba9eb8d87fea651b988ff807b0bc94dd32592f4ce9f9e2bf22ea472a30029

Swarm Source

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