ETH Price: $2,054.22 (+4.42%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Gen Level Exp66945662018-11-13 3:26:542668 days ago1542079614IN
0xD602eF9d...FB890D01b
0 ETH0.0268381113
Add Moderator65805282018-10-25 11:16:202687 days ago1540466180IN
0xD602eF9d...FB890D01b
0 ETH0.000643413
Set Contract65805052018-10-25 11:10:332687 days ago1540465833IN
0xD602eF9d...FB890D01b
0 ETH0.0008473513

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Increase Monster...71013002019-01-21 0:57:472599 days ago1548032267
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj71013002019-01-21 0:57:472599 days ago1548032267
0xD602eF9d...FB890D01b
0 ETH
Handle Single It...71013002019-01-21 0:57:472599 days ago1548032267
0xD602eF9d...FB890D01b
0 ETH
Increase Monster...71008162019-01-20 22:48:342599 days ago1548024514
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj71008162019-01-20 22:48:342599 days ago1548024514
0xD602eF9d...FB890D01b
0 ETH
Handle Single It...71008162019-01-20 22:48:342599 days ago1548024514
0xD602eF9d...FB890D01b
0 ETH
Increase Monster...71000702019-01-20 19:38:062599 days ago1548013086
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj71000702019-01-20 19:38:062599 days ago1548013086
0xD602eF9d...FB890D01b
0 ETH
Handle Single It...71000702019-01-20 19:38:062599 days ago1548013086
0xD602eF9d...FB890D01b
0 ETH
Update Index Of ...70998132019-01-20 18:36:022599 days ago1548009362
0xD602eF9d...FB890D01b
0 ETH
Get Element In A...70998132019-01-20 18:36:022599 days ago1548009362
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj70998132019-01-20 18:36:022599 days ago1548009362
0xD602eF9d...FB890D01b
0 ETH
Handle Multiple ...70998132019-01-20 18:36:022599 days ago1548009362
0xD602eF9d...FB890D01b
0 ETH
Increase Monster...70995722019-01-20 17:37:282599 days ago1548005848
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj70995722019-01-20 17:37:282599 days ago1548005848
0xD602eF9d...FB890D01b
0 ETH
Handle Single It...70995722019-01-20 17:37:282599 days ago1548005848
0xD602eF9d...FB890D01b
0 ETH
Increase Monster...70995622019-01-20 17:35:212599 days ago1548005721
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj70995622019-01-20 17:35:212599 days ago1548005721
0xD602eF9d...FB890D01b
0 ETH
Handle Single It...70995622019-01-20 17:35:212599 days ago1548005721
0xD602eF9d...FB890D01b
0 ETH
Update Index Of ...70994672019-01-20 17:12:162599 days ago1548004336
0xD602eF9d...FB890D01b
0 ETH
Get Element In A...70994672019-01-20 17:12:162599 days ago1548004336
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj70994672019-01-20 17:12:162599 days ago1548004336
0xD602eF9d...FB890D01b
0 ETH
Handle Multiple ...70994672019-01-20 17:12:162599 days ago1548004336
0xD602eF9d...FB890D01b
0 ETH
Increase Monster...70994482019-01-20 17:06:532599 days ago1548004013
0xD602eF9d...FB890D01b
0 ETH
Get Monster Obj70994482019-01-20 17:06:532599 days ago1548004013
0xD602eF9d...FB890D01b
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtheremonAdventureHandler

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-10-25
*/

pragma solidity ^0.4.23;

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

    constructor() 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
    }
}

contract EtheremonDataBase is EtheremonEnum {
    // read
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime);
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8);

    // write
    function increaseMonsterExp(uint64 _objId, uint32 amount) public;
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) public returns(uint);
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) public;
    
}

interface EtheremonMonsterNFTInterface {
   function triggerTransferEvent(address _from, address _to, uint _tokenId) external;
}

