ETH Price: $3,636.68 (-6.37%)

Token

EtheremonAdventure (EMOND)
 

Overview

Max Total Supply

18,218 EMOND

Holders

1,543

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Balance
10 EMOND
0x7ec915b8d3ffee3deaae5aa90def8ad826d2e110
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Treasure is hidden around the Etheremon world! Send your Mons on adventures, and they will bring back amazing rewards!

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EtheremonAdventureItem

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.23;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
   * Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   *  as the code is not actually created until after the constructor finishes.
   * @param addr address to check
   * @return whether the target address is a contract
   */
  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly { size := extcodesize(addr) }
    return size > 0;
  }

}

interface ERC165 {
    function supportsInterface(bytes4 _interfaceID) external view returns (bool);
}

contract SupportsInterface is ERC165 {
    
    mapping(bytes4 => bool) internal supportedInterfaces;

    constructor() public {
        supportedInterfaces[0x01ffc9a7] = true; // ERC165
    }

    function supportsInterface(bytes4 _interfaceID) external view returns (bool) {
        return supportedInterfaces[_interfaceID];
    }
}

interface ERC721 {
    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
    
    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) external;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external;
    
    function transferFrom(address _from, address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    function approve(address _approved, uint256 _tokenId) external;
    function setApprovalForAll(address _operator, bool _approved) external;
    
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

interface ERC721Enumerable {
    function totalSupply() external view returns (uint256);
    function tokenByIndex(uint256 _index) external view returns (uint256);
    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256);
}

interface ERC721Metadata {
    function name() external view returns (string _name);
    function symbol() external view returns (string _symbol);
    function tokenURI(uint256 _tokenId) external view returns (string);
}

interface ERC721TokenReceiver {
  function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) external returns(bytes4);
}

contract NFToken is ERC721, SupportsInterface {

    using SafeMath for uint256;
    using AddressUtils for address;
    
    // A mapping from NFT ID to the address that owns it.
    mapping (uint256 => address) internal idToOwner;
    
    // Mapping from NFT ID to approved address.
    mapping (uint256 => address) internal idToApprovals;
    
    // Mapping from owner address to count of his tokens.
    mapping (address => uint256) internal ownerToNFTokenCount;
    
    // Mapping from owner address to mapping of operator addresses.
    mapping (address => mapping (address => bool)) internal ownerToOperators;
    
    /**
    * @dev Magic value of a smart contract that can recieve NFT.
    * Equal to: bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")).
    */
    bytes4 constant MAGIC_ON_ERC721_RECEIVED = 0x150b7a02;

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

    modifier canOperate(uint256 _tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(tokenOwner == msg.sender || ownerToOperators[tokenOwner][msg.sender]);
        _;
    }


    modifier canTransfer(uint256 _tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(tokenOwner == msg.sender || getApproved(_tokenId) == msg.sender || ownerToOperators[tokenOwner][msg.sender]);
        _;
    }

    modifier validNFToken(uint256 _tokenId) {
        require(idToOwner[_tokenId] != address(0));
        _;
    }

    constructor() public {
        supportedInterfaces[0x80ac58cd] = true; // ERC721
    }


    function balanceOf(address _owner) external view returns (uint256) {
        require(_owner != address(0));
        return ownerToNFTokenCount[_owner];
    }

    function ownerOf(uint256 _tokenId) external view returns (address _owner) {
        _owner = idToOwner[_tokenId];
        require(_owner != address(0));
    }


    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) external {
        _safeTransferFrom(_from, _to, _tokenId, _data);
    }

    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external {
        _safeTransferFrom(_from, _to, _tokenId, "");
    }

    function transferFrom(address _from, address _to, uint256 _tokenId) external canTransfer(_tokenId) validNFToken(_tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(tokenOwner == _from);
        require(_to != address(0));
        _transfer(_to, _tokenId);
    }
    
    function transfer(address _to, uint256 _tokenId) external canTransfer(_tokenId) validNFToken(_tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(tokenOwner == msg.sender);
        require(_to != address(0));
        _transfer(_to, _tokenId);
    }

    function approve(address _approved, uint256 _tokenId) external canOperate(_tokenId) validNFToken(_tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(_approved != tokenOwner);

        idToApprovals[_tokenId] = _approved;
        emit Approval(tokenOwner, _approved, _tokenId);
    }

    function setApprovalForAll(address _operator, bool _approved) external {
        require(_operator != address(0));
        ownerToOperators[msg.sender][_operator] = _approved;
        emit ApprovalForAll(msg.sender, _operator, _approved);
    }

    function getApproved(uint256 _tokenId) public view validNFToken(_tokenId) returns (address) {
        return idToApprovals[_tokenId];
    }

    function isApprovedForAll(address _owner, address _operator) external view returns (bool) {
        require(_owner != address(0));
        require(_operator != address(0));
        return ownerToOperators[_owner][_operator];
    }

    function _safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) internal canTransfer(_tokenId) validNFToken(_tokenId) {
        address tokenOwner = idToOwner[_tokenId];
        require(tokenOwner == _from);
        require(_to != address(0));

        _transfer(_to, _tokenId);

        if (_to.isContract()) {
            bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data);
            require(retval == MAGIC_ON_ERC721_RECEIVED);
        }
    }

    function _transfer(address _to, uint256 _tokenId) private {
        address from = idToOwner[_tokenId];
        clearApproval(_tokenId);
        removeNFToken(from, _tokenId);
        addNFToken(_to, _tokenId);
        emit Transfer(from, _to, _tokenId);
    }
   

    function _mint(address _to, uint256 _tokenId) internal {
        require(_to != address(0));
        require(_tokenId != 0);
        require(idToOwner[_tokenId] == address(0));

        addNFToken(_to, _tokenId);

        emit Transfer(address(0), _to, _tokenId);
    }

    function _burn(address _owner, uint256 _tokenId) validNFToken(_tokenId) internal { 
        clearApproval(_tokenId);
        removeNFToken(_owner, _tokenId);
        emit Transfer(_owner, address(0), _tokenId);
    }

    function clearApproval(uint256 _tokenId) private {
        if(idToApprovals[_tokenId] != 0) {
            delete idToApprovals[_tokenId];
        }
    }

    function removeNFToken(address _from, uint256 _tokenId) internal {
        require(idToOwner[_tokenId] == _from);
        assert(ownerToNFTokenCount[_from] > 0);
        ownerToNFTokenCount[_from] = ownerToNFTokenCount[_from] - 1;
        delete idToOwner[_tokenId];
    }

    function addNFToken(address _to, uint256 _tokenId) internal {
        require(idToOwner[_tokenId] == address(0));

        idToOwner[_tokenId] = _to;
        ownerToNFTokenCount[_to] = ownerToNFTokenCount[_to].add(1);
    }
}


