Sponsored:   Ubex.com - Token sale will end in just 4 days. 98% hard cap already reached. Don't Miss Out!
Contract Overview | Etheremon_Trade1
Balance: 0.4926394 Ether
Ether Value: $103.26 (@ $209.61/ETH)
Transactions: 26855 txns
 Latest 25 txns From a total of 26855 Transactions
(+4 PendingTxns)

TxHash Age From To Value [TxFee]
0xa1e1efe199d162edd61fad2ae721a6bdec02655365b8b2827292c26bbd50c0b1(pending)0x99fa6742bea0c119cb808953034057441997ebf4  IN  0x4ba72f0f8dad13709ee28a992869e79d0fe470300 Ether(Pending)
0x44a433f9190c3547ac6609b21ccf1a9ef4eebf26d64cb2383ffeecd54e5b246a(pending)0x1bac3b2f5ab41e40764f8f35be73cca2e6caf24a  IN  0x4ba72f0f8dad13709ee28a992869e79d0fe470300 Ether(Pending)
0xdfbea6b9e174d4b3728e0a33e8b09b9261a7d695e7403370632541e73009cf77(pending)0x6929034fa203cb93b9a0e6214a19c09648283643  IN  0x4ba72f0f8dad13709ee28a992869e79d0fe470300.0001 Ether(Pending)
0x00ccd4e69f6cf020b495c4e84b9f09ae8515feca67fa89bebc9bfe10fb9a8704(pending)0x9cf28be69d1c88ff7ecc1d2332577cb9671abf70  IN  0x4ba72f0f8dad13709ee28a992869e79d0fe470300 Ether(Pending)
0x3d91dcccc32f2d5e61f0b7b277e3913b9805d6d1f9f8a1e8421c56518f03ef5c3 days 28 mins ago0x7ae5d5f471437b1c2902e57ccdcc8eca66e1032a  IN   Etheremon_Trade10 Ether0.000071562
0xa56024b293c12cc74eae8497893dbb19dc3e0b81beb04e9396871e125f60855b5 days 19 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000024226
0xaec2ae9218958483a583e3ef49cdd24589851f6cd15033f3711600dfac8b34cc8 days 3 hrs ago0x42fe987767e39c9c2c19dd24822f551e01791252  IN   Etheremon_Trade10 Ether0.00002385
0xdd590397fef13b55b95cf086ea6d6465a37159f63293c3dfdc13afa5a2bf11f08 days 20 hrs ago0x38fcea7742fa0eef6938780c1edcf9b322dcc801  IN   Etheremon_Trade10.003 Ether0.00009562
0x93e3ff443d022d19de0247c6dc45a8c75496476b536e18e16af96ad9adabbb9d9 days 21 hrs ago0x680c1d46455f8070d828b0441d0effaace5c46a1  IN   Etheremon_Trade10.01 Ether0.000071715
0xdfc123367286e9f07c49d5049dfad770b77fdbdf6e36359e71f916035a80f60316 days 12 hrs ago0x1c062628943a930b805849b494719c7d23c77bd5  IN   Etheremon_Trade10.088888888 Ether0.000119525
0x56cade3eff152d554161914a259f6be90b48aae7fc7aff17b3e72c624c7de1bc17 days 19 hrs ago0xe7c06de04f6549eb7889441a5c98afbe970a921b  IN   Etheremon_Trade10 Ether0.000095416
0xc4e15d0d60b2aae65f1e4369793fab220a24c682cf894338537f75796b140eb317 days 19 hrs ago0xe7c06de04f6549eb7889441a5c98afbe970a921b  IN   Etheremon_Trade10 Ether0.000071562
0x92695fee7e3a217f9de42e24131d527fb85209f6be4030f9c287ae0172f1e80d19 days 5 hrs ago0x336aaa0d998a46b3a83b82edc241c592f388f510  IN   Etheremon_Trade10.0009 Ether0.000074105502
0xe05b88c1a91142326795e6ed9898096e01d020cef9fabdc040bc093dc9f7a13019 days 15 hrs ago0xab14398717c3bc4f545351b39882892ef4b74e87  IN   Etheremon_Trade10 Ether0.00002429
0x2ff459f98a830f0ac4905a37b0200d7b6ae37569e9b65887f554e05ad64b79ce20 days 6 hrs ago0xe765bf3d1c90f8b0c25f904de2dbb288306a69f5  IN   Etheremon_Trade10.055 Ether0.00005124249
0xb97c30e7daed0b3e9a5cd8c272726b77d79d9b27821ab4942857d624353f5f3e21 days 13 hrs ago0x9ebe5ab4a83f860a1fa96655f71617c43963e8c9  IN   Etheremon_Trade10.075 Ether0.000071715
0xc7fd23da310d804564da219b120167bf5c89aec305b68c9e3964154a004405d122 days 5 hrs ago0x72b46488cb9c59b2fd5a0d6bd99e008047344b88  IN   Etheremon_Trade10.002 Ether0.000071715
0x617c7247fa2958f7f7667303971279813206a5f55f53ac3a83b72673a7fa5ce923 days 3 hrs ago0x2d008dee36dfff675c5288b83e5f24236122d668  IN   Etheremon_Trade10 Ether0.00007287
0x621db80d00f5fdd0ebad0dad9dcb642a682c3454c8a6ad7d0e5fba0cd36dd27625 days 19 hrs ago0xb23263c7dabd7d6f1fc0ed3a5d3a5f1637ca540e  IN   Etheremon_Trade10 Ether0.000095416
0x97413b18f38d8bdbe936424eb0088d8eac98b674242cb9b8f595b60c1c9a952326 days 11 hrs ago0xd62697397836fb3d38fb4ad272574fd54b505c71  IN   Etheremon_Trade10 Ether0.00012145
0x5b0835958c757487674b567548681920bcedef956a0a7c31f6daa4fd8c5cb94426 days 14 hrs ago0x773cd61af29fc0ec27141bdb9c077b125a421885  IN   Etheremon_Trade10 Ether0.00009716
0x0b528f58160c7171ed414167911c514194ed78ca4504b7988aa25c9ea53ac1af26 days 14 hrs ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   Etheremon_Trade10 Ether0.000097416
0x0bbdc5e7e77b6520799543f7680ba40a5ea5dc701fc7092915f249470e027a6926 days 14 hrs ago0x69aae7a2969d5ef1a6521ed2f2cc68b9d16360b3  IN   Etheremon_Trade10 Ether0.000097416
0x5185b7a7001944bfc07c4823bec48f49c7604f35af866b664fad45fa5bf25a1726 days 14 hrs ago0xb7adf07c11f744bff29d66c6d88465ae35d43dd5  IN   Etheremon_Trade10 Ether0.000097416
0x31cede3946802dcbd60cee8edb0b98a57f6752dce9e8b73545402d283f1bbfa326 days 16 hrs ago0x51c18217fd5cd24bff32f272eff9f2cac6a0dd32  IN   Etheremon_Trade10 Ether0.000060994619
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x1803c7a39c59f54cceb2fa79ee28d21a525568349f23b0733bdb109509185c01623803927 days 1 hr ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x56f84fa68d424d30d1fd9d09a541dc82508e9fb80.08415 Ether
0xf96fe2c81107a010fbcc7c7a1748f675249c0aff4142201ec86bd421045349ba623801927 days 1 hr ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xa6fe83dcf28cc982818656ba680e03416824d5e40.07821 Ether
0x86329199c51543afed6c0677f7cf4d2fba97a926c5576556a4bfef5a0290c010623801527 days 1 hr ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x835ea455d21625b87353e74066dbd1dd7f3a869b0.04455 Ether
0x55ec2f4686bb64fdbbb31d23bf276527a3bc8f88d282ea96515175e3651bb0aa623681427 days 6 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x92a96518407397766500a0ca25626a5715397d3b0.07425 Ether
0xb4e49d21169f45a21cd85d77dfe2b174489d8cde6f0ecc42e803065a423e10cd623681427 days 6 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x966716049eeb4b388f553a450d7f81af18bd62310.07425 Ether
0xcfd4f220574d5c54742d3ae4343e2c14e2fc2f36ab6bff1d05e23836b9dc7461623659527 days 7 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf796b8fb98c7c98fd4b5424ced013820d1f2ee760.06831 Ether
0xe62f12dc5ce32a94d76263b821042e437c287e0c1f49df8c952e9c81f1c4d735623557827 days 11 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x3f7fa26ca24acc218000dd72216146d585577df70.06831 Ether
0x5752f740df36a327ff93bae73229b0ee21d12f5fb6d935550355a0a609071181623512027 days 13 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x4325927a20823481bb124881cdef37995cc2a2660.07722 Ether
0xdc1518392a5cfcf66e59f1dc9a554aa89c59b5c67f7d35475e4da864de092624623511527 days 13 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x27df3a98a22f37131fd154af07610020f16fedec0.03861 Ether
0xbeb840289ecafa83815a7bf230b5ef6b4bf5f8d14bddd81b4a2b913f26f053d2623362727 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x99a811e5c62add613975456292f836115aea01640.061875 Ether
0xb69ac6eb6892d466206fb2817ec99152256735248fb242a9914da5ce1df44591623361127 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x7d3d7aefa582b432d1c1cc60ed37a9b77f5300fe0.060885 Ether
0x05a92d0f7e3d964a906efa69e35c98b151865fcad5af1c65af65aafa438a0e2b623360327 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xd1a6c5bbf801bce3d2be3100dfdabf9a5d3da8fa0.068211 Ether
0x39c369113bc7138c47f719171e608d332431a1e03e9d1b5082895b339f025fc0623360227 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xaa9fa8dd95f830409e00202c54cba39e68e239720.07425 Ether
0x6afae84787de66ae197af7b318ed80ce1556dd81964d6c60bb7dd1a09d16a2bc623359927 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x05bd458b7c3fdbd6e1fb151bace8807e3935f0610.07425 Ether
0x6fd67061ec38689f61dab6168c5716e671bb656077d63b10afa84cfcc51ca118623359927 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x773cd61af29fc0ec27141bdb9c077b125a4218850.06336 Ether
0x40227ed08d17b36cb570ab6f36df58ad2031ee075a66af97b27c1a03d512110d623359227 days 19 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xccbbed706a5fbf6d23839bd4d853e9416d8b03d60.0792 Ether
0xfbd60d68e1be0cc5753e1e8a09a52e9140011f3c79e3938e359649d504b57275623323527 days 20 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x3f7fa26ca24acc218000dd72216146d585577df70.04851 Ether
0x422b666c7f1e3e911f6dbd2eada24dd85215722962b7f648cea22bc601e1b56b623323127 days 20 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x593157634f5f44050473e6f50c82ac00278d6e8d0.05445 Ether
0xdd0f75c9b7e96a4232ffc054243d4069c87a3cc8501874979e60273b87920be0623322727 days 20 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xc6174f5d491e34b6cfffe0c75db2a5f0c46d97b70.04455 Ether
0x124aa450d43f8c4f27557028e60019f2d068b9409adb207bf40bb9927560848b623300327 days 21 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x99a811e5c62add613975456292f836115aea01640.06435 Ether
0x6a8f4a1f0909b9f2a56abf6c248a2b5f9252231f089a450e00b541bce85a366f623286327 days 22 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf26716c00c66bef39b879908049f2bf8c53a92250.06534 Ether
0xb305b10254b6e6b4fb1cd13d3cc9e9358788fc3443d97cf6fc218bd00c8e75c3623205728 days 1 hr ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x219d56f04eb1d15422d0ef307946b90cb479faee0.00198 Ether
0x715213116066b35eaf14e3c34186212f1bb0d3b04509be8a5124cebd98a94bd1623142928 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xb682505323c4e2804fe5e6c86c227a3b01d421e90.06831 Ether
0x96a68afd2b67fbc02ff257c93f22c1e0eddd62170d3e4a420aedf083a7c5b837623141428 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf8856124ea157d6f26472e38224ee6744ad13af30.08415 Ether
0xf3f34861c7794921c9717fa5caf94e57d4d8b1ee0ed112805ed6cda8196ad857623135428 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x05bd458b7c3fdbd6e1fb151bace8807e3935f0610.04851 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EtheremonTrade
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.16;

