[ 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: slave
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.25;

//2019.01.18
///設定合約管理者為master合約
//slave 4.0測試版

contract owned {
    address public master;
    address public contract_owner;

    constructor() public{
        master = 0x25F4A9eeD8F91b0A5aB6ABc1c635eA54a3F98f6E; //測試
        contract_owner = msg.sender;
    }

    modifier onlyMaster{
        require(msg.sender == master);
        _;
    }

    modifier onlyowner{
        require(msg.sender == contract_owner);
        _;
    }

    function transferMastership(address new_master) public onlyMaster {
        master = new_master;
    }

    function transferownership(address new_owner) public onlyowner {
        contract_owner = new_owner;
    }
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

interface IERC721Receiver {
    function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) external returns(bytes4);
}

contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) external view returns (bool) {
        return _supportedInterfaces[interfaceId];
    }
    
    function _registerInterface(bytes4 interfaceId) internal {
        require(interfaceId != 0xffffffff);
        _supportedInterfaces[interfaceId] = true;
    }
}


///ERC20 interface
interface ERC20_interface {
  function balanceOf(address who) external view returns (uint256);
  function transfer(address to, uint256 value) external returns(bool);
}

///ERC20 標準
contract ERC20 {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns(bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}

library SafeMath{
    
     function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;
        return c;
    }
    
     function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b);
        return c;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0);
        uint256 c = a / b;
        return c;
    }
    
    
 }
 
 library SafeMath16{
     function add(uint16 a, uint16 b) internal pure returns (uint16) {
        uint16 c = a + b;
        require(c >= a);

        return c;
    }
    
    function sub(uint16 a, uint16 b) internal pure returns (uint16) {
        require(b <= a);
        uint16 c = a - b;
        return c;
    }
    
     function mul(uint16 a, uint16 b) internal pure returns (uint16) {
        if (a == 0) {
            return 0;
        }
        uint16 c = a * b;
        require(c / a == b);
        return c;
    }
    
    function div(uint16 a, uint16 b) internal pure returns (uint16) {
        require(b > 0);
        uint16 c = a / b;
        return c;
    }
 }

///ERC721標準
contract ERC721{

     event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
     event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
     event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

     function balanceOf(address _owner) public view returns (uint256);
     function ownerOf(uint256 _tokenId) public view returns (address);
     function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) public payable;
     function safeTransferFrom(address _from, address _to, uint256 _tokenId) public payable;
     function transferFrom(address _from, address _to, uint256 _tokenId) public payable;
     function approve(address _approved, uint256 _tokenId) external payable;
     function setApprovalForAll(address _operator, bool _approved) external;
     function getApproved(uint256 _tokenId) public view returns (address);
     function isApprovedForAll(address _owner, address _operator) public view returns (bool);
 }

contract external_function{
    function inquire_totdomains_amount() public view returns(uint16);
    function inquire_level(uint8 _id) public view returns(uint8);
    function inquire_building(uint8 _id, uint8 _index) public view returns(uint8);
    
    function domain_build(address _user, uint16 _id, uint8 _index, uint8 _building) external;
    function domain_reward(address _user, uint16 _id) external;
    function transfer_master(address _to, uint _id) public;
    function retrieve_domain(uint _id) external;
}