contract NFTokenEnumerable is NFToken, ERC721Enumerable {

    // Array of all NFT IDs.
    uint256[] internal tokens;

    // Mapping from token ID its index in global tokens array.
    mapping(uint256 => uint256) internal idToIndex;

    // Mapping from owner to list of owned NFT IDs.
    mapping(address => uint256[]) internal ownerToIds;

    // Mapping from NFT ID to its index in the owner tokens list.
    mapping(uint256 => uint256) internal idToOwnerIndex;

    constructor() public {
        supportedInterfaces[0x780e9d63] = true; // ERC721Enumerable
    }

    function _mint(address _to, uint256 _tokenId) internal {
        super._mint(_to, _tokenId);
        uint256 length = tokens.push(_tokenId);
        idToIndex[_tokenId] = length - 1;
    }

    function _burn(address _owner, uint256 _tokenId) internal {
        super._burn(_owner, _tokenId);
        assert(tokens.length > 0);

        uint256 tokenIndex = idToIndex[_tokenId];
        // Sanity check. This could be removed in the future.
        assert(tokens[tokenIndex] == _tokenId);
        uint256 lastTokenIndex = tokens.length - 1;
        uint256 lastToken = tokens[lastTokenIndex];

        tokens[tokenIndex] = lastToken;

        tokens.length--;
        // Consider adding a conditional check for the last token in order to save GAS.
        idToIndex[lastToken] = tokenIndex;
        idToIndex[_tokenId] = 0;
    }

    function removeNFToken(address _from, uint256 _tokenId) internal
    {
        super.removeNFToken(_from, _tokenId);
        assert(ownerToIds[_from].length > 0);

        uint256 tokenToRemoveIndex = idToOwnerIndex[_tokenId];
        uint256 lastTokenIndex = ownerToIds[_from].length - 1;
        uint256 lastToken = ownerToIds[_from][lastTokenIndex];

        ownerToIds[_from][tokenToRemoveIndex] = lastToken;

        ownerToIds[_from].length--;
        // Consider adding a conditional check for the last token in order to save GAS.
        idToOwnerIndex[lastToken] = tokenToRemoveIndex;
        idToOwnerIndex[_tokenId] = 0;
    }

    function addNFToken(address _to, uint256 _tokenId) internal {
        super.addNFToken(_to, _tokenId);

        uint256 length = ownerToIds[_to].push(_tokenId);
        idToOwnerIndex[_tokenId] = length - 1;
    }

    function totalSupply() external view returns (uint256) {
        return tokens.length;
    }

    function tokenByIndex(uint256 _index) external view returns (uint256) {
        require(_index < tokens.length);
        // Sanity check. This could be removed in the future.
        assert(idToIndex[tokens[_index]] == _index);
        return tokens[_index];
    }

    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256) {
        require(_index < ownerToIds[_owner].length);
        return ownerToIds[_owner][_index];
    }

}

contract NFTStandard is NFTokenEnumerable, ERC721Metadata {
    string internal nftName;
    string internal nftSymbol;
    
    mapping (uint256 => string) internal idToUri;
    
    constructor(string _name, string _symbol) public {
        nftName = _name;
        nftSymbol = _symbol;
        supportedInterfaces[0x5b5e139f] = true; // ERC721Metadata
    }
    
    function _burn(address _owner, uint256 _tokenId) internal {
        super._burn(_owner, _tokenId);
        if (bytes(idToUri[_tokenId]).length != 0) {
        delete idToUri[_tokenId];
        }
    }
    
    function _setTokenUri(uint256 _tokenId, string _uri) validNFToken(_tokenId) internal {
        idToUri[_tokenId] = _uri;
    }
    
    function name() external view returns (string _name) {
        _name = nftName;
    }
    
    function symbol() external view returns (string _symbol) {
        _symbol = nftSymbol;
    }
    
    function tokenURI(uint256 _tokenId) validNFToken(_tokenId) external view returns (string) {
        return idToUri[_tokenId];
    }
}

