Contract Overview | Etheremon_Trade1
Balance: 0 Ether
Ether Value: $0
Transactions: 26874 txns
 Latest 25 transactions from a total of 26874 transactions
(+1 PendingTxn)

TxHash Age From To Value [TxFee]
0x1f7c4e8a1da64f54cf96948e16b77f5ded6f7097d536bbd2ae8b165bed52e0fa(pending)0xfe12008a6401e137b524e05050a43c7e72132d82  IN  0x4ba72f0f8dad13709ee28a992869e79d0fe470300 Ether(Pending)
0xe7914eca6f7aa8e630f972b2a84d530ae4d8f2614d5b0afe7040cfb64ef1422b65 days 7 hrs agoEtheremon_Creator1  IN   Etheremon_Trade10 Ether0.000421083
0xf9aef58133b3d871429619cd19faa24c569aaddd43bd95612c3e7194ef4b95bd66 days 1 hr ago0x6929034fa203cb93b9a0e6214a19c09648283643  IN   Etheremon_Trade10 Ether0.00004858
0x59e32afa36fdf453e691368f75d1fbf980f5972c3c969a3bacf12372a581dd9866 days 9 hrs ago0x78dc03439dcbea3fdb1a17644a1fbfe8c831fd2d  IN   Etheremon_Trade10 Ether0.000026719
0x14727ec4d8f6259b08579ecb47b629bbe15bc248b4b6dfa18cc6feb9d9deaab766 days 12 hrs ago0x78dc03439dcbea3fdb1a17644a1fbfe8c831fd2d  IN   Etheremon_Trade10 Ether0.000077728
0x0f48da221a74870418c45a2c83c2430ea8a91bac82d14d41ef9723693aa9e50f66 days 13 hrs ago0xe639c7f3038b481cfb4e8ccadb244e25e7bdfcc5  IN   Etheremon_Trade10 Ether0.0000022984
0x403248cd5c15619e0b5667d4002d02dc06847cbd64656eb67a820a3603f1106966 days 14 hrs ago0xac407cea82c3cde4073ab66c73521d5427c1c133  IN   Etheremon_Trade10.006 Ether0.000023905
0xc8ac79aa305fbb40e30fabcadfc7c901c1fb92702e230e4a01b9077b8d754e7366 days 14 hrs ago0x229748c17556e8ebbb47ef3584673ca484eae909  IN   Etheremon_Trade10 Ether0.000002429
0x06ff68b14275a618512fa366d3160bd64b6612f3504a9b0d721c2722d165386466 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.00009716
0x72d972e485cb0712f2e0fb2f368de1f49ad91a2267a2fd7c036210cd5973857366 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000096904
0x0549d10acbe7c3bdf26d8f6b16d5fae6efe28169af0980936bc96efcc1d358ad66 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000096904
0x3bf83239e0d6dcd8395c2ab914dcad384a01975d66ac0129137c0f39d18826db66 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.00012113
0x4670b8d22e6c93410edd2c17a719d8ac3ac965fbb2c9478bcda207499a11f26066 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000096904
0xa26caee51354b3591bea376091ee3bfa1f0089bfb1330e6e53c56c0212e933f066 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000096904
0x2d8059ad2563687dd42765cb9eb0cf2e00eef70a1c30fd2ada6421084a50ec1966 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.00009716
0x3d214dad0afccc55b8dd45a73fb0a620646e07219a22d7bbe51fd70b3ecd8aaf66 days 15 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.00009716
0x00ccd4e69f6cf020b495c4e84b9f09ae8515feca67fa89bebc9bfe10fb9a870466 days 17 hrs ago0x9cf28be69d1c88ff7ecc1d2332577cb9671abf70  IN   Etheremon_Trade10 Ether0.000024226
0xa1e1efe199d162edd61fad2ae721a6bdec02655365b8b2827292c26bbd50c0b166 days 18 hrs ago0x99fa6742bea0c119cb808953034057441997ebf4  IN   Etheremon_Trade10 Ether0.00002429
0x3dc352d2f44b825440bba312a59099f77cfe332d40f9f517c073fc7be2cfb59366 days 21 hrs ago0x6929034fa203cb93b9a0e6214a19c09648283643  IN   Etheremon_Trade10.0001 Ether0.000023897
0xdfbea6b9e174d4b3728e0a33e8b09b9261a7d695e7403370632541e73009cf7766 days 22 hrs ago0x6929034fa203cb93b9a0e6214a19c09648283643  IN   Etheremon_Trade10.0001 Ether0.000023897
0x3d91dcccc32f2d5e61f0b7b277e3913b9805d6d1f9f8a1e8421c56518f03ef5c79 days 9 hrs ago0x7ae5d5f471437b1c2902e57ccdcc8eca66e1032a  IN   Etheremon_Trade10 Ether0.000071562
0xa56024b293c12cc74eae8497893dbb19dc3e0b81beb04e9396871e125f60855b82 days 3 hrs ago0x0b33600eeb95fd90d3c2cd94a3b9e29b4c57c8f0  IN   Etheremon_Trade10 Ether0.000024226
0xaec2ae9218958483a583e3ef49cdd24589851f6cd15033f3711600dfac8b34cc84 days 12 hrs ago0x42fe987767e39c9c2c19dd24822f551e01791252  IN   Etheremon_Trade10 Ether0.00002385
0xdd590397fef13b55b95cf086ea6d6465a37159f63293c3dfdc13afa5a2bf11f085 days 5 hrs ago0x38fcea7742fa0eef6938780c1edcf9b322dcc801  IN   Etheremon_Trade10.003 Ether0.00009562
0x93e3ff443d022d19de0247c6dc45a8c75496476b536e18e16af96ad9adabbb9d86 days 6 hrs ago0x680c1d46455f8070d828b0441d0effaace5c46a1  IN   Etheremon_Trade10.01 Ether0.000071715
[ 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
0xe7914eca6f7aa8e630f972b2a84d530ae4d8f2614d5b0afe7040cfb64ef1422b646819265 days 7 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf35728a27318156ae04ba8a6dff8074fe98b19b80.4926394 Ether
0x1803c7a39c59f54cceb2fa79ee28d21a525568349f23b0733bdb109509185c016238039103 days 10 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x56f84fa68d424d30d1fd9d09a541dc82508e9fb80.08415 Ether
0xf96fe2c81107a010fbcc7c7a1748f675249c0aff4142201ec86bd421045349ba6238019103 days 10 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xa6fe83dcf28cc982818656ba680e03416824d5e40.07821 Ether
0x86329199c51543afed6c0677f7cf4d2fba97a926c5576556a4bfef5a0290c0106238015103 days 10 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x835ea455d21625b87353e74066dbd1dd7f3a869b0.04455 Ether
0x55ec2f4686bb64fdbbb31d23bf276527a3bc8f88d282ea96515175e3651bb0aa6236814103 days 15 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x92a96518407397766500a0ca25626a5715397d3b0.07425 Ether
0xb4e49d21169f45a21cd85d77dfe2b174489d8cde6f0ecc42e803065a423e10cd6236814103 days 15 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x966716049eeb4b388f553a450d7f81af18bd62310.07425 Ether
0xcfd4f220574d5c54742d3ae4343e2c14e2fc2f36ab6bff1d05e23836b9dc74616236595103 days 16 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf796b8fb98c7c98fd4b5424ced013820d1f2ee760.06831 Ether
0xe62f12dc5ce32a94d76263b821042e437c287e0c1f49df8c952e9c81f1c4d7356235578103 days 20 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x3f7fa26ca24acc218000dd72216146d585577df70.06831 Ether
0x5752f740df36a327ff93bae73229b0ee21d12f5fb6d935550355a0a6090711816235120103 days 21 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x4325927a20823481bb124881cdef37995cc2a2660.07722 Ether
0xdc1518392a5cfcf66e59f1dc9a554aa89c59b5c67f7d35475e4da864de0926246235115103 days 21 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x27df3a98a22f37131fd154af07610020f16fedec0.03861 Ether
0xbeb840289ecafa83815a7bf230b5ef6b4bf5f8d14bddd81b4a2b913f26f053d26233627104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x99a811e5c62add613975456292f836115aea01640.061875 Ether
0xb69ac6eb6892d466206fb2817ec99152256735248fb242a9914da5ce1df445916233611104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x7d3d7aefa582b432d1c1cc60ed37a9b77f5300fe0.060885 Ether
0x05a92d0f7e3d964a906efa69e35c98b151865fcad5af1c65af65aafa438a0e2b6233603104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xd1a6c5bbf801bce3d2be3100dfdabf9a5d3da8fa0.068211 Ether
0x39c369113bc7138c47f719171e608d332431a1e03e9d1b5082895b339f025fc06233602104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xaa9fa8dd95f830409e00202c54cba39e68e239720.07425 Ether
0x6afae84787de66ae197af7b318ed80ce1556dd81964d6c60bb7dd1a09d16a2bc6233599104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x05bd458b7c3fdbd6e1fb151bace8807e3935f0610.07425 Ether
0x6fd67061ec38689f61dab6168c5716e671bb656077d63b10afa84cfcc51ca1186233599104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x773cd61af29fc0ec27141bdb9c077b125a4218850.06336 Ether
0x40227ed08d17b36cb570ab6f36df58ad2031ee075a66af97b27c1a03d512110d6233592104 days 4 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xccbbed706a5fbf6d23839bd4d853e9416d8b03d60.0792 Ether
0xfbd60d68e1be0cc5753e1e8a09a52e9140011f3c79e3938e359649d504b572756233235104 days 5 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x3f7fa26ca24acc218000dd72216146d585577df70.04851 Ether
0x422b666c7f1e3e911f6dbd2eada24dd85215722962b7f648cea22bc601e1b56b6233231104 days 5 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x593157634f5f44050473e6f50c82ac00278d6e8d0.05445 Ether
0xdd0f75c9b7e96a4232ffc054243d4069c87a3cc8501874979e60273b87920be06233227104 days 5 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xc6174f5d491e34b6cfffe0c75db2a5f0c46d97b70.04455 Ether
0x124aa450d43f8c4f27557028e60019f2d068b9409adb207bf40bb9927560848b6233003104 days 6 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x99a811e5c62add613975456292f836115aea01640.06435 Ether
0x6a8f4a1f0909b9f2a56abf6c248a2b5f9252231f089a450e00b541bce85a366f6232863104 days 7 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf26716c00c66bef39b879908049f2bf8c53a92250.06534 Ether
0xb305b10254b6e6b4fb1cd13d3cc9e9358788fc3443d97cf6fc218bd00c8e75c36232057104 days 10 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300x219d56f04eb1d15422d0ef307946b90cb479faee0.00198 Ether
0x715213116066b35eaf14e3c34186212f1bb0d3b04509be8a5124cebd98a94bd16231429104 days 13 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xb682505323c4e2804fe5e6c86c227a3b01d421e90.06831 Ether
0x96a68afd2b67fbc02ff257c93f22c1e0eddd62170d3e4a420aedf083a7c5b8376231414104 days 13 hrs ago0x4ba72f0f8dad13709ee28a992869e79d0fe470300xf8856124ea157d6f26472e38224ee6744ad13af30.08415 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 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.