Contract Overview |  EtheremonAdventure
Balance: 0 Ether
Ether Value: $0
Transactions: 7595 txns
Token Tracker: EtheremonAdventure (EMOND)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xe0a66218c40230967d4240d25f6220a28e52c7ffat txn 0xa5cc1024b4b0c672903aea47a986c4bc1ae42b8f018cf17c2bcc1354ad13804d
 Latest 25 transactions from a total of 7595 transactions
(+1 PendingTxn)

TxHash Age From To Value [TxFee]
0xabd3d91957cf77d5cbd47c86bcaa72492e924c9d163bcfee91977a8f93447151(pending)0x080966f82256c3e2502f46b5fb5579629fd303eb  IN  0xbfde6246df72d3ca86419628cac46a9d2b60393c0 Ether(Pending)
0xfcde0ad9b7a506a4359371e6a0525efebadd4ad224238195943822a056f7a1e53 mins ago0x94975522facabc5fb2a24f5097a49f02c8c50c60  IN   EtheremonAdventure0 Ether0.00067033
0x7fd114c578c4721c98bf5a87583162f6473f3e3237d0f471bc6980275b22fbbd4 mins ago0x080966f82256c3e2502f46b5fb5579629fd303eb  IN   EtheremonAdventure0 Ether0.000304035
0x11299fa165ba1ea897b0e8943b83fe2db3b823c2d303943da71d1dc494612a5a22 mins ago0x080966f82256c3e2502f46b5fb5579629fd303eb  IN   EtheremonAdventure0 Ether0.000304035
0x2a34d95e7defd96ca7088387c4e8112d2149d2460bdfdc4bfd31ee1d1f9708d257 mins ago0x9a2ad0035c0899d72ecdff5d2fede1269526de5d  IN   EtheremonAdventure0 Ether0.00047484
0x576e9689100faffb30b266b2a71a148560c1a9faabd4eec931a083832a08f7523 hrs 46 mins ago0x25609c71038ad9766cf9d63a5d9e9a6d5c2ef388  IN   EtheremonAdventure0 Ether0.000496489155
0x1d64579c54a206e958be415d84b52346bc000619a9543690045764c395abcc293 hrs 52 mins ago0x25609c71038ad9766cf9d63a5d9e9a6d5c2ef388  IN   EtheremonAdventure0 Ether0.000454532325
0xb6cf43e977c5e58f3721d33a3a5068b48cf8a9946e814dd7553fb2c361871af64 hrs 53 mins ago0x94975522facabc5fb2a24f5097a49f02c8c50c60  IN   EtheremonAdventure0 Ether0.000304035
0xef1b823637a47452343bd02b62fff8cf37677512ff39099436911190a1d1968e5 hrs 15 mins ago0x1453d54e8649651f6bbb5191322a151b8cd76bf9  IN   EtheremonAdventure0 Ether0.000367904
0x94841088ad03a086ffd07faac81c382cb39f87ddb1e1cbf859ebc3f3a7108ac77 hrs 19 mins ago0x4550d74cc0ac86f88aabed20a6c1a4b59dfab3c5  IN   EtheremonAdventure0 Ether0.00067033
0x59e1086db2c494064f31e920d9c9cdaff226ed62ec4ab6ada1e5a5ee6ee3178c8 hrs 48 mins ago0xd1c4d038334a347a3b536b39a385a9c5aa293652  IN   EtheremonAdventure0 Ether0.00079968
0x27991b46c1f9fc51dc4763ffe4b7a382f83f7df963f49314261a5931c9a367679 hrs 13 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000243228
0xfe6640c08353dcfddeab18851efacb58ff547c15456e28df4e44b7d65c50bd3e9 hrs 13 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000243228
0xf1ef056e2fba69dac6f6a2cc45a48354bd97e122dc6bd4f0a3cb3871fca408299 hrs 16 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000304035
0x97cd40cdbc35af978679d04e09fe9554d7b34ea6c43e904ed8d3c2d1d83efc6c9 hrs 47 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000304035
0x5e0269aad774961e548195276eaa668a4e875ee549119f2fc238dede26612dfb9 hrs 47 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000304035
0x2d9f8ac5812303338a20b4d513067eeda700e2eb79037ff50d51d0e29e192bb19 hrs 49 mins ago0x52e1319ecc564852b63ab200802c49b1d7140f93  IN   EtheremonAdventure0 Ether0.000243228
0x9c76a99b47e3cf16526c2abcbf647d4c20347dccf8330b4c8f7fbb4dcea2946313 hrs 55 mins ago0x25609c71038ad9766cf9d63a5d9e9a6d5c2ef388  IN   EtheremonAdventure0 Ether0.000725259
0xbc39c59db10ad16c548f0bf4b2aa7eee1fc9a68627ead18d57d41e101dfe09c214 hrs 22 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000189168
0xce4409815105d572b2fd802c2496f72d158e6951e9263ad76374bf31af3e1f7914 hrs 25 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000072465
0x71717c30340ecdd9cf5eb7fde1f4d97c65b355f83b3472781a618c374f690aee14 hrs 25 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000402198
0x74c63c214b3b537746a815a1c87c8808e005ff58910938060495514d8f2bdb9314 hrs 25 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000402198
0xc5f1b90173407349d6011946507037a016cb64018efb6196a97ef19922cdfbda14 hrs 26 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000402198
0xa9322d211668ba58f4b6778ff69b4829db654f807832b61fa2d3a1e6ea27579614 hrs 26 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000402198
0x5dec4ca9a16a7e67932e93cf7e90c70b827870950438ff7bad4d27c39d7a916114 hrs 29 mins ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   EtheremonAdventure0 Ether0.000402198
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EtheremonAdventureItem
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 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"}]

  Contract Creation Code Switch To Opcodes View