contract EtheremonAdventureHandler is BasicAccessControl, EtheremonEnum {
    uint8 constant public STAT_MAX_VALUE = 32;
    uint8 constant public LEVEL_MAX_VALUE = 254;
    
    struct MonsterObjAcc {
        uint64 monsterId;
        uint32 classId;
        address trainer;
        string name;
        uint32 exp;
        uint32 createIndex;
        uint32 lastClaimIndex;
        uint createTime;
    }
    
    // address
    address public dataContract;
    address public monsterNFT;
    
    mapping(uint8 => uint32) public levelExps;
    uint public levelItemClass = 200;
    uint public expItemClass = 201;
    uint public rebornItemClass = 500;
    uint[] public rebornMonsterIds = [26359, 38315, 25480, 38313, 23402, 25241, 38307, 23473, 25236, 38472, 25445, 38430, 27113];
    
    function setContract(address _dataContract, address _monsterNFT) onlyModerators public {
        dataContract = _dataContract;
        monsterNFT = _monsterNFT;
    }
    
    function setConfig(uint _levelItemClass, uint _expItemClass, uint _rebornItemClass) onlyModerators public {
        levelItemClass = _levelItemClass;
        expItemClass = _expItemClass;
        rebornItemClass = _rebornItemClass;
    }
    
    function genLevelExp() onlyModerators external {
        uint8 level = 1;
        uint32 requirement = 100;
        uint32 sum = requirement;
        while(level <= 100) {
            levelExps[level] = sum;
            level += 1;
            requirement = (requirement * 11) / 10 + 5;
            sum += requirement;
        }
    }
    
    function handleSingleItem(address _sender, uint _classId, uint _value, uint _target, uint _param) onlyModerators public {
        // check ownership of _target
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        if (_classId == rebornItemClass) {
            if (rebornMonsterIds.length == 0) revert();
            _param = getRandom(_sender, block.number-1) % rebornMonsterIds.length;
            _target = rebornMonsterIds[_param];
            
            // remove monsterId
            rebornMonsterIds[_param] = rebornMonsterIds[rebornMonsterIds.length-1];
            delete rebornMonsterIds[rebornMonsterIds.length-1];
            rebornMonsterIds.length--;

            // transfer target to sender 
            data.addMonsterIdMapping(_sender, uint64(_target));
            EtheremonMonsterNFTInterface(monsterNFT).triggerTransferEvent(address(0), _sender, uint64(_target));

            return;
        } 
        
        
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_target));
        if (obj.monsterId != _target || obj.trainer != _sender) revert();
        
        if (_classId == expItemClass) {
            // exp item
            data.increaseMonsterExp(obj.monsterId, uint32(_value));
        } else if (_classId == levelItemClass) {
            // level item
            uint8 currentLevel = getLevel(obj.exp);
            currentLevel += uint8(_value);
            if (levelExps[currentLevel-1] < obj.exp || currentLevel > LEVEL_MAX_VALUE)
                revert();
            data.increaseMonsterExp(obj.monsterId, levelExps[currentLevel-1] - obj.exp);
        } else {
            revert();
        }
    }
    
    function handleMultipleItems(address _sender, uint _classId1, uint _classId2, uint _classId3, uint _target, uint _param) onlyModerators public {
        EtheremonDataBase data = EtheremonDataBase(dataContract);
        MonsterObjAcc memory obj;
        (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_target));
        if (obj.monsterId != _target || obj.trainer != _sender) revert();
        
        
        uint index = 0;
        if (_classId1 == 300 && _classId2 == 301 && _classId3 == 302) {
            //health shards
            index = 0;
        } else if (_classId1 == 310 && _classId2 == 311 && _classId3 == 312) {
            // primary attack shards
            index = 1;
        } else if (_classId1 == 320 && _classId2 == 321 && _classId3 == 322) {
            // primary defense shards
            index = 2;
        } else if (_classId1 == 330 && _classId2 == 331 && _classId3 == 332) {
            // secondary attack shards
            index = 3;
        } else if (_classId1 == 340 && _classId2 == 341 && _classId3 == 342) {
            // secondary defense shards
            index = 4;
        } else if (_classId1 == 350 && _classId2 == 351 && _classId3 == 352) {
            // speed shards
            index = 5;
        }
        
        uint8 currentValue = data.getElementInArrayType(ArrayType.STAT_BASE, obj.monsterId, index);
        if (currentValue + 1 >= LEVEL_MAX_VALUE)
            revert();
        data.updateIndexOfArrayType(ArrayType.STAT_BASE, obj.monsterId, index, currentValue + 1);
    }
    
    // public method
    function getRandom(address _player, uint _block) view public returns(uint) {
        return uint(keccak256(abi.encodePacked(blockhash(_block), _player)));
    }
    
    function getLevel(uint32 exp) view public returns (uint8) {
        uint8 minIndex = 1;
        uint8 maxIndex = 100;
        uint8 currentIndex;
     
        while (minIndex < maxIndex) {
            currentIndex = (minIndex + maxIndex) / 2;
            if (exp < levelExps[currentIndex])
                maxIndex = currentIndex;
            else
                minIndex = currentIndex + 1;
        }

        return minIndex;
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"expItemClass","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_levelItemClass","type":"uint256"},{"name":"_expItemClass","type":"uint256"},{"name":"_rebornItemClass","type":"uint256"}],"name":"setConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_classId","type":"uint256"},{"name":"_value","type":"uint256"},{"name":"_target","type":"uint256"},{"name":"_param","type":"uint256"}],"name":"handleSingleItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebornItemClass","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_monsterNFT","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LEVEL_MAX_VALUE","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"genLevelExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_classId1","type":"uint256"},{"name":"_classId2","type":"uint256"},{"name":"_classId3","type":"uint256"},{"name":"_target","type":"uint256"},{"name":"_param","type":"uint256"}],"name":"handleMultipleItems","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"monsterNFT","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rebornMonsterIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"levelExps","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"},{"name":"_block","type":"uint256"}],"name":"getRandom","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STAT_MAX_VALUE","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"exp","type":"uint32"}],"name":"getLevel","outputs":[{"name":"","type":"uint8"}],"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":"levelItemClass","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"}]