contract slave is ERC165, ERC721, external_function, owned{
    
    constructor() public{
        // register the supported interfaces to conform to ERC721 via ERC165
        _registerInterface(_InterfaceId_ERC721);
    }
    
    using SafeMath for uint256;
    using SafeMath16 for uint16;
    using Address for address;
    
    bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;
    bytes4 private constant _InterfaceId_ERC721 = 0x80ac58cd;


    // Mapping from owner to number of owned domain
    mapping (address => uint256) private owned_domain_amount;

    // Mapping from owner to operator approvals
    mapping (address => mapping (address => bool)) private _operatorApprovals;

    string public at_Area = "魔幻魔法區";
    
    uint16 public city_number = 0; //給主合約辨識,每個Area編號不能重複

    struct domain{
        address owner; //領土擁有者
        address backup; //避免擁有者丟失地址
        
        uint8 level; //等級
        uint8[] building; //建築(開始時四座建築) 
        uint cooltime; //收割冷卻結束時間
        
        address approvals; //轉移權所有者 (ERC721標準)
    }

    uint8 public building_amount = 4; //一個土地不能超過256個建築
    uint every_cooltime = 86400;

    struct city_info{
        address mayor; //市長
    }
    
    
    uint8 public domains_amount = 100; //每個城市土地數量
    
    domain[100] public citys; //一個區域有100個土地

//manage
    function set_building_amount(uint8 _building_amount) public onlyowner{
        building_amount = _building_amount;
    }

    function set_Area_name(string _Area_name) public onlyowner{
        at_Area = _Area_name;
    }

//inquire function

    function inquire_level(uint8 _id) public view returns(uint8){
        return citys[_id].level;
    }
    
    function inquire_building(uint8 _id, uint8 _index) public view returns(uint8){
        return citys[_id].building[_index];
    }

    function inquire_totdomains_amount() public view returns(uint16){
      return uint16(citys.length);
    }//查詢共有幾座城市


//external function

    function() payable public{
    }

    function domain_build(address _user, uint16 _id, uint8 _index, uint8 _building) external onlyMaster{
        require(_index <= building_amount);
        require(citys[_id].owner == _user);
        citys[_id].building[_index] = _building;
    }//建立城市

    function domain_reward(address _user, uint16 _id) external onlyMaster{
        require(citys[_id].owner == _user);
        require(citys[_id].cooltime <= now);
        citys[_id].cooltime = now.add(every_cooltime);
        _user.transfer(0);
        //測試版暫不實做
    }//領取領土獎勵

    function transfer_master(address _to, uint _id) public onlyMaster{
        require(_to != address(0));
        
        address domain_owner = citys[_id].owner;
        
        if (domain_owner != 0x0){
            owned_domain_amount[domain_owner] = owned_domain_amount[domain_owner].sub(1);
        }
        owned_domain_amount[_to] = owned_domain_amount[_to].add(1);
        citys[_id].owner = _to;
        
        emit Transfer(domain_owner, _to, _id);
    }//透過master合約執行的轉移

    function retrieve_domain(uint _id) external onlyMaster{
        require(msg.sender == citys[_id].backup);
        transfer_master(contract_owner, _id);
        emit Transfer(citys[_id].owner, contract_owner, _id);
    }//領土遺失領回



//ERC721 function
    function balanceOf(address _owner) public view returns (uint256){
        require(_owner != address(0));
        return owned_domain_amount[_owner];
    }
    function ownerOf(uint256 _tokenId) public view returns (address){
        address owner = citys[_tokenId].owner;
        return owner;
    }
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) public payable{
        transferFrom(_from, _to, _tokenId);
        require(_checkOnERC721Received(_from, _to, _tokenId, _data));
    }
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) public payable{
        safeTransferFrom(_from, _to, _tokenId, "");
    }
    function transferFrom(address _from, address _to, uint256 _tokenId) public payable{
        require(_isApprovedOrOwner(msg.sender, _tokenId));
        _transferFrom(_from, _to, _tokenId);
    }
    function approve(address _approved, uint256 _tokenId) external payable{
        address owner = ownerOf(_tokenId);
        require(_approved != owner);
        require(msg.sender == owner || isApprovedForAll(owner, msg.sender));

        citys[_tokenId].approvals = _approved;
        emit Approval(owner, _approved, _tokenId);
    }
    function setApprovalForAll(address _operator, bool _approved) external{
        require(_operator != msg.sender);
        _operatorApprovals[msg.sender][_operator] = _approved;
        emit ApprovalForAll(msg.sender, _operator, _approved);
    }
    function getApproved(uint256 _tokenId) public view returns (address){
        require(_exists(_tokenId));
        return citys[_tokenId].approvals;
    }
    function isApprovedForAll(address _owner, address _operator) public view returns (bool){
        return _operatorApprovals[_owner][_operator];
    }
    
    function _exists(uint256 _tokenId) internal view returns (bool) {
        address owner = citys[_tokenId].owner;
        return owner != address(0);
    }

    function _isApprovedOrOwner(address _spender, uint256 _tokenId) internal view returns (bool) {
        address owner = ownerOf(_tokenId);
        return (_spender == owner || getApproved(_tokenId) == _spender || isApprovedForAll(owner, _spender));
    }
    
    function _transferFrom(address _from, address _to, uint256 _tokenId) internal {
        require(ownerOf(_tokenId) == _from);
        require(_to != address(0));

        _clearApproval(_tokenId);

        owned_domain_amount[_from] = owned_domain_amount[_from].sub(1);
        owned_domain_amount[_to] = owned_domain_amount[_to].add(1);

        citys[_tokenId].owner = _to;

        emit Transfer(_from, _to, _tokenId);
    }
    
    function _checkOnERC721Received(address _from, address _to, uint256 _tokenId, bytes memory _data)
        internal returns (bool)
    {
        if (!_to.isContract()) {
            return true;
        }

        bytes4 retval = IERC721Receiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data);
        return (retval == _ERC721_RECEIVED);
    }

    function _clearApproval(uint256 _tokenId) private {
        if (citys[_tokenId].approvals != address(0)) {
            citys[_tokenId].approvals = address(0);
        }
    }


}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint8"},{"name":"_index","type":"uint8"}],"name":"inquire_building","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_approved","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_Area_name","type":"string"}],"name":"set_Area_name","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_id","type":"uint16"},{"name":"_index","type":"uint8"},{"name":"_building","type":"uint8"}],"name":"domain_build","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"inquire_totdomains_amount","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_id","type":"uint256"}],"name":"transfer_master","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contract_owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint8"}],"name":"inquire_level","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"domains_amount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"citys","outputs":[{"name":"owner","type":"address"},{"name":"backup","type":"address"},{"name":"level","type":"uint8"},{"name":"cooltime","type":"uint256"},{"name":"approvals","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"building_amount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_id","type":"uint16"}],"name":"domain_reward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"at_Area","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"city_number","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"new_master","type":"address"}],"name":"transferMastership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_building_amount","type":"uint8"}],"name":"set_building_amount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"retrieve_domain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"transferownership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"master","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60c0604052600f60808190527fe9ad94e5b9bbe9ad94e6b395e58d80000000000000000000000000000000000060a090815262000040916005919062000185565b50600680546204000062ffffff19909116179055620151806007556008805460ff191660641790553480156200007557600080fd5b50620000aa7f01ffc9a70000000000000000000000000000000000000000000000000000000064010000000062000118810204565b60018054600160a060020a03199081167325f4a9eed8f91b0a5ab6abc1c635ea54a3f98f6e179091556002805490911633179055620001127f80ac58cd0000000000000000000000000000000000000000000000000000000064010000000062000118810204565b6200022a565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200014857600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c857805160ff1916838001178555620001f8565b82800160010185558215620001f8579182015b82811115620001f8578251825591602001919060010190620001db565b50620002069291506200020a565b5090565b6200022791905b8082111562000206576000815560010162000211565b90565b6113ab806200023a6000396000f3006080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461016b57806302de469e146101b6578063081812fc146101ed578063095ea7b3146102215780630d01c1ae1461023857806323b872dd1461029157806324b1aa5c146102ae578063301b7a86146102e257806332b34cc21461030e578063384f58eb1461033257806342842e0e146103475780636352211e1461036457806370a082311461037c5780637c258860146103af5780638000690d146103ca578063837d47d2146103df5780639c95fc3014610435578063a22cb4651461044a578063a2b8bc7714610470578063b261407414610498578063b436d8f614610522578063b88d4fde14610537578063c3f5968714610599578063c7e63902146105ba578063d2c04f17146105d5578063e8b5b796146105ed578063e985e9c51461060e578063ee97f7f314610635575b005b34801561017757600080fd5b506101a27bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661064a565b604080519115158252519081900360200190f35b3480156101c257600080fd5b506101d760ff6004358116906024351661067e565b6040805160ff9092168252519081900360200190f35b3480156101f957600080fd5b506102056004356106cf565b60408051600160a060020a039092168252519081900360200190f35b610169600160a060020a0360043516602435610709565b34801561024457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101699436949293602493928401919081908401838280828437509497506107d59650505050505050565b610169600160a060020a0360043581169060243516604435610803565b3480156102ba57600080fd5b50610169600160a060020a036004351661ffff6024351660ff60443581169060643516610828565b3480156102ee57600080fd5b506102f76108e7565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610169600160a060020a03600435166024356108ed565b34801561033e57600080fd5b50610205610a37565b610169600160a060020a0360043581169060243516604435610a46565b34801561037057600080fd5b50610205600435610a62565b34801561038857600080fd5b5061039d600160a060020a0360043516610a87565b60408051918252519081900360200190f35b3480156103bb57600080fd5b506101d760ff60043516610aba565b3480156103d657600080fd5b506101d7610ae8565b3480156103eb57600080fd5b506103f7600435610af1565b60408051600160a060020a039687168152948616602086015260ff909316848401526060840191909152909216608082015290519081900360a00190f35b34801561044157600080fd5b506101d7610b46565b34801561045657600080fd5b50610169600160a060020a03600435166024351515610b55565b34801561047c57600080fd5b50610169600160a060020a036004351661ffff60243516610bd9565b3480156104a457600080fd5b506104ad610caa565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104e75781810151838201526020016104cf565b50505050905090810190601f1680156105145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052e57600080fd5b506102f7610d38565b604080516020601f60643560048181013592830184900484028501840190955281845261016994600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750610d429650505050505050565b3480156105a557600080fd5b50610169600160a060020a0360043516610d6a565b3480156105c657600080fd5b5061016960ff60043516610db0565b3480156105e157600080fd5b50610169600435610de5565b3480156105f957600080fd5b50610169600160a060020a0360043516610e93565b34801561061a57600080fd5b506101a2600160a060020a0360043581169060243516610ed9565b34801561064157600080fd5b50610205610f07565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660009081526020819052604090205460ff1690565b6000600960ff84166064811061069057fe5b600502016002018260ff168154811015156106a757fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b60006106da82610f16565b15156106e557600080fd5b600982606481106106f257fe5b6005020160040154600160a060020a031692915050565b600061071482610a62565b9050600160a060020a03838116908216141561072f57600080fd5b33600160a060020a038216148061074b575061074b8133610ed9565b151561075657600080fd5b826009836064811061076457fe5b6005020160040160006101000a815481600160a060020a030219169083600160a060020a031602179055508183600160a060020a031682600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600254600160a060020a031633146107ec57600080fd5b80516107ff9060059060208401906112e7565b5050565b61080d3382610f3d565b151561081857600080fd5b610823838383610f9c565b505050565b600154600160a060020a0316331461083f57600080fd5b60065460ff620100009091048116908316111561085b57600080fd5b600160a060020a038416600961ffff85166064811061087657fe5b6005020154600160a060020a03161461088e57600080fd5b80600961ffff8516606481106108a057fe5b600502016002018360ff168154811015156108b757fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555050505050565b60645b90565b600154600090600160a060020a0316331461090757600080fd5b600160a060020a038316151561091c57600080fd5b6009826064811061092957fe5b6005020154600160a060020a03169050801561098357600160a060020a03811660009081526003602052604090205461096990600163ffffffff6110ca16565b600160a060020a0382166000908152600360205260409020555b600160a060020a0383166000908152600360205260409020546109ad90600163ffffffff6110e116565b600160a060020a03841660009081526003602052604090205582600983606481106109d457fe5b60050201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604051839185811691908416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90600090a4505050565b600254600160a060020a031681565b6108238383836020604051908101604052806000815250610d42565b60008060098360648110610a7257fe5b6005020154600160a060020a03169392505050565b6000600160a060020a0382161515610a9e57600080fd5b50600160a060020a031660009081526003602052604090205490565b6000600960ff831660648110610acc57fe5b6005020160010160149054906101000a900460ff169050919050565b60085460ff1681565b60098160648110610afe57fe5b60050201805460018201546003830154600490930154600160a060020a039283169450828216937401000000000000000000000000000000000000000090920460ff16921685565b60065462010000900460ff1681565b600160a060020a038216331415610b6b57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600154600160a060020a03163314610bf057600080fd5b600160a060020a038216600961ffff831660648110610c0b57fe5b6005020154600160a060020a031614610c2357600080fd5b42600961ffff831660648110610c3557fe5b600502016003015411151515610c4a57600080fd5b600754610c5e90429063ffffffff6110e116565b600961ffff831660648110610c6f57fe5b6005020160030155604051600160a060020a038316906108fc9060009081818181818888f19350505050158015610823573d6000803e3d6000fd5b6005805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d305780601f10610d0557610100808354040283529160200191610d30565b820191906000526020600020905b815481529060010190602001808311610d1357829003601f168201915b505050505081565b60065461ffff1681565b610d4d848484610803565b610d59848484846110fa565b1515610d6457600080fd5b50505050565b600154600160a060020a03163314610d8157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a03163314610dc757600080fd5b6006805460ff909216620100000262ff000019909216919091179055565b600154600160a060020a03163314610dfc57600080fd5b60098160648110610e0957fe5b6005020160010154600160a060020a03163314610e2557600080fd5b600254610e3b90600160a060020a0316826108ed565b6002548190600160a060020a031660098260648110610e5657fe5b6005020154604051600160a060020a03909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90600090a450565b600254600160a060020a03163314610eaa57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600154600160a060020a031681565b60008060098360648110610f2657fe5b6005020154600160a060020a031615159392505050565b600080610f4983610a62565b905080600160a060020a031684600160a060020a03161480610f84575083600160a060020a0316610f79846106cf565b600160a060020a0316145b80610f945750610f948185610ed9565b949350505050565b82600160a060020a0316610faf82610a62565b600160a060020a031614610fc257600080fd5b600160a060020a0382161515610fd757600080fd5b610fe08161127c565b600160a060020a03831660009081526003602052604090205461100a90600163ffffffff6110ca16565b600160a060020a03808516600090815260036020526040808220939093559084168152205461104090600163ffffffff6110e116565b600160a060020a038316600090815260036020526040902055816009826064811061106757fe5b60050201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604051829184811691908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90600090a4505050565b600080838311156110da57600080fd5b5050900390565b6000828201838110156110f357600080fd5b9392505050565b60008061110f85600160a060020a03166112df565b151561111e5760019150611273565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b838110156111b1578181015183820152602001611199565b50505050905090810190601f1680156111de5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561120057600080fd5b505af1158015611214573d6000803e3d6000fd5b505050506040513d602081101561122a57600080fd5b50517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b60006009826064811061128b57fe5b6005020160040154600160a060020a0316146112dc576000600982606481106112b057fe5b6005020160040160006101000a815481600160a060020a030219169083600160a060020a031602179055505b50565b6000903b1190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b6108ea91905b80821115611361576000815560010161136b5600a165627a7a7230582021b43ca4a2615fcef38286660e8eb9edfc027f591658260c8cd91746728c5e490029

   Swarm Source:
bzzr://21b43ca4a2615fcef38286660e8eb9edfc027f591658260c8cd91746728c5e49

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward