Contract 0x1fC7bD85293f3982f40D52698DF8D26be89360d6

 
Ad
Ad
Txn Hash Method
Block
From
To
Value
0x5de4e8aa2d6d568198763e43cf2d7ded9399c0cee7d2586a435f51138b059cfaCatch Monster(pending)2021-06-20 1:44:183 days 10 hrs ago0x76b2ab3e9137851b7ddf1206dcb007414d00a116 IN Etheremon: World0 Ether(Pending)(Pending)
0x69e85a57070341f620c49103a41e7ccfa9cdcb78b2aeaf70e04632c590352190Set Catchable123243502021-04-27 19:30:4556 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0x0becb3a761ac2e683854cb2fb572381968d54a229eb935560825f2932895ffd5Set Catchable123243492021-04-27 19:30:3156 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0x3c973c17a97abfdce60e7c635ef8d61c1e7b195857c06fbaefdcd5f9888e9c21Set Catchable123243492021-04-27 19:30:3156 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0x2ce40a7c6b05edcf859a6cd2e7b353a119bec49b5d67fae24e52055056c8424fSet Catchable123243472021-04-27 19:30:0356 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0x0ca7c09eb45e63143705149ec967fd33c3bec6064513ad54cc0f4825452ac096Set Catchable123243452021-04-27 19:29:4656 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.004231960175.1
0x4a2469b91ea05e1c6e3ceb0fb442a76525365e74c002bf5793c38c46b8951475Set Catchable123243442021-04-27 19:29:3156 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00349376262
0x1794e28f7fb90da69f26d9de1ae9fbbb64e57b8c74911a5fca075b9a4150f01dSet Catchable123243412021-04-27 19:29:1156 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0x1bb50163ee40d5d50ae559727cc9cf64492a3473008c37570781bcaf2e3e0736Set Catchable123243402021-04-27 19:28:5556 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00422632575
0xb0184f0eac0e7e3c335b0a5f7ceafc69370643fcd22b94b5ada06ea46e1e5373Set Catchable123243402021-04-27 19:28:5556 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00462078282
0xe0abbeef1e01a509966343bca3c68e7a602c0d125891d8c31e39154e6a284068Set Catchable123243392021-04-27 19:28:5156 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00462078282
0x6d29c8fbd672873a30e0acef49798d377e903e643014f975fa0a3695ac3167dcSet Catchable123243342021-04-27 19:28:1056 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00462078282
0xe18e898f7c3e0284666b5af0b8e94a570eb8c6810259e3200925b75eb6b6cf29Set Catchable123243292021-04-27 19:27:3956 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00462078282
0x94d7717701f11172f2bbe928c13977273585d7900fa0e67570672764037bf5e8Set Catchable123243282021-04-27 19:27:2356 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00462078282
0xbea8d94e1e4702a6d0cc4fb61942137ad9b7de91a858293cdee2092aecf03f12Set Catchable123243272021-04-27 19:27:1356 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00349376262
0xf219c23f75acc1ae6c7fecc45f3a442439e6e0b27512ae410347e619a4f4da42Set Catchable123243182021-04-27 19:25:4456 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00473348484
0x586b1748636d1d74f9e2272b67182faebbaafc3f157daf0cf6749a246797643fSet Catchable123243182021-04-27 19:25:4456 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00411362373
0x50b8b7d891f046d9cee27f3c845b35f4fb2b4bf1107ba941c955549f3ac15c9aSet Catchable123243112021-04-27 19:23:1756 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00411362373
0xe9184fa8264a62050445b5543cec0a6a1567bdb850cd4701ed1ad4d89fc88962Set Catchable123243112021-04-27 19:23:1756 days 17 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00411362373
0x29eee9b607493787df2f1dcd6a119990054283738b12bfe606df31cba62ae322Set Gason123080282021-04-25 7:16:2759 days 5 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00065643644
0x705cb5322f9bd4302ee857aeed6ed22e4a819ec80389047823790c59a1198711Set Gason123080272021-04-25 7:16:1459 days 5 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00065643644
0x88cee4313446d6f22abeebdc0cc07008987e0735899deab2a7d8eebde281cb4eSet Catchable123080122021-04-25 7:13:2059 days 5 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.00202863636
0xdc8a982dbd559942c44cb1d51e8218e534c5259f01015958f2086c21d49584eaSet Catchable123079922021-04-25 7:07:3759 days 5 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: World0 Ether0.002316026141.1
0x0cb10325cd5f3a1633a304eba242763f95f813b8c67b6cfe9c87caace4505983Rename Monster119604222021-03-02 18:17:24112 days 18 hrs ago0x60687f4f794770c977f22aaf8b6887eae9e1db04 IN  Etheremon: World0 Ether0.007969664152
0x0eec8b618629d29a09a8b1c54633ded862ef6142e8ee6bed07732b829d3d9a82Catch Monster112384162020-11-11 20:16:32223 days 16 hrs ago0x5bb4c1c7b1149e236ca28a41ac24528b0b35f9c5 IN  Etheremon: World0 Ether0.03157250481
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x10702785a08712e71af2a5adafc37dfab5b6eb4b89ffd0dc3e6c960f38332e83111949522020-11-05 4:08:07230 days 8 hrs ago Etheremon: World0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd0.62074 Ether
0x54e4c4f25fcaf0ec2f3f8609f6e5b3e695eda6ca22a625d0964954434dabbeb7100852662020-05-17 18:39:17401 days 17 hrs ago Etheremon: World0xc065a07f9fe675d3a4b452a791e187bb4cefaa430.045851 Ether
0x75c60906d1082dcf584392222e673f5343f19317e0c9ed3e957fa44782a93fcb99519042020-04-27 2:41:52422 days 9 hrs ago Etheremon: World0xb37f7af80d8786088a2a0bd86cc36813d2b52ca40.029637 Ether
0x9a9c925cbe64d2e2bc02255a0030b385674530acec35eb3c1cea925bd6081d2a94720282020-02-13 2:47:48496 days 9 hrs ago Etheremon: World0x1ca05331643e3a076fe022eba795c3d26aa41c410.022269 Ether
0xc7829ff03d71d139c68f1e201b56ed6b95ed3ee6764a8f1f233e68ca2302513d93185122020-01-20 13:09:22519 days 23 hrs ago Etheremon: World0x5e69e62c77e89f5e7280a8b27fcbea3091b4934b0.009468 Ether
0x00f98c15e18418f9ca8f5321fcfdcdf080fafb65ed40bfdb216a1df36594aeab88247532019-10-28 0:40:20604 days 11 hrs ago Etheremon: World0x52e1319ecc564852b63ab200802c49b1d7140f930.0018 Ether
0x5c4c7a4c37582644f31a5450ca8690c4a5f52cae25a6244193d4344848754ee488006962019-10-24 3:50:07608 days 8 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca12.57 Ether
0xf7983385413e6199f78f252e025a67666768bd0046a3ff711b38952942698af086302212019-09-27 10:06:34635 days 2 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca6.7534 Ether
0xdefa2f50309d2e79515da747dda9629147ede10f618259b51861b37e4dc9be9086033982019-09-23 4:57:05639 days 7 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca18.3 Ether
0xc89b16dd702b0c59a5146c6c025f7c3dd17f22848fbab58a51450310a0ba707a85977522019-09-22 7:47:13640 days 4 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca11 Ether
0xcdf50d8f900243e8ac2e999d2b486a2ca2ed0cdf72956f97488a09fa0f2b590d83617182019-08-16 13:11:44676 days 23 hrs ago Etheremon: WorldENS Name reneil.eth0.009288 Ether
0xe178544bfc1eefa3874d7a784326f45c7f8bd204f8c19e499c44afff019d93b082706032019-08-02 9:59:13691 days 2 hrs ago Etheremon: World0xaa9fa8dd95f830409e00202c54cba39e68e239720.013116 Ether
0x059f07d112e5879eab5c695a72244ba53dc5ba547515973970632d8af5b87a7381848972019-07-20 2:43:34704 days 9 hrs ago Etheremon: World0x68db48d1ecab043f560db4b9575539b994fb24b70.562 Ether
0xcee4a2cd3ac61a88b31caffdb2279720e281d99520c88461f667cc6dad252a3881751672019-07-18 14:13:03705 days 22 hrs ago Etheremon: World0x9d9d850167184c32bc73995125298a7a8119d5c10.015663 Ether
0x66cd8f832553e441caf9ca8355837395dc5332b61eb0bd2d5889c56edc4fa36281363582019-07-12 12:45:34711 days 23 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca3.765 Ether
0xa22c60976206875a5004084d6a76c82667c7f6c02b0846fee0c5ce792a3065b781170252019-07-09 12:18:11715 days 13 mins ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca4.765 Ether
0x868bd7b675b9cbdf0986ece6ab213f95a45166e46da0bda9567b035dd8a83eb680629662019-07-01 2:31:19723 days 10 hrs ago Etheremon: World0x0f76962a1064a5d7b1da01c2d8f903c1878d88f60.00731 Ether
0xa104aa4747e834c2f8c2c06ecda0f6e6f505aa7b520332efdc54a607e9f2294680442992019-06-28 4:50:36726 days 7 hrs ago Etheremon: World0xc6b4dc013a8caf507f5a80fb4a97b2fce4f4a55b0.03048 Ether
0x7db207a9138c3bc02997ee6ec251448b1ebba6cd43f46d56f6bbef5920b0e3b280275302019-06-25 13:57:52728 days 22 hrs ago Etheremon: World0x779bbb887edc67521e6da4200bb0ba28754f667a0.7614 Ether
0x325b394f7ed64aca203946c877d742db19c2911e7529671046081a5704790d1179600942019-06-15 0:55:30739 days 11 hrs ago Etheremon: World0x51ee87af33fad18419858dd3b3733577000714ca3.9435 Ether
0x6953b5ded40ace8cee1117f94dd1bf1d2c8a6cb9cbaf07d106799e14fe6de30d77744722019-05-17 0:19:25768 days 12 hrs ago Etheremon: World0xa77005f4e2eaa00a02cd96bb553e89c004f9da310.097389 Ether
0x6ed7c338882c8d5124004e7b7471e3430317cd95e771d320727f8f05d3cc363175645992019-04-14 6:59:45801 days 5 hrs ago Etheremon: World0xfd91ac187faab50a4dd71d4fb0e2fe4de3d3fdce0.1675 Ether
0x888ad7da68dfa6e06f0edecd405684608aacb10b6d59588031c182b8d34c927075387662019-04-10 6:43:08805 days 5 hrs ago Etheremon: World0x5dc4561125fcac2030d07301c50153cfe624391b0.00306 Ether
0x0095a027753c232d0408901e09ab5e7b4be8ccd124bdd4ea5807e649c803c1d875353732019-04-09 17:55:50805 days 18 hrs ago Etheremon: World0xd5baeae31cd5691d86f4ff437da07c3ed29ac6bc0.422376 Ether
0xb371322c390bd445d88aaea44485168994a5d163f266929389a32b32aa8b7f5e74906112019-04-02 18:41:47812 days 17 hrs ago Etheremon: World0xc2d4871106d2ce208ae5634a151a9027ba09d47a0.0414 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtheremonWorld

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-29
*/

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 Security Audit

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