600c805460a060020a61ffff0219169055600e805460ff19908116909155610438600f55601260808181527f4574686572656d6f6e416476656e74757265000000000000000000000000000060a0908152610100604052600560c09081527f454d4f4e4400000000000000000000000000000000000000000000000000000060e052600060208190527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c58054871660019081179091557ff7815fccbf112960a73756e185887fedcb9fc64ca0a16cc5923b7960ed78080080548816821790557f780e9d63000000000000000000000000000000000000000000000000000000009091527f77b7bbe0e49b76487c9476b5db3354cf5270619d0037ccb899c2a4c4a75b43188054909616179094559092916200013d91600991620001c3565b5080516200015390600a906020840190620001c3565b50507f5b5e139f000000000000000000000000000000000000000000000000000000006000908152602052507f9562381dfbc2d8b8b66e765249f330164b73e329e5f01670660643571d1974df805460ff19166001179055600c8054600160a060020a0319163317905562000268565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b6200026591905b808211156200024457600081556001016200024f565b90565b611fb980620002786000396000f3006080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101dc578063030a78aa1461022757806306fdde031461024e578063081812fc146102d8578063095ea7b31461030c5780630b2c588c1461033257806314d0f1ba14610353578063162094c41461037457806318160ddd146103985780631a5b8f96146103ad57806323b872dd146103c25780632f745c59146103ec5780633f1a1cac1461041057806342842e0e1461042e57806348ef5aa8146104585780634efb023e146104725780634f6ccce71461049e5780636352211e146104b65780636c81fd6d146104ce5780636e575537146104ef57806370a08231146105045780638da5cb5b1461052557806395d89b411461053a578063a22cb4651461054f578063a9059cbb14610575578063b239e2f114610599578063b85d6275146105ae578063b88d4fde146105cf578063b919be6614610608578063bda4fd891461062c578063bfb231d214610641578063c87b56dd14610672578063d33925451461068a578063de7fe3e7146106b1578063e985e9c5146106c9578063ebf06bcb146106f0578063ee4e441614610717578063f28532921461072c575b600080fd5b3480156101e857600080fd5b506102137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661074d565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061023c610785565b60408051918252519081900360200190f35b34801561025a57600080fd5b5061026361078b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029d578181015183820152602001610285565b50505050905090810190601f1680156102ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e457600080fd5b506102f0600435610821565b60408051600160a060020a039092168252519081900360200190f35b34801561031857600080fd5b50610330600160a060020a0360043516602435610863565b005b34801561033e57600080fd5b50610330600160a060020a0360043516610974565b34801561035f57600080fd5b50610213600160a060020a03600435166109e1565b34801561038057600080fd5b506103306004803590602480359081019101356109f6565b3480156103a457600080fd5b5061023c610a6d565b3480156103b957600080fd5b5061023c610a74565b3480156103ce57600080fd5b50610330600160a060020a0360043581169060243516604435610a79565b3480156103f857600080fd5b5061023c600160a060020a0360043516602435610b60565b34801561041c57600080fd5b50610330600435602435604435610bbb565b34801561043a57600080fd5b50610330600160a060020a0360043581169060243516604435610cde565b34801561046457600080fd5b506103306004351515610cfa565b34801561047e57600080fd5b50610487610d24565b6040805161ffff9092168252519081900360200190f35b3480156104aa57600080fd5b5061023c600435610d46565b3480156104c257600080fd5b506102f0600435610dae565b3480156104da57600080fd5b50610330600160a060020a0360043516610dd2565b3480156104fb57600080fd5b5061023c610e7f565b34801561051057600080fd5b5061023c600160a060020a0360043516610e84565b34801561053157600080fd5b506102f0610eb7565b34801561054657600080fd5b50610263610ec6565b34801561055b57600080fd5b50610330600160a060020a03600435166024351515610f27565b34801561058157600080fd5b50610330600160a060020a0360043516602435610faa565b3480156105a557600080fd5b506102f061108d565b3480156105ba57600080fd5b50610330600160a060020a03600435166110a1565b3480156105db57600080fd5b50610330600160a060020a0360048035821691602480359091169160443591606435908101910135611148565b34801561061457600080fd5b50610330600435602435604435606435608435611184565b34801561063857600080fd5b5061023c61135b565b34801561064d57600080fd5b50610659600435611361565b6040805192835260208301919091528051918290030190f35b34801561067e57600080fd5b5061026360043561137a565b34801561069657600080fd5b5061023c600435602435600160a060020a0360443516611442565b3480156106bd57600080fd5b506106596004356114de565b3480156106d557600080fd5b50610213600160a060020a03600435811690602435166114f8565b3480156106fc57600080fd5b50610330600435602435600160a060020a0360443516611553565b34801561072357600080fd5b506102136115fd565b34801561073857600080fd5b50610330600160a060020a0360043516611606565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19811660009081526020819052604090205460ff165b919050565b61043881565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b820191906000526020600020905b8154815290600101906020018083116107fa57829003601f168201915b5050505050905090565b6000818152600160205260408120548290600160a060020a0316151561084657600080fd5b5050600090815260026020526040902054600160a060020a031690565b6000818152600160205260408120548290600160a060020a0316338114806108ae5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156108b957600080fd5b6000848152600160205260409020548490600160a060020a031615156108de57600080fd5b600085815260016020526040902054600160a060020a039081169450861684141561090857600080fd5b600085815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a811691821790925591518893918816917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b600c54600160a060020a03163314806109a15750336000908152600d602052604090205460ff1615156001145b15156109ac57600080fd5b600e8054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600d6020526000908152604090205460ff1681565b600c54600160a060020a0316331480610a235750336000908152600d602052604090205460ff1615156001145b1515610a2e57600080fd5b610a688383838080601f01602080910402602001604051908101604052809392919081815260200183838082843750611659945050505050565b505050565b6005545b90565b606c81565b6000818152600160205260408120548290600160a060020a031633811480610ab1575033610aa683610821565b600160a060020a0316145b80610adf5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b1515610aea57600080fd5b6000848152600160205260409020548490600160a060020a03161515610b0f57600080fd5b600085815260016020526040902054600160a060020a03908116945087168414610b3857600080fd5b600160a060020a0386161515610b4d57600080fd5b610b57868661169d565b50505050505050565b600160a060020a0382166000908152600760205260408120548210610b8457600080fd5b600160a060020a0383166000908152600760205260409020805483908110610ba857fe5b9060005260206000200154905092915050565b600e54600090819060ff1615610bd057600080fd5b600e546101009004600160a060020a03161515610bec57600080fd5b841580610c105750600085815260016020526040902054600160a060020a03163314155b15610c1a57600080fd5b5050600083815260106020526040808220600e548154600183015484517f1b44a5ef00000000000000000000000000000000000000000000000000000000815233600482015260248101929092526044820152606481018790526084810186905292519193610100909104600160a060020a0316928392631b44a5ef9260a48084019391929182900301818387803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b50505050610cd73386611718565b5050505050565b610a688383836020604051908101604052806000815250611764565b600c54600160a060020a03163314610d1157600080fd5b600e805460ff1916911515919091179055565b600c5474010000000000000000000000000000000000000000900461ffff1681565b6005546000908210610d5757600080fd5b8160066000600585815481101515610d6b57fe5b9060005260206000200154815260200190815260200160002054141515610d8e57fe5b6005805483908110610d9c57fe5b90600052602060002001549050919050565b600081815260016020526040902054600160a060020a031680151561078057600080fd5b600c54600160a060020a03163314610de957600080fd5b600160a060020a0381166000908152600d602052604090205460ff161515610e7c57600160a060020a0381166000908152600d60205260409020805460ff19166001908117909155600c805461ffff7401000000000000000000000000000000000000000080830482169094011690920275ffff0000000000000000000000000000000000000000199092169190911790555b50565b600a81565b6000600160a060020a0382161515610e9b57600080fd5b50600160a060020a031660009081526003602052604090205490565b600c54600160a060020a031681565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108175780601f106107ec57610100808354040283529160200191610817565b600160a060020a0382161515610f3c57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6000818152600160205260408120548290600160a060020a031633811480610fe2575033610fd783610821565b600160a060020a0316145b806110105750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b151561101b57600080fd5b6000848152600160205260409020548490600160a060020a0316151561104057600080fd5b600085815260016020526040902054600160a060020a0316935033841461106657600080fd5b600160a060020a038616151561107b57600080fd5b611085868661169d565b505050505050565b600e546101009004600160a060020a031681565b600c54600160a060020a031633146110b857600080fd5b600160a060020a0381166000908152600d602052604090205460ff16151560011415610e7c57600160a060020a03166000908152600d60205260409020805460ff19169055600c805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b610cd785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843750611764945050505050565b600e5460009081908190819060ff161561119d57600080fd5b600e546101009004600160a060020a031615156111b957600080fd5b6000891180156111e05750600089815260016020526040902054600160a060020a03163314155b156111ea57600080fd5b6000881180156112115750600088815260016020526040902054600160a060020a03163314155b1561121b57600080fd5b6000871180156112425750600087815260016020526040902054600160a060020a03163314155b1561124c57600080fd5b505050600086815260106020526040808220878352818320878452828420600e5483548354835487517f5477e571000000000000000000000000000000000000000000000000000000008152336004820152602481019390935260448301919091526064820152608481018a905260a48101899052945193965091949093610100909204600160a060020a0316928392635477e5719260c480830193919282900301818387803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b50505050600089111561132a5761132a338a611718565b600088111561133d5761133d3389611718565b6000871115611350576113503388611718565b505050505050505050565b600f5481565b6010602052600090815260409020805460019091015482565b6000818152600160205260409020546060908290600160a060020a031615156113a257600080fd5b6000838152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156114355780601f1061140a57610100808354040283529160200191611435565b820191906000526020600020905b81548152906001019060200180831161141857829003601f168201915b5050505050915050919050565b600c546000908190600160a060020a03163314806114745750336000908152600d602052604090205460ff1615156001145b151561147f57600080fd5b600160a060020a038316151561149457600080fd5b606c85116114a157600080fd5b50600f80546001908101808355600090815260106020526040902086815590810185905590546114d29084906119b6565b5050600f549392505050565b600090815260106020526040902080546001909101549091565b6000600160a060020a038316151561150f57600080fd5b600160a060020a038216151561152457600080fd5b50600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600c54600090600160a060020a03163314806115835750336000908152600d602052604090205460ff1615156001145b151561158e57600080fd5b600160a060020a03821615156115a357600080fd5b606c8411806115b0575083155b806115bc575061043883115b806115c5575082155b156115cf57600080fd5b5060008281526010602052604090208054156115ea57600080fd5b8381556115f782846119b6565b50505050565b600e5460ff1681565b600c54600160a060020a0316331461161d57600080fd5b600160a060020a03811615610e7c57600c8054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000828152600160205260409020548290600160a060020a0316151561167e57600080fd5b6000838152600b6020908152604090912083516115f792850190611e91565b600081815260016020526040902054600160a060020a03166116be82611a07565b6116c88183611a4f565b6116d28383611b50565b8183600160a060020a031682600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6117228282611b99565b6000818152600b60205260409020546002600019610100600184161502019091160415611760576000818152600b6020526040812061176091611f0f565b5050565b60008281526001602052604081205481908490600160a060020a03163381148061179e57503361179383610821565b600160a060020a0316145b806117cc5750600160a060020a038116600090815260046020908152604080832033845290915290205460ff165b15156117d757600080fd5b6000868152600160205260409020548690600160a060020a031615156117fc57600080fd5b600087815260016020526040902054600160a060020a0390811695508916851461182557600080fd5b600160a060020a038816151561183a57600080fd5b611844888861169d565b61185688600160a060020a0316611c59565b15611350576040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a038c81166024850152604484018b90526080606485019081528a5160848601528a51918d169463150b7a0294938f938e938e93909160a490910190602085019080838360005b838110156118ee5781810151838201526020016118d6565b50505050905090810190601f16801561191b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561193d57600080fd5b505af1158015611951573d6000803e3d6000fd5b505050506040513d602081101561196757600080fd5b505193507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f150b7a02000000000000000000000000000000000000000000000000000000001461135057600080fd5b60006119c28383611c61565b5060058054600181019091557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556000918252600660205260409091205550565b600081815260026020526040902054600160a060020a031615610e7c576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000806000611a5e8585611cea565b600160a060020a03851660009081526007602052604081205411611a7e57fe5b600084815260086020908152604080832054600160a060020a038916845260079092529091208054919450600019820193509083908110611abb57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a0316815260200190815260200160002084815481101515611afb57fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611b32906000198301611f53565b50600090815260086020526040808220939093559283525081205550565b6000611b5c8383611d79565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b6000806000611ba88585611e09565b600554600010611bb457fe5b60008481526006602052604090205460058054919450859185908110611bd657fe5b9060005260206000200154141515611bea57fe5b600580546000198101935083908110611bff57fe5b9060005260206000200154905080600584815481101515611c1c57fe5b6000918252602090912001556005805490611c3b906000198301611f53565b50600090815260066020526040808220939093559283525081205550565b6000903b1190565b600160a060020a0382161515611c7657600080fd5b801515611c8257600080fd5b600081815260016020526040902054600160a060020a031615611ca457600080fd5b611cae8282611b50565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600081815260016020526040902054600160a060020a03838116911614611d1057600080fd5b600160a060020a03821660009081526003602052604081205411611d3057fe5b600160a060020a03909116600090815260036020908152604080832080546000190190559282526001905220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600081815260016020526040902054600160a060020a031615611d9b57600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611de991611e7e565b600160a060020a0390921660009081526003602052604090209190915550565b6000818152600160205260409020548190600160a060020a03161515611e2e57600080fd5b611e3782611a07565b611e418383611a4f565b6040518290600090600160a060020a038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b81810182811015611e8b57fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ed257805160ff1916838001178555611eff565b82800160010185558215611eff579182015b82811115611eff578251825591602001919060010190611ee4565b50611f0b929150611f73565b5090565b50805460018160011615610100020316600290046000825580601f10611f355750610e7c565b601f016020900490600052602060002090810190610e7c9190611f73565b815481835581811115610a6857600083815260209020610a689181019083015b610a7191905b80821115611f0b5760008155600101611f795600a165627a7a723058203456066a31d1f8ee77fe871662f4585d472dfbd8b72f8893bd3e8a65ba198ac70029

   Swarm Source:
bzzr://3456066a31d1f8ee77fe871662f4585d472dfbd8b72f8893bd3e8a65ba198ac7

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.