// copyright [email protected]

contract SafeMath {

    /* function assert(bool assertion) internal { */
    /*   if (!assertion) { */
    /*     throw; */
    /*   } */
    /* }      // assert no longer needed once solidity is on 0.4.10 */

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

    function safeSubtract(uint256 x, uint256 y) pure internal returns(uint256) {
      assert(x >= y);
      uint256 z = x - y;
      return z;
    }

    function safeMult(uint256 x, uint256 y) pure internal returns(uint256) {
      uint256 z = x * y;
      assert((x == 0)||(z/x == y));
      return z;
    }

}

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

    function BasicAccessControl() 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;
    }
}

contract EtheremonEnum {

    enum ResultCode {
        SUCCESS,
        ERROR_CLASS_NOT_FOUND,
        ERROR_LOW_BALANCE,
        ERROR_SEND_FAIL,
        ERROR_NOT_TRAINER,
        ERROR_NOT_ENOUGH_MONEY,
        ERROR_INVALID_AMOUNT,
        ERROR_OBJ_NOT_FOUND,
        ERROR_OBJ_INVALID_OWNERSHIP
    }
    
    enum ArrayType {
        CLASS_TYPE,
        STAT_STEP,
        STAT_START,
        STAT_BASE,
        OBJ_SKILL
    }
}

contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath {
    
    uint64 public totalMonster;
    uint32 public totalClass;
    
    // write
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint);
    function removeElementOfArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint);
    function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32);
    function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64);
    function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public;
    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256 amount);
    function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount);
    function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode);
    function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public;
    
    // read
    function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint);
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8);
    function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable);
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime);
    function getMonsterName(uint64 _objId) constant public returns(string name);
    function getExtraBalance(address _trainer) constant public returns(uint256);
    function getMonsterDexSize(address _trainer) constant public returns(uint);
    function getMonsterObjId(address _trainer, uint index) constant public returns(uint64);
    function getExpectedBalance(address _trainer) constant public returns(uint256);
    function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total);
}

interface EtheremonBattleInterface {
    function isOnBattle(uint64 _objId) constant external returns(bool) ;
    function getMonsterCP(uint64 _objId) constant external returns(uint64);
}

contract EtheremonTrade is EtheremonEnum, BasicAccessControl, SafeMath {
    
    uint8 constant public GEN0_NO = 24;

    struct MonsterClassAcc {
        uint32 classId;
        uint256 price;
        uint256 returnPrice;
        uint32 total;
        bool catchable;
    }

    struct MonsterObjAcc {
        uint64 monsterId;
        uint32 classId;
        address trainer;
        string name;
        uint32 exp;
        uint32 createIndex;
        uint32 lastClaimIndex;
        uint createTime;
    }
    
    // Gen0 has return price & no longer can be caught when this contract is deployed
    struct Gen0Config {
        uint32 classId;
        uint256 originalPrice;
        uint256 returnPrice;
        uint32 total; // total caught (not count those from eggs)
    }
    
    struct BorrowItem {
        uint index;
        address owner;
        address borrower;
        uint256 price;
        bool lent;
        uint releaseTime;
    }
    
    struct SellingItem {
        uint index;
        uint256 price;
    }
    
    struct SoldItem {
        uint64 objId;
        uint256 price;
        uint time;
    }
    
    // data contract
    address public dataContract;
    address public battleContract;
    mapping(uint32 => Gen0Config) public gen0Config;
    
    // for selling
    mapping(uint64 => SellingItem) public sellingDict;
    uint32 public totalSellingItem;
    uint64[] public sellingList;
    
    // for borrowing
    mapping(uint64 => BorrowItem) public borrowingDict;
    uint32 public totalBorrowingItem;
    uint64[] public borrowingList;
    
    mapping(address => uint64[]) public lendingList;
    mapping(address => SoldItem[]) public soldList;
    
    // trading fee
    uint16 public tradingFeePercentage = 1;
    uint8 public maxLendingItem = 10;
    
    modifier requireDataContract {
        require(dataContract != address(0));
        _;
    }
    
    modifier requireBattleContract {
        require(battleContract != address(0));
        _;
    }
    
    // event
    event EventPlaceSellOrder(address indexed seller, uint64 objId);
    event EventBuyItem(address indexed buyer, uint64 objId);
    event EventOfferBorrowingItem(address indexed lender, uint64 objId);
    event EventAcceptBorrowItem(address indexed borrower, uint64 objId);
    event EventGetBackItem(address indexed owner, uint64 objId);
    event EventFreeTransferItem(address indexed sender, address indexed receiver, uint64 objId);
    event EventRelease(address indexed trainer, uint64 objId);
    
    // constructor
    function EtheremonTrade(address _dataContract, address _battleContract) public {
        dataContract = _dataContract;
        battleContract = _battleContract;
    }
    
     // admin & moderators
    function setOriginalPriceGen0() onlyModerators public {
        gen0Config[1] = Gen0Config(1, 0.3 ether, 0.003 ether, 374);
        gen0Config[2] = Gen0Config(2, 0.3 ether, 0.003 ether, 408);
        gen0Config[3] = Gen0Config(3, 0.3 ether, 0.003 ether, 373);
        gen0Config[4] = Gen0Config(4, 0.2 ether, 0.002 ether, 437);
        gen0Config[5] = Gen0Config(5, 0.1 ether, 0.001 ether, 497);
        gen0Config[6] = Gen0Config(6, 0.3 ether, 0.003 ether, 380); 
        gen0Config[7] = Gen0Config(7, 0.2 ether, 0.002 ether, 345);
        gen0Config[8] = Gen0Config(8, 0.1 ether, 0.001 ether, 518); 
        gen0Config[9] = Gen0Config(9, 0.1 ether, 0.001 ether, 447);
        gen0Config[10] = Gen0Config(10, 0.2 ether, 0.002 ether, 380); 
        gen0Config[11] = Gen0Config(11, 0.2 ether, 0.002 ether, 354);
        gen0Config[12] = Gen0Config(12, 0.2 ether, 0.002 ether, 346);
        gen0Config[13] = Gen0Config(13, 0.2 ether, 0.002 ether, 351); 
        gen0Config[14] = Gen0Config(14, 0.2 ether, 0.002 ether, 338);
        gen0Config[15] = Gen0Config(15, 0.2 ether, 0.002 ether, 341);
        gen0Config[16] = Gen0Config(16, 0.35 ether, 0.0035 ether, 384);
        gen0Config[17] = Gen0Config(17, 1 ether, 0.01 ether, 305); 
        gen0Config[18] = Gen0Config(18, 0.1 ether, 0.001 ether, 427);
        gen0Config[19] = Gen0Config(19, 1 ether, 0.01 ether, 304);
        gen0Config[20] = Gen0Config(20, 0.4 ether, 0.05 ether, 82);
        gen0Config[21] = Gen0Config(21, 1, 1, 123);
        gen0Config[22] = Gen0Config(22, 0.2 ether, 0.001 ether, 468);
        gen0Config[23] = Gen0Config(23, 0.5 ether, 0.0025 ether, 302);
        gen0Config[24] = Gen0Config(24, 1 ether, 0.005 ether, 195);
    }
    
    function setContract(address _dataContract, address _battleContract) onlyModerators public {
        dataContract = _dataContract;
        battleContract = _battleContract;
    }
    
    function updateConfig(uint16 _fee, uint8 _maxLendingItem) onlyModerators public {
        tradingFeePercentage = _fee;
        maxLendingItem = _maxLendingItem;
    }
    
    function withdrawEther(address _sendTo, uint _amount) onlyModerators public {
        // no user money is kept in this contract, only trasaction fee
        if (_amount > this.balance) {
            revert();
        }
        _sendTo.transfer(_amount);
    }
    
    
    // helper
    function removeSellingItem(uint64 _itemId) private {
        SellingItem storage item = sellingDict[_itemId];
        if (item.index == 0)
            return;
        
        if (item.index <= sellingList.length) {
            // Move an existing element into the vacated key slot.
            sellingDict[sellingList[sellingList.length-1]].index = item.index;
            sellingList[item.index-1] = sellingList[sellingList.length-1];
            sellingList.length -= 1;
            delete sellingDict[_itemId];
        }
    }
    
    function addSellingItem(uint64 _itemId, uint256 _price) private {
        SellingItem storage item = sellingDict[_itemId];
        item.price = _price;
        
        if (item.index == 0) {
            item.index = ++sellingList.length;
            sellingList[item.index - 1] = _itemId;
        }
    }

    function removeBorrowingItem(uint64 _itemId) private {
        BorrowItem storage item = borrowingDict[_itemId];
        if (item.index == 0)
            return;
        
        if (item.index <= borrowingList.length) {
            // Move an existing element into the vacated key slot.
            borrowingDict[borrowingList[borrowingList.length-1]].index = item.index;
            borrowingList[item.index-1] = borrowingList[borrowingList.length-1];
            borrowingList.length -= 1;
            delete borrowingDict[_itemId];
        }
    }

    function addBorrowingItem(address _owner, uint64 _itemId, uint256 _price, uint _releaseTime) private {
        BorrowItem storage item = borrowingDict[_itemId];
        item.owner = _owner;
        item.borrower = address(0);
        item.price = _price;
        item.lent = false;
        item.releaseTime = _releaseTime;
        
        if (item.index == 0) {
            item.index = ++borrowingList.length;
            borrowingList[item.index - 1] = _itemId;
        }
    }
    
    function transferMonster(address _to, uint64 _objId) private {
        EtheremonDataBase data = EtheremonDataBase(dataContract);

        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);

        // clear balance for gen 0
        if (obj.classId <= GEN0_NO) {
            Gen0Config storage gen0 = gen0Config[obj.classId];
            if (gen0.classId == obj.classId) {
                if (obj.lastClaimIndex < gen0.total) {
                    uint32 gap = uint32(safeSubtract(gen0.total, obj.lastClaimIndex));
                    if (gap > 0) {
                        data.addExtraBalance(obj.trainer, safeMult(gap, gen0.returnPrice));
                        // reset total (accept name is cleared :( )
                        data.setMonsterObj(obj.monsterId, " name me ", obj.exp, obj.createIndex, gen0.total);
                    }
                }
            }
        }
        
        // transfer owner
        data.removeMonsterIdMapping(obj.trainer, _objId);
        data.addMonsterIdMapping(_to, _objId);
    }
    
    function addItemLendingList(address _trainer, uint64 _objId) private {
        if (_trainer != address(0)) {
            uint64[] storage objList = lendingList[_trainer];
            for (uint index = 0; index < objList.length; index++) {
                if (objList[index] == _objId) {
                    return;
                }
            }
            objList.push(_objId);
        }
    }
    
    function removeItemLendingList(address _trainer, uint64 _objId) private {
        uint foundIndex = 0;
        uint64[] storage objList = lendingList[_trainer];
        for (; foundIndex < objList.length; foundIndex++) {
            if (objList[foundIndex] == _objId) {
                break;
            }
        }
        if (foundIndex < objList.length) {
            objList[foundIndex] = objList[objList.length-1];
            delete objList[objList.length-1];
            objList.length--;
        }
    }
    
    // public
    function placeSellOrder(uint64 _objId, uint256 _price) requireDataContract requireBattleContract isActive external {
        if (_price == 0)
            revert();
        // not on borrowing
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index > 0)
            revert();
        // not on battle 
        EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
        if (battle.isOnBattle(_objId))
            revert();
        
        // check ownership
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        
        if (obj.monsterId != _objId) {
            revert();
        }
        
        if (obj.trainer != msg.sender) {
            revert();
        }
        
        // on selling, then just update price
        if (sellingDict[_objId].index > 0){
            sellingDict[_objId].price = _price;
        } else {
            addSellingItem(_objId, _price);
        }
        EventPlaceSellOrder(msg.sender, _objId);
    }
    
    function removeSellOrder(uint64 _objId) requireDataContract requireBattleContract isActive external {
        if (sellingDict[_objId].index == 0)
            revert();
        
        // check ownership
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        
        if (obj.monsterId != _objId) {
            revert();
        }
        
        if (obj.trainer != msg.sender) {
            revert();
        }
        
        removeSellingItem(_objId);
    }
    
    function buyItem(uint64 _objId) requireDataContract requireBattleContract isActive external payable {
        // check item is valid to sell 
        uint256 requestPrice = sellingDict[_objId].price;
        if (requestPrice == 0 || msg.value != requestPrice) {
            revert();
        }
        
        // check obj
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        if (obj.monsterId != _objId) {
            revert();
        }
        // can not buy from yourself
        if (obj.trainer == msg.sender) {
            revert();
        }
        
        address oldTrainer = obj.trainer;
        uint256 fee = requestPrice * tradingFeePercentage / 100;
        removeSellingItem(_objId);
        transferMonster(msg.sender, _objId);
        oldTrainer.transfer(safeSubtract(requestPrice, fee));
        
        SoldItem memory soldItem = SoldItem(_objId, requestPrice, block.timestamp);
        soldList[oldTrainer].push(soldItem);
        EventBuyItem(msg.sender, _objId);
    }
    
    function offerBorrowingItem(uint64 _objId, uint256 _price, uint _releaseTime) requireDataContract requireBattleContract isActive external {
        // make sure it is not on sale 
        if (sellingDict[_objId].price > 0 || _price == 0)
            revert();
        // not on lent
        BorrowItem storage item = borrowingDict[_objId];
        if (item.lent == true)
            revert();
        // not on battle 
        EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
        if (battle.isOnBattle(_objId))
            revert();
        
        
        // check ownership
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        
        if (obj.monsterId != _objId) {
            revert();
        }
        
        if (obj.trainer != msg.sender) {
            revert();
        }
        
        if (item.index > 0) {
            // update info 
            item.price = _price;
            item.releaseTime = _releaseTime;
        } else {
            addBorrowingItem(msg.sender, _objId, _price, _releaseTime);
        }
        EventOfferBorrowingItem(msg.sender, _objId);
    }
    
    function removeBorrowingOfferItem(uint64 _objId) requireDataContract requireBattleContract isActive external {
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index == 0)
            revert();
        
        if (item.owner != msg.sender)
            revert();
        if (item.lent == true)
            revert();
        
        removeBorrowingItem(_objId);
    }
    
    function borrowItem(uint64 _objId) requireDataContract requireBattleContract isActive external payable {
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index == 0)
            revert();
        if (item.lent == true)
            revert();
        uint256 itemPrice = item.price;
        if (itemPrice != msg.value)
            revert();
        

        // check obj
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        if (obj.monsterId != _objId) {
            revert();
        }
        // can not borrow from yourself
        if (obj.trainer == msg.sender) {
            revert();
        }
        
        uint256 fee = itemPrice * tradingFeePercentage / 100;
        item.borrower = msg.sender;
        item.releaseTime += block.timestamp;
        item.lent = true;
        address oldOwner = obj.trainer;
        transferMonster(msg.sender, _objId);
        oldOwner.transfer(safeSubtract(itemPrice, fee));
        addItemLendingList(oldOwner, _objId);
        EventAcceptBorrowItem(msg.sender, _objId);
    }
    
    function getBackLendingItem(uint64 _objId) requireDataContract requireBattleContract isActive external {
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index == 0)
            revert();
        if (item.lent == false)
            revert();
        if (item.releaseTime > block.timestamp)
            revert();
        
        if (msg.sender != item.owner)
            revert();
        
        removeBorrowingItem(_objId);
        transferMonster(msg.sender, _objId);
        removeItemLendingList(msg.sender, _objId);
        EventGetBackItem(msg.sender, _objId);
    }
    
    function freeTransferItem(uint64 _objId, address _receiver) requireDataContract requireBattleContract external {
        // make sure it is not on sale 
        if (sellingDict[_objId].price > 0)
            revert();
        // not on borrowing
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index > 0)
            revert();
        // not on battle 
        EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
        if (battle.isOnBattle(_objId))
            revert();
        
        // check ownership
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        
        if (obj.monsterId != _objId) {
            revert();
        }
        
        if (obj.trainer != msg.sender) {
            revert();
        }
        
        transferMonster(_receiver, _objId);
        EventFreeTransferItem(msg.sender, _receiver, _objId);
    }
    
    function release(uint64 _objId) requireDataContract requireBattleContract external {
        // make sure it is not on sale 
        if (sellingDict[_objId].price > 0)
            revert();
        // not on borrowing
        BorrowItem storage item = borrowingDict[_objId];
        if (item.index > 0)
            revert();
        // not on battle 
        EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
        if (battle.isOnBattle(_objId))
            revert();
        
        // check ownership
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        uint32 _ = 0;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId);
        
        // can not release gen 0
        if (obj.classId <= GEN0_NO) {
            revert();
        }
        
        if (obj.monsterId != _objId) {
            revert();
        }
        
        if (obj.trainer != msg.sender) {
            revert();
        }
        
        data.removeMonsterIdMapping(msg.sender, _objId);
        EventRelease(msg.sender, _objId);
    }
    
    // read access
    
    function getBasicObjInfo(uint64 _objId) constant public returns(uint32, address, uint32, uint32){
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);
        return (obj.classId, obj.trainer, obj.exp, obj.createIndex);
    }
    
    function getBasicObjInfoWithBp(uint64 _objId) constant public returns(uint32, uint32, uint32, uint64) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);
        EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
        uint64 bp = battle.getMonsterCP(_objId);
        return (obj.classId, obj.exp, obj.createIndex, bp);
    }
    
    function getTotalSellingItem() constant external returns(uint) {
        return sellingList.length;
    }

    function getSellingItem(uint _index) constant external returns(uint64 objId, uint32 classId, uint32 exp, uint64 bp, address trainer, uint createIndex, uint256 price) {
        objId = sellingList[_index];
        if (objId > 0) {
            (classId, trainer, exp, createIndex) = getBasicObjInfo(objId);
            EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
            bp = battle.getMonsterCP(objId);
            price = sellingDict[objId].price;
        }
    }
    
    function getSellingItemByObjId(uint64 _objId) constant external returns(uint32 classId, uint32 exp, uint64 bp, address trainer, uint createIndex, uint256 price) {
        price = sellingDict[_objId].price;
        if (price > 0) {
            (classId, trainer, exp, createIndex) = getBasicObjInfo(_objId);
            EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
            bp = battle.getMonsterCP(_objId);
        }
    }

    function getTotalBorrowingItem() constant external returns(uint) {
        return borrowingList.length;
    }

    function getBorrowingItem(uint _index) constant external returns(uint64 objId, address owner, address borrower, 
        uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) {
        objId = borrowingList[_index];
        BorrowItem storage item = borrowingDict[objId];
        owner = item.owner;
        borrower = item.borrower;
        price = item.price;
        lent = item.lent;
        releaseTime = item.releaseTime;
        
        (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(objId);
    }
    
    function getBorrowingItemByObjId(uint64 _objId) constant external returns(uint index, address owner, address borrower, 
        uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) {
        BorrowItem storage item = borrowingDict[_objId];
        index = item.index;
        owner = item.owner;
        borrower = item.borrower;
        price = item.price;
        lent = item.lent;
        releaseTime = item.releaseTime;
        
        (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(_objId);
    }
    
    function getSoldItemLength(address _trainer) constant external returns(uint) {
        return soldList[_trainer].length;
    }
    
    function getSoldItem(address _trainer, uint _index) constant external returns(uint64 objId, uint32 classId, uint32 exp, uint64 bp, address currentOwner, 
        uint createIndex, uint256 price, uint time) {
        if (_index > soldList[_trainer].length)
            return;
        SoldItem memory soldItem = soldList[_trainer][_index];
        objId = soldItem.objId;
        price = soldItem.price;
        time = soldItem.time;
        if (objId > 0) {
            (classId, currentOwner, exp, createIndex) = getBasicObjInfo(objId);
            EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract);
            bp = battle.getMonsterCP(objId);
        }
    }
    
    function getLendingItemLength(address _trainer) constant external returns(uint) {
        return lendingList[_trainer].length;
    }
    
    function getLendingItemInfo(address _trainer, uint _index) constant external returns(uint64 objId, address owner, address borrower, 
        uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) {
        if (_index > lendingList[_trainer].length)
            return;
        objId = lendingList[_trainer][_index];
        BorrowItem storage item = borrowingDict[objId];
        owner = item.owner;
        borrower = item.borrower;
        price = item.price;
        lent = item.lent;
        releaseTime = item.releaseTime;
        
        (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(objId);
    }
    
    function getTradingInfo(uint64 _objId) constant external returns(uint256 sellingPrice, uint256 lendingPrice, bool lent, uint releaseTime) {
        sellingPrice = sellingDict[_objId].price;
        BorrowItem storage item = borrowingDict[_objId];
        lendingPrice = item.price;
        lent = item.lent;
        releaseTime = item.releaseTime;
    }
    
    function isOnTrading(uint64 _objId) constant external returns(bool) {
        return (sellingDict[_objId].price > 0 || borrowingDict[_objId].owner != address(0));
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"getTotalBorrowingItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getTradingInfo","outputs":[{"name":"sellingPrice","type":"uint256"},{"name":"lendingPrice","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_receiver","type":"address"}],"name":"freeTransferItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"sellingDict","outputs":[{"name":"index","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"gen0Config","outputs":[{"name":"classId","type":"uint32"},{"name":"originalPrice","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getSellingItemByObjId","outputs":[{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"trainer","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLendingItem","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_price","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"offerBorrowingItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getSoldItemLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"battleContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"_index","type":"uint256"}],"name":"getSoldItem","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"currentOwner","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBackLendingItem","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":"_objId","type":"uint64"}],"name":"getBorrowingItemByObjId","outputs":[{"name":"index","type":"uint256"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalBorrowingItem","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"borrowingDict","outputs":[{"name":"index","type":"uint256"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBasicObjInfo","outputs":[{"name":"","type":"uint32"},{"name":"","type":"address"},{"name":"","type":"uint32"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"removeBorrowingOfferItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalSellingItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setOriginalPriceGen0","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint16"},{"name":"_maxLendingItem","type":"uint8"}],"name":"updateConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GEN0_NO","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBasicObjInfoWithBp","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint32"},{"name":"","type":"uint32"},{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getSellingItem","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"trainer","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","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":"","type":"uint256"}],"name":"sellingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"isOnTrading","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"_index","type":"uint256"}],"name":"getLendingItemInfo","outputs":[{"name":"objId","type":"uint64"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tradingFeePercentage","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"borrowingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"soldList","outputs":[{"name":"objId","type":"uint64"},{"name":"price","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_price","type":"uint256"}],"name":"placeSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getLendingItemLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"buyItem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalSellingItem","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"removeSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lendingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"borrowItem","outputs":[],"payable":true,"stateMutability":"payable","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"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getBorrowingItem","outputs":[{"name":"objId","type":"uint64"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"seller","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventPlaceSellOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventBuyItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"lender","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventOfferBorrowingItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"borrower","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventAcceptBorrowItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventGetBackItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventFreeTransferItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"trainer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventRelease","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a61ffff02191690556002805460ff19166001908117909155600d805461ffff191690911762ff00001916620a0000179055341561004957600080fd5b604051604080614bd8833981016040528080519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600280549683166101000261010060a860020a03199097169690961790955560038054919092169416939093179092555050614b15806100c36000396000f3006060604052600436106102365763ffffffff60e060020a600035041662203385811461023b57806304150e8f1461026057806306228e95146102ae5780630796f67c146102db5780630d668818146103125780630daf4151146103415780630e5aaffc1461038e57806314d0f1ba1461040257806326a4c847146104355780632bf6e0a51461045e5780633010f03c146104835780633462001b146104a857806341fbbc31146104c7578063423b1ca3146104e657806347ae73ee146104f957806348ef5aa81461057f5780634eb4fe80146105975780634efb023e146105b65780634f99a96e146105e05780634fdf64ce14610675578063517403f5146106a1578063522f681514610705578063554792fd146107275780635e6df25c14610781578063654470fc146107a057806366ba2670146107b35780636c81fd6d146107c657806370187a19146107e557806373d65c001461080557806376c29bf5146108185780638426a452146108725780638da5cb5b146108e4578063999ec0a0146108f7578063a847a71c14610929578063ad4e39f314610948578063b2356ad4146109e3578063b58c87ba146109f6578063b85d627514610a0c578063baaa73b514610a2b578063c2b303d014610a83578063c734375414610aa5578063d6f551e414610ac4578063d7c39cc614610ad8578063e16e0f8414610aeb578063e88dfc6714610b0a578063e9b6d67114610b2c578063ee4e441614610b40578063f285329214610b53578063faa5369d14610b72575b600080fd5b341561024657600080fd5b61024e610b88565b60405190815260200160405180910390f35b341561026b57600080fd5b61027f6001604060020a0360043516610b8f565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34156102b957600080fd5b6102d96001604060020a0360043516600160a060020a0360243516610bd0565b005b34156102e657600080fd5b6102fa6001604060020a0360043516610e5c565b60405191825260208201526040908101905180910390f35b341561031d57600080fd5b610325610e75565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61035d63ffffffff60043516610e89565b60405163ffffffff948516815260208101939093526040808401929092529092166060820152608001905180910390f35b341561039957600080fd5b6103ad6001604060020a0360043516610eb8565b60405163ffffffff96871681529490951660208501526001604060020a03909216604080850191909152600160a060020a039091166060840152608083019190915260a082019290925260c001905180910390f35b341561040d57600080fd5b610421600160a060020a0360043516610f82565b604051901515815260200160405180910390f35b341561044057600080fd5b610448610f97565b60405160ff909116815260200160405180910390f35b341561046957600080fd5b6102d9600160a060020a0360043581169060243516610fa6565b341561048e57600080fd5b6102d96001604060020a036004351660243560443561103e565b34156104b357600080fd5b61024e600160a060020a0360043516611304565b34156104d257600080fd5b6102d96001604060020a036004351661131f565b34156104f157600080fd5b610325611625565b341561050457600080fd5b61051b600160a060020a0360043516602435611634565b6040516001604060020a03988916815263ffffffff978816602082015295909616604080870191909152939096166060850152600160a060020a03909116608084015260a083015260c082019390935260e081019190915261010001905180910390f35b341561058a57600080fd5b6102d96004351515611798565b34156105a257600080fd5b6102d96001604060020a03600435166117c6565b34156105c157600080fd5b6105c96118db565b60405161ffff909116815260200160405180910390f35b34156105eb57600080fd5b6105ff6001604060020a03600435166118fd565b604051998a52600160a060020a0398891660208b0152969097166040808a01919091526060890195909552921515608088015260a087019190915263ffffffff90811660c087015290811660e08601529092166101008401526001604060020a0316610120830152610140909101905180910390f35b341561068057600080fd5b610688611976565b60405163ffffffff909116815260200160405180910390f35b34156106ac57600080fd5b6106c06001604060020a0360043516611982565b604051958652600160a060020a039485166020870152929093166040808601919091526060850191909152911515608084015260a083015260c0909101905180910390f35b341561071057600080fd5b6102d9600160a060020a03600435166024356119c8565b341561073257600080fd5b6107466001604060020a0360043516611a5a565b60405163ffffffff9485168152600160a060020a03909316602084015290831660408084019190915292166060820152608001905180910390f35b341561078c57600080fd5b6102d96001604060020a0360043516611b71565b34156107ab57600080fd5b61024e611c1a565b34156107be57600080fd5b6102d9611c20565b34156107d157600080fd5b6102d9600160a060020a0360043516612cea565b34156107f057600080fd5b6102d961ffff6004351660ff60243516612d94565b341561081057600080fd5b610448612e07565b341561082357600080fd5b6108376001604060020a0360043516612e0c565b60405163ffffffff9485168152928416602084015292166040808301919091526001604060020a039092166060820152608001905180910390f35b341561087d57600080fd5b610888600435612f9d565b6040516001604060020a03978816815263ffffffff968716602082015294909516604080860191909152929095166060840152600160a060020a0316608083015260a082019390935260c081019190915260e001905180910390f35b34156108ef57600080fd5b6103256130b3565b341561090257600080fd5b61090d6004356130c2565b6040516001604060020a03909116815260200160405180910390f35b341561093457600080fd5b6104216001604060020a03600435166130fd565b341561095357600080fd5b61096a600160a060020a0360043516602435613150565b6040516001604060020a039a8b168152600160a060020a03998a166020820152979098166040808901919091526060880196909652931515608087015260a086019290925263ffffffff90811660c086015290811660e08501521661010083015291909216610120830152610140909101905180910390f35b34156109ee57600080fd5b6105c9613286565b3415610a0157600080fd5b61090d600435613290565b3415610a1757600080fd5b6102d9600160a060020a036004351661329e565b3415610a3657600080fd5b610a4d600160a060020a0360043516602435613348565b60405180846001604060020a03166001604060020a03168152602001838152602001828152602001935050505060405180910390f35b3415610a8e57600080fd5b6102d96001604060020a0360043516602435613393565b3415610ab057600080fd5b61024e600160a060020a036004351661364c565b6102d96001604060020a0360043516613667565b3415610ae357600080fd5b610688613959565b3415610af657600080fd5b6102d96001604060020a0360043516613965565b3415610b1557600080fd5b61090d600160a060020a0360043516602435613afd565b6102d96001604060020a0360043516613b48565b3415610b4b57600080fd5b610421613e02565b3415610b5e57600080fd5b6102d9600160a060020a0360043516613e0b565b3415610b7d57600080fd5b61096a600435613e62565b600a545b90565b6001604060020a031660009081526005602081815260408084206001015460089092529092206003810154600482015491909201549293919260ff90911691565b6000806000610bdd6149ba565b6002546000906101009004600160a060020a03161515610bfc57600080fd5b600354600160a060020a03161515610c1357600080fd5b6001604060020a0387166000908152600560205260408120600101541115610c3a57600080fd5b6001604060020a038716600090815260086020526040812080549096501115610c6257600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610cbe57600080fd5b6102c65a03f11515610ccf57600080fd5b5050506040518051905015610ce357600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a031614610dd657600080fd5b33600160a060020a03168260400151600160a060020a031614610df857600080fd5b610e028688613f33565b85600160a060020a031633600160a060020a03167fc1a01a90251d073f6f2b5d848f0e5dc2aca9b0a6743ed79946e599ad6d546528896040516001604060020a03909116815260200160405180910390a350505050505050565b6005602052600090815260409020805460019091015482565b6002546101009004600160a060020a031681565b600460205260009081526040902080546001820154600283015460039093015463ffffffff9283169391921684565b6001604060020a03811660009081526005602052604081206001015481908190819081908180821115610f7857610eee88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610f5b57600080fd5b6102c65a03f11515610f6c57600080fd5b50505060405180519550505b5091939550919395565b60016020526000908152604090205460ff1681565b600d5462010000900460ff1681565b60005433600160a060020a0390811691161480610fe15750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610fec57600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03948516021790556003805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b600080600061104b6149ba565b6002546000906101009004600160a060020a0316151561106a57600080fd5b600354600160a060020a0316151561108157600080fd5b60025460ff161561109157600080fd5b6001604060020a03881660009081526005602052604081206001015411806110b7575086155b156110c157600080fd5b6001604060020a0388166000908152600860205260409020600481015490955060ff161515600114156110f357600080fd5b600354600160a060020a03169350836335f097f38960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561114f57600080fd5b6102c65a03f1151561116057600080fd5b505050604051805190501561117457600080fd5b506002546101009004600160a060020a031691506000826307202460898360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156111d757600080fd5b6102c65a03f115156111e857600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150881682516001604060020a03161461126757600080fd5b33600160a060020a03168260400151600160a060020a03161461128957600080fd5b845460009011156112a75760038501879055600585018690556112b3565b6112b333898989614300565b33600160a060020a03167fa67dda40b2486d90a85433ceabe8a464671ead8938ef7eb33e11b0fb828f6694896040516001604060020a03909116815260200160405180910390a25050505050505050565b600160a060020a03166000908152600c602052604090205490565b600080600061132c6149ba565b6002546000906101009004600160a060020a0316151561134b57600080fd5b600354600160a060020a0316151561136257600080fd5b6001604060020a038616600090815260056020526040812060010154111561138957600080fd5b6001604060020a0386166000908152600860205260408120805490965011156113b157600080fd5b600354600160a060020a03169350836335f097f38760006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561140d57600080fd5b6102c65a03f1151561141e57600080fd5b505050604051805190501561143257600080fd5b506002546101009004600160a060020a031691506000826307202460878360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561149557600080fd5b6102c65a03f115156114a657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a03909216604087015291909116602085019081526001604060020a03909216845291506018905163ffffffff161161152457600080fd5b6001604060020a03861682516001604060020a03161461154357600080fd5b33600160a060020a03168260400151600160a060020a03161461156557600080fd5b82600160a060020a03166360c6ccb2338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156115c257600080fd5b6102c65a03f115156115d357600080fd5b50505033600160a060020a03167fa19af89a96cde439cbd1ad5d955155f57449dd15808b36397d6684e430825e56876040516001604060020a03909116815260200160405180910390a2505050505050565b600354600160a060020a031681565b600080600080600080600080611648614a06565b600160a060020a038b166000908152600c60205260408120548b111561166d57611789565b600160a060020a038c166000908152600c6020526040902080548c90811061169157fe5b90600052602060002090600302016060604051908101604090815282546001604060020a031682526001830154602083015260029092015491810191909152915081519950816020015193508160400151925060008a6001604060020a03161115611789576116ff8a611a5a565b600354939c50909a5090975063ffffffff169550600160a060020a0316905080630672859b8b60006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561176c57600080fd5b6102c65a03f1151561177d57600080fd5b50505060405180519750505b50509295985092959890939650565b60005433600160a060020a039081169116146117b357600080fd5b6002805460ff1916911515919091179055565b6002546000906101009004600160a060020a031615156117e557600080fd5b600354600160a060020a031615156117fc57600080fd5b60025460ff161561180c57600080fd5b506001604060020a03811660009081526008602052604090208054151561183257600080fd5b600481015460ff16151561184557600080fd5b428160050154111561185657600080fd5b600181015433600160a060020a0390811691161461187357600080fd5b61187c826143db565b6118863383613f33565b611890338361455e565b33600160a060020a03167fa46e3c6c83db41772890d273b010c0afddf1a1e6abce28b37e5d7eb80964f4bd836040516001604060020a03909116815260200160405180910390a25050565b60005474010000000000000000000000000000000000000000900461ffff1681565b6001604060020a03811660009081526008602052604081208054600182015460028301546003840154600485015460058601549496600160a060020a03948516969390941694919360ff9091169281908190819061195a8c612e0c565b9d9f9c9e509a9c999b989a979991989097965090945092505050565b60095463ffffffff1681565b6008602052600090815260409020805460018201546002830154600384015460048501546005909501549394600160a060020a03938416949390921692909160ff169086565b60005433600160a060020a0390811691161480611a035750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611a0e57600080fd5b30600160a060020a031631811115611a2557600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515611a5657600080fd5b5050565b6000806000806000611a6a6149ba565b6002546101009004600160a060020a0316915081630720246088600060405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515611acb57600080fd5b6102c65a03f11515611adc57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a03909116604085015216602083019081526001604060020a03909116825251816040015182608001518360a00151955095509550955050509193509193565b6002546000906101009004600160a060020a03161515611b9057600080fd5b600354600160a060020a03161515611ba757600080fd5b60025460ff1615611bb757600080fd5b506001604060020a038116600090815260086020526040902080541515611bdd57600080fd5b600181015433600160a060020a03908116911614611bfa57600080fd5b600481015460ff16151560011415611c1157600080fd5b611a56826143db565b60075490565b60005433600160a060020a0390811691161480611c5b5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611c6657600080fd5b608060405190810160409081526001808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101766060840152600052600490527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526002808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101986060840152600052600490527f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a78151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526003808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101756060840152600052600490527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260048083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101b56060840152600081905290527f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600580835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101f16060840152600052600490527f04cde762ef08b6b6c5ded8e8c4c0b3f4e5c9ad7342c88fcc93681b4588b73f058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526006808352670429d069189e0000602080850191909152660aa87bee5380009284019290925261017c6060840152600052600490527fc59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260078083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101596060840152600052600490527fbeb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e5518151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600880835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526102066060840152600052600490527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a48151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600980835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101bf6060840152600052600490527f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b9338151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600a8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261017c6060840152600052600490527f5c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f310938151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600b8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101626060840152600052600490527f0c1469ad586d86b6976c45826d7ae56d76ee516e37a2bccffbe904b74dbae7ea8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600c8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015a6060840152600052600490527f140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce268151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600d8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015f6060840152600052600490527fa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600e8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101526060840152600052600490527feb3e677499e881fe1bdbc344a49c412138038a9f40883b6dc68f713aab4835238151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600f8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101556060840152600052600490527f66b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260108083526704db732547630000602080850191909152660c6f3b40b6c000928401929092526101806060840152600052600490527f4a597304b2df0a7a7b428b3c24c35ba6373aabebf9972387f5610f74a01b21bd8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526011808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101316060840152600052600490527fac375bcb880242328180c23d4a918023a12a7caf7cf12b8c4074e4a3f39900a08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601280835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101ab6060840152600052600490527f7f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13ad8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526013808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101306060840152600052600490527f9bbf2ad10217b6212df1939350a047a69b6887b770020d3fa8c328c0653ee9878151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601480835267058d15e17628000060208085019190915266b1a2bc2ec500009284019290925260526060840152600052600490527ff7deed9399d719bf61dcb1322c056a03a885c275ab093673b0cc182b84bea0618151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260158083526001602080850182905292840152607b6060840152600052600490527f1bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c68151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260168083526702c68af0bb14000060208085019190915266038d7ea4c68000928401929092526101d46060840152600052600490527f87e655ef16e4075af30c6a90c2b439f7dcd2d83a606dafadaee10cffaf9181328151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260178083526706f05b59d3b200006020808501919091526608e1bc9bf040009284019290925261012e6060840152600052600490527fff624574ceefb6578b3887a7448cf2ca4d120002f646987b0a9b9ad3f6dc2c108151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526018808352670de0b6b3a76400006020808501919091526611c37937e080009284019290925260c36060840152600052600490527f1ac66383b86984a837d32661c9fdda480194de6e2dbd3891e29fadcb763a62da8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550565b60005433600160a060020a03908116911614612d0557600080fd5b600160a060020a03811660009081526001602052604090205460ff161515612d9157600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b60005433600160a060020a0390811691161480612dcf5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515612dda57600080fd5b600d805460ff909216620100000262ff00001961ffff90941661ffff199093169290921792909216179055565b601881565b6000806000806000612e1c6149ba565b6002546101009004600160a060020a031691506000808363072024608a8360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515612e7f57600080fd5b6102c65a03f11515612e9057600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03918216604080890191909152921660208701526001604060020a03909216855260035490911692508290630672859b908b90600090516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515612f5f57600080fd5b6102c65a03f11515612f7057600080fd5b5050506040518051915050602083015183608001518460a00151919b909a50909850909650945050505050565b600080600080600080600080600789815481101515612fb857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031697506000886001604060020a031611156130a757612ffe88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561306b57600080fd5b6102c65a03f1151561307c57600080fd5b50505060405180516001604060020a038a166000908152600560205260409020600101549096509250505b50919395979092949650565b600054600160a060020a031681565b60078054829081106130d057fe5b9060005260206000209060049182820401919006600802915054906101000a90046001604060020a031681565b6001604060020a0381166000908152600560205260408120600101548190118061314a57506001604060020a038216600090815260086020526040902060010154600160a060020a031615155b92915050565b6000806000806000806000806000806000600b60008e600160a060020a0316600160a060020a03168152602001908152602001600020805490508c111561319657613276565b600160a060020a038d166000908152600b6020526040902080548d9081106131ba57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061326b8b612e0c565b929750909550935091505b509295989b9194979a5092959850565b600d5461ffff1681565b600a8054829081106130d057fe5b60005433600160a060020a039081169116146132b957600080fd5b600160a060020a03811660009081526001602081905260409091205460ff1615151415612d9157600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600c6020528160005260406000208181548110151561336357fe5b60009182526020909120600390910201805460018201546002909201546001604060020a03909116935090915083565b60008060006133a06149ba565b6002546000906101009004600160a060020a031615156133bf57600080fd5b600354600160a060020a031615156133d657600080fd5b60025460ff16156133e657600080fd5b8515156133f257600080fd5b6001604060020a03871660009081526008602052604081208054909650111561341a57600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561347657600080fd5b6102c65a03f1151561348757600080fd5b505050604051805190501561349b57600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156134fe57600080fd5b6102c65a03f1151561350f57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a03161461358e57600080fd5b33600160a060020a03168260400151600160a060020a0316146135b057600080fd5b6001604060020a03871660009081526005602052604081205411156135f2576001604060020a03871660009081526005602052604090206001018690556135fc565b6135fc87876146bf565b33600160a060020a03167feb7043a06aaf528eb4562cb77682ccaa8efe8ac7b6759947feaf9f77a16aa10e886040516001604060020a03909116815260200160405180910390a250505050505050565b600160a060020a03166000908152600b602052604090205490565b6000806136726149ba565b600080600061367f614a06565b6002546101009004600160a060020a0316151561369b57600080fd5b600354600160a060020a031615156136b257600080fd5b60025460ff16156136c257600080fd5b6001604060020a03881660009081526005602052604090206001015496508615806136ed5750863414155b156136f757600080fd5b6002546101009004600160a060020a0316955060009350856307202460898660405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561375b57600080fd5b6102c65a03f1151561376c57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08d0152505063ffffffff91821660808b0152600160a060020a0390921660408a01529190911660208801526001604060020a0391821687529450881685516001604060020a0316146137eb57600080fd5b33600160a060020a03168560400151600160a060020a0316141561380e57600080fd5b8460400151600d5490935060649061ffff16880204915061382e8861474d565b6138383389613f33565b82600160a060020a03166108fc61384f8985614890565b9081150290604051600060405180830381858888f19350505050151561387457600080fd5b606060405190810160409081526001604060020a038a16825260208083018a90524282840152600160a060020a0386166000908152600c90915220805491925090600181016138c38382614a26565b600092835260209092208391600302018151815467ffffffffffffffff19166001604060020a0391909116178155602082015181600101556040820151816002015550505033600160a060020a03167fbfa4ed7e68cf0c080716886ff4468113df6b425ef79ac4911a1f264202dce424896040516001604060020a03909116815260200160405180910390a25050505050505050565b60065463ffffffff1681565b600061396f6149ba565b6002546000906101009004600160a060020a0316151561398e57600080fd5b600354600160a060020a031615156139a557600080fd5b60025460ff16156139b557600080fd5b6001604060020a03841660009081526005602052604090205415156139d957600080fd5b506002546101009004600160a060020a031691506000826307202460858360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613a3c57600080fd5b6102c65a03f11515613a4d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150841682516001604060020a031614613acc57600080fd5b33600160a060020a03168260400151600160a060020a031614613aee57600080fd5b613af78461474d565b50505050565b600b60205281600052604060002081815481101515613b1857fe5b9060005260206000209060049182820401919006600802915091509054906101000a90046001604060020a031681565b6000806000613b556149ba565b600254600090819081906101009004600160a060020a03161515613b7857600080fd5b600354600160a060020a03161515613b8f57600080fd5b60025460ff1615613b9f57600080fd5b6001604060020a038816600090815260086020526040902080549097501515613bc757600080fd5b600487015460ff16151560011415613bde57600080fd5b60038701549550348614613bf157600080fd5b6002546101009004600160a060020a0316945060009250846307202460898560405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613c5557600080fd5b6102c65a03f11515613c6657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08c0152505063ffffffff91821660808a0152600160a060020a0390921660408901529190911660208701526001604060020a0391821686529350881684516001604060020a031614613ce557600080fd5b33600160a060020a03168460400151600160a060020a03161415613d0857600080fd5b600d5460649061ffff16870260028901805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790556005890180544201905560048901805460ff1916600117905504915060408401519050613d6b3389613f33565b80600160a060020a03166108fc613d828885614890565b9081150290604051600060405180830381858888f193505050501515613da757600080fd5b613db181896148a4565b33600160a060020a03167fec9485c094547f7e3de5ae91993db798d626a05c7561391e1dc7129aec0c0e21896040516001604060020a03909116815260200160405180910390a25050505050505050565b60025460ff1681565b60005433600160a060020a03908116911614613e2657600080fd5b600160a060020a03811615612d915760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000806000806000806000806000806000600a8c815481101515613e8257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061195a8b612e0c565b6000613f3d6149ba565b6002546101009004600160a060020a03169150600080836307202460868360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613fa057600080fd5b6102c65a03f11515613fb157600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03909116604087015216602085019081526001604060020a0390911684526018905163ffffffff16116142125760046000846020015163ffffffff1663ffffffff16815260200190815260200160002091508260200151825463ffffffff9081169116141561421257600382015463ffffffff1660c084015163ffffffff1610156142125760038201546140ab9063ffffffff1660c085015163ffffffff16614890565b905060008163ffffffff1611156142125783600160a060020a03166389b2050b84604001516140e48463ffffffff16866002015461498f565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561413057600080fd5b6102c65a03f1151561414157600080fd5b50505060405180515050600160a060020a0384166332666a31845185608001518660a00151600387015463ffffffff1660405163ffffffff86811660e060020a0282526001604060020a0395909516600482015292841660448401529083166064830152909116608482015260a06024820152600960a48201527f206e616d65206d6520000000000000000000000000000000000000000000000060c482015260e401600060405180830381600087803b15156141fd57600080fd5b6102c65a03f1151561420e57600080fd5b5050505b83600160a060020a03166360c6ccb284604001518760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b151561427357600080fd5b6102c65a03f1151561428457600080fd5b50505083600160a060020a0316639248019e878760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156142e457600080fd5b6102c65a03f115156142f557600080fd5b505050505050505050565b6001604060020a0383166000908152600860205260409020600181018054600160a060020a03871673ffffffffffffffffffffffffffffffffffffffff199182161790915560028201805490911690556003810183905560048101805460ff1916905560058101829055805415156143d457600a8054600101906143849082614a52565b808255600a805486926000190190811061439a57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b5050505050565b6001604060020a03811660009081526008602052604090208054151561440057611a56565b600a54815411611a56578054600a8054600891600091600019810190811061442457fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a03168352820192909252604001902055600a8054600019810190811061446c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316600a60018360000154038154811015156144ab57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055506001600a818180549050039150816144fc9190614a52565b50506001604060020a0316600090815260086020526040812081815560018101805473ffffffffffffffffffffffffffffffffffffffff1990811690915560028201805490911690556003810182905560048101805460ff1916905560050155565b600160a060020a0382166000908152600b602052604081205b80548210156145e057826001604060020a0316818381548110151561459857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a031614156145d5576145e0565b600190910190614577565b8054821015613af7578054819060001981019081106145fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316818381548110151561463257fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a0316021790555080600182805490500381548110151561468057fe5b90600052602060002090600491828204019190066008026101000a8154906001604060020a030219169055808054809190600190036143d49190614a52565b6001604060020a038216600090815260056020526040902060018101829055805415156147485760078054600101906146f89082614a52565b8082556007805485926000190190811061470e57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b505050565b6001604060020a03811660009081526005602052604090208054151561477257611a56565b600754815411611a5657805460078054600591600091600019810190811061479657fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a031683528201929092526040019020556007805460001981019081106147de57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166007600183600001540381548110151561481d57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a03160217905550600160078181805490500391508161486e9190614a52565b50506001604060020a0316600090815260056020526040812081815560010155565b6000808284101561489d57fe5b5050900390565b600080600160a060020a03841615613af7575050600160a060020a0382166000908152600b60205260408120905b815481101561493857826001604060020a031682828154811015156148f357fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a0316141561493057613af7565b6001016148d2565b815482906001810161494a8382614a52565b916000526020600020906004918282040191900660080285909190916101000a8154816001604060020a0302191690836001604060020a031602179055505050505050565b60008282028315806149ab57508284828115156149a857fe5b04145b15156149b357fe5b9392505050565b610100604051908101604090815260008083526020830181905290820152606081016149e4614a86565b8152600060208201819052604082018190526060820181905260809091015290565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511614748576003028160030283600052602060002091820191016147489190614a98565b8154818355818115116147485760030160049004816003016004900483600052602060002091820191016147489190614acf565b60206040519081016040526000815290565b610b8c91905b80821115614acb57805467ffffffffffffffff191681556000600182018190556002820155600301614a9e565b5090565b610b8c91905b80821115614acb5760008155600101614ad55600a165627a7a7230582073bb2bd72813d7046e86d3c077137127791d6f12c219717e2b389720d91d31850029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://73bb2bd72813d7046e86d3c077137127791d6f12c219717e2b389720d91d3185

 

View All
Block Age transaction Difficulty 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.