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

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
Balance
3 EMOND
0x571f7c00c09d34977b338654c9d1b3c158099b83
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.