contract BasicAccessControl {
    address public owner;
    // address[] public moderators;
    uint16 public totalModerators = 0;
    mapping (address => bool) public moderators;
    bool public isMaintaining = false;

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyModerators() {
        require(msg.sender == owner || moderators[msg.sender] == true);
        _;
    }

    modifier isActive {
        require(!isMaintaining);
        _;
    }

    function ChangeOwner(address _newOwner) onlyOwner public {
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }


    function AddModerator(address _newModerator) onlyOwner public {
        if (moderators[_newModerator] == false) {
            moderators[_newModerator] = true;
            totalModerators += 1;
        }
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner public {
        if (moderators[_oldModerator] == true) {
            moderators[_oldModerator] = false;
            totalModerators -= 1;
        }
    }

    function UpdateMaintaining(bool _isMaintaining) onlyOwner public {
        isMaintaining = _isMaintaining;
    }
}

interface EtheremonAdventureHandler {
    function handleSingleItem(address _sender, uint _classId, uint _value, uint _target, uint _param) external;
    function handleMultipleItems(address _sender, uint _classId1, uint _classId2, uint _classId3, uint _target, uint _param) external;
}

contract EtheremonAdventureItem is NFTStandard("EtheremonAdventure", "EMOND"), BasicAccessControl {
    uint constant public MAX_OWNER_PERS_SITE = 10;
    uint constant public MAX_SITE_ID = 108;
    uint constant public MAX_SITE_TOKEN_ID = 1080;
    
    // smartcontract
    address public adventureHandler;
    
    // class sites: 1 -> 108
    // shard: 109 - 126
    // level, exp
    struct Item {
        uint classId;
        uint value;
    }
    
    uint public totalItem = MAX_SITE_TOKEN_ID;
    mapping (uint => Item) public items; // token id => info
    
    modifier requireAdventureHandler {
        require(adventureHandler != address(0));
        _;        
    }
    
    function setAdventureHandler(address _adventureHandler) onlyModerators external {
        adventureHandler = _adventureHandler;
    }
    
    function setTokenURI(uint256 _tokenId, string _uri) onlyModerators external {
        _setTokenUri(_tokenId, _uri);
    }
    
    function spawnSite(uint _classId, uint _tokenId, address _owner) onlyModerators external {
        if (_owner == address(0)) revert();
        if (_classId > MAX_SITE_ID || _classId == 0 || _tokenId > MAX_SITE_TOKEN_ID || _tokenId == 0) revert();
        
        Item storage item = items[_tokenId];
        if (item.classId != 0) revert(); // token existed
        item.classId = _classId;
        
        _mint(_owner, _tokenId);
    }
    
    function spawnItem(uint _classId, uint _value, address _owner) onlyModerators external returns(uint) {
        if (_owner == address(0)) revert();
        if (_classId <= MAX_SITE_ID) revert();
        
        totalItem += 1;
        Item storage item = items[totalItem];
        item.classId = _classId;
        item.value = _value;
        
        _mint(_owner, totalItem);
        return totalItem;
    }
    
    
    // public write 
    function useSingleItem(uint _tokenId, uint _target, uint _param) isActive requireAdventureHandler public {
        // check ownership
        if (_tokenId == 0 || idToOwner[_tokenId] != msg.sender) revert();
        Item storage item = items[_tokenId];
        
        EtheremonAdventureHandler handler = EtheremonAdventureHandler(adventureHandler);
        handler.handleSingleItem(msg.sender, item.classId, item.value, _target, _param);
        
        _burn(msg.sender, _tokenId);
    }
    
    function useMultipleItem(uint _token1, uint _token2, uint _token3, uint _target, uint _param) isActive requireAdventureHandler public {
        if (_token1 > 0 && idToOwner[_token1] != msg.sender) revert();
        if (_token2 > 0 && idToOwner[_token2] != msg.sender) revert();
        if (_token3 > 0 && idToOwner[_token3] != msg.sender) revert();
        
        Item storage item1 = items[_token1];
        Item storage item2 = items[_token2];
        Item storage item3 = items[_token3];
        
        EtheremonAdventureHandler handler = EtheremonAdventureHandler(adventureHandler);
        handler.handleMultipleItems(msg.sender, item1.classId, item2.classId, item3.classId, _target, _param);
        
        if (_token1 > 0) _burn(msg.sender, _token1);
        if (_token2 > 0) _burn(msg.sender, _token2);
        if (_token3 > 0) _burn(msg.sender, _token3);
    }
    
    
    // public read 
    function getItemInfo(uint _tokenId) constant public returns(uint classId, uint value) {
        Item storage item = items[_tokenId];
        classId = item.classId;
        value = item.value;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_SITE_TOKEN_ID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_approved","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_adventureHandler","type":"address"}],"name":"setAdventureHandler","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_uri","type":"string"}],"name":"setTokenURI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_SITE_ID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_target","type":"uint256"},{"name":"_param","type":"uint256"}],"name":"useSingleItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_PERS_SITE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adventureHandler","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token1","type":"uint256"},{"name":"_token2","type":"uint256"},{"name":"_token3","type":"uint256"},{"name":"_target","type":"uint256"},{"name":"_param","type":"uint256"}],"name":"useMultipleItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"items","outputs":[{"name":"classId","type":"uint256"},{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint256"},{"name":"_value","type":"uint256"},{"name":"_owner","type":"address"}],"name":"spawnItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getItemInfo","outputs":[{"name":"classId","type":"uint256"},{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint256"},{"name":"_tokenId","type":"uint256"},{"name":"_owner","type":"address"}],"name":"spawnSite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]

600c805460a060020a61ffff0219169055600e805460ff19908116909155610438600f55601260808181527f4574686572656d6f6e416476656e74757265000000000000000000000000000060a0908152610100604052600560c09081527f454d4f4e4400000000000000000000000000000000000000000000000000000060e052600060208190527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c58054871660019081179091557ff7815fccbf112960a73756e185887fedcb9fc64ca0a16cc5923b7960ed78080080548816821790557f780e9d63000000000000000000000000000000000000000000000000000000009091527f77b7bbe0e49b76487c9476b5db3354cf5270619d0037ccb899c2a4c4a75b43188054909616179094559092916200013d91600991620001c3565b5080516200015390600a906020840190620001c3565b50507f5b5e139f000000000000000000000000000000000000000000000000000000006000908152602052507f9562381dfbc2d8b8b66e765249f330164b73e329e5f01670660643571d1974df805460ff19166001179055600c8054600160a060020a0319163317905562000268565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b6200026591905b808211156200024457600081556001016200024f565b90565b611fb980620002786000396000f3006080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101dc578063030a78aa1461022757806306fdde031461024e578063081812fc146102d8578063095ea7b31461030c5780630b2c588c1461033257806314d0f1ba14610353578063162094c41461037457806318160ddd146103985780631a5b8f96146103ad57806323b872dd146103c25780632f745c59146103ec5780633f1a1cac1461041057806342842e0e1461042e57806348ef5aa8146104585780634efb023e146104725780634f6ccce71461049e5780636352211e146104b65780636c81fd6d146104ce5780636e575537146104ef57806370a08231146105045780638da5cb5b1461052557806395d89b411461053a578063a22cb4651461054f578063a9059cbb14610575578063b239e2f114610599578063b85d6275146105ae578063b88d4fde146105cf578063b919be6614610608578063bda4fd891461062c578063bfb231d214610641578063c87b56dd14610672578063d33925451461068a578063de7fe3e7146106b1578063e985e9c5146106c9578063ebf06bcb146106f0578063ee4e441614610717578063f28532921461072c575b600080fd5b3480156101e857600080fd5b506102137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661074d565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061023c610785565b60408051918252519081900360200190f35b34801561025a57600080fd5b5061026361078b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029d578181015183820152602001610285565b50505050905090810190601f1680156102ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e457600080fd5b506102f0600435610821565b60408051600160a060020a039092168252519081900360200190f35b34801561031857600080fd5b50610330600160a060020a0360043516602435610863565b005b34801561033e57600080fd5b50610330600160a060020a0360043516610974565b34801561035f57600080fd5b50610213600160a060020a03600435166109e1565b34801561038057600080fd5b506103306004803590602480359081019101356109f6565b3480156103a457600080fd5b5061023c610a6d565b3480156103b957600080fd5b5061023c610a74565b3480156103ce57600080fd5b50610330600160a060020a0360043581169060243516604435610a79565b3480156103f857600080fd5b5061023c600160a060020a0360043516602435610b60565b34801561041c57600080fd5b50610330600435602435604435610bbb565b34801561043a57600080fd5b50610330600160a060020a0360043581169060243516604435610cde565b34801561046457600080fd5b506103306004351515610cfa565b34801561047e57600080fd5b50610487610d24565b6040805161ffff9092168252519081900360200190f35b3480156104aa57600080fd5b5061023c600435610d46565b3480156104c257600080fd5b506102f0600435610dae565b3480156104da57600080fd5b50610330600160a060020a0360043516610dd2565b3480156104fb57600080fd5b5061023c610e7f565b34801561051057600080fd5b5061023c600160a060020a0360043516610e84565b34801561053157600080fd5b506102f0610eb7565b34801561054657600080fd5b50610263610ec6565b34801561055b57600080fd5b50610330600160a060020a03600435166024351515610f27565b34801561058157600080fd5b50610330600160a060020a0360043516602435610faa565b3480156105a557600080fd5b506102f061108d565b3480156105ba57600080fd5b50610330600160a060020a03600435166110a1565b3480156105db57600080fd5b50610330600160a060020a0360048035821691602480359091169160443591606435908101910135611148565b34801561061457600080fd5b50610330600435602435604435606435608435611184565b34801561063857600080fd5b5061023c61135b565b34801561064d57600080fd5b50610659600435611361565b6040805192835260208301919091528051918290030190f35b34801561067e57600080fd5b5061026360043561137a565b34801561069657600080fd5b5061023c600435602435600160a060020a0360443516611442565b3480156106bd57600080fd5b506106596004356114de565b3480156106d557600080fd5b50610213600160a060020a03600435811690602435166114f8565b3480156106fc57600080fd5b50610330600435602435600160a060020a0360443516611553565b34801561072357600080fd5b506102136115fd565b34801561073857600080fd5b50610330600160a060020a0360043516611606565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19811660009081526020819052604090205460ff165b919050565b61043881565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b820191906000526020600020905b8154815290600101906020018083116107fa57829003601f168201915b5050505050905090565b6000818152600160205260408120548290600160a060020a0316151561084657600080fd5b5050600090815260026020526040902054600160a060020a031690565b6000818152600160205260408120548290600160a060020a0316338114806108ae5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156108b957600080fd5b6000848152600160205260409020548490600160a060020a031615156108de57600080fd5b600085815260016020526040902054600160a060020a039081169450861684141561090857600080fd5b600085815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a811691821790925591518893918816917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b600c54600160a060020a03163314806109a15750336000908152600d602052604090205460ff1615156001145b15156109ac57600080fd5b600e8054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600d6020526000908152604090205460ff1681565b600c54600160a060020a0316331480610a235750336000908152600d602052604090205460ff1615156001145b1515610a2e57600080fd5b610a688383838080601f01602080910402602001604051908101604052809392919081815260200183838082843750611659945050505050565b505050565b6005545b90565b606c81565b6000818152600160205260408120548290600160a060020a031633811480610ab1575033610aa683610821565b600160a060020a0316145b80610adf5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b1515610aea57600080fd5b6000848152600160205260409020548490600160a060020a03161515610b0f57600080fd5b600085815260016020526040902054600160a060020a03908116945087168414610b3857600080fd5b600160a060020a0386161515610b4d57600080fd5b610b57868661169d565b50505050505050565b600160a060020a0382166000908152600760205260408120548210610b8457600080fd5b600160a060020a0383166000908152600760205260409020805483908110610ba857fe5b9060005260206000200154905092915050565b600e54600090819060ff1615610bd057600080fd5b600e546101009004600160a060020a03161515610bec57600080fd5b841580610c105750600085815260016020526040902054600160a060020a03163314155b15610c1a57600080fd5b5050600083815260106020526040808220600e548154600183015484517f1b44a5ef00000000000000000000000000000000000000000000000000000000815233600482015260248101929092526044820152606481018790526084810186905292519193610100909104600160a060020a0316928392631b44a5ef9260a48084019391929182900301818387803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b50505050610cd73386611718565b5050505050565b610a688383836020604051908101604052806000815250611764565b600c54600160a060020a03163314610d1157600080fd5b600e805460ff1916911515919091179055565b600c5474010000000000000000000000000000000000000000900461ffff1681565b6005546000908210610d5757600080fd5b8160066000600585815481101515610d6b57fe5b9060005260206000200154815260200190815260200160002054141515610d8e57fe5b6005805483908110610d9c57fe5b90600052602060002001549050919050565b600081815260016020526040902054600160a060020a031680151561078057600080fd5b600c54600160a060020a03163314610de957600080fd5b600160a060020a0381166000908152600d602052604090205460ff161515610e7c57600160a060020a0381166000908152600d60205260409020805460ff19166001908117909155600c805461ffff7401000000000000000000000000000000000000000080830482169094011690920275ffff0000000000000000000000000000000000000000199092169190911790555b50565b600a81565b6000600160a060020a0382161515610e9b57600080fd5b50600160a060020a031660009081526003602052604090205490565b600c54600160a060020a031681565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b600160a060020a0382161515610f3c57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000818152600160205260408120548290600160a060020a031633811480610fe2575033610fd783610821565b600160a060020a0316145b806110105750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b151561101b57600080fd5b6000848152600160205260409020548490600160a060020a0316151561104057600080fd5b600085815260016020526040902054600160a060020a0316935033841461106657600080fd5b600160a060020a038616151561107b57600080fd5b611085868661169d565b505050505050565b600e546101009004600160a060020a031681565b600c54600160a060020a031633146110b857600080fd5b600160a060020a0381166000908152600d602052604090205460ff16151560011415610e7c57600160a060020a03166000908152600d60205260409020805460ff19169055600c805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b610cd785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843750611764945050505050565b600e5460009081908190819060ff161561119d57600080fd5b600e546101009004600160a060020a031615156111b957600080fd5b6000891180156111e05750600089815260016020526040902054600160a060020a03163314155b156111ea57600080fd5b6000881180156112115750600088815260016020526040902054600160a060020a03163314155b1561121b57600080fd5b6000871180156112425750600087815260016020526040902054600160a060020a03163314155b1561124c57600080fd5b505050600086815260106020526040808220878352818320878452828420600e5483548354835487517f5477e571000000000000000000000000000000000000000000000000000000008152336004820152602481019390935260448301919091526064820152608481018a905260a48101899052945193965091949093610100909204600160a060020a0316928392635477e5719260c480830193919282900301818387803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b50505050600089111561132a5761132a338a611718565b600088111561133d5761133d3389611718565b6000871115611350576113503388611718565b505050505050505050565b600f5481565b6010602052600090815260409020805460019091015482565b6000818152600160205260409020546060908290600160a060020a031615156113a257600080fd5b6000838152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156114355780601f1061140a57610100808354040283529160200191611435565b820191906000526020600020905b81548152906001019060200180831161141857829003601f168201915b5050505050915050919050565b600c546000908190600160a060020a03163314806114745750336000908152600d602052604090205460ff1615156001145b151561147f57600080fd5b600160a060020a038316151561149457600080fd5b606c85116114a157600080fd5b50600f80546001908101808355600090815260106020526040902086815590810185905590546114d29084906119b6565b5050600f549392505050565b600090815260106020526040902080546001909101549091565b6000600160a060020a038316151561150f57600080fd5b600160a060020a038216151561152457600080fd5b50600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600c54600090600160a060020a03163314806115835750336000908152600d602052604090205460ff1615156001145b151561158e57600080fd5b600160a060020a03821615156115a357600080fd5b606c8411806115b0575083155b806115bc575061043883115b806115c5575082155b156115cf57600080fd5b5060008281526010602052604090208054156115ea57600080fd5b8381556115f782846119b6565b50505050565b600e5460ff1681565b600c54600160a060020a0316331461161d57600080fd5b600160a060020a03811615610e7c57600c8054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000828152600160205260409020548290600160a060020a0316151561167e57600080fd5b6000838152600b6020908152604090912083516115f792850190611e91565b600081815260016020526040902054600160a060020a03166116be82611a07565b6116c88183611a4f565b6116d28383611b50565b8183600160a060020a031682600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6117228282611b99565b6000818152600b60205260409020546002600019610100600184161502019091160415611760576000818152600b6020526040812061176091611f0f565b5050565b60008281526001602052604081205481908490600160a060020a03163381148061179e57503361179383610821565b600160a060020a0316145b806117cc5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156117d757600080fd5b6000868152600160205260409020548690600160a060020a031615156117fc57600080fd5b600087815260016020526040902054600160a060020a0390811695508916851461182557600080fd5b600160a060020a038816151561183a57600080fd5b611844888861169d565b61185688600160a060020a0316611c59565b15611350576040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a038c81166024850152604484018b90526080606485019081528a5160848601528a51918d169463150b7a0294938f938e938e93909160a490910190602085019080838360005b838110156118ee5781810151838201526020016118d6565b50505050905090810190601f16801561191b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561193d57600080fd5b505af1158015611951573d6000803e3d6000fd5b505050506040513d602081101561196757600080fd5b505193507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f150b7a02000000000000000000000000000000000000000000000000000000001461135057600080fd5b60006119c28383611c61565b5060058054600181019091557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556000918252600660205260409091205550565b600081815260026020526040902054600160a060020a031615610e7c576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000806000611a5e8585611cea565b600160a060020a03851660009081526007602052604081205411611a7e57fe5b600084815260086020908152604080832054600160a060020a038916845260079092529091208054919450600019820193509083908110611abb57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a0316815260200190815260200160002084815481101515611afb57fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611b32906000198301611f53565b50600090815260086020526040808220939093559283525081205550565b6000611b5c8383611d79565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b6000806000611ba88585611e09565b600554600010611bb457fe5b60008481526006602052604090205460058054919450859185908110611bd657fe5b9060005260206000200154141515611bea57fe5b600580546000198101935083908110611bff57fe5b9060005260206000200154905080600584815481101515611c1c57fe5b6000918252602090912001556005805490611c3b906000198301611f53565b50600090815260066020526040808220939093559283525081205550565b6000903b1190565b600160a060020a0382161515611c7657600080fd5b801515611c8257600080fd5b600081815260016020526040902054600160a060020a031615611ca457600080fd5b611cae8282611b50565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600081815260016020526040902054600160a060020a03838116911614611d1057600080fd5b600160a060020a03821660009081526003602052604081205411611d3057fe5b600160a060020a03909116600090815260036020908152604080832080546000190190559282526001905220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600081815260016020526040902054600160a060020a031615611d9b57600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611de991611e7e565b600160a060020a0390921660009081526003602052604090209190915550565b6000818152600160205260409020548190600160a060020a03161515611e2e57600080fd5b611e3782611a07565b611e418383611a4f565b6040518290600090600160a060020a038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b81810182811015611e8b57fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ed257805160ff1916838001178555611eff565b82800160010185558215611eff579182015b82811115611eff578251825591602001919060010190611ee4565b50611f0b929150611f73565b5090565b50805460018160011615610100020316600290046000825580601f10611f355750610e7c565b601f016020900490600052602060002090810190610e7c9190611f73565b815481835581811115610a6857600083815260209020610a689181019083015b610a7191905b80821115611f0b5760008155600101611f795600a165627a7a723058203456066a31d1f8ee77fe871662f4585d472dfbd8b72f8893bd3e8a65ba198ac70029

Deployed Bytecode

0x6080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101dc578063030a78aa1461022757806306fdde031461024e578063081812fc146102d8578063095ea7b31461030c5780630b2c588c1461033257806314d0f1ba14610353578063162094c41461037457806318160ddd146103985780631a5b8f96146103ad57806323b872dd146103c25780632f745c59146103ec5780633f1a1cac1461041057806342842e0e1461042e57806348ef5aa8146104585780634efb023e146104725780634f6ccce71461049e5780636352211e146104b65780636c81fd6d146104ce5780636e575537146104ef57806370a08231146105045780638da5cb5b1461052557806395d89b411461053a578063a22cb4651461054f578063a9059cbb14610575578063b239e2f114610599578063b85d6275146105ae578063b88d4fde146105cf578063b919be6614610608578063bda4fd891461062c578063bfb231d214610641578063c87b56dd14610672578063d33925451461068a578063de7fe3e7146106b1578063e985e9c5146106c9578063ebf06bcb146106f0578063ee4e441614610717578063f28532921461072c575b600080fd5b3480156101e857600080fd5b506102137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661074d565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061023c610785565b60408051918252519081900360200190f35b34801561025a57600080fd5b5061026361078b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029d578181015183820152602001610285565b50505050905090810190601f1680156102ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e457600080fd5b506102f0600435610821565b60408051600160a060020a039092168252519081900360200190f35b34801561031857600080fd5b50610330600160a060020a0360043516602435610863565b005b34801561033e57600080fd5b50610330600160a060020a0360043516610974565b34801561035f57600080fd5b50610213600160a060020a03600435166109e1565b34801561038057600080fd5b506103306004803590602480359081019101356109f6565b3480156103a457600080fd5b5061023c610a6d565b3480156103b957600080fd5b5061023c610a74565b3480156103ce57600080fd5b50610330600160a060020a0360043581169060243516604435610a79565b3480156103f857600080fd5b5061023c600160a060020a0360043516602435610b60565b34801561041c57600080fd5b50610330600435602435604435610bbb565b34801561043a57600080fd5b50610330600160a060020a0360043581169060243516604435610cde565b34801561046457600080fd5b506103306004351515610cfa565b34801561047e57600080fd5b50610487610d24565b6040805161ffff9092168252519081900360200190f35b3480156104aa57600080fd5b5061023c600435610d46565b3480156104c257600080fd5b506102f0600435610dae565b3480156104da57600080fd5b50610330600160a060020a0360043516610dd2565b3480156104fb57600080fd5b5061023c610e7f565b34801561051057600080fd5b5061023c600160a060020a0360043516610e84565b34801561053157600080fd5b506102f0610eb7565b34801561054657600080fd5b50610263610ec6565b34801561055b57600080fd5b50610330600160a060020a03600435166024351515610f27565b34801561058157600080fd5b50610330600160a060020a0360043516602435610faa565b3480156105a557600080fd5b506102f061108d565b3480156105ba57600080fd5b50610330600160a060020a03600435166110a1565b3480156105db57600080fd5b50610330600160a060020a0360048035821691602480359091169160443591606435908101910135611148565b34801561061457600080fd5b50610330600435602435604435606435608435611184565b34801561063857600080fd5b5061023c61135b565b34801561064d57600080fd5b50610659600435611361565b6040805192835260208301919091528051918290030190f35b34801561067e57600080fd5b5061026360043561137a565b34801561069657600080fd5b5061023c600435602435600160a060020a0360443516611442565b3480156106bd57600080fd5b506106596004356114de565b3480156106d557600080fd5b50610213600160a060020a03600435811690602435166114f8565b3480156106fc57600080fd5b50610330600435602435600160a060020a0360443516611553565b34801561072357600080fd5b506102136115fd565b34801561073857600080fd5b50610330600160a060020a0360043516611606565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19811660009081526020819052604090205460ff165b919050565b61043881565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b820191906000526020600020905b8154815290600101906020018083116107fa57829003601f168201915b5050505050905090565b6000818152600160205260408120548290600160a060020a0316151561084657600080fd5b5050600090815260026020526040902054600160a060020a031690565b6000818152600160205260408120548290600160a060020a0316338114806108ae5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156108b957600080fd5b6000848152600160205260409020548490600160a060020a031615156108de57600080fd5b600085815260016020526040902054600160a060020a039081169450861684141561090857600080fd5b600085815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a811691821790925591518893918816917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b600c54600160a060020a03163314806109a15750336000908152600d602052604090205460ff1615156001145b15156109ac57600080fd5b600e8054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600d6020526000908152604090205460ff1681565b600c54600160a060020a0316331480610a235750336000908152600d602052604090205460ff1615156001145b1515610a2e57600080fd5b610a688383838080601f01602080910402602001604051908101604052809392919081815260200183838082843750611659945050505050565b505050565b6005545b90565b606c81565b6000818152600160205260408120548290600160a060020a031633811480610ab1575033610aa683610821565b600160a060020a0316145b80610adf5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b1515610aea57600080fd5b6000848152600160205260409020548490600160a060020a03161515610b0f57600080fd5b600085815260016020526040902054600160a060020a03908116945087168414610b3857600080fd5b600160a060020a0386161515610b4d57600080fd5b610b57868661169d565b50505050505050565b600160a060020a0382166000908152600760205260408120548210610b8457600080fd5b600160a060020a0383166000908152600760205260409020805483908110610ba857fe5b9060005260206000200154905092915050565b600e54600090819060ff1615610bd057600080fd5b600e546101009004600160a060020a03161515610bec57600080fd5b841580610c105750600085815260016020526040902054600160a060020a03163314155b15610c1a57600080fd5b5050600083815260106020526040808220600e548154600183015484517f1b44a5ef00000000000000000000000000000000000000000000000000000000815233600482015260248101929092526044820152606481018790526084810186905292519193610100909104600160a060020a0316928392631b44a5ef9260a48084019391929182900301818387803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b50505050610cd73386611718565b5050505050565b610a688383836020604051908101604052806000815250611764565b600c54600160a060020a03163314610d1157600080fd5b600e805460ff1916911515919091179055565b600c5474010000000000000000000000000000000000000000900461ffff1681565b6005546000908210610d5757600080fd5b8160066000600585815481101515610d6b57fe5b9060005260206000200154815260200190815260200160002054141515610d8e57fe5b6005805483908110610d9c57fe5b90600052602060002001549050919050565b600081815260016020526040902054600160a060020a031680151561078057600080fd5b600c54600160a060020a03163314610de957600080fd5b600160a060020a0381166000908152600d602052604090205460ff161515610e7c57600160a060020a0381166000908152600d60205260409020805460ff19166001908117909155600c805461ffff7401000000000000000000000000000000000000000080830482169094011690920275ffff0000000000000000000000000000000000000000199092169190911790555b50565b600a81565b6000600160a060020a0382161515610e9b57600080fd5b50600160a060020a031660009081526003602052604090205490565b600c54600160a060020a031681565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b600160a060020a0382161515610f3c57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000818152600160205260408120548290600160a060020a031633811480610fe2575033610fd783610821565b600160a060020a0316145b806110105750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b151561101b57600080fd5b6000848152600160205260409020548490600160a060020a0316151561104057600080fd5b600085815260016020526040902054600160a060020a0316935033841461106657600080fd5b600160a060020a038616151561107b57600080fd5b611085868661169d565b505050505050565b600e546101009004600160a060020a031681565b600c54600160a060020a031633146110b857600080fd5b600160a060020a0381166000908152600d602052604090205460ff16151560011415610e7c57600160a060020a03166000908152600d60205260409020805460ff19169055600c805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b610cd785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843750611764945050505050565b600e5460009081908190819060ff161561119d57600080fd5b600e546101009004600160a060020a031615156111b957600080fd5b6000891180156111e05750600089815260016020526040902054600160a060020a03163314155b156111ea57600080fd5b6000881180156112115750600088815260016020526040902054600160a060020a03163314155b1561121b57600080fd5b6000871180156112425750600087815260016020526040902054600160a060020a03163314155b1561124c57600080fd5b505050600086815260106020526040808220878352818320878452828420600e5483548354835487517f5477e571000000000000000000000000000000000000000000000000000000008152336004820152602481019390935260448301919091526064820152608481018a905260a48101899052945193965091949093610100909204600160a060020a0316928392635477e5719260c480830193919282900301818387803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b50505050600089111561132a5761132a338a611718565b600088111561133d5761133d3389611718565b6000871115611350576113503388611718565b505050505050505050565b600f5481565b6010602052600090815260409020805460019091015482565b6000818152600160205260409020546060908290600160a060020a031615156113a257600080fd5b6000838152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156114355780601f1061140a57610100808354040283529160200191611435565b820191906000526020600020905b81548152906001019060200180831161141857829003601f168201915b5050505050915050919050565b600c546000908190600160a060020a03163314806114745750336000908152600d602052604090205460ff1615156001145b151561147f57600080fd5b600160a060020a038316151561149457600080fd5b606c85116114a157600080fd5b50600f80546001908101808355600090815260106020526040902086815590810185905590546114d29084906119b6565b5050600f549392505050565b600090815260106020526040902080546001909101549091565b6000600160a060020a038316151561150f57600080fd5b600160a060020a038216151561152457600080fd5b50600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600c54600090600160a060020a03163314806115835750336000908152600d602052604090205460ff1615156001145b151561158e57600080fd5b600160a060020a03821615156115a357600080fd5b606c8411806115b0575083155b806115bc575061043883115b806115c5575082155b156115cf57600080fd5b5060008281526010602052604090208054156115ea57600080fd5b8381556115f782846119b6565b50505050565b600e5460ff1681565b600c54600160a060020a0316331461161d57600080fd5b600160a060020a03811615610e7c57600c8054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000828152600160205260409020548290600160a060020a0316151561167e57600080fd5b6000838152600b6020908152604090912083516115f792850190611e91565b600081815260016020526040902054600160a060020a03166116be82611a07565b6116c88183611a4f565b6116d28383611b50565b8183600160a060020a031682600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6117228282611b99565b6000818152600b60205260409020546002600019610100600184161502019091160415611760576000818152600b6020526040812061176091611f0f565b5050565b60008281526001602052604081205481908490600160a060020a03163381148061179e57503361179383610821565b600160a060020a0316145b806117cc5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156117d757600080fd5b6000868152600160205260409020548690600160a060020a031615156117fc57600080fd5b600087815260016020526040902054600160a060020a0390811695508916851461182557600080fd5b600160a060020a038816151561183a57600080fd5b611844888861169d565b61185688600160a060020a0316611c59565b15611350576040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a038c81166024850152604484018b90526080606485019081528a5160848601528a51918d169463150b7a0294938f938e938e93909160a490910190602085019080838360005b838110156118ee5781810151838201526020016118d6565b50505050905090810190601f16801561191b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561193d57600080fd5b505af1158015611951573d6000803e3d6000fd5b505050506040513d602081101561196757600080fd5b505193507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f150b7a02000000000000000000000000000000000000000000000000000000001461135057600080fd5b60006119c28383611c61565b5060058054600181019091557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556000918252600660205260409091205550565b600081815260026020526040902054600160a060020a031615610e7c576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000806000611a5e8585611cea565b600160a060020a03851660009081526007602052604081205411611a7e57fe5b600084815260086020908152604080832054600160a060020a038916845260079092529091208054919450600019820193509083908110611abb57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a0316815260200190815260200160002084815481101515611afb57fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611b32906000198301611f53565b50600090815260086020526040808220939093559283525081205550565b6000611b5c8383611d79565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b6000806000611ba88585611e09565b600554600010611bb457fe5b60008481526006602052604090205460058054919450859185908110611bd657fe5b9060005260206000200154141515611bea57fe5b600580546000198101935083908110611bff57fe5b9060005260206000200154905080600584815481101515611c1c57fe5b6000918252602090912001556005805490611c3b906000198301611f53565b50600090815260066020526040808220939093559283525081205550565b6000903b1190565b600160a060020a0382161515611c7657600080fd5b801515611c8257600080fd5b600081815260016020526040902054600160a060020a031615611ca457600080fd5b611cae8282611b50565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600081815260016020526040902054600160a060020a03838116911614611d1057600080fd5b600160a060020a03821660009081526003602052604081205411611d3057fe5b600160a060020a03909116600090815260036020908152604080832080546000190190559282526001905220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600081815260016020526040902054600160a060020a031615611d9b57600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611de991611e7e565b600160a060020a0390921660009081526003602052604090209190915550565b6000818152600160205260409020548190600160a060020a03161515611e2e57600080fd5b611e3782611a07565b611e418383611a4f565b6040518290600090600160a060020a038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b81810182811015611e8b57fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ed257805160ff1916838001178555611eff565b82800160010185558215611eff579182015b82811115611eff578251825591602001919060010190611ee4565b50611f0b929150611f73565b5090565b50805460018160011615610100020316600290046000825580601f10611f355750610e7c565b601f016020900490600052602060002090810190610e7c9190611f73565b815481835581811115610a6857600083815260209020610a689181019083015b610a7191905b80821115611f0b5760008155600101611f795600a165627a7a723058203456066a31d1f8ee77fe871662f4585d472dfbd8b72f8893bd3e8a65ba198ac70029

Swarm Source

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