Latest 25 transactions from a total of 22148 transactions

TxHash Age From To Value [TxFee]
0x8ec00503a13ad990ff10d97e89acef16fc47ced9bc9c9fdd409e8913b1e3be0f1 hr 29 mins ago0x49aad95cc1cb1ec051e7e102aa71a8fc918dbdd3  IN   Etheremon_World0 Ether0.000419530798
0x111bbd4012f7b980cfb20db8c45c42ea468547452cdeac3bac232e3d3539d2f07 hrs 11 mins ago0x49aad95cc1cb1ec051e7e102aa71a8fc918dbdd3  IN   Etheremon_World0 Ether0.00009571772
0xf082cf1d34a7475603e55382a6e08d45544617a9963cdd500f4296dd31f940d77 hrs 14 mins ago0x49aad95cc1cb1ec051e7e102aa71a8fc918dbdd3  IN   Etheremon_World0 Ether0.000119645727
0x9aa85082bfb9da7b4b26a7640a4928a7bd40077202d67e8e9c6dda8bc147b92913 hrs 26 mins ago0xf63f246752f4faf5b320eae4791ad4a23f3f6dfd  IN   Etheremon_World0 Ether0.000178548
0x12db3f9ea615ddf9865e554b2b008265e2b684a1aa71cfa16f4240bd1cf8a8d820 hrs 58 mins ago0xb9a4dca69b6907483d6c04ea5d1283292267a9e9  IN   Etheremon_World0 Ether0.000177588
0x9a3793a11160844704d9c8cc6b2eb62b380c0d7539c1ddb2cadbc073c944a2ac21 hrs 1 min ago0xb9a4dca69b6907483d6c04ea5d1283292267a9e9  IN   Etheremon_World0 Ether0.000177396
0xb25a60f92a6f190b9900f49714395b0b4725a0fc417482f63aa81f1f8df8c7ce21 hrs 4 mins ago0xb9a4dca69b6907483d6c04ea5d1283292267a9e9  IN   Etheremon_World0 Ether0.000178164
0x5c3d42338c9e42fcd1931d2968c5b70d584e6378deb3ac9e688254720888d9e71 day 7 hrs ago0xe9196cf434926da27ea15c3eb07a2d65fc9661f9  IN   Etheremon_World0 Ether0.001252118
0x7053859f172172c7f701f613eca69e73db28152e4d7ba70d0e5b4595e2bb63fe1 day 7 hrs ago0xe9196cf434926da27ea15c3eb07a2d65fc9661f9  IN   Etheremon_World0 Ether0.001248933
0x34bdd55581819eeb0e192bded88f9fa5dd6cfa891f7ea602504393e84f11f9291 day 7 hrs ago0xe9196cf434926da27ea15c3eb07a2d65fc9661f9  IN   Etheremon_World0 Ether0.001350748
0x034aaf4b35884983096a60e5c19cbdd199a5682a9a9576c5b1644b39d273ea251 day 19 hrs ago0x080966f82256c3e2502f46b5fb5579629fd303eb  IN   Etheremon_World0 Ether0.0005958
0x393eb63d599c88530948a706c9ff57a435f69f69402fa70243531820221147f51 day 19 hrs ago0x080966f82256c3e2502f46b5fb5579629fd303eb  IN   Etheremon_World0 Ether0.0005958
0x63be9eba9505bd1fcb7c9ca4f3e99edfa6ef7b91ee9e6cbb44f6660bfa6c4e792 days 11 hrs ago0x0fe18f369c7f34208922caebbd5d21e131e44692  IN   Etheremon_World0 Ether0.001312168
0x0bbf7c72691d4e804aec276c68f500a138e09a00e581518772e06c8d18b26b342 days 20 hrs ago0xa6fe83dcf28cc982818656ba680e03416824d5e4  IN   Etheremon_World0 Ether0.000181428
0x97aaddc501062cc92dcb6d2394486c528bb1f21029d785e7762d6773725681083 days 4 hrs ago0xd2faf32104bff6d15f20375912b92e068b0f442a  IN   Etheremon_World0 Ether0.000119544
0xfd87b2e91ab2ce9fa48d0ba55ba9115283bf1eaa9d24eeebc20a79798efb67973 days 16 hrs ago0x0537544de3935408246ee2ad09949d046f92574d  IN   Etheremon_World0 Ether0.000701022
0x9620ad2c643d43a3c1958a47717d808f017da13c89c57a69f00e20ac3016df544 days 16 hrs ago0x2e0ce20ab9c3227c48db076a95ccd1ed13ae3a15  IN   Etheremon_World0 Ether0.000177972
0x2dd0264c4c0945859825b3d9db63aea2d3205765dc33d196ccbde2f83d7ee9f25 days 4 hrs ago0x14d591e70c1a63736970e9deaa8ad1e7dc178b1b  IN   Etheremon_World0 Ether0.000236016
0x30979a20fb80f4fb08cbf94e011c4899b780d238bcf47482e49e6b22e12d2fb35 days 19 hrs ago0xaa03413791e5ab79fbb7add2089ff79345f48dd9  IN   Etheremon_World0 Ether0.000355944
0xddb91375489df7d096af88292ef01ae88952fbc8a3d4bc507a952454205a61766 days 15 hrs ago0x02f7d4a989dc50aae5ee89f3e435199bdf4695d6  IN   Etheremon_World0 Ether0.001217145
0x2736fd8b97269137d237330b0ee913ffc1a9077cc93b335ff0c4d4b8b36b0c497 days 12 hrs ago0x080966f82256c3e2502f46b5fb5579629fd303eb  IN   Etheremon_World0 Ether0.000179892
0x370495cd99641a60d9a41338fc8e08003c8d146ebfa49fc10751bdf2964bccb77 days 13 hrs ago0x91f04ffe5aa427e977086746e7b9e1b997f2afa8  IN   Etheremon_World0 Ether0.000502263
0x2942bf7f50b3a7d117ebf5e078e778abe21c0570a6b6b601443a1f0fb49e90bc7 days 18 hrs ago0x072bd2cabdb4dd7c7ac2046419ec994e54bdd2b3  IN   Etheremon_World0 Ether0.000242984
0xf1da91b56bb952d4487a5ac20fcb6785d88ab8368d46cca6d0504859bf022ef08 days 1 hr ago0x4fde94a272745123c39c50a137fb228ab018ec17  IN   Etheremon_World0 Ether0.000118264
0x7a04b2837fd12bdb0ba0fa867f7e2cd9898f01ebcaf487a5dc3c0dc4f3969f3d8 days 1 hr ago0x4fde94a272745123c39c50a137fb228ab018ec17  IN   Etheremon_World0 Ether0.000118264
[ 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
0x8ec00503a13ad990ff10d97e89acef16fc47ced9bc9c9fdd409e8913b1e3be0f70962381 hr 29 mins ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x49aad95cc1cb1ec051e7e102aa71a8fc918dbdd30.01688 Ether
0xfd87b2e91ab2ce9fa48d0ba55ba9115283bf1eaa9d24eeebc20a79798efb679770758753 days 16 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x0537544de3935408246ee2ad09949d046f92574d0.021057 Ether
0xddb91375489df7d096af88292ef01ae88952fbc8a3d4bc507a952454205a617670592596 days 15 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x02f7d4a989dc50aae5ee89f3e435199bdf4695d60.035 Ether
0x370495cd99641a60d9a41338fc8e08003c8d146ebfa49fc10751bdf2964bccb770542367 days 13 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x91f04ffe5aa427e977086746e7b9e1b997f2afa80.006825 Ether
0x2942bf7f50b3a7d117ebf5e078e778abe21c0570a6b6b601443a1f0fb49e90bc70531087 days 18 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x072bd2cabdb4dd7c7ac2046419ec994e54bdd2b30.005 Ether
0x515c173e7acb2229d4ebbbce52b458963efa87479b7601630f036a42cbdf255670463198 days 23 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x06edf0354e361e93d7e1388d59dd34ff9defce5f0.0515 Ether
0xc285bb74bb97dc23f1500f309ed5b3c948f3da6fcc6d2f6cafe4d3655c37598d70419889 days 17 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x4786cff09a1a5e11a098ff60e1dddf2fb122b1650.072555 Ether
0x6bb6173c4cda2410435c7cbf1db347def2d37f9cbf8ede5b0956f9f01fd64e94703587710 days 20 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x6d3d576d316925fbf4a6ba443ce8000b5a723bb10.006354 Ether
0x490ebd54b71214f1bec473a7df8553c932fd66a69964415ddb8df071c9894f61700780815 days 20 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60xa5f0e18b92f7f34b044dfc33c4fad598fb50cda20.04218 Ether
0xcd683a7cce46a335c26673283ce72b1ace98545326d8a823f4cb77785f514a45698348020 days 1 hr ago0x1fc7bd85293f3982f40d52698df8d26be89360d60xea2259bbedac98bbc9bda01ceacb987886c7bb9f0.023877 Ether
0x0329463bf555c13dbd637df52ea660d15d4ae390795b659b262026fd18a6e0da695874824 days 5 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60xcd7123e83b321916fce9a70830818604671f1a320.05235 Ether
0x326b66fde77942f0d74b17cca6dfe96d1638e21dbd2982749116c75d04b23ae4694183027 days 2 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x7050cf5a1a8d8d3616145e45f8379e1b9df02cd00.056739 Ether
0xa8c0bafd301959d78fc1fb95935d9f005f2913843741b27e39292805009cf16f692763629 days 12 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x9e7e799a8af24e5ab6064c9d516037bfe6cc9b8d0.027254 Ether
0x61c1329102cb598d9f976e4bbf59ccffe3cd0381906fb5ed6eda9488a1195bd8690737532 days 23 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x55cd43b6d6d0232abfa21667e61acd96b09b26d50.018 Ether
0xdcaac5e6f4931c31a4cc781baf98f46e8b0b23eb88e49dd4c17fcd79647f9dcb687346338 days 14 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60xf796b8fb98c7c98fd4b5424ced013820d1f2ee760.026 Ether
0xf1b54bbb4890758893f20749d960b5cc5d59e8898b5ec7057f48b575572cf6bb685559141 days 12 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60xb5db6cb03cedec9d03b41d0d55ce5ad55c92732d0.00576 Ether
0xbd863fb3b3fc0fe4dcb451b8b57e277be029f594067afd6666f875f4bb11761d684777242 days 19 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x2fef65e4d69a38bf0dd074079f367cdf176ec0de0.00854 Ether
0x37af1f478e2c0ebb2114e2c84901da9632001e259474e9a4462cb107f2552e3f682373846 days 19 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x59bce3e165668b44979cacc87e4aaf1967e782ab0.0865 Ether
0x02e6da9832853bc3baf606003dd615b8c1f0ca442b76f97851025eb8257d1439680264050 days 7 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x14a544d46fd6bb6add792feaceb9800277dfdf310.001412 Ether
0xd3b6139eb687f010616083750dd653b18469460de15e67b788fbe445e6e9f673670553166 days 6 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x9ae4ede9399108543a4f558fb362ab22bdd22f6a0.151733 Ether
0xa43a63deb4fe8baa1f5df0c0cdac82ab8cdb29c1665e8a8794dea63d09208f4d669510767 days 23 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x68d36dcbdd7bbf206e27134f28103abe7cf972df0.060524 Ether
0xa764a6a05bf9ed49c73e44018a11bf398cf0e49b3ca5a82116aa887628450fd2667922670 days 13 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x057dc43af6187a931e78a56b3293912a5b42e5ec0.015556 Ether
0x41ba4667320bd3b6e69e33d964fa9d4556f95b7c2414894d0096fbd1dff41225666907372 days 5 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x696c0c1434df056a04743b948c8097b2dffba2f30.056 Ether
0xb7343e80ee548a8dccf47415908e6b0cbec0b4ba903ebe9b723bc8f2245d0ba8663569777 days 16 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x4cde780b9d9bed55c86a03e9f9a17ed79b2386fd0.020016 Ether
0xe2c38ba3c528d1df823d9b37b7a0d02b565e8c5519a6194430b7c3f0805a2276659634484 days 3 hrs ago0x1fc7bd85293f3982f40d52698df8d26be89360d60x3ec5b42376bfbe988cc619a0acfe68049d4fb9bc0.004994 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: EtheremonWorld
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(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
    }
    
    enum ArrayType {
        CLASS_TYPE,
        STAT_STEP,
        STAT_START,
        STAT_BASE,
        OBJ_SKILL
    }
    
    enum PropertyType {
        ANCESTOR,
        XFACTOR
    }
}

contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath {
    
    uint64 public totalMonster;
    uint32 public totalClass;
    
    // write
    function withdrawEther(address _sendTo, uint _amount) onlyOwner public returns(ResultCode);
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint);
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, 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);
}

contract EtheremonGateway is EtheremonEnum, BasicAccessControl {
    // using for battle contract later
    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    
    // read 
    function isGason(uint64 _objId) constant external returns(bool);
    function getObjBattleInfo(uint64 _objId) constant external returns(uint32 classId, uint32 exp, bool isGason, 
        uint ancestorLength, uint xfactorsLength);
    function getClassPropertySize(uint32 _classId, PropertyType _type) constant external returns(uint);
    function getClassPropertyValue(uint32 _classId, PropertyType _type, uint index) constant external returns(uint32);
}

contract EtheremonWorld is EtheremonGateway, SafeMath {
    // old processor
    address constant public ETHEREMON_PROCESSOR = address(0x8a60806F05876f4d6dB00c877B0558DbCAD30682);
    uint8 constant public STAT_COUNT = 6;
    uint8 constant public STAT_MAX = 32;
    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 GenXProperty {
        uint32 classId;
        bool isGason;
        uint32[] ancestors;
        uint32[] xfactors;
    }
    
    mapping(uint32 => Gen0Config) public gen0Config;
    mapping(uint32 => GenXProperty) public genxProperty;
    uint256 public totalCashout = 0; // for admin
    uint256 public totalEarn = 0; // exclude gen 0
    uint16 public priceIncreasingRatio = 1000;
    uint public maxDexSize = 500;
    
    address private lastHunter = address(0x0);

    // data contract
    address public dataContract;
    
    // event
    event EventCatchMonster(address indexed trainer, uint64 objId);
    event EventCashOut(address indexed trainer, ResultCode result, uint256 amount);
    event EventWithdrawEther(address indexed sendTo, ResultCode result, uint256 amount);
    
    function EtheremonWorld(address _dataContract) public {
        dataContract = _dataContract;
    }
    
     // admin & moderators
    function setMaxDexSize(uint _value) onlyModerators external {
        maxDexSize = _value;
    }
    
    function setOriginalPriceGen0() onlyModerators external {
        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, 0.1 ether, 0.001 ether, 305); 
        gen0Config[18] = Gen0Config(18, 0.1 ether, 0.001 ether, 427);
        gen0Config[19] = Gen0Config(19, 0.1 ether, 0.001 ether, 304);
        gen0Config[20] = Gen0Config(20, 0.4 ether, 0.005 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 getEarningAmount() constant public returns(uint256) {
        // calculate value for gen0
        uint256 totalValidAmount = 0;
        for (uint32 classId=1; classId <= GEN0_NO; classId++) {
            // make sure there is a class
            Gen0Config storage gen0 = gen0Config[classId];
            if (gen0.total >0 && gen0.classId == classId && gen0.originalPrice > 0 && gen0.returnPrice > 0) {
                uint256 rate = gen0.originalPrice/gen0.returnPrice;
                if (rate < gen0.total) {
                    totalValidAmount += (gen0.originalPrice + gen0.returnPrice) * rate / 2;
                    totalValidAmount += (gen0.total - rate) * gen0.returnPrice;
                } else {
                    totalValidAmount += (gen0.originalPrice + gen0.returnPrice * (rate - gen0.total + 1)) / 2 * gen0.total;
                }
            }
        }
        
        // add in earn from genx
        totalValidAmount = safeAdd(totalValidAmount, totalEarn);
        // deduct amount of cashing out 
        totalValidAmount = safeSubtract(totalValidAmount, totalCashout);
        
        return totalValidAmount;
    }
    
    function withdrawEther(address _sendTo, uint _amount) onlyModerators external returns(ResultCode) {
        if (_amount > this.balance) {
            EventWithdrawEther(_sendTo, ResultCode.ERROR_INVALID_AMOUNT, 0);
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        
        uint256 totalValidAmount = getEarningAmount();
        if (_amount > totalValidAmount) {
            EventWithdrawEther(_sendTo, ResultCode.ERROR_INVALID_AMOUNT, 0);
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        
        _sendTo.transfer(_amount);
        totalCashout += _amount;
        EventWithdrawEther(_sendTo, ResultCode.SUCCESS, _amount);
        return ResultCode.SUCCESS;
    }

    // convenient tool to add monster
    function addMonsterClassBasic(uint32 _classId, uint8 _type, uint256 _price, uint256 _returnPrice,
        uint8 _ss1, uint8 _ss2, uint8 _ss3, uint8 _ss4, uint8 _ss5, uint8 _ss6) onlyModerators external {
        
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterClassAcc memory class;
        (class.classId, class.price, class.returnPrice, class.total, class.catchable) = data.getMonsterClass(_classId);
        // can add only one time
        if (_classId == 0 || class.classId == _classId)
            revert();

        data.setMonsterClass(_classId, _price, _returnPrice, true);
        data.addElementToArrayType(ArrayType.CLASS_TYPE, uint64(_classId), _type);
        
        // add stat step
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss1);
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss2);
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss3);
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss4);
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss5);
        data.addElementToArrayType(ArrayType.STAT_START, uint64(_classId), _ss6);
        
    }
    
    function addMonsterClassExtend(uint32 _classId, uint8 _type2, uint8 _type3, 
        uint8 _st1, uint8 _st2, uint8 _st3, uint8 _st4, uint8 _st5, uint8 _st6 ) onlyModerators external {

        EtheremonDataBase data = EtheremonDataBase(dataContract);
        if (_classId == 0 || data.getSizeArrayType(ArrayType.STAT_STEP, uint64(_classId)) > 0)
            revert();

        if (_type2 > 0) {
            data.addElementToArrayType(ArrayType.CLASS_TYPE, uint64(_classId), _type2);
        }
        if (_type3 > 0) {
            data.addElementToArrayType(ArrayType.CLASS_TYPE, uint64(_classId), _type3);
        }
        
        // add stat base
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st1);
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st2);
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st3);
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st4);
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st5);
        data.addElementToArrayType(ArrayType.STAT_STEP, uint64(_classId), _st6);
    }
    
    function setCatchable(uint32 _classId, bool catchable) onlyModerators external {
        // can not edit gen 0 - can not catch forever
        Gen0Config storage gen0 = gen0Config[_classId];
        if (gen0.classId == _classId)
            revert();
        
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterClassAcc memory class;
        (class.classId, class.price, class.returnPrice, class.total, class.catchable) = data.getMonsterClass(_classId);
        data.setMonsterClass(class.classId, class.price, class.returnPrice, catchable);
    }
    
    function setPriceIncreasingRatio(uint16 _ratio) onlyModerators external {
        priceIncreasingRatio = _ratio;
    }
    
    function setGason(uint32 _classId, bool _isGason) onlyModerators external {
        GenXProperty storage pro = genxProperty[_classId];
        pro.isGason = _isGason;
    }
    
    function addClassProperty(uint32 _classId, PropertyType _type, uint32 value) onlyModerators external {
        GenXProperty storage pro = genxProperty[_classId];
        pro.classId = _classId;
        if (_type == PropertyType.ANCESTOR) {
            pro.ancestors.push(value);
        } else {
            pro.xfactors.push(value);
        }
    }
    
    // gate way 
    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        data.increaseMonsterExp(_objId, amount);
    }
    
    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        data.decreaseMonsterExp(_objId, amount);
    }
    
    // helper
    function getRandom(uint8 maxRan, uint8 index, address priAddress) constant public returns(uint8) {
        uint256 genNum = uint256(block.blockhash(block.number-1)) + uint256(priAddress);
        for (uint8 i = 0; i < index && i < 6; i ++) {
            genNum /= 256;
        }
        return uint8(genNum % maxRan);
    }
    
    function () payable public {
        if (msg.sender != ETHEREMON_PROCESSOR)
            revert();
    }
    
    // public
    
    function isGason(uint64 _objId) constant external returns(bool) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);
        GenXProperty storage pro = genxProperty[obj.classId];
        return pro.isGason;
    }
    
    function getObjIndex(uint64 _objId) constant public returns(uint32 classId, uint32 createIndex, uint32 lastClaimIndex) {
        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.createIndex, obj.lastClaimIndex);
    }
    
    function getObjBattleInfo(uint64 _objId) constant external returns(uint32 classId, uint32 exp, bool isGason, 
        uint ancestorLength, uint xfactorsLength) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);
        GenXProperty storage pro = genxProperty[obj.classId];
        return (obj.classId, obj.exp, pro.isGason, pro.ancestors.length, pro.xfactors.length);
    }
    
    function getClassPropertySize(uint32 _classId, PropertyType _type) constant external returns(uint) {
        if (_type == PropertyType.ANCESTOR) 
            return genxProperty[_classId].ancestors.length;
        else
            return genxProperty[_classId].xfactors.length;
    }
    
    function getClassPropertyValue(uint32 _classId, PropertyType _type, uint index) constant external returns(uint32) {
        if (_type == PropertyType.ANCESTOR)
            return genxProperty[_classId].ancestors[index];
        else
            return genxProperty[_classId].xfactors[index];
    }
    
    // only gen 0
    function getGen0COnfig(uint32 _classId) constant public returns(uint32, uint256, uint32) {
        Gen0Config storage gen0 = gen0Config[_classId];
        return (gen0.classId, gen0.originalPrice, gen0.total);
    }
    
    // only gen 0
    function getReturnFromMonster(uint64 _objId) constant public returns(uint256 current, uint256 total) {
        /*
        1. Gen 0 can not be caught anymore.
        2. Egg will not give return.
        */
        
        uint32 classId = 0;
        uint32 createIndex = 0;
        uint32 lastClaimIndex = 0;
        (classId, createIndex, lastClaimIndex) = getObjIndex(_objId);
        Gen0Config storage gen0 = gen0Config[classId];
        if (gen0.classId != classId) {
            return (0, 0);
        }
        
        uint32 currentGap = 0;
        uint32 totalGap = 0;
        if (lastClaimIndex < gen0.total)
            currentGap = gen0.total - lastClaimIndex;
        if (createIndex < gen0.total)
            totalGap = gen0.total - createIndex;
        return (safeMult(currentGap, gen0.returnPrice), safeMult(totalGap, gen0.returnPrice));
    }
    
    // write access
    
    function moveDataContractBalanceToWorld() external {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        data.withdrawEther(address(this), data.balance);
    }
    
    function renameMonster(uint64 _objId, string name) isActive external {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId);
        if (obj.monsterId != _objId || obj.trainer != msg.sender) {
            revert();
        }
        data.setMonsterObj(_objId, name, obj.exp, obj.createIndex, obj.lastClaimIndex);
    }
    
    function catchMonster(uint32 _classId, string _name) isActive external payable {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterClassAcc memory class;
        (class.classId, class.price, class.returnPrice, class.total, class.catchable) = data.getMonsterClass(_classId);
        
        if (class.classId == 0 || class.catchable == false) {
            revert();
        }
        
        // can not keep too much etheremon 
        if (data.getMonsterDexSize(msg.sender) > maxDexSize)
            revert();
        
        uint256 totalBalance = safeAdd(msg.value, data.getExtraBalance(msg.sender));
        uint256 payPrice = class.price;
        // increase price for each etheremon created
        if (class.total > 0)
            payPrice += class.price*(class.total-1)/priceIncreasingRatio;
        if (payPrice > totalBalance) {
            revert();
        }
        totalEarn += payPrice;
        
        // deduct the balance
        data.setExtraBalance(msg.sender, safeSubtract(totalBalance, payPrice));
        
        // add monster
        uint64 objId = data.addMonsterObj(_classId, msg.sender, _name);
        // generate base stat for the previous one
        for (uint i=0; i < STAT_COUNT; i+= 1) {
            uint8 value = getRandom(STAT_MAX, uint8(i), lastHunter) + data.getElementInArrayType(ArrayType.STAT_START, uint64(_classId), i);
            data.addElementToArrayType(ArrayType.STAT_BASE, objId, value);
        }
        
        lastHunter = msg.sender;
        EventCatchMonster(msg.sender, objId);
    }


    function cashOut(uint256 _amount) public returns(ResultCode) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        
        uint256 totalAmount = data.getExtraBalance(msg.sender);
        uint64 objId = 0;

        // collect gen 0 return price 
        uint dexSize = data.getMonsterDexSize(msg.sender);
        for (uint i = 0; i < dexSize; i++) {
            objId = data.getMonsterObjId(msg.sender, i);
            if (objId > 0) {
                MonsterObjAcc memory obj;
                (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(objId);
                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) {
                            totalAmount += safeMult(gap, gen0.returnPrice);
                            // reset total (except name is cleared :( )
                            data.setMonsterObj(obj.monsterId, " name me ", obj.exp, obj.createIndex, gen0.total);
                        }
                    }
                }
            }
        }
        
        // default to cash out all
        if (_amount == 0) {
            _amount = totalAmount;
        }
        if (_amount > totalAmount) {
            revert();
        }
        
        // check contract has enough money
        if (this.balance + data.balance < _amount){
            revert();
        } else if (this.balance < _amount) {
            data.withdrawEther(address(this), data.balance);
        }
        
        if (_amount > 0) {
            data.setExtraBalance(msg.sender, totalAmount - _amount);
            if (!msg.sender.send(_amount)) {
                data.setExtraBalance(msg.sender, totalAmount);
                EventCashOut(msg.sender, ResultCode.ERROR_SEND_FAIL, 0);
                return ResultCode.ERROR_SEND_FAIL;
            }
        }
        
        EventCashOut(msg.sender, ResultCode.SUCCESS, _amount);
        return ResultCode.SUCCESS;
    }
    
    // read access
    
    function getTrainerEarn(address _trainer) constant public returns(uint256) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        uint256 returnFromMonster = 0;
        // collect gen 0 return price 
        uint256 gen0current = 0;
        uint256 gen0total = 0;
        uint64 objId = 0;
        uint dexSize = data.getMonsterDexSize(_trainer);
        for (uint i = 0; i < dexSize; i++) {
            objId = data.getMonsterObjId(_trainer, i);
            if (objId > 0) {
                (gen0current, gen0total) = getReturnFromMonster(objId);
                returnFromMonster += gen0current;
            }
        }
        return returnFromMonster;
    }
    
    function getTrainerBalance(address _trainer) constant external returns(uint256) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        
        uint256 userExtraBalance = data.getExtraBalance(_trainer);
        uint256 returnFromMonster = getTrainerEarn(_trainer);

        return (userExtraBalance + returnFromMonster);
    }
    
    function getMonsterClassBasic(uint32 _classId) constant external returns(uint256, uint256, uint256, bool) {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterClassAcc memory class;
        (class.classId, class.price, class.returnPrice, class.total, class.catchable) = data.getMonsterClass(_classId);
        return (class.price, class.returnPrice, class.total, class.catchable);
    }

}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getObjBattleInfo","outputs":[{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"isGason","type":"bool"},{"name":"ancestorLength","type":"uint256"},{"name":"xfactorsLength","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_type","type":"uint8"},{"name":"value","type":"uint32"}],"name":"addClassProperty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setMaxDexSize","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxDexSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_type","type":"uint8"},{"name":"_price","type":"uint256"},{"name":"_returnPrice","type":"uint256"},{"name":"_ss1","type":"uint8"},{"name":"_ss2","type":"uint8"},{"name":"_ss3","type":"uint8"},{"name":"_ss4","type":"uint8"},{"name":"_ss5","type":"uint8"},{"name":"_ss6","type":"uint8"}],"name":"addMonsterClassBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getObjIndex","outputs":[{"name":"classId","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"lastClaimIndex","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"decreaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"maxRan","type":"uint8"},{"name":"index","type":"uint8"},{"name":"priAddress","type":"address"}],"name":"getRandom","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getReturnFromMonster","outputs":[{"name":"current","type":"uint256"},{"name":"total","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":true,"inputs":[],"name":"STAT_MAX","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"increaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ratio","type":"uint16"}],"name":"setPriceIncreasingRatio","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getEarningAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_type","type":"uint8"},{"name":"index","type":"uint256"}],"name":"getClassPropertyValue","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"cashOut","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setOriginalPriceGen0","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_name","type":"string"}],"name":"catchMonster","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","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":"totalCashout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_type","type":"uint8"}],"name":"getClassPropertySize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"catchable","type":"bool"}],"name":"setCatchable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"name","type":"string"}],"name":"renameMonster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"}],"name":"getMonsterClassBasic","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"genxProperty","outputs":[{"name":"classId","type":"uint32"},{"name":"isGason","type":"bool"}],"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":"_trainer","type":"address"}],"name":"getTrainerEarn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_type2","type":"uint8"},{"name":"_type3","type":"uint8"},{"name":"_st1","type":"uint8"},{"name":"_st2","type":"uint8"},{"name":"_st3","type":"uint8"},{"name":"_st4","type":"uint8"},{"name":"_st5","type":"uint8"},{"name":"_st6","type":"uint8"}],"name":"addMonsterClassExtend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"moveDataContractBalanceToWorld","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"STAT_COUNT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEarn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceIncreasingRatio","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ETHEREMON_PROCESSOR","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_isGason","type":"bool"}],"name":"setGason","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"}],"name":"getGen0COnfig","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint256"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","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":"_trainer","type":"address"}],"name":"getTrainerBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"isGason","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_dataContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"trainer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventCatchMonster","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"trainer","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EventCashOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sendTo","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EventWithdrawEther","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a61ffff02191681556002805460ff1916600117905560058190556006556007805461ffff19166103e81790556101f460085560098054600160a060020a0319169055341561005a57600080fd5b6040516020806149d58339810160405280805160008054600160a060020a03338116600160a060020a031992831617909255600a8054929093169116179055505061492b806100aa6000396000f3006060604052600436106102155763ffffffff60e060020a600035041662119f34811461024057806305660ce81461029d57806308c977e7146102c65780630d668818146102dc5780630daf41511461030b57806314d0f1ba146103585780631649b76d1461038b5780631756ffd9146103b05780631bea4a611461040057806331afa55f1461044e5780633a34f09a14610477578063464299f9146104b857806348ef5aa8146104f05780634e3dc2f1146105085780634efb023e1461051b578063522f6815146105455780635643a7111461058b57806357918052146105b457806359187cec146105ce5780635b626339146105e15780635c7b79f51461061f57806366ba267014610635578063681551d1146106485780636c81fd6d1461066557806373d65c001461068457806386048c9a1461069757806388e9abb6146106aa5780638b886d04146106cc5780638d1d22d8146106ed5780638da5cb5b1461071957806394f6ba1c1461072c5780639a21492c14610774578063b85d6275146107b1578063bc62c89a146107d0578063bf5f4edf146107ef578063d7b84f681461083c578063d98e14bd1461084f578063dffd722f14610862578063e19bb96414610875578063e7e7e3e814610888578063e92704e81461089b578063ecff537f146108bc578063ee4e441614610906578063f285329214610919578063f445037b14610938578063fd08374814610957575b33600160a060020a0316738a60806f05876f4d6db00c877b0558dbcad306821461023e57600080fd5b005b341561024b57600080fd5b61026067ffffffffffffffff60043516610977565b60405163ffffffff95861681529390941660208401529015156040808401919091526060830191909152608082019290925260a001905180910390f35b34156102a857600080fd5b61023e63ffffffff60043581169060ff602435169060443516610ac4565b34156102d157600080fd5b61023e600435610bcc565b34156102e757600080fd5b6102ef610bfc565b604051600160a060020a03909116815260200160405180910390f35b341561031657600080fd5b61032763ffffffff60043516610c0b565b60405163ffffffff948516815260208101939093526040808401929092529092166060820152608001905180910390f35b341561036357600080fd5b610377600160a060020a0360043516610c3c565b604051901515815260200160405180910390f35b341561039657600080fd5b61039e610c51565b60405190815260200160405180910390f35b34156103bb57600080fd5b61023e63ffffffff6004351660ff602435811690604435906064359060843581169060a43581169060c43581169060e435811690610104358116906101243516610c57565b341561040b57600080fd5b61042067ffffffffffffffff6004351661129f565b60405163ffffffff938416815291831660208301529091166040808301919091526060909101905180910390f35b341561045957600080fd5b61023e67ffffffffffffffff6004351663ffffffff602435166113aa565b341561048257600080fd5b6104a260ff60043581169060243516600160a060020a036044351661144a565b60405160ff909116815260200160405180910390f35b34156104c357600080fd5b6104d867ffffffffffffffff600435166114a4565b60405191825260208201526040908101905180910390f35b34156104fb57600080fd5b61023e6004351515611579565b341561051357600080fd5b6104a26115a7565b341561052657600080fd5b61052e6115ac565b60405161ffff909116815260200160405180910390f35b341561055057600080fd5b610567600160a060020a03600435166024356115ce565b6040518082600681111561057757fe5b60ff16815260200191505060405180910390f35b341561059657600080fd5b61023e67ffffffffffffffff6004351663ffffffff6024351661175e565b34156105bf57600080fd5b61023e61ffff600435166117e5565b34156105d957600080fd5b61039e611828565b34156105ec57600080fd5b61060663ffffffff6004351660ff60243516604435611951565b60405163ffffffff909116815260200160405180910390f35b341561062a57600080fd5b6105676004356119e2565b341561064057600080fd5b61023e612066565b61023e6004803563ffffffff169060248035908101910135613115565b341561067057600080fd5b61023e600160a060020a036004351661366a565b341561068f57600080fd5b6104a2613714565b34156106a257600080fd5b61039e613719565b34156106b557600080fd5b61039e63ffffffff6004351660ff6024351661371f565b34156106d757600080fd5b61023e63ffffffff600435166024351515613774565b34156106f857600080fd5b61023e6004803567ffffffffffffffff169060248035908101910135613915565b341561072457600080fd5b6102ef613b06565b341561073757600080fd5b61074863ffffffff60043516613b15565b604051938452602084019290925260408084019190915290151560608301526080909101905180910390f35b341561077f57600080fd5b61079063ffffffff60043516613bfd565b60405163ffffffff9092168252151560208201526040908101905180910390f35b34156107bc57600080fd5b61023e600160a060020a0360043516613c22565b34156107db57600080fd5b61039e600160a060020a0360043516613ccc565b34156107fa57600080fd5b61023e63ffffffff6004351660ff60243581169060443581169060643581169060843581169060a43581169060c43581169060e4358116906101043516613e0b565b341561084757600080fd5b61023e614479565b341561085a57600080fd5b6104a26144f8565b341561086d57600080fd5b61039e6144fd565b341561088057600080fd5b61052e614503565b341561089357600080fd5b6102ef61450d565b34156108a657600080fd5b61023e63ffffffff600435166024351515614525565b34156108c757600080fd5b6108d863ffffffff60043516614584565b60405163ffffffff938416815260208101929092529091166040808301919091526060909101905180910390f35b341561091157600080fd5b6103776145b6565b341561092457600080fd5b61023e600160a060020a03600435166145bf565b341561094357600080fd5b61039e600160a060020a0360043516614616565b341561096257600080fd5b61037767ffffffffffffffff600435166146a6565b600080600080600080610988614819565b600a54600160a060020a0316915060008263072024608a8360405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b15156109e657600080fd5b6102c65a03f115156109f757600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a01525063ffffffff90811660c089015290811660a08801529081166080870152600160a060020a039091166040860152166020840190815267ffffffffffffffff90911683526004906000905163ffffffff1663ffffffff16815260200190815260200160002090508160200151826080015182546001840154600290940154929c919b50640100000000900460ff16995091975095509350505050565b600160a060020a033316600090815260016020819052604082205460ff16151514610aee57600080fd5b5063ffffffff83166000818152600460205260408120805463ffffffff19169092178255836001811115610b1e57fe5b1415610b7857806001018054806001018281610b3a9190614865565b916000526020600020906008918282040191900660040284909190916101000a81548163ffffffff021916908363ffffffff16021790555050610bc6565b60028101805460018101610b8c8382614865565b916000526020600020906008918282040191900660040284909190916101000a81548163ffffffff021916908363ffffffff160217905550505b50505050565b600160a060020a03331660009081526001602081905260409091205460ff16151514610bf757600080fd5b600855565b600a54600160a060020a031681565b6003602081905260009182526040909120805460018201546002830154929093015463ffffffff9182169392911684565b60016020526000908152604090205460ff1681565b60085481565b6000610c6161489e565b600160a060020a03331660009081526001602081905260409091205460ff16151514610c8c57600080fd5b600a54600160a060020a0316915081639d29cac48d600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515610ce257600080fd5b6102c65a03f11515610cf357600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff90811660608601526040850191909152602084019190915290811682528c161580610d57575063ffffffff8c16815163ffffffff16145b15610d6157600080fd5b81600160a060020a031663c8ff80a18d8c8c600160006040516020015260405163ffffffff86811660e060020a0282529490941660048501526024840192909252604483015215156064820152608401602060405180830381600087803b1515610dca57600080fd5b6102c65a03f11515610ddb57600080fd5b50505060405180515050600160a060020a0382166326bda739600063ffffffff8f168e82604051602001526040518463ffffffff1660e060020a02815260040180846004811115610e2857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610e7457600080fd5b6102c65a03f11515610e8557600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f168b6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610ed357fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610f1f57600080fd5b6102c65a03f11515610f3057600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f168a6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610f7e57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561102957fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561107557600080fd5b6102c65a03f1151561108657600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16886000604051602001526040518463ffffffff1660e060020a028152600401808460048111156110d457fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561112057600080fd5b6102c65a03f1151561113157600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16876000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561117f57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156111cb57600080fd5b6102c65a03f115156111dc57600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16866000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561122a57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505060405180515050505050505050505050505050565b6000806000806112ad614819565b600a54600160a060020a0316915081630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561130a57600080fd5b6102c65a03f1151561131b57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a039091166040850152166020830190815267ffffffffffffffff9091168252518160a001518260c0015194509450945050509193909250565b600160a060020a033316600090815260016020819052604082205460ff161515146113d457600080fd5b50600a54600160a060020a0316806331afa55f848460405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561143157600080fd5b6102c65a03f1151561144257600080fd5b505050505050565b6000600019430140600160a060020a03831601815b8460ff168160ff16108015611477575060068160ff16105b1561148b576101008204915060010161145f565b8560ff168281151561149957fe5b069695505050505050565b6000808080808080806114b68961129f565b63ffffffff80841660008181526003602052604090208054959b509399509197509195509116146114ed576000975087965061156e565b50506003810154600090819063ffffffff908116908516101561151b57600383015463ffffffff1684900391505b600383015463ffffffff90811690861610156115415750600382015463ffffffff168490035b6115558263ffffffff1684600201546147c7565b6115698263ffffffff1685600201546147c7565b975097505b505050505050915091565b60005433600160a060020a0390811691161461159457600080fd5b6002805460ff1916911515919091179055565b602081565b60005474010000000000000000000000000000000000000000900461ffff1681565b600160a060020a0333166000908152600160208190526040822054829160ff9091161515146115fc57600080fd5b30600160a060020a0316318311156116705783600160a060020a03167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f600660006040518083600681111561164d57fe5b60ff1681526020018281526020019250505060405180910390a260069150611757565b611678611828565b9050808311156116c15783600160a060020a03167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f600660006040518083600681111561164d57fe5b600160a060020a03841683156108fc0284604051600060405180830381858888f1935050505015156116f257600080fd5b6005805484019055600160a060020a0384167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f6000856040518083600681111561173857fe5b60ff1681526020018281526020019250505060405180910390a2600091505b5092915050565b600160a060020a033316600090815260016020819052604082205460ff1615151461178857600080fd5b50600a54600160a060020a031680635643a711848460405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561143157600080fd5b600160a060020a03331660009081526001602081905260409091205460ff1615151461181057600080fd5b6007805461ffff191661ffff92909216919091179055565b600080600181805b601863ffffffff84161161192e5763ffffffff80841660009081526003602081905260408220908101549094509091161180156118765750815463ffffffff8481169116145b8015611886575060008260010154115b8015611896575060008260020154115b1561192357816002015482600101548115156118ae57fe5b6003840154919004915063ffffffff168110156118f85760028281015460018401540182026002840154600385015463ffffffff1684900302919004949094019390930192611923565b600382015460028084015460018086015463ffffffff90941693848603909101909102010402840193505b600190920191611830565b61193a846006546147eb565b935061194884600554614805565b95945050505050565b60008083600181111561196057fe5b14156119b75763ffffffff8416600090815260046020526040902060010180548390811061198a57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690506119db565b63ffffffff8416600090815260046020526040902060020180548390811061198a57fe5b9392505050565b6000806000806000806119f3614819565b600a54600160a060020a031695506000808763c782fc6033836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611a5157600080fd5b6102c65a03f11515611a6257600080fd5b505050604051805197506000965050600160a060020a0388166347c17bac33886040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ac757600080fd5b6102c65a03f11515611ad857600080fd5b5050506040518051955060009450505b84841015611dcb5787600160a060020a03166375fe2e33338660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611b4d57600080fd5b6102c65a03f11515611b5e57600080fd5b5050506040518051965050600067ffffffffffffffff87161115611dc05787600160a060020a0316630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b1515611bd457600080fd5b6102c65a03f11515611be557600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a039091166040870152166020850190815267ffffffffffffffff90911684526003906000905163ffffffff1663ffffffff16815260200190815260200160002091508260200151825463ffffffff90811691161415611dc057600382015463ffffffff1660c084015163ffffffff161015611dc0576003820154611ccf9063ffffffff1660c085015163ffffffff16614805565b905060008163ffffffff161115611dc057611cf48163ffffffff1683600201546147c7565b90960195600160a060020a0388166332666a31845185608001518660a00151600387015463ffffffff1660405163ffffffff86811660e060020a02825267ffffffffffffffff95909516600482015292841660448401529083166064830152909116608482015260a06024820152600960a48201527f206e616d65206d6520000000000000000000000000000000000000000000000060c482015260e401600060405180830381600087803b1515611dab57600080fd5b6102c65a03f11515611dbc57600080fd5b5050505b600190930192611ae8565b891515611dd6578699505b868a1115611de357600080fd5b8988600160a060020a03163130600160a060020a031631011015611e0657600080fd5b8930600160a060020a0316311015611e9257600160a060020a03881663522f681530823160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e7657600080fd5b6102c65a03f11515611e8757600080fd5b505050604051805150505b60008a1115611ffc5787600160a060020a031663b55cdbf9338c8a0360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611ef157600080fd5b6102c65a03f11515611f0257600080fd5b5050600160a060020a03331690508a156108fc028b604051600060405180830381858888f193505050501515611ffc5787600160a060020a031663b55cdbf9338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611f8657600080fd5b6102c65a03f11515611f9757600080fd5b50505033600160a060020a03167fde2ec039772c8252fbdc620a480847194009c38dfbd74c4ae947e3df493a304f6003600060405180836006811115611fd957fe5b60ff1681526020018281526020019250505060405180910390a260039850612059565b33600160a060020a03167fde2ec039772c8252fbdc620a480847194009c38dfbd74c4ae947e3df493a304f60008c6040518083600681111561203a57fe5b60ff1681526020018281526020019250505060405180910390a2600098505b5050505050505050919050565b600160a060020a03331660009081526001602081905260409091205460ff1615151461209157600080fd5b608060405190810160409081526001808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101766060840152600052600390527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526002808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101986060840152600052600390527fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526003808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101756060840152600081905290527fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260048083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101b56060840152600052600390527f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe937724658151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600580835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101f16060840152600052600390527f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b4659422508151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526006808352670429d069189e0000602080850191909152660aa87bee5380009284019290925261017c6060840152600052600390527fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f38151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260078083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101596060840152600052600390527ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd28151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600880835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526102066060840152600052600390527f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600980835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101bf6060840152600052600390527f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4588151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600a8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261017c6060840152600052600390527f9dcb9783ba5cd0b54745f65f4f918525e461e91888c334e5342cb380ac558d538151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600b8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101626060840152600052600390527f2d72af3c1b2b2956e6f694fb741556d5ca9524373974378cdbec16afa8b841648151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600c8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015a6060840152600052600390527fd56a60595ebefebed7f22dcee6c2acc61b06cf8c68e84c88677840365d1ff92b8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600d8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015f6060840152600052600390527fa8f2d96126c6d0ad63adabaef7bf5cf47f163fb0c218a473d28f62312d197bcf8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600e8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101526060840152600052600390527fd6ebcc64c739277b117ce359e436534b234b76e914c80ad276abf5b5620789398151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600f8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101556060840152600052600390527ff60b7f6a315ec68a6ac240e69dca53652b38627f709a2caa217d9e18af4d7a608151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260108083526704db732547630000602080850191909152660c6f3b40b6c000928401929092526101806060840152600052600390527f47d4745e02b343689a5e7ac121d2a352b7a15c10328a8759fd7d4cf0999002bb8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601180835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101316060840152600052600390527ffc111d09a6e2f0958402cbe16a5aef32c9d8ddb9a4df7271140de57bfed6525a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601280835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101ab6060840152600052600390527f6a2b6bffaca788160f671fa62d34758b717f75a90ad5a468757c50d61f33c4438151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601380835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101306060840152600052600390527f8a8166be5f30abeb6c91ee2f07eeb0b2eb14b4d59534d10a1c143964bd6179198151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601480835267058d15e1762800006020808501919091526611c37937e080009284019290925260526060840152600052600390527f0ffe031ee7f67944a037276fd51f48fcc2fe05a729c43144606bc8777da8014f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260158083526001602080850182905292840152607b6060840152600052600390527f94f2575c7592b1dfd5a8846a17482da7b0e38fb10c93880d74916c5f167924648151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260168083526702c68af0bb14000060208085019190915266038d7ea4c68000928401929092526101d46060840152600052600390527f370c8c7c6215b209793aa720f65163fbeecd5f5114008532ba0649ee234054028151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260178083526706f05b59d3b200006020808501919091526608e1bc9bf040009284019290925261012e6060840152600052600390527f0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f48151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526018808352670de0b6b3a76400006020808501919091526611c37937e080009284019290925260c36060840152600052600390527fa3ddc4e8d053be09ec661eb04964a206cbd921c2c11fc03088857923bed1485a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550565b600061311f61489e565b600254600090819081908190819060ff161561313a57600080fd5b600a54600160a060020a0316965086639d29cac48b600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b151561319057600080fd5b6102c65a03f115156131a157600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808c01525063ffffffff90811660608b015260408a01919091526020890191909152168652855163ffffffff1615806131ff57508560800151155b1561320957600080fd5b60085487600160a060020a03166347c17bac3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561326357600080fd5b6102c65a03f1151561327457600080fd5b50505060405180519050111561328957600080fd5b6133043488600160a060020a031663c782fc603360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156132e457600080fd5b6102c65a03f115156132f557600080fd5b505050604051805190506147eb565b9450856020015193506000866060015163ffffffff16111561334a5760075461ffff16600160608801510363ffffffff1687602001510281151561334457fe5b04840193505b8484111561335757600080fd5b6006805485019055600160a060020a03871663b55cdbf9336133798888614805565b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156133bc57600080fd5b6102c65a03f115156133cd57600080fd5b50505086600160a060020a031663fc4d20f58b338c8c60006040516020015260405163ffffffff86811660e060020a028252851660048201908152600160a060020a0385166024830152606060448301908152606483018490529091608401848480828437820191505095505050505050602060405180830381600087803b151561345757600080fd5b6102c65a03f1151561346857600080fd5b5050506040518051935060009250505b60068210156135f55786600160a060020a03166362b21ad760028c63ffffffff16856000604051602001526040518463ffffffff1660e060020a028152600401808460048111156134c557fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561350b57600080fd5b6102c65a03f1151561351c57600080fd5b5050506040518051600954909150613541906020908590600160a060020a031661144a565b01905086600160a060020a03166326bda739600385846000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561358257fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156135ce57600080fd5b6102c65a03f115156135df57600080fd5b5050506040518051905050600182019150613478565b6009805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03169081179091557f77cb179e9e5f39d98ac520c7c9fe2d085ac4e521f56806105fdeb1032885ee098460405167ffffffffffffffff909116815260200160405180910390a250505050505050505050565b60005433600160a060020a0390811691161461368557600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561371157600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b601881565b60055481565b60008082600181111561372e57fe5b1415613753575063ffffffff821660009081526004602052604090206001015461376e565b5063ffffffff82166000908152600460205260409020600201545b92915050565b60008061377f61489e565b600160a060020a03331660009081526001602081905260409091205460ff161515146137aa57600080fd5b63ffffffff8086166000818152600360205260409020805490955090911614156137d357600080fd5b600a54600160a060020a0316915081639d29cac486600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b151561382957600080fd5b6102c65a03f1151561383a57600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff908116606086015260408501919091526020840191909152168152600160a060020a03821663c8ff80a18251836020015184604001518860006040516020015260405163ffffffff86811660e060020a0282529490941660048501526024840192909252604483015215156064820152608401602060405180830381600087803b15156138f357600080fd5b6102c65a03f1151561390457600080fd5b505050604051805150505050505050565b600061391f614819565b60025460ff161561392f57600080fd5b600a54600160a060020a0316915081630720246086600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561398c57600080fd5b6102c65a03f1151561399d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a03909116604085015216602083015267ffffffffffffffff90811682528516815167ffffffffffffffff16141580613a41575033600160a060020a03168160400151600160a060020a031614155b15613a4b57600080fd5b81600160a060020a03166332666a3186868685608001518660a001518760c0015160405163ffffffff88811660e060020a02825267ffffffffffffffff88166004830190815285821660448401528482166064840152908316608483015260a06024830190815260a48301879052909160c4018787808284378201915050975050505050505050600060405180830381600087803b1515613aeb57600080fd5b6102c65a03f11515613afc57600080fd5b5050505050505050565b600054600160a060020a031681565b6000806000806000613b2561489e565b600a54600160a060020a0316915081639d29cac488600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515613b7b57600080fd5b6102c65a03f11515613b8c57600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff908116606086015260408501919091526020840191825291909116825251816040015182606001518360800151929a91995063ffffffff1697509095509350505050565b60046020526000908152604090205463ffffffff811690640100000000900460ff1682565b60005433600160a060020a03908116911614613c3d57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561371157600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600a54600090600160a060020a0316818080808080866347c17bac8a836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515613d2e57600080fd5b6102c65a03f11515613d3f57600080fd5b5050506040518051925060009150505b81811015613dfe5786600160a060020a03166375fe2e338a8360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515613db457600080fd5b6102c65a03f11515613dc557600080fd5b5050506040518051935050600067ffffffffffffffff84161115613df657613dec836114a4565b9681019690955093505b600101613d4f565b5093979650505050505050565b600160a060020a033316600090815260016020819052604082205460ff16151514613e3557600080fd5b50600a54600160a060020a031663ffffffff8a161580613ef15750600081600160a060020a03166341b0eb5360018d63ffffffff166000604051602001526040518363ffffffff1660e060020a02815260040180836004811115613e9557fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515613ed457600080fd5b6102c65a03f11515613ee557600080fd5b50505060405180519050115b15613efb57600080fd5b60008960ff161115613fb35780600160a060020a03166326bda73960008c63ffffffff168c6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115613f4b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515613f9757600080fd5b6102c65a03f11515613fa857600080fd5b505050604051805150505b60008860ff16111561406b5780600160a060020a03166326bda73960008c63ffffffff168b6000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561400357fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561404f57600080fd5b6102c65a03f1151561406057600080fd5b505050604051805150505b80600160a060020a03166326bda73960018c63ffffffff168a6000604051602001526040518463ffffffff1660e060020a028152600401808460048111156140af57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156140fb57600080fd5b6102c65a03f1151561410c57600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561415a57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156141a657600080fd5b6102c65a03f115156141b757600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16886000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561420557fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561425157600080fd5b6102c65a03f1151561426257600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16876000604051602001526040518463ffffffff1660e060020a028152600401808460048111156142b057fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156142fc57600080fd5b6102c65a03f1151561430d57600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16866000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561435b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156143a757600080fd5b6102c65a03f115156143b857600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16856000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561440657fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561445257600080fd5b6102c65a03f1151561446357600080fd5b5050506040518051505050505050505050505050565b600a54600160a060020a03168063522f681530823160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156144da57600080fd5b6102c65a03f115156144eb57600080fd5b5050506040518051505050565b600681565b60065481565b60075461ffff1681565b738a60806f05876f4d6db00c877b0558dbcad3068281565b600160a060020a033316600090815260016020819052604082205460ff1615151461454f57600080fd5b5063ffffffff909116600090815260046020526040902080549115156401000000000264ff0000000019909216919091179055565b63ffffffff80821660009081526003602081905260409091208054600182015492820154908416931690509193909250565b60025460ff1681565b60005433600160a060020a039081169116146145da57600080fd5b600160a060020a038116156137115760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600a54600090600160a060020a031681808263c782fc6086836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561467457600080fd5b6102c65a03f1151561468557600080fd5b50505060405180519050915061469a85613ccc565b91909101949350505050565b6000806146b1614819565b600a54600160a060020a031691506000826307202460868360405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561470f57600080fd5b6102c65a03f1151561472057600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a01525063ffffffff90811660c089015290811660a08801529081166080870152600160a060020a039091166040860152166020840190815267ffffffffffffffff90911683526004906000905163ffffffff168152602081019190915260400160002054640100000000900460ff1695945050505050565b60008282028315806147e357508284828115156147e057fe5b04145b15156119db57fe5b60008282018381108015906147e35750828110156119db57fe5b6000808284101561481257fe5b5050900390565b610100604051908101604090815260008083526020830181905290820152606081016148436148cc565b8152600060208201819052604082018190526060820181905260809091015290565b81548183558181151161489957600701600890048160070160089004836000526020600020918201910161489991906148de565b505050565b60a0604051908101604090815260008083526020830181905290820181905260608201819052608082015290565b60206040519081016040526000815290565b6148fc91905b808211156148f857600081556001016148e4565b5090565b905600a165627a7a72305820de2c7d2b7c4c2667b06cd2cb9244d23d79668bf26275594b81a2a7437b49f2410029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e

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

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


   Swarm Source:
bzzr://de2c7d2b7c4c2667b06cd2cb9244d23d79668bf26275594b81a2a7437b49f241

 

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.