Sponsored Link:   PAVOCOIN - IoT blockchain for the AgTech ecosystem. Bringing together IoT, blockchain, and agriculture. Join now!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 7 txns
 Latest 7 txns


TxHash Age From To Value [TxFee]
0xb1b2c27ad572d911d1dac175fe6133609ee4ca606e0f142c0babae8b0f4ca74736 days 1 hr ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.000194092
0x31898dbb70c48812d54ff75188285bf1afafb39c908c54c6647ee20e6d9fe31450 days 20 hrs ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.000339661
0x2453a7b43777d8bd4b6c479490c7d01c086272bd7eaeb1344cce4cf4ffa009a556 days 49 mins ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.00024452
0x74bb4aa1337466ff01df63762cfe8d78362ea3b132769353d763ff3dc23b9af3102 days 18 hrs ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.001075888
0x7f8d0b47466999cc9f10a5c74eabe39b9f6d5c0c7886fe782e6cedee4d0616ad110 days 18 hrs ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.001075888
0x8daac7c350593fa697f45523fe7c5a43803543f8b405a59c82ade1cc4ed19883110 days 18 hrs ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN   0xfec769e54c266de2bc3fa5df7d9f0fe2a1e394610 Ether0.000601128
0x00d6b146d912f33d109d4377a89396ffb03cea61ca231cdd582773b5203e28b5111 days 18 hrs ago0xe0a66218c40230967d4240d25f6220a28e52c7ff  IN    Contract Creation0 Ether0.011807929
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact match)
Contract Name: EtheremonPayment
Compiler Version: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.16;

// copyright [email protected]

contract SafeMath {

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

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

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

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

}

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

    function BasicAccessControl() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyModerators() {
        require(msg.sender == owner || moderators[msg.sender] == true);
        _;
    }

    modifier isActive {
        require(!isMaintaining);
        _;
    }

    function ChangeOwner(address _newOwner) onlyOwner public {
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }


    function AddModerator(address _newModerator) onlyOwner public {
        if (moderators[_newModerator] == false) {
            moderators[_newModerator] = true;
            totalModerators += 1;
        }
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner public {
        if (moderators[_oldModerator] == true) {
            moderators[_oldModerator] = false;
            totalModerators -= 1;
        }
    }

    function UpdateMaintaining(bool _isMaintaining) onlyOwner public {
        isMaintaining = _isMaintaining;
    }
}

contract EtheremonEnum {

    enum ResultCode {
        SUCCESS,
        ERROR_CLASS_NOT_FOUND,
        ERROR_LOW_BALANCE,
        ERROR_SEND_FAIL,
        ERROR_NOT_TRAINER,
        ERROR_NOT_ENOUGH_MONEY,
        ERROR_INVALID_AMOUNT
    }
    
    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 ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
}

contract BattleInterface {
    function createCastleWithToken(address _trainer, uint32 _noBrick, string _name, uint64 _a1, uint64 _a2, uint64 _a3, uint64 _s1, uint64 _s2, uint64 _s3) external;
}

contract TransformInterface {
    function removeHatchingTimeWithToken(address _trainer) external;
    function buyEggWithToken(address _trainer) external;
}