60606040526000805460a060020a61ffff02191681556002805460ff1916600117905560058190556006556007805461ffff19166103e81790556101f460085560098054600160a060020a0319169055341561005a57600080fd5b6040516020806149d58339810160405280805160008054600160a060020a03338116600160a060020a031992831617909255600a8054929093169116179055505061492b806100aa6000396000f3006060604052600436106102155763ffffffff60e060020a600035041662119f34811461024057806305660ce81461029d57806308c977e7146102c65780630d668818146102dc5780630daf41511461030b57806314d0f1ba146103585780631649b76d1461038b5780631756ffd9146103b05780631bea4a611461040057806331afa55f1461044e5780633a34f09a14610477578063464299f9146104b857806348ef5aa8146104f05780634e3dc2f1146105085780634efb023e1461051b578063522f6815146105455780635643a7111461058b57806357918052146105b457806359187cec146105ce5780635b626339146105e15780635c7b79f51461061f57806366ba267014610635578063681551d1146106485780636c81fd6d1461066557806373d65c001461068457806386048c9a1461069757806388e9abb6146106aa5780638b886d04146106cc5780638d1d22d8146106ed5780638da5cb5b1461071957806394f6ba1c1461072c5780639a21492c14610774578063b85d6275146107b1578063bc62c89a146107d0578063bf5f4edf146107ef578063d7b84f681461083c578063d98e14bd1461084f578063dffd722f14610862578063e19bb96414610875578063e7e7e3e814610888578063e92704e81461089b578063ecff537f146108bc578063ee4e441614610906578063f285329214610919578063f445037b14610938578063fd08374814610957575b33600160a060020a0316738a60806f05876f4d6db00c877b0558dbcad306821461023e57600080fd5b005b341561024b57600080fd5b61026067ffffffffffffffff60043516610977565b60405163ffffffff95861681529390941660208401529015156040808401919091526060830191909152608082019290925260a001905180910390f35b34156102a857600080fd5b61023e63ffffffff60043581169060ff602435169060443516610ac4565b34156102d157600080fd5b61023e600435610bcc565b34156102e757600080fd5b6102ef610bfc565b604051600160a060020a03909116815260200160405180910390f35b341561031657600080fd5b61032763ffffffff60043516610c0b565b60405163ffffffff948516815260208101939093526040808401929092529092166060820152608001905180910390f35b341561036357600080fd5b610377600160a060020a0360043516610c3c565b604051901515815260200160405180910390f35b341561039657600080fd5b61039e610c51565b60405190815260200160405180910390f35b34156103bb57600080fd5b61023e63ffffffff6004351660ff602435811690604435906064359060843581169060a43581169060c43581169060e435811690610104358116906101243516610c57565b341561040b57600080fd5b61042067ffffffffffffffff6004351661129f565b60405163ffffffff938416815291831660208301529091166040808301919091526060909101905180910390f35b341561045957600080fd5b61023e67ffffffffffffffff6004351663ffffffff602435166113aa565b341561048257600080fd5b6104a260ff60043581169060243516600160a060020a036044351661144a565b60405160ff909116815260200160405180910390f35b34156104c357600080fd5b6104d867ffffffffffffffff600435166114a4565b60405191825260208201526040908101905180910390f35b34156104fb57600080fd5b61023e6004351515611579565b341561051357600080fd5b6104a26115a7565b341561052657600080fd5b61052e6115ac565b60405161ffff909116815260200160405180910390f35b341561055057600080fd5b610567600160a060020a03600435166024356115ce565b6040518082600681111561057757fe5b60ff16815260200191505060405180910390f35b341561059657600080fd5b61023e67ffffffffffffffff6004351663ffffffff6024351661175e565b34156105bf57600080fd5b61023e61ffff600435166117e5565b34156105d957600080fd5b61039e611828565b34156105ec57600080fd5b61060663ffffffff6004351660ff60243516604435611951565b60405163ffffffff909116815260200160405180910390f35b341561062a57600080fd5b6105676004356119e2565b341561064057600080fd5b61023e612066565b61023e6004803563ffffffff169060248035908101910135613115565b341561067057600080fd5b61023e600160a060020a036004351661366a565b341561068f57600080fd5b6104a2613714565b34156106a257600080fd5b61039e613719565b34156106b557600080fd5b61039e63ffffffff6004351660ff6024351661371f565b34156106d757600080fd5b61023e63ffffffff600435166024351515613774565b34156106f857600080fd5b61023e6004803567ffffffffffffffff169060248035908101910135613915565b341561072457600080fd5b6102ef613b06565b341561073757600080fd5b61074863ffffffff60043516613b15565b604051938452602084019290925260408084019190915290151560608301526080909101905180910390f35b341561077f57600080fd5b61079063ffffffff60043516613bfd565b60405163ffffffff9092168252151560208201526040908101905180910390f35b34156107bc57600080fd5b61023e600160a060020a0360043516613c22565b34156107db57600080fd5b61039e600160a060020a0360043516613ccc565b34156107fa57600080fd5b61023e63ffffffff6004351660ff60243581169060443581169060643581169060843581169060a43581169060c43581169060e4358116906101043516613e0b565b341561084757600080fd5b61023e614479565b341561085a57600080fd5b6104a26144f8565b341561086d57600080fd5b61039e6144fd565b341561088057600080fd5b61052e614503565b341561089357600080fd5b6102ef61450d565b34156108a657600080fd5b61023e63ffffffff600435166024351515614525565b34156108c757600080fd5b6108d863ffffffff60043516614584565b60405163ffffffff938416815260208101929092529091166040808301919091526060909101905180910390f35b341561091157600080fd5b6103776145b6565b341561092457600080fd5b61023e600160a060020a03600435166145bf565b341561094357600080fd5b61039e600160a060020a0360043516614616565b341561096257600080fd5b61037767ffffffffffffffff600435166146a6565b600080600080600080610988614819565b600a54600160a060020a0316915060008263072024608a8360405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b15156109e657600080fd5b6102c65a03f115156109f757600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a01525063ffffffff90811660c089015290811660a08801529081166080870152600160a060020a039091166040860152166020840190815267ffffffffffffffff90911683526004906000905163ffffffff1663ffffffff16815260200190815260200160002090508160200151826080015182546001840154600290940154929c919b50640100000000900460ff16995091975095509350505050565b600160a060020a033316600090815260016020819052604082205460ff16151514610aee57600080fd5b5063ffffffff83166000818152600460205260408120805463ffffffff19169092178255836001811115610b1e57fe5b1415610b7857806001018054806001018281610b3a9190614865565b916000526020600020906008918282040191900660040284909190916101000a81548163ffffffff021916908363ffffffff16021790555050610bc6565b60028101805460018101610b8c8382614865565b916000526020600020906008918282040191900660040284909190916101000a81548163ffffffff021916908363ffffffff160217905550505b50505050565b600160a060020a03331660009081526001602081905260409091205460ff16151514610bf757600080fd5b600855565b600a54600160a060020a031681565b6003602081905260009182526040909120805460018201546002830154929093015463ffffffff9182169392911684565b60016020526000908152604090205460ff1681565b60085481565b6000610c6161489e565b600160a060020a03331660009081526001602081905260409091205460ff16151514610c8c57600080fd5b600a54600160a060020a0316915081639d29cac48d600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515610ce257600080fd5b6102c65a03f11515610cf357600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff90811660608601526040850191909152602084019190915290811682528c161580610d57575063ffffffff8c16815163ffffffff16145b15610d6157600080fd5b81600160a060020a031663c8ff80a18d8c8c600160006040516020015260405163ffffffff86811660e060020a0282529490941660048501526024840192909252604483015215156064820152608401602060405180830381600087803b1515610dca57600080fd5b6102c65a03f11515610ddb57600080fd5b50505060405180515050600160a060020a0382166326bda739600063ffffffff8f168e82604051602001526040518463ffffffff1660e060020a02815260040180846004811115610e2857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610e7457600080fd5b6102c65a03f11515610e8557600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f168b6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610ed357fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610f1f57600080fd5b6102c65a03f11515610f3057600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f168a6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610f7e57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561102957fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561107557600080fd5b6102c65a03f1151561108657600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16886000604051602001526040518463ffffffff1660e060020a028152600401808460048111156110d457fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561112057600080fd5b6102c65a03f1151561113157600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16876000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561117f57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156111cb57600080fd5b6102c65a03f115156111dc57600080fd5b50505060405180515050600160a060020a0382166326bda739600263ffffffff8f16866000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561122a57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505060405180515050505050505050505050505050565b6000806000806112ad614819565b600a54600160a060020a0316915081630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561130a57600080fd5b6102c65a03f1151561131b57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a039091166040850152166020830190815267ffffffffffffffff9091168252518160a001518260c0015194509450945050509193909250565b600160a060020a033316600090815260016020819052604082205460ff161515146113d457600080fd5b50600a54600160a060020a0316806331afa55f848460405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561143157600080fd5b6102c65a03f1151561144257600080fd5b505050505050565b6000600019430140600160a060020a03831601815b8460ff168160ff16108015611477575060068160ff16105b1561148b576101008204915060010161145f565b8560ff168281151561149957fe5b069695505050505050565b6000808080808080806114b68961129f565b63ffffffff80841660008181526003602052604090208054959b509399509197509195509116146114ed576000975087965061156e565b50506003810154600090819063ffffffff908116908516101561151b57600383015463ffffffff1684900391505b600383015463ffffffff90811690861610156115415750600382015463ffffffff168490035b6115558263ffffffff1684600201546147c7565b6115698263ffffffff1685600201546147c7565b975097505b505050505050915091565b60005433600160a060020a0390811691161461159457600080fd5b6002805460ff1916911515919091179055565b602081565b60005474010000000000000000000000000000000000000000900461ffff1681565b600160a060020a0333166000908152600160208190526040822054829160ff9091161515146115fc57600080fd5b30600160a060020a0316318311156116705783600160a060020a03167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f600660006040518083600681111561164d57fe5b60ff1681526020018281526020019250505060405180910390a260069150611757565b611678611828565b9050808311156116c15783600160a060020a03167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f600660006040518083600681111561164d57fe5b600160a060020a03841683156108fc0284604051600060405180830381858888f1935050505015156116f257600080fd5b6005805484019055600160a060020a0384167fdd015856503ad75c75662bfdfd4366944a55a7bafb8e8cacaa950659ce2b680f6000856040518083600681111561173857fe5b60ff1681526020018281526020019250505060405180910390a2600091505b5092915050565b600160a060020a033316600090815260016020819052604082205460ff1615151461178857600080fd5b50600a54600160a060020a031680635643a711848460405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561143157600080fd5b600160a060020a03331660009081526001602081905260409091205460ff1615151461181057600080fd5b6007805461ffff191661ffff92909216919091179055565b600080600181805b601863ffffffff84161161192e5763ffffffff80841660009081526003602081905260408220908101549094509091161180156118765750815463ffffffff8481169116145b8015611886575060008260010154115b8015611896575060008260020154115b1561192357816002015482600101548115156118ae57fe5b6003840154919004915063ffffffff168110156118f85760028281015460018401540182026002840154600385015463ffffffff1684900302919004949094019390930192611923565b600382015460028084015460018086015463ffffffff90941693848603909101909102010402840193505b600190920191611830565b61193a846006546147eb565b935061194884600554614805565b95945050505050565b60008083600181111561196057fe5b14156119b75763ffffffff8416600090815260046020526040902060010180548390811061198a57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690506119db565b63ffffffff8416600090815260046020526040902060020180548390811061198a57fe5b9392505050565b6000806000806000806119f3614819565b600a54600160a060020a031695506000808763c782fc6033836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611a5157600080fd5b6102c65a03f11515611a6257600080fd5b505050604051805197506000965050600160a060020a0388166347c17bac33886040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ac757600080fd5b6102c65a03f11515611ad857600080fd5b5050506040518051955060009450505b84841015611dcb5787600160a060020a03166375fe2e33338660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611b4d57600080fd5b6102c65a03f11515611b5e57600080fd5b5050506040518051965050600067ffffffffffffffff87161115611dc05787600160a060020a0316630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b1515611bd457600080fd5b6102c65a03f11515611be557600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a039091166040870152166020850190815267ffffffffffffffff90911684526003906000905163ffffffff1663ffffffff16815260200190815260200160002091508260200151825463ffffffff90811691161415611dc057600382015463ffffffff1660c084015163ffffffff161015611dc0576003820154611ccf9063ffffffff1660c085015163ffffffff16614805565b905060008163ffffffff161115611dc057611cf48163ffffffff1683600201546147c7565b90960195600160a060020a0388166332666a31845185608001518660a00151600387015463ffffffff1660405163ffffffff86811660e060020a02825267ffffffffffffffff95909516600482015292841660448401529083166064830152909116608482015260a06024820152600960a48201527f206e616d65206d6520000000000000000000000000000000000000000000000060c482015260e401600060405180830381600087803b1515611dab57600080fd5b6102c65a03f11515611dbc57600080fd5b5050505b600190930192611ae8565b891515611dd6578699505b868a1115611de357600080fd5b8988600160a060020a03163130600160a060020a031631011015611e0657600080fd5b8930600160a060020a0316311015611e9257600160a060020a03881663522f681530823160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e7657600080fd5b6102c65a03f11515611e8757600080fd5b505050604051805150505b60008a1115611ffc5787600160a060020a031663b55cdbf9338c8a0360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611ef157600080fd5b6102c65a03f11515611f0257600080fd5b5050600160a060020a03331690508a156108fc028b604051600060405180830381858888f193505050501515611ffc5787600160a060020a031663b55cdbf9338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611f8657600080fd5b6102c65a03f11515611f9757600080fd5b50505033600160a060020a03167fde2ec039772c8252fbdc620a480847194009c38dfbd74c4ae947e3df493a304f6003600060405180836006811115611fd957fe5b60ff1681526020018281526020019250505060405180910390a260039850612059565b33600160a060020a03167fde2ec039772c8252fbdc620a480847194009c38dfbd74c4ae947e3df493a304f60008c6040518083600681111561203a57fe5b60ff1681526020018281526020019250505060405180910390a2600098505b5050505050505050919050565b600160a060020a03331660009081526001602081905260409091205460ff1615151461209157600080fd5b608060405190810160409081526001808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101766060840152600052600390527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526002808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101986060840152600052600390527fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526003808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101756060840152600081905290527fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260048083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101b56060840152600052600390527f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe937724658151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600580835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101f16060840152600052600390527f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b4659422508151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526006808352670429d069189e0000602080850191909152660aa87bee5380009284019290925261017c6060840152600052600390527fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f38151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260078083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101596060840152600052600390527ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd28151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600880835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526102066060840152600052600390527f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600980835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101bf6060840152600052600390527f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4588151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600a8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261017c6060840152600052600390527f9dcb9783ba5cd0b54745f65f4f918525e461e91888c334e5342cb380ac558d538151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600b8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101626060840152600052600390527f2d72af3c1b2b2956e6f694fb741556d5ca9524373974378cdbec16afa8b841648151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600c8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015a6060840152600052600390527fd56a60595ebefebed7f22dcee6c2acc61b06cf8c68e84c88677840365d1ff92b8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600d8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015f6060840152600052600390527fa8f2d96126c6d0ad63adabaef7bf5cf47f163fb0c218a473d28f62312d197bcf8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600e8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101526060840152600052600390527fd6ebcc64c739277b117ce359e436534b234b76e914c80ad276abf5b5620789398151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600f8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101556060840152600052600390527ff60b7f6a315ec68a6ac240e69dca53652b38627f709a2caa217d9e18af4d7a608151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260108083526704db732547630000602080850191909152660c6f3b40b6c000928401929092526101806060840152600052600390527f47d4745e02b343689a5e7ac121d2a352b7a15c10328a8759fd7d4cf0999002bb8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601180835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101316060840152600052600390527ffc111d09a6e2f0958402cbe16a5aef32c9d8ddb9a4df7271140de57bfed6525a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601280835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101ab6060840152600052600390527f6a2b6bffaca788160f671fa62d34758b717f75a90ad5a468757c50d61f33c4438151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601380835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101306060840152600052600390527f8a8166be5f30abeb6c91ee2f07eeb0b2eb14b4d59534d10a1c143964bd6179198151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601480835267058d15e1762800006020808501919091526611c37937e080009284019290925260526060840152600052600390527f0ffe031ee7f67944a037276fd51f48fcc2fe05a729c43144606bc8777da8014f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260158083526001602080850182905292840152607b6060840152600052600390527f94f2575c7592b1dfd5a8846a17482da7b0e38fb10c93880d74916c5f167924648151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260168083526702c68af0bb14000060208085019190915266038d7ea4c68000928401929092526101d46060840152600052600390527f370c8c7c6215b209793aa720f65163fbeecd5f5114008532ba0649ee234054028151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260178083526706f05b59d3b200006020808501919091526608e1bc9bf040009284019290925261012e6060840152600052600390527f0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f48151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526018808352670de0b6b3a76400006020808501919091526611c37937e080009284019290925260c36060840152600052600390527fa3ddc4e8d053be09ec661eb04964a206cbd921c2c11fc03088857923bed1485a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550565b600061311f61489e565b600254600090819081908190819060ff161561313a57600080fd5b600a54600160a060020a0316965086639d29cac48b600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b151561319057600080fd5b6102c65a03f115156131a157600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808c01525063ffffffff90811660608b015260408a01919091526020890191909152168652855163ffffffff1615806131ff57508560800151155b1561320957600080fd5b60085487600160a060020a03166347c17bac3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561326357600080fd5b6102c65a03f1151561327457600080fd5b50505060405180519050111561328957600080fd5b6133043488600160a060020a031663c782fc603360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156132e457600080fd5b6102c65a03f115156132f557600080fd5b505050604051805190506147eb565b9450856020015193506000866060015163ffffffff16111561334a5760075461ffff16600160608801510363ffffffff1687602001510281151561334457fe5b04840193505b8484111561335757600080fd5b6006805485019055600160a060020a03871663b55cdbf9336133798888614805565b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156133bc57600080fd5b6102c65a03f115156133cd57600080fd5b50505086600160a060020a031663fc4d20f58b338c8c60006040516020015260405163ffffffff86811660e060020a028252851660048201908152600160a060020a0385166024830152606060448301908152606483018490529091608401848480828437820191505095505050505050602060405180830381600087803b151561345757600080fd5b6102c65a03f1151561346857600080fd5b5050506040518051935060009250505b60068210156135f55786600160a060020a03166362b21ad760028c63ffffffff16856000604051602001526040518463ffffffff1660e060020a028152600401808460048111156134c557fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561350b57600080fd5b6102c65a03f1151561351c57600080fd5b5050506040518051600954909150613541906020908590600160a060020a031661144a565b01905086600160a060020a03166326bda739600385846000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561358257fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156135ce57600080fd5b6102c65a03f115156135df57600080fd5b5050506040518051905050600182019150613478565b6009805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03169081179091557f77cb179e9e5f39d98ac520c7c9fe2d085ac4e521f56806105fdeb1032885ee098460405167ffffffffffffffff909116815260200160405180910390a250505050505050505050565b60005433600160a060020a0390811691161461368557600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561371157600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b601881565b60055481565b60008082600181111561372e57fe5b1415613753575063ffffffff821660009081526004602052604090206001015461376e565b5063ffffffff82166000908152600460205260409020600201545b92915050565b60008061377f61489e565b600160a060020a03331660009081526001602081905260409091205460ff161515146137aa57600080fd5b63ffffffff8086166000818152600360205260409020805490955090911614156137d357600080fd5b600a54600160a060020a0316915081639d29cac486600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b151561382957600080fd5b6102c65a03f1151561383a57600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff908116606086015260408501919091526020840191909152168152600160a060020a03821663c8ff80a18251836020015184604001518860006040516020015260405163ffffffff86811660e060020a0282529490941660048501526024840192909252604483015215156064820152608401602060405180830381600087803b15156138f357600080fd5b6102c65a03f1151561390457600080fd5b505050604051805150505050505050565b600061391f614819565b60025460ff161561392f57600080fd5b600a54600160a060020a0316915081630720246086600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561398c57600080fd5b6102c65a03f1151561399d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a03909116604085015216602083015267ffffffffffffffff90811682528516815167ffffffffffffffff16141580613a41575033600160a060020a03168160400151600160a060020a031614155b15613a4b57600080fd5b81600160a060020a03166332666a3186868685608001518660a001518760c0015160405163ffffffff88811660e060020a02825267ffffffffffffffff88166004830190815285821660448401528482166064840152908316608483015260a06024830190815260a48301879052909160c4018787808284378201915050975050505050505050600060405180830381600087803b1515613aeb57600080fd5b6102c65a03f11515613afc57600080fd5b5050505050505050565b600054600160a060020a031681565b6000806000806000613b2561489e565b600a54600160a060020a0316915081639d29cac488600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515613b7b57600080fd5b6102c65a03f11515613b8c57600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808701525063ffffffff908116606086015260408501919091526020840191825291909116825251816040015182606001518360800151929a91995063ffffffff1697509095509350505050565b60046020526000908152604090205463ffffffff811690640100000000900460ff1682565b60005433600160a060020a03908116911614613c3d57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561371157600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600a54600090600160a060020a0316818080808080866347c17bac8a836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515613d2e57600080fd5b6102c65a03f11515613d3f57600080fd5b5050506040518051925060009150505b81811015613dfe5786600160a060020a03166375fe2e338a8360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515613db457600080fd5b6102c65a03f11515613dc557600080fd5b5050506040518051935050600067ffffffffffffffff84161115613df657613dec836114a4565b9681019690955093505b600101613d4f565b5093979650505050505050565b600160a060020a033316600090815260016020819052604082205460ff16151514613e3557600080fd5b50600a54600160a060020a031663ffffffff8a161580613ef15750600081600160a060020a03166341b0eb5360018d63ffffffff166000604051602001526040518363ffffffff1660e060020a02815260040180836004811115613e9557fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515613ed457600080fd5b6102c65a03f11515613ee557600080fd5b50505060405180519050115b15613efb57600080fd5b60008960ff161115613fb35780600160a060020a03166326bda73960008c63ffffffff168c6000604051602001526040518463ffffffff1660e060020a02815260040180846004811115613f4b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b1515613f9757600080fd5b6102c65a03f11515613fa857600080fd5b505050604051805150505b60008860ff16111561406b5780600160a060020a03166326bda73960008c63ffffffff168b6000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561400357fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561404f57600080fd5b6102c65a03f1151561406057600080fd5b505050604051805150505b80600160a060020a03166326bda73960018c63ffffffff168a6000604051602001526040518463ffffffff1660e060020a028152600401808460048111156140af57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156140fb57600080fd5b6102c65a03f1151561410c57600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561415a57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156141a657600080fd5b6102c65a03f115156141b757600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16886000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561420557fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561425157600080fd5b6102c65a03f1151561426257600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16876000604051602001526040518463ffffffff1660e060020a028152600401808460048111156142b057fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156142fc57600080fd5b6102c65a03f1151561430d57600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16866000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561435b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b15156143a757600080fd5b6102c65a03f115156143b857600080fd5b50505060405180515050600160a060020a0381166326bda739600163ffffffff8d16856000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561440657fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561445257600080fd5b6102c65a03f1151561446357600080fd5b5050506040518051505050505050505050505050565b600a54600160a060020a03168063522f681530823160006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156144da57600080fd5b6102c65a03f115156144eb57600080fd5b5050506040518051505050565b600681565b60065481565b60075461ffff1681565b738a60806f05876f4d6db00c877b0558dbcad3068281565b600160a060020a033316600090815260016020819052604082205460ff1615151461454f57600080fd5b5063ffffffff909116600090815260046020526040902080549115156401000000000264ff0000000019909216919091179055565b63ffffffff80821660009081526003602081905260409091208054600182015492820154908416931690509193909250565b60025460ff1681565b60005433600160a060020a039081169116146145da57600080fd5b600160a060020a038116156137115760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600a54600090600160a060020a031681808263c782fc6086836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561467457600080fd5b6102c65a03f1151561468557600080fd5b50505060405180519050915061469a85613ccc565b91909101949350505050565b6000806146b1614819565b600a54600160a060020a031691506000826307202460868360405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b151561470f57600080fd5b6102c65a03f1151561472057600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a01525063ffffffff90811660c089015290811660a08801529081166080870152600160a060020a039091166040860152166020840190815267ffffffffffffffff90911683526004906000905163ffffffff168152602081019190915260400160002054640100000000900460ff1695945050505050565b60008282028315806147e357508284828115156147e057fe5b04145b15156119db57fe5b60008282018381108015906147e35750828110156119db57fe5b6000808284101561481257fe5b5050900390565b610100604051908101604090815260008083526020830181905290820152606081016148436148cc565b8152600060208201819052604082018190526060820181905260809091015290565b81548183558181151161489957600701600890048160070160089004836000526020600020918201910161489991906148de565b505050565b60a0604051908101604090815260008083526020830181905290820181905260608201819052608082015290565b60206040519081016040526000815290565b6148fc91905b808211156148f857600081556001016148e4565b5090565b905600a165627a7a72305820de2c7d2b7c4c2667b06cd2cb9244d23d79668bf26275594b81a2a7437b49f2410029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e

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

000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e

-----Decoded View---------------
Arg [0] : _dataContract (address): 0xabc1c404424bdf24c19a5cc5ef8f47781d18eb3e

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


Swarm Source

bzzr://de2c7d2b7c4c2667b06cd2cb9244d23d79668bf26275594b81a2a7437b49f241
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.