Contract 0xfec769e54c266de2bc3fa5df7d9f0fe2a1e39461

 

TxHash Block Age From To Value [TxFee]
0xb1b2c27ad572d911d1dac175fe6133609ee4ca606e0f142c0babae8b0f4ca7475444346341 days 1 hr agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.000194092
0x31898dbb70c48812d54ff75188285bf1afafb39c908c54c6647ee20e6d9fe3145355503355 days 19 hrs agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.000339661
0x2453a7b43777d8bd4b6c479490c7d01c086272bd7eaeb1344cce4cf4ffa009a55324719361 days 20 mins agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.00024452
0x74bb4aa1337466ff01df63762cfe8d78362ea3b132769353d763ff3dc23b9af35048037407 days 18 hrs agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.001075888
0x7f8d0b47466999cc9f10a5c74eabe39b9f6d5c0c7886fe782e6cedee4d0616ad5000653415 days 18 hrs agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.001075888
0x8daac7c350593fa697f45523fe7c5a43803543f8b405a59c82ade1cc4ed198835000644415 days 18 hrs agoEtheremon: Deployer 1 IN  Etheremon: Payment 20 Ether0.000601128
0x00d6b146d912f33d109d4377a89396ffb03cea61ca231cdd582773b5203e28b54994983416 days 17 hrs agoEtheremon: Deployer 1 IN  Contract Creation0 Ether0.011807929
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash 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 (Optimizer):
200

Contract Source Code

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

60606040526000805460a060020a61ffff02191681556002805460ff1916600117905560068054600160a060020a03191690556311e1a30060075563d09dc30060085564012a05f2006009556302625a00600a5560c8600b55600c55341561006657600080fd5b6040516080806115818339810160405280805191906020018051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600280549883166101000261010060a860020a0319909916989098179097556003805496821696881696909617909555600480549486169487169490941790935550506005805492909116919092161790556114738061010e6000396000f30060606040526004361061015b5763ffffffff60e060020a6000350416630d668818811461016057806314d0f1ba1461018f5780631649b76d146101c25780631c9c549d146101e757806330a95aa7146101fa5780633a34f09a146102995780633f720922146102da578063423b1ca3146102fe57806348ef5aa8146103115780634ab5cc82146103295780634e3dc2f11461033c5780634efb023e1461034f57806355a373d6146103795780635abcc4171461038c5780635fee0aac14610422578063615dbebb146104445780636c81fd6d1461047557806373d65c00146104945780637ff9b596146104a757806382d559de146104ba5780638da5cb5b146105285780639e281a981461053b578063b85d62751461055d578063bf12bf4f1461057c578063d8e20e2c1461058f578063d98e14bd146105a2578063e182e27a146105b5578063ee4e4416146105c8578063f2853292146105db575b600080fd5b341561016b57600080fd5b6101736105fa565b604051600160a060020a03909116815260200160405180910390f35b341561019a57600080fd5b6101ae600160a060020a036004351661060e565b604051901515815260200160405180910390f35b34156101cd57600080fd5b6101d5610623565b60405190815260200160405180910390f35b34156101f257600080fd5b6101d5610629565b341561020557600080fd5b6101d560048035600160a060020a031690602480359160443563ffffffff169160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505067ffffffffffffffff853581169560208101358216955060408101358216945060608101358216935060808101358216925060a001351661062f565b34156102a457600080fd5b6102c460ff60043581169060243516600160a060020a03604435166107a2565b60405160ff909116815260200160405180910390f35b34156102e557600080fd5b6102fc6004356024356044356064356084356107fc565b005b341561030957600080fd5b610173610859565b341561031c57600080fd5b6102fc6004351515610868565b341561033457600080fd5b6101d5610896565b341561034757600080fd5b6102c461089c565b341561035a57600080fd5b6103626108a1565b60405161ffff909116815260200160405180910390f35b341561038457600080fd5b6101736108c3565b341561039757600080fd5b6101d560048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505067ffffffffffffffff853581169560208101358216955060408101358216945060608101358216935060808101358216925060a00135166108d2565b341561042d57600080fd5b6102fc600160a060020a0360043516602435610a7a565b341561044f57600080fd5b6102fc600160a060020a0360043581169060243581169060443581169060643516610b57565b341561048057600080fd5b6102fc600160a060020a0360043516610c10565b341561049f57600080fd5b6102c4610cba565b34156104b257600080fd5b6101d5610cbf565b34156104c557600080fd5b6101d560048035600160a060020a031690602480359160443563ffffffff169160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cc595505050505050565b341561053357600080fd5b6101736111a3565b341561054657600080fd5b6102fc600160a060020a03600435166024356111b2565b341561056857600080fd5b6102fc600160a060020a03600435166112ef565b341561058757600080fd5b610173611399565b341561059a57600080fd5b6101d56113a8565b34156105ad57600080fd5b6102c46113ae565b34156105c057600080fd5b6101d56113b3565b34156105d357600080fd5b6101ae6113b9565b34156105e657600080fd5b6102fc600160a060020a03600435166113c2565b6002546101009004600160a060020a031681565b60016020526000908152604090205460ff1681565b600b5481565b60095481565b600254600090819060ff161561064457600080fd5b600554600160a060020a0316151561065b57600080fd5b60045433600160a060020a0390811691161461067657600080fd5b50600554600160a060020a031663ffffffff8a166001141561070d576008548b10156106a157600080fd5b80600160a060020a031663a3cb3e978d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156106ef57600080fd5b6102c65a03f1151561070057600080fd5b5050506008549150610793565b63ffffffff8a166002141561015b576009548b101561072b57600080fd5b80600160a060020a0316635b86ce978d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561077957600080fd5b6102c65a03f1151561078a57600080fd5b50505060095491505b509a9950505050505050505050565b6000600019430140600160a060020a03831601815b8460ff168160ff161080156107cf575060068160ff16105b156107e357610100820491506001016107b7565b8560ff16828115156107f157fe5b069695505050505050565b60005433600160a060020a03908116911614806108375750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561084257600080fd5b600794909455600a92909255600b55600855600955565b600354600160a060020a031681565b60005433600160a060020a0390811691161461088357600080fd5b6002805460ff1916911515919091179055565b600c5481565b602081565b60005474010000000000000000000000000000000000000000900461ffff1681565b600454600160a060020a031681565b600254600090819060ff16156108e757600080fd5b600354600160a060020a031615156108fe57600080fd5b600454600160a060020a0316151561091557600080fd5b60045433600160a060020a0390811691161461093057600080fd5b50600354600754600160a060020a0390911690819063b04e7668908d908d81151561095757fe5b048c8c8c8c8c8c8c60405163ffffffff8b811660e060020a028252600160a060020a038b1660048301908152908a16602483015267ffffffffffffffff8881166064840152878116608484015286811660a484015285811660c484015284811660e484015283166101048301526101206044830190815290916101240189818151815260200191508051906020019080838360005b83811015610a045780820151838201526020016109ec565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509a5050505050505050505050600060405180830381600087803b1515610a5757600080fd5b6102c65a03f11515610a6857600080fd5b509a9c9b505050505050505050505050565b60025460009060ff1615610a8d57600080fd5b600354600160a060020a03161515610aa457600080fd5b600454600160a060020a03161515610abb57600080fd5b60035433600160a060020a03908116911614610ad657600080fd5b50600454600160a060020a03168063a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b3757600080fd5b6102c65a03f11515610b4857600080fd5b50505060405180515050505050565b60005433600160a060020a0390811691161480610b925750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610b9d57600080fd5b60028054600160a060020a039586166101000274ffffffffffffffffffffffffffffffffffffffff00199091161790556003805493851673ffffffffffffffffffffffffffffffffffffffff19948516179055600480549285169284169290921790915560058054919093169116179055565b60005433600160a060020a03908116911614610c2b57600080fd5b600160a060020a03811660009081526001602052604090205460ff161515610cb757600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b601881565b600a5481565b600080610cd0611419565b60025460009081908190819060ff1615610ce957600080fd5b6002546101009004600160a060020a03161515610d0557600080fd5b600454600160a060020a03161515610d1c57600080fd5b60045433600160a060020a03908116911614610d3757600080fd5b6002546101009004600160a060020a0316955085639d29cac48a600060405160a0015260405163ffffffff83811660e060020a02825291909116600482015260240160a060405180830381600087803b1515610d9257600080fd5b6102c65a03f11515610da357600080fd5b5050506040518051906020018051906020018051906020018051906020018051151560808b01525063ffffffff90811660608a015260408901919091526020880191909152168552845163ffffffff161580610e0157508460800151155b15610e0b57600080fd5b600b5486600160a060020a03166347c17bac8d60006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e6557600080fd5b6102c65a03f11515610e7657600080fd5b505050604051805190501115610e8b57600080fd5b600a548560200151811515610e9c57fe5b049350838a1015610eac57600080fd5b85600160a060020a031663fc4d20f58a8d8b6000604051602001526040518463ffffffff1660e060020a028152600401808463ffffffff1663ffffffff16815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f40578082015183820152602001610f28565b50505050905090810190601f168015610f6d5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515610f8d57600080fd5b6102c65a03f11515610f9e57600080fd5b5050506040518051935060009250505b600682101561112b5785600160a060020a03166362b21ad760028b63ffffffff16856000604051602001526040518463ffffffff1660e060020a02815260040180846004811115610ffb57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561104157600080fd5b6102c65a03f1151561105257600080fd5b5050506040518051600654909150611077906020908590600160a060020a03166107a2565b01905085600160a060020a03166326bda739600385846000604051602001526040518463ffffffff1660e060020a028152600401808460048111156110b857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018260ff1660ff1681526020019350505050602060405180830381600087803b151561110457600080fd5b6102c65a03f1151561111557600080fd5b5050506040518051905050600182019150610fae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038d169081179091557f77cb179e9e5f39d98ac520c7c9fe2d085ac4e521f56806105fdeb1032885ee098460405167ffffffffffffffff909116815260200160405180910390a250919998505050505050505050565b600054600160a060020a031681565b6000805433600160a060020a03908116911614806111ee5750600160a060020a03331660009081526001602081905260409091205460ff161515145b15156111f957600080fd5b600454600160a060020a0316151561121057600080fd5b50600454600160a060020a0316806370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561126b57600080fd5b6102c65a03f1151561127c57600080fd5b5050506040518051905082111561129257600080fd5b80600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b3757600080fd5b60005433600160a060020a0390811691161461130a57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff1615151415610cb757600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600554600160a060020a031681565b60075481565b600681565b60085481565b60025460ff1681565b60005433600160a060020a039081169116146113dd57600080fd5b600160a060020a03811615610cb75760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a723058200b791698dc37dab09db1d98af61177579adc39896371a83b71844121deb2a27d0029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000c28bf52d0d4d9447e86d7e7f0e317f273d3c9a300000000000000000000000095daaab98046846bf4b2853e23cba236fa394a3100000000000000000000000057f854ba5baf019ec3a77f81c2966fd0d8905a38

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

000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000c28bf52d0d4d9447e86d7e7f0e317f273d3c9a300000000000000000000000095daaab98046846bf4b2853e23cba236fa394a3100000000000000000000000057f854ba5baf019ec3a77f81c2966fd0d8905a38

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 0000000000000000000000000c28bf52d0d4d9447e86d7e7f0e317f273d3c9a3
Arg [2] : 00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31
Arg [3] : 00000000000000000000000057f854ba5baf019ec3a77f81c2966fd0d8905a38

Swarm Source

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