contract EtheremonPayment is EtheremonEnum, BasicAccessControl, SafeMath {
    uint8 constant public STAT_COUNT = 6;
    uint8 constant public STAT_MAX = 32;
    uint8 constant public GEN0_NO = 24;
    
    enum PayServiceType {
        NONE,
        FAST_HATCHING,
        RANDOM_EGG
    }
    
    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;
    }
    
    // linked smart contract
    address public dataContract;
    address public battleContract;
    address public tokenContract;
    address public transformContract;
    
    address private lastHunter = address(0x0);
    
    // config
    uint public brickPrice = 3 * 10 ** 8; // 3 tokens
    uint public fastHatchingPrice = 35 * 10 ** 8; // 15 tokens 
    uint public buyEggPrice = 50 * 10 ** 8; // 50 tokens
    uint public tokenPrice = 0.004 ether / 10 ** 8;
    uint public maxDexSize = 200;
    uint public latestValue = 0;
    
    // event
    event EventCatchMonster(address indexed trainer, uint64 objId);
    
    // modifier
    modifier requireDataContract {
        require(dataContract != address(0));
        _;        
    }
    
    modifier requireBattleContract {
        require(battleContract != address(0));
        _;
    }

    modifier requireTokenContract {
        require(tokenContract != address(0));
        _;
    }
    
    modifier requireTransformContract {
        require(transformContract != address(0));
        _;
    }
    
    function EtheremonPayment(address _dataContract, address _battleContract, address _tokenContract, address _transformContract) public {
        dataContract = _dataContract;
        battleContract = _battleContract;
        tokenContract = _tokenContract;
        transformContract = _transformContract;
    }
    
    // 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);
    }
    
    // admin
    function withdrawToken(address _sendTo, uint _amount) onlyModerators requireTokenContract external {
        ERC20Interface token = ERC20Interface(tokenContract);
        if (_amount > token.balanceOf(address(this))) {
            revert();
        }
        token.transfer(_sendTo, _amount);
    }
    
    function setContract(address _dataContract, address _battleContract, address _tokenContract, address _transformContract) onlyModerators external {
        dataContract = _dataContract;
        battleContract = _battleContract;
        tokenContract = _tokenContract;
        transformContract = _transformContract;
    }
    
    function setConfig(uint _brickPrice, uint _tokenPrice, uint _maxDexSize, uint _fastHatchingPrice, uint _buyEggPrice) onlyModerators external {
        brickPrice = _brickPrice;
        tokenPrice = _tokenPrice;
        maxDexSize = _maxDexSize;
        fastHatchingPrice = _fastHatchingPrice;
        buyEggPrice = _buyEggPrice;
    }
    
    // battle
    function giveBattleBonus(address _trainer, uint _amount) isActive requireBattleContract requireTokenContract public {
        if (msg.sender != battleContract)
            revert();
        ERC20Interface token = ERC20Interface(tokenContract);
        token.transfer(_trainer, _amount);
    }
    
    function createCastle(address _trainer, uint _tokens, string _name, uint64 _a1, uint64 _a2, uint64 _a3, uint64 _s1, uint64 _s2, uint64 _s3) isActive requireBattleContract requireTokenContract public returns(uint){
        if (msg.sender != tokenContract)
            revert();
        BattleInterface battle = BattleInterface(battleContract);
        battle.createCastleWithToken(_trainer, uint32(_tokens/brickPrice), _name, _a1, _a2, _a3, _s1, _s2, _s3);
        return _tokens;
    }
    
    function catchMonster(address _trainer, uint _tokens, uint32 _classId, string _name) isActive requireDataContract requireTokenContract public returns(uint){
        if (msg.sender != tokenContract)
            revert();
        
        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(_trainer) > maxDexSize)
            revert();

        uint requiredToken = class.price/tokenPrice;
        if (_tokens < requiredToken)
            revert();

        // add monster
        uint64 objId = data.addMonsterObj(_classId, _trainer, _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 = _trainer;
        EventCatchMonster(_trainer, objId);
        return requiredToken;
    }
    

    function payService(address _trainer, uint _tokens, uint32 _type, string _text, uint64 _param1, uint64 _param2, uint64 _param3, uint64 _param4, uint64 _param5, uint64 _param6) isActive requireTransformContract  public returns(uint result) {
        if (msg.sender != tokenContract)
            revert();
        
        TransformInterface transform = TransformInterface(transformContract);
        if (_type == uint32(PayServiceType.FAST_HATCHING)) {
            // remove hatching time 
            if (_tokens < fastHatchingPrice)
                revert();
            transform.removeHatchingTimeWithToken(_trainer);
            
            return fastHatchingPrice;
        } else if (_type == uint32(PayServiceType.RANDOM_EGG)) {
            if (_tokens < buyEggPrice)
                revert();
            transform.buyEggWithToken(_trainer);

            return buyEggPrice;
        } else {
            revert();
        }
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"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":true,"inputs":[],"name":"buyEggPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_type","type":"uint32"},{"name":"_text","type":"string"},{"name":"_param1","type":"uint64"},{"name":"_param2","type":"uint64"},{"name":"_param3","type":"uint64"},{"name":"_param4","type":"uint64"},{"name":"_param5","type":"uint64"},{"name":"_param6","type":"uint64"}],"name":"payService","outputs":[{"name":"result","type":"uint256"}],"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":false,"inputs":[{"name":"_brickPrice","type":"uint256"},{"name":"_tokenPrice","type":"uint256"},{"name":"_maxDexSize","type":"uint256"},{"name":"_fastHatchingPrice","type":"uint256"},{"name":"_buyEggPrice","type":"uint256"}],"name":"setConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"battleContract","outputs":[{"name":"","type":"address"}],"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":"latestValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_name","type":"string"},{"name":"_a1","type":"uint64"},{"name":"_a2","type":"uint64"},{"name":"_a3","type":"uint64"},{"name":"_s1","type":"uint64"},{"name":"_s2","type":"uint64"},{"name":"_s3","type":"uint64"}],"name":"createCastle","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"giveBattleBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"},{"name":"_tokenContract","type":"address"},{"name":"_transformContract","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_classId","type":"uint32"},{"name":"_name","type":"string"}],"name":"catchMonster","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transformContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"brickPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STAT_COUNT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fastHatchingPrice","outputs":[{"name":"","type":"uint256"}],"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"},{"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"},{"name":"_tokenContract","type":"address"},{"name":"_transformContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"trainer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventCatchMonster","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a61ffff02191681556002805460ff1916600117905560068054600160a060020a03191690556311e1a30060075563d09dc30060085564012a05f2006009556302625a00600a5560c8600b55600c55341561006657600080fd5b6040516080806115818339810160405280805191906020018051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600280549883166101000261010060a860020a0319909916989098179097556003805496821696881696909617909555600480549486169487169490941790935550506005805492909116919092161790556114738061010e6000396000f30060606040526004361061015b5763ffffffff60e060020a6000350416630d668818811461016057806314d0f1ba1461018f5780631649b76d146101c25780631c9c549d146101e757806330a95aa7146101fa5780633a34f09a146102995780633f720922146102da578063423b1ca3146102fe57806348ef5aa8146103115780634ab5cc82146103295780634e3dc2f11461033c5780634efb023e1461034f57806355a373d6146103795780635abcc4171461038c5780635fee0aac14610422578063615dbebb146104445780636c81fd6d1461047557806373d65c00146104945780637ff9b596146104a757806382d559de146104ba5780638da5cb5b146105285780639e281a981461053b578063b85d62751461055d578063bf12bf4f1461057c578063d8e20e2c1461058f578063d98e14bd146105a2578063e182e27a146105b5578063ee4e4416146105c8578063f2853292146105db575b600080fd5b341561016b57600080fd5b6101736105fa565b604051600160a060020a03909116815260200160405180910390f35b341561019a57600080fd5b6101ae600160a060020a036004351661060e565b604051901515815260200160405180910390f35b34156101cd57600080fd5b6101d5610623565b60405190815260200160405180910390f35b34156101f257600080fd5b6101d5610629565b341561020557600080fd5b6101d560048035600160a060020a031690602480359160443563ffffffff169160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505067ffffffffffffffff853581169560208101358216955060408101358216945060608101358216935060808101358216925060a001351661062f565b34156102a457600080fd5b6102c460ff60043581169060243516600160a060020a03604435166107a2565b60405160ff909116815260200160405180910390f35b34156102e557600080fd5b6102fc6004356024356044356064356084356107fc565b005b341561030957600080fd5b610173610859565b341561031c57600080fd5b6102fc6004351515610868565b341561033457600080fd5b6101d5610896565b341561034757600080fd5b6102c461089c565b341561035a57600080fd5b6103626108a1565b60405161ffff909116815260200160405180910390f35b341561038457600080fd5b6101736108c3565b341561039757600080fd5b6101d560048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505067ffffffffffffffff853581169560208101358216955060408101358216945060608101358216935060808101358216925060a00135166108d2565b341561042d57600080fd5b6102fc600160a060020a0360043516602435610a7a565b341561044f57600080fd5b6102fc600160a060020a0360043581169060243581169060443581169060643516610b57565b341561048057600080fd5b6102fc600160a060020a0360043516610c10565b341561049f57600080fd5b6102c4610cba565b34156104b257600080fd5b6101d5610cbf565b34156104c557600080fd5b6101d560048035600160a060020a031690602480359160443563ffffffff169160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cc595505050505050565b341561053357600080fd5b6101736111a3565b341561054657600080fd5b6102fc600160a060020a03600435166024356111b2565b341561056857600080fd5b6102fc600160a060020a03600435166112ef565b341561058757600080fd5b610173611399565b341561059a57600080fd5b6101d56113a8565b34156105ad57600080fd5b6102c46113ae565b34156105c057600080fd5b6101d56113b3565b34156105d357600080fd5b6101ae6113b9565b34156105e657600080fd5b6102fc600160a060020a03600435166113c2565b6002546101009004600160a060020a031681565b60016020526000908152604090205460ff1681565b600b5481565b60095481565b600254600090819060ff161561064457600080fd5b600554600160a060020a0316151561065b57600080fd5b60045433600160a060020a0390811691161461067657600080fd5b50600554600160a060020a031663ffffffff8a166001141561070d576008548b10156106a157600080fd5b80600160a060020a031663a3cb3e978d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156106ef57600080fd5b6102c65a03f1151561070057600080fd5b5050506008549150610793565b63ffffffff8a166002141561015b576009548b101561072b57600080fd5b80600160a060020a0316635b86ce978d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561077957600080fd5b6102c65a03f1151561078a57600080fd5b50505060095491505b509a9950505050505050505050565b6000600019430140600160a060020a03831601815b8460ff168160ff161080156107cf575060068160ff16105b156107e357610100820491506001016107b7565b8560ff16828115156107f157fe5b069695505050505050565b60005433600160a060020a03908116911614806108375750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561084257600080fd5b600794909455600a92909255600b55600855600955565b600354600160a060020a031681565b60005433600160a060020a0390811691161461088357600080fd5b6002805460ff1916911515919091179055565b600c5481565b602081565b60005474010000000000000000000000000000000000000000900461ffff1681565b600454600160a060020a031681565b600254600090819060ff16156108e757600080fd5b600354600160a060020a031615156108fe57600080fd5b600454600160a060020a0316151561091557600080fd5b60045433600160a060020a0390811691161461093057600080fd5b50600354600754600160a060020a0390911690819063b04e7668908d908d81151561095757fe5b048c8c8c8c8c8c8c60405163ffffffff8b811660e060020a028252600160a060020a038b1660048301908152908a16602483015267ffffffffffffffff8881166064840152878116608484015286811660a484015285811660c484015284811660e484015283166101048301526101206044830190815290916101240189818151815260200191508051906020019080838360005b83811015610a045780820151838201526020016109ec565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509a5050505050505050505050600060405180830381600087803b1515610a5757600080fd5b6102c65a03f11515610a6857600080fd5b509a9c9b505050505050505050505050565b60025460009060ff1615610a8d57600080fd5b600354600160a060020a03161515610aa457600080fd5b600454600160a060020a03161515610abb57600080fd5b60035433600160a060020a03908116911614610ad657600080fd5b50600454600160a060020a03168063a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b3757600080fd5b6102c65a03f11515610b4857600080fd5b50505060405180515050505050565b60005433600160a060020a0390811691161480610b925750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610b9d57600080fd5b60028054600160a060020a039586166101000274ffffffffffffffffffffffffffffffffffffffff00199091161790556003805493851673ffffffffffffffffffffffffffffffffffffffff19948516179055600480549285169284169290921790915560058054919093169116179055565b60005433600160a060020a03908116911614610c2b57600080fd5b600160a060020a03811660009081526001602052604090205460ff161515610cb757600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b601881565b600a5481565b600080610cd0611419565b60025460009081908190819060ff1615610ce957600080fd5b6002546101009004600160a060020a03161515610d0557600080fd5b600454600160a060020a03161515610d1c57600080fd5b60045433600160a060020a03908116911614610d3757600080fd5b6002546101009004600160a060020a0316955085639d29cac48a600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515610d9257600080fd5b6102c65a03f11515610da357600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808b01525063ffffffff90811660608a015260408901919091526020880191909152168552845163ffffffff161580610e0157508460800151155b15610e0b57600080fd5b600b5486600160a060020a03166347c17bac8d60006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e6557600080fd5b6102c65a03f11515610e7657600080fd5b505050604051805190501115610e8b57600080fd5b600a548560200151811515610e9c57fe5b049350838a1015610eac57600080fd5b85600160a060020a031663fc4d20f58a8d8b6000604051602001526040518463ffffffff1660e060020a028152600401808463ffffffff1663ffffffff16815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f40578082015183820152602001610f28565b50505050905090810190601f168015610f6d5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610f8d57600080fd5b6102c65a03f11515610f9e57600080fd5b5050506040518051935060009250505b600682101561112b5785600160a060020a03166362b21ad760028b63ffffffff16856000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610ffb57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561104157600080fd5b6102c65a03f1151561105257600080fd5b5050506040518051600654909150611077906020908590600160a060020a03166107a2565b01905085600160a060020a03166326bda739600385846000604051602001526040518463ffffffff1660e060020a028152600401808460048111156110b857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561110457600080fd5b6102c65a03f1151561111557600080fd5b5050506040518051905050600182019150610fae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038d169081179091557f77cb179e9e5f39d98ac520c7c9fe2d085ac4e521f56806105fdeb1032885ee098460405167ffffffffffffffff909116815260200160405180910390a250919998505050505050505050565b600054600160a060020a031681565b6000805433600160a060020a03908116911614806111ee5750600160a060020a03331660009081526001602081905260409091205460ff161515145b15156111f957600080fd5b600454600160a060020a0316151561121057600080fd5b50600454600160a060020a0316806370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561126b57600080fd5b6102c65a03f1151561127c57600080fd5b5050506040518051905082111561129257600080fd5b80600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b3757600080fd5b60005433600160a060020a0390811691161461130a57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff1615151415610cb757600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600554600160a060020a031681565b60075481565b600681565b60085481565b60025460ff1681565b60005433600160a060020a039081169116146113dd57600080fd5b600160a060020a03811615610cb75760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a723058200b791698dc37dab09db1d98af61177579adc39896371a83b71844121deb2a27d0029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000c28bf52d0d4d9447e86d7e7f0e317f273d3c9a300000000000000000000000095daaab98046846bf4b2853e23cba236fa394a3100000000000000000000000057f854ba5baf019ec3a77f81c2966fd0d8905a38

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

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 0000000000000000000000000c28bf52d0d4d9447e86d7e7f0e317f273d3c9a3
Arg [2] : 00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31
Arg [3] : 00000000000000000000000057f854ba5baf019ec3a77f81c2966fd0d8905a38


   Swarm Source:
bzzr://0b791698dc37dab09db1d98af61177579adc39896371a83b71844121deb2a27d

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.