6000805460a060020a61ffff02191690556002805460ff1916905560c860055560c96006556101f46007556102206040526166f760809081526195ab60a05261638860c0526195a960e052615b6a61010052616299610120526195a361014052615bb161016052616294610180526196486101a0526163656101c05261961e6101e0526169e96102005261009790600890600d6100af565b5060008054600160a060020a0319163317905561011d565b8280548282559060005260206000209081019282156100f0579160200282015b828111156100f0578251829061ffff169055916020019190600101906100cf565b506100fc929150610100565b5090565b61011a91905b808211156100fc5760008155600101610106565b90565b6113198061012c6000396000f30060806040526004361061013d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c9b016c81146101425780630d66881814610169578063129ee21a1461019a57806314d0f1ba146101ba5780631b44a5ef146101ef5780631c5996551461021c5780632bf6e0a514610231578063326a7d771461025857806333ced3211461028357806348ef5aa8146102985780634efb023e146102b25780635477e571146102de578063678a10131461030e5780636c81fd6d1461032357806375081fe71461034457806378b475a81461035c57806385df2a78146103905780638da5cb5b146103b4578063aec1ee7b146103c9578063b2cad9b7146103de578063b85d6275146103fc578063dd3210181461041d578063ee4e441614610432578063f285329214610447575b600080fd5b34801561014e57600080fd5b50610157610468565b60408051918252519081900360200190f35b34801561017557600080fd5b5061017e61046e565b60408051600160a060020a039092168252519081900360200190f35b3480156101a657600080fd5b506101b8600435602435604435610482565b005b3480156101c657600080fd5b506101db600160a060020a03600435166104c9565b604080519115158252519081900360200190f35b3480156101fb57600080fd5b506101b8600160a060020a03600435166024356044356064356084356104de565b34801561022857600080fd5b506101576109d0565b34801561023d57600080fd5b506101b8600160a060020a03600435811690602435166109d6565b34801561026457600080fd5b5061026d610a61565b6040805160ff9092168252519081900360200190f35b34801561028f57600080fd5b506101b8610a66565b3480156102a457600080fd5b506101b86004351515610b07565b3480156102be57600080fd5b506102c7610b31565b6040805161ffff9092168252519081900360200190f35b3480156102ea57600080fd5b506101b8600160a060020a036004351660243560443560643560843560a435610b53565b34801561031a57600080fd5b5061017e610f5e565b34801561032f57600080fd5b506101b8600160a060020a0360043516610f6d565b34801561035057600080fd5b50610157600435611013565b34801561036857600080fd5b5061037760ff60043516611032565b6040805163ffffffff9092168252519081900360200190f35b34801561039c57600080fd5b50610157600160a060020a036004351660243561104a565b3480156103c057600080fd5b5061017e6110eb565b3480156103d557600080fd5b5061026d6110fa565b3480156103ea57600080fd5b5061026d63ffffffff600435166110ff565b34801561040857600080fd5b506101b8600160a060020a0360043516611162565b34801561042957600080fd5b50610157611208565b34801561043e57600080fd5b506101db61120e565b34801561045357600080fd5b506101b8600160a060020a0360043516611217565b60065481565b6002546101009004600160a060020a031681565b600054600160a060020a03163314806104b057503360009081526001602081905260409091205460ff161515145b15156104bb57600080fd5b600592909255600655600755565b60016020526000908152604090205460ff1681565b60006104e861126a565b60008054600160a060020a031633148061051757503360009081526001602081905260409091205460ff161515145b151561052257600080fd5b600260019054906101000a9004600160a060020a0316925060075487141561071d57600854151561055257600080fd5b60085461056389600019430161104a565b81151561056c57fe5b06935060088481548110151561057e57fe5b600091825260209091200154600880549196509060001981019081106105a057fe5b90600052602060002001546008858154811015156105ba57fe5b6000918252602090912001556008805460001981019081106105d857fe5b600091825260208220015560088054906105f69060001983016112ad565b50604080517f9248019e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015267ffffffffffffffff88166024830152915191851691639248019e9160448082019260009290919082900301818387803b15801561066b57600080fd5b505af115801561067f573d6000803e3d6000fd5b5050600354604080517fc463b008000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038e8116602484015267ffffffffffffffff8c166044840152925192909316945063c463b0089350606480820193929182900301818387803b15801561070057600080fd5b505af1158015610714573d6000803e3d6000fd5b505050506109c6565b604080517f0720246000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201529051600160a060020a0385169163072024609160248083019260e09291908290030181600087803b15801561078857600080fd5b505af115801561079c573d6000803e3d6000fd5b505050506040513d60e08110156107b257600080fd5b508051602080830151604080850151606086015160808088015160a0808a015160c09a8b015160e08e015263ffffffff9081169a8d019a909a52908916908b015290871690890152600160a060020a031690870152929092169184019190915267ffffffffffffffff1680835285141580610843575087600160a060020a03168260400151600160a060020a031614155b1561084d57600080fd5b6006548714156108cf578151604080517f5643a71100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909216600483015263ffffffff8816602483015251600160a060020a03851691635643a71191604480830192600092919082900301818387803b15801561070057600080fd5b60055487141561013d576108e682608001516110ff565b6080830151908701600019810160ff1660009081526004602052604090205490925063ffffffff91821691161080610921575060fe60ff8216115b1561092b57600080fd5b8151608083015160ff60001984011660009081526004602081905260408083205481517f5643a71100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9096169286019290925263ffffffff918216939093031660248401529051600160a060020a03861692635643a71192604480830193919282900301818387803b15801561070057600080fd5b5050505050505050565b60075481565b600054600160a060020a0316331480610a0457503360009081526001602081905260409091205460ff161515145b1515610a0f57600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03948516021790556003805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60fe81565b6000805481908190600160a060020a0316331480610a9957503360009081526001602081905260409091205460ff161515145b1515610aa457600080fd5b506001915060649050805b606460ff841611610b025760ff83166000908152600460205260409020805463ffffffff191663ffffffff83811691909117909155600190930192600a90600b8402160460050191508181019050610aaf565b505050565b600054600160a060020a03163314610b1e57600080fd5b6002805460ff1916911515919091179055565b60005474010000000000000000000000000000000000000000900461ffff1681565b6000610b5d61126a565b600080548190600160a060020a0316331480610b8e57503360009081526001602081905260409091205460ff161515145b1515610b9957600080fd5b600254604080517f0720246000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff891660048201529051610100909204600160a060020a03169550859163072024609160248082019260e0929091908290030181600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d60e0811015610c3a57600080fd5b508051602080830151604080850151606086015160808088015160a0808a015160c09a8b015160e08f015263ffffffff9081169a8e019a909a52908916908c0152908716908a0152600160a060020a031690880152929092169185019190915267ffffffffffffffff1680845286141580610ccb575089600160a060020a03168360400151600160a060020a031614155b15610cd557600080fd5b600091508861012c148015610ceb57508761012d145b8015610cf857508661012e145b15610d065760009150610de3565b88610136148015610d18575087610137145b8015610d25575086610138145b15610d335760019150610de3565b88610140148015610d45575087610141145b8015610d52575086610142145b15610d605760029150610de3565b8861014a148015610d7257508761014b145b8015610d7f57508661014c145b15610d8d5760039150610de3565b88610154148015610d9f575087610155145b8015610dac575086610156145b15610dba5760049150610de3565b8861015e148015610dcc57508761015f145b8015610dd9575086610160145b15610de357600591505b8251604080517f62b21ad70000000000000000000000000000000000000000000000000000000081526003600482015267ffffffffffffffff90921660248301526044820184905251600160a060020a038616916362b21ad79160648083019260209291908290030181600087803b158015610e5e57600080fd5b505af1158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051905060fe6001820160ff1610610e9f57600080fd5b8251604080517f321d2a4f0000000000000000000000000000000000000000000000000000000081526003600482015267ffffffffffffffff90921660248301526044820184905260ff6001840116606483015251600160a060020a0386169163321d2a4f9160848083019260209291908290030181600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050506040513d6020811015610f5057600080fd5b505050505050505050505050565b600354600160a060020a031681565b600054600160a060020a03163314610f8457600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561101057600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b600880548290811061102157fe5b600091825260209091200154905081565b60046020526000908152604090205463ffffffff1681565b6040805182406020808301919091526c01000000000000000000000000600160a060020a0386160282840152825160348184030181526054909201928390528151600093918291908401908083835b602083106110b85780518252601f199092019160209182019101611099565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b600054600160a060020a031681565b602081565b600060016064825b8160ff168360ff16101561115957600260ff848401160460ff811660009081526004602052604090205490915063ffffffff908116908616101561114d57809150611154565b8060010192505b611107565b50909392505050565b600054600160a060020a0316331461117957600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561101057600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b60055481565b60025460ff1681565b600054600160a060020a0316331461122e57600080fd5b600160a060020a038116156110105760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60408051610100810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c0810182905260e081019190915290565b815481835581811115610b0257600083815260209020610b029181019083016112ea91905b808211156112e657600081556001016112d2565b5090565b905600a165627a7a72305820f2d7721fd252354c73fb8c49bdd57ee68b178dc046c8abbfd8fcf9c2f3820ba70029

Deployed Bytecode

0x60806040526004361061013d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c9b016c81146101425780630d66881814610169578063129ee21a1461019a57806314d0f1ba146101ba5780631b44a5ef146101ef5780631c5996551461021c5780632bf6e0a514610231578063326a7d771461025857806333ced3211461028357806348ef5aa8146102985780634efb023e146102b25780635477e571146102de578063678a10131461030e5780636c81fd6d1461032357806375081fe71461034457806378b475a81461035c57806385df2a78146103905780638da5cb5b146103b4578063aec1ee7b146103c9578063b2cad9b7146103de578063b85d6275146103fc578063dd3210181461041d578063ee4e441614610432578063f285329214610447575b600080fd5b34801561014e57600080fd5b50610157610468565b60408051918252519081900360200190f35b34801561017557600080fd5b5061017e61046e565b60408051600160a060020a039092168252519081900360200190f35b3480156101a657600080fd5b506101b8600435602435604435610482565b005b3480156101c657600080fd5b506101db600160a060020a03600435166104c9565b604080519115158252519081900360200190f35b3480156101fb57600080fd5b506101b8600160a060020a03600435166024356044356064356084356104de565b34801561022857600080fd5b506101576109d0565b34801561023d57600080fd5b506101b8600160a060020a03600435811690602435166109d6565b34801561026457600080fd5b5061026d610a61565b6040805160ff9092168252519081900360200190f35b34801561028f57600080fd5b506101b8610a66565b3480156102a457600080fd5b506101b86004351515610b07565b3480156102be57600080fd5b506102c7610b31565b6040805161ffff9092168252519081900360200190f35b3480156102ea57600080fd5b506101b8600160a060020a036004351660243560443560643560843560a435610b53565b34801561031a57600080fd5b5061017e610f5e565b34801561032f57600080fd5b506101b8600160a060020a0360043516610f6d565b34801561035057600080fd5b50610157600435611013565b34801561036857600080fd5b5061037760ff60043516611032565b6040805163ffffffff9092168252519081900360200190f35b34801561039c57600080fd5b50610157600160a060020a036004351660243561104a565b3480156103c057600080fd5b5061017e6110eb565b3480156103d557600080fd5b5061026d6110fa565b3480156103ea57600080fd5b5061026d63ffffffff600435166110ff565b34801561040857600080fd5b506101b8600160a060020a0360043516611162565b34801561042957600080fd5b50610157611208565b34801561043e57600080fd5b506101db61120e565b34801561045357600080fd5b506101b8600160a060020a0360043516611217565b60065481565b6002546101009004600160a060020a031681565b600054600160a060020a03163314806104b057503360009081526001602081905260409091205460ff161515145b15156104bb57600080fd5b600592909255600655600755565b60016020526000908152604090205460ff1681565b60006104e861126a565b60008054600160a060020a031633148061051757503360009081526001602081905260409091205460ff161515145b151561052257600080fd5b600260019054906101000a9004600160a060020a0316925060075487141561071d57600854151561055257600080fd5b60085461056389600019430161104a565b81151561056c57fe5b06935060088481548110151561057e57fe5b600091825260209091200154600880549196509060001981019081106105a057fe5b90600052602060002001546008858154811015156105ba57fe5b6000918252602090912001556008805460001981019081106105d857fe5b600091825260208220015560088054906105f69060001983016112ad565b50604080517f9248019e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015267ffffffffffffffff88166024830152915191851691639248019e9160448082019260009290919082900301818387803b15801561066b57600080fd5b505af115801561067f573d6000803e3d6000fd5b5050600354604080517fc463b008000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038e8116602484015267ffffffffffffffff8c166044840152925192909316945063c463b0089350606480820193929182900301818387803b15801561070057600080fd5b505af1158015610714573d6000803e3d6000fd5b505050506109c6565b604080517f0720246000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201529051600160a060020a0385169163072024609160248083019260e09291908290030181600087803b15801561078857600080fd5b505af115801561079c573d6000803e3d6000fd5b505050506040513d60e08110156107b257600080fd5b508051602080830151604080850151606086015160808088015160a0808a015160c09a8b015160e08e015263ffffffff9081169a8d019a909a52908916908b015290871690890152600160a060020a031690870152929092169184019190915267ffffffffffffffff1680835285141580610843575087600160a060020a03168260400151600160a060020a031614155b1561084d57600080fd5b6006548714156108cf578151604080517f5643a71100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909216600483015263ffffffff8816602483015251600160a060020a03851691635643a71191604480830192600092919082900301818387803b15801561070057600080fd5b60055487141561013d576108e682608001516110ff565b6080830151908701600019810160ff1660009081526004602052604090205490925063ffffffff91821691161080610921575060fe60ff8216115b1561092b57600080fd5b8151608083015160ff60001984011660009081526004602081905260408083205481517f5643a71100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9096169286019290925263ffffffff918216939093031660248401529051600160a060020a03861692635643a71192604480830193919282900301818387803b15801561070057600080fd5b5050505050505050565b60075481565b600054600160a060020a0316331480610a0457503360009081526001602081905260409091205460ff161515145b1515610a0f57600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03948516021790556003805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60fe81565b6000805481908190600160a060020a0316331480610a9957503360009081526001602081905260409091205460ff161515145b1515610aa457600080fd5b506001915060649050805b606460ff841611610b025760ff83166000908152600460205260409020805463ffffffff191663ffffffff83811691909117909155600190930192600a90600b8402160460050191508181019050610aaf565b505050565b600054600160a060020a03163314610b1e57600080fd5b6002805460ff1916911515919091179055565b60005474010000000000000000000000000000000000000000900461ffff1681565b6000610b5d61126a565b600080548190600160a060020a0316331480610b8e57503360009081526001602081905260409091205460ff161515145b1515610b9957600080fd5b600254604080517f0720246000000000000000000000000000000000000000000000000000000000815267ffffffffffffffff891660048201529051610100909204600160a060020a03169550859163072024609160248082019260e0929091908290030181600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d60e0811015610c3a57600080fd5b508051602080830151604080850151606086015160808088015160a0808a015160c09a8b015160e08f015263ffffffff9081169a8e019a909a52908916908c0152908716908a0152600160a060020a031690880152929092169185019190915267ffffffffffffffff1680845286141580610ccb575089600160a060020a03168360400151600160a060020a031614155b15610cd557600080fd5b600091508861012c148015610ceb57508761012d145b8015610cf857508661012e145b15610d065760009150610de3565b88610136148015610d18575087610137145b8015610d25575086610138145b15610d335760019150610de3565b88610140148015610d45575087610141145b8015610d52575086610142145b15610d605760029150610de3565b8861014a148015610d7257508761014b145b8015610d7f57508661014c145b15610d8d5760039150610de3565b88610154148015610d9f575087610155145b8015610dac575086610156145b15610dba5760049150610de3565b8861015e148015610dcc57508761015f145b8015610dd9575086610160145b15610de357600591505b8251604080517f62b21ad70000000000000000000000000000000000000000000000000000000081526003600482015267ffffffffffffffff90921660248301526044820184905251600160a060020a038616916362b21ad79160648083019260209291908290030181600087803b158015610e5e57600080fd5b505af1158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051905060fe6001820160ff1610610e9f57600080fd5b8251604080517f321d2a4f0000000000000000000000000000000000000000000000000000000081526003600482015267ffffffffffffffff90921660248301526044820184905260ff6001840116606483015251600160a060020a0386169163321d2a4f9160848083019260209291908290030181600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050506040513d6020811015610f5057600080fd5b505050505050505050505050565b600354600160a060020a031681565b600054600160a060020a03163314610f8457600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561101057600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b600880548290811061102157fe5b600091825260209091200154905081565b60046020526000908152604090205463ffffffff1681565b6040805182406020808301919091526c01000000000000000000000000600160a060020a0386160282840152825160348184030181526054909201928390528151600093918291908401908083835b602083106110b85780518252601f199092019160209182019101611099565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b600054600160a060020a031681565b602081565b600060016064825b8160ff168360ff16101561115957600260ff848401160460ff811660009081526004602052604090205490915063ffffffff908116908616101561114d57809150611154565b8060010192505b611107565b50909392505050565b600054600160a060020a0316331461117957600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561101057600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b60055481565b60025460ff1681565b600054600160a060020a0316331461122e57600080fd5b600160a060020a038116156110105760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60408051610100810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c0810182905260e081019190915290565b815481835581811115610b0257600083815260209020610b029181019083016112ea91905b808211156112e657600081556001016112d2565b5090565b905600a165627a7a72305820f2d7721fd252354c73fb8c49bdd57ee68b178dc046c8abbfd8fcf9c2f3820ba70029

Swarm Source

bzzr://f2d7721fd252354c73fb8c49bdd57ee68b178dc046c8abbfd8fcf9c2f3820ba7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.