Latest 6 txns

TxHash Age From To Value [TxFee]
0x8141b9c81dbff9ac2a23d3962a5831c0f7ae5b610c2c9bbeb47be6b8ecadf92928 days 17 hrs ago0xb933d68e872300308c3fd3b38a2657d6be6a9a11  IN   0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether0.000022278
0x122db01d12d8873a23fb30188b3a4143c64a1ad7ac9abc7b05f7ac31905e559528 days 17 hrs ago0xb933d68e872300308c3fd3b38a2657d6be6a9a11  IN   0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether0.0009597
0x2263ab46d35414359070caab000d7090db1c6aafee41f804edea6d2fae7a18d528 days 17 hrs ago0x08a9feaefa545787f8e2d8c9c3f5e7343261d620  IN   0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether0.002240404
0x2789d4b47faa5e0eb1e51d125c765b3ab9bac7f56b684caaf198e23f4ad6cc2628 days 17 hrs ago0x08a9feaefa545787f8e2d8c9c3f5e7343261d620  IN   0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether0.001017251
0x2e20bdcc65de9aa0e47d343ba90ece0831b912ac237fac2272cc3b09aac3d8a128 days 17 hrs ago0xb933d68e872300308c3fd3b38a2657d6be6a9a11  IN   0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether0.000021973
0xa01db49217217235607a50f7f723f252272706109ef16c18dba59333813e303b28 days 18 hrs ago0x08a9feaefa545787f8e2d8c9c3f5e7343261d620  IN    Contract Creation0 Ether0.00188673
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 7 Internal Transactions

ParentTxHash Block Age From To Value
0xdb84bfaff0e56fc0d421b306acffb155e71fffd587df3e357a4e8bec63c9a6c6487305628 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0xba98978cf635e91861b9733d84850a326dbe69ae0 Ether
0xdb84bfaff0e56fc0d421b306acffb155e71fffd587df3e357a4e8bec63c9a6c6487305628 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0x2b09049cd57980778200ef4e35bf82ba7c57b36e0 Ether
0xdb84bfaff0e56fc0d421b306acffb155e71fffd587df3e357a4e8bec63c9a6c6487305628 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0xba98978cf635e91861b9733d84850a326dbe69ae0 Ether
0xdb84bfaff0e56fc0d421b306acffb155e71fffd587df3e357a4e8bec63c9a6c6487305628 days 17 hrs ago0x2b09049cd57980778200ef4e35bf82ba7c57b36e0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0 Ether
0x122db01d12d8873a23fb30188b3a4143c64a1ad7ac9abc7b05f7ac31905e5595487303728 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0xba98978cf635e91861b9733d84850a326dbe69ae0 Ether
0x2263ab46d35414359070caab000d7090db1c6aafee41f804edea6d2fae7a18d5487303028 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0xba98978cf635e91861b9733d84850a326dbe69ae0 Ether
0x2263ab46d35414359070caab000d7090db1c6aafee41f804edea6d2fae7a18d5487303028 days 17 hrs ago0x9b0942ee8f65cffc8f3adb6ef702fbf319febf8d0xba98978cf635e91861b9733d84850a326dbe69ae0 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact Match)
Contract Name: master
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.22
//master7.0測試版


contract owned {

    address public manager;

    constructor() public{
        manager = msg.sender;
    }
 
    modifier onlymanager{
        require(msg.sender == manager);
        _;
    }

    function transferownership(address _new_manager) public onlymanager {
        manager = _new_manager;
    }
}

///ERC20 interface
interface ERC20_interface {
  function decimals() external view returns(uint8);
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  
  function transfer(address to, uint256 value) external returns(bool);
  function transferFrom(address _from, address _to, uint256 _value) external returns (bool success) ;
}

///ERC223 interface
/*
interface ERC223_interface {
  function approveAndCall(address _spender, uint256 _value, bytes _extraData)
  external returns (bool success);
}
*/

///ERC721 interface
interface ERC721_interface{
     function balanceOf(address _owner) external view returns (uint256);
     function ownerOf(uint256 _tokenId) external view returns (address);
     function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
     function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
     function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
     function approve(address _approved, uint256 _tokenId) external payable;
     function setApprovalForAll(address _operator, bool _approved) external;
     function getApproved(uint256 _tokenId) external view returns (address);
     function isApprovedForAll(address _owner, address _operator) external view returns (bool);
 }
 
 ///slave interface
 interface slave{
    function transferMastership(address new_master) external ;
    function city_number() external view returns(uint16);
    
    function inquire_totdomains_amount() external view returns(uint16);
    function inquire_level(uint8 _id) external view returns(uint8);
    function inquire_building(uint8 _id, uint8 _index) external 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) external;
    function retrieve_domain(address _user, uint _id) external;
 }
 
 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;
    }
 }
 
 contract master is owned {
     using SafeMath for uint;
     using SafeMath16 for uint16;
     
     uint random_seed;
     
     
     constructor() public{
        random_seed = uint((keccak256(abi.encodePacked(block.difficulty))));
     }
     
     mapping(uint16 => address) public owner_slave; //擁有的土地合約地址(編號 => 地址)
     
     address arina_contract = 0x2b09049cd57980778200eF4e35BF82bA7c57b36E;
     
     uint16 owner_slave_amount = 0; //擁有土地合約地址的數量
     
     uint payRoadETH_amount = 0.1 ether;
     uint buyLandETH_amount = 2 ether;
     uint payARINA_amount = 100*10**8;
     uint buyLandARINA_amount = 2000*10**8;
     
     uint probability = 20;

     mapping(address => uint) player_number;
     
     uint public info;
     
     
     struct _info{
         uint16 city; //哪個區域
         uint16 domain; //區域內的id
         bool unmovable; //是否 "不可" 移動
         bool lotto; //可不可以抽樂透
     }
     
     mapping(address => _info) public player_info;
     
     event RollDice(address indexed player, uint16 city, uint16 id); 
     event PlayLotto(address indexed player,uint player_number, uint lotto_number);
     event Pay(address indexed);
     event Buy(address indexed);
     
     
////manage function

    function set_slave_master(uint16 _index, address new_address) public onlymanager{
        address contract_address = owner_slave[_index];
        slave(contract_address).transferMastership(new_address);
    }
     
    function set_slave_address(uint16 _index, address _address) external onlymanager{
        require(_index == slave(_address).city_number());
        if(slave(_address).city_number() == 0x0){
            owner_slave[_index] = _address;
            owner_slave_amount = owner_slave_amount.add(1);
        }
        else{
            owner_slave[_index] = _address; 
        }
        
    }
    
////inquire function

    
    
    function inquire_slave_address(uint16 _index) public view returns(address){
        return owner_slave[_index];
    }
    
    function inquire_city_totdomains(uint16 _index) public view returns(uint16){
        address _address = inquire_slave_address(_index);
        return  slave(_address).inquire_totdomains_amount();
    }
    
    function inquire_location(address _address) public view returns(uint16, uint16){
        return (player_info[_address].city, player_info[_address].domain);
    }
    
    function inquire_unmovable(address _address) public view returns(bool){
        return (player_info[_address].unmovable);
    }
     
////game function
    
    function rollDice() external{
        
        require(owner_slave_amount >= 1);
        require(!player_info[msg.sender].unmovable);
        uint16 random = uint16((keccak256(abi.encodePacked(now, random_seed))));
        uint16 go_city = random % owner_slave_amount; 
        
        uint16 tot_domains = inquire_city_totdomains(go_city);
        uint16 go_domains_id = random % tot_domains; 
        
        player_info[msg.sender].city = go_city;
        player_info[msg.sender].domain = go_domains_id;
        player_info[msg.sender].unmovable = true;
        
        emit RollDice(msg.sender, go_city, go_domains_id);
    }
    
    function playLotto() public{
        require(player_info[msg.sender].lotto);
        
        uint random = uint((keccak256(abi.encodePacked(now, random_seed))));
        uint random2 = uint((keccak256(abi.encodePacked(random_seed, msg.sender))));
        random_seed = random_seed.add(1);
        
        uint lotto_number = random % probability;
        uint _player =  random2 % probability;
        player_number[msg.sender] = _player;
        
        if(lotto_number == player_number[msg.sender]){
            msg.sender.transfer(address(this).balance);
        }
        
        player_info[msg.sender].lotto = false;
        
        //玩樂透,在用以太支付過路費後才能執行
        emit PlayLotto(msg.sender, player_number[msg.sender], _player);
    }

     
////pay and buy function

    function payRent_ETH() external payable{
        require(player_info[msg.sender].unmovable);
        require(msg.value == payRoadETH_amount);
        
        uint16 city = player_info[msg.sender].city; //所在土地編號
        uint16 domains_id = player_info[msg.sender].domain;  //所在土地id
        
        player_info[msg.sender].unmovable = false;

        uint payRent_ETH_50toOwner = msg.value.div(10).mul(5);
		uint payRent_ETH_10toTeam = msg.value.div(10);
		uint payRent_ETH_20toCity = msg.value.div(10).mul(2); 
		uint payRent_ETH_20toPool = msg.value.div(10).mul(2);
		uint pay = payRent_ETH_50toOwner + payRent_ETH_10toTeam + payRent_ETH_20toCity + payRent_ETH_20toPool;
		require(msg.value == pay);
		
		address city_address = owner_slave[city];
		address domain_owner = ERC721_interface(city_address).ownerOf(domains_id);
		
		if (domain_owner == 0x0){
		    manager.transfer(payRent_ETH_50toOwner); //轉給master contract owner
		}
		else{
		    domain_owner.transfer(payRent_ETH_50toOwner); //原土地擁有者
		}
		
        manager.transfer(payRent_ETH_10toTeam); //master contract owner
        city_address.transfer(payRent_ETH_20toCity); //注意slave合約要能接收

        //用ETH付過路費
        
        player_info[msg.sender].lotto = true;
        emit Pay(msg.sender);
    }
    
    function buyLand_ETH() external payable{
        require(msg.value == buyLandETH_amount); //用ETH購買土地

        uint16 city = player_info[msg.sender].city;
        uint16 domains_id = player_info[msg.sender].domain;
        
        address city_address = owner_slave[city];
        address domain_owner = ERC721_interface(city_address).ownerOf(domains_id);
        if(domain_owner == 0x0){
            manager.transfer(buyLandETH_amount);
        }
        else{
            (domain_owner).transfer(buyLandETH_amount); //把錢給原擁有者
        }
        
        
        slave(city_address).transfer_master(msg.sender, domains_id); //土地轉移
        //_to, _id
        player_info[msg.sender].unmovable = false;
        emit Buy(msg.sender);
    }
     
    function _payRent_ARINA(address _sender, uint _value) private{
        //已經檢查支付金額
        require(player_info[_sender].unmovable,"檢查不可移動");
        uint16 city = player_info[_sender].city;
        uint16 domains_id = player_info[_sender].domain;
        
        address city_address = owner_slave[city];
		address domain_owner = ERC721_interface(city_address).ownerOf(domains_id);
        
        ERC20_interface arina = ERC20_interface(arina_contract);
        
        if(domain_owner == 0x0){
            require(arina.transferFrom(_sender, manager, _value),"交易失敗");
        }
        else{
            require(arina.transferFrom(_sender, domain_owner, _value),"交易失敗"); //把錢給原擁有者
        }
        
     
        player_info[_sender].unmovable = false;
        
        //用ARINA付過路費
        emit Pay(_sender);
    }

    function _buyLand_ARINA(address _sender, uint _value) private{ //用ARINA購買土地
        //已經檢查支付金額
        //空地才能執行
        
        uint16 city = player_info[_sender].city;
        uint16 domains_id = player_info[_sender].domain;
        
        address city_address = owner_slave[city];
		address domain_owner = ERC721_interface(city_address).ownerOf(domains_id);
        
        ERC20_interface arina = ERC20_interface(arina_contract);
        if(domain_owner == 0x0){
            require(arina.transferFrom(_sender, manager, _value));
        }
        else{
            require(arina.transferFrom(_sender, domain_owner, _value)); //把錢給原擁有者
        }
        
        slave(city_address).transfer_master(_sender, domains_id); //土地轉移
        //_to, _id
        emit Buy(_sender);
    }


////callback function
    
    function receiveApproval(address _sender, uint256 _value,
    address _tokenContract, bytes _extraData) public{
        
      require(_tokenContract == arina_contract);

      uint256 payloadSize;
      uint256 payload;
      assembly {
        payloadSize := mload(_extraData)
        payload := mload(add(_extraData, 0x20))
      }
      payload = payload >> 8*(32 - payloadSize);
      
      info = payload;
    

      if (payload == 0){
          require(_value == payARINA_amount,"金額不對");
          _payRent_ARINA(_sender, _value);
          
      }
      else if(payload == 1){
          require(_value ==  buyLandARINA_amount,"金額不對");
          _buyLand_ARINA(_sender, _value);
      }
      else{revert("調用不對");
      }
    }
    
 
 }

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_index","type":"uint16"}],"name":"inquire_slave_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"info","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_index","type":"uint16"},{"name":"_address","type":"address"}],"name":"set_slave_address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyLand_ETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint16"}],"name":"inquire_city_totdomains","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"inquire_unmovable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"playLotto","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"rollDice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tokenContract","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_index","type":"uint16"},{"name":"new_address","type":"address"}],"name":"set_slave_master","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payRent_ETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"inquire_location","outputs":[{"name":"","type":"uint16"},{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"player_info","outputs":[{"name":"city","type":"uint16"},{"name":"domain","type":"uint16"},{"name":"unmovable","type":"bool"},{"name":"lotto","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"owner_slave","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_new_manager","type":"address"}],"name":"transferownership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"city","type":"uint16"},{"indexed":false,"name":"id","type":"uint16"}],"name":"RollDice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"player_number","type":"uint256"},{"indexed":false,"name":"lotto_number","type":"uint256"}],"name":"PlayLotto","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"","type":"address"}],"name":"Pay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"","type":"address"}],"name":"Buy","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526003805460a060020a61ffff0219600160a060020a0319909116732b09049cd57980778200ef4e35bf82ba7c57b36e1716905567016345785d8a0000600455671bc16d674ec800006005556402540be400600655642e90edd000600755601460085534801561007257600080fd5b5060008054600160a060020a03191633179055604080514460208083019190915282518083038201815291830192839052815191929182918401908083835b602083106100d05780518252601f1990920191602091820191016100b1565b5181516000196020949094036101000a939093019283169219169190911790526040519201829003909120600155505050611894806101106000396000f3006080604052600436106100cc5763ffffffff60e060020a600035041663333e6f1281146100d1578063370158ea14610109578063481c6a75146101305780636a21a816146101455780637207dfe31461016f57806377337612146101775780637a8a5f9b146101aa57806382d549b6146101df578063837e7cc6146101f45780638f4ffcb1146102095780639897cf4b146102795780639f6a694e146102a1578063a42199fb146102a9578063c134d3d2146102eb578063d6a03c081461033b578063e8b5b79614610357575b600080fd5b3480156100dd57600080fd5b506100ed61ffff60043516610378565b60408051600160a060020a039092168252519081900360200190f35b34801561011557600080fd5b5061011e610397565b60408051918252519081900360200190f35b34801561013c57600080fd5b506100ed61039d565b34801561015157600080fd5b5061016d61ffff60043516600160a060020a03602435166103ac565b005b61016d610574565b34801561018357600080fd5b5061019361ffff6004351661078d565b6040805161ffff9092168252519081900360200190f35b3480156101b657600080fd5b506101cb600160a060020a036004351661080c565b604080519115158252519081900360200190f35b3480156101eb57600080fd5b5061016d610832565b34801561020057600080fd5b5061016d610a55565b34801561021557600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261016d94600160a060020a03813581169560248035966044359093169536956084949201918190840183828082843750949750610c129650505050505050565b34801561028557600080fd5b5061016d61ffff60043516600160a060020a0360243516610d7f565b61016d610e2b565b3480156102b557600080fd5b506102ca600160a060020a03600435166110f9565b6040805161ffff938416815291909216602082015281519081900390910190f35b3480156102f757600080fd5b5061030c600160a060020a0360043516611123565b6040805161ffff9586168152939094166020840152901515828401521515606082015290519081900360800190f35b34801561034757600080fd5b506100ed61ffff6004351661115d565b34801561036357600080fd5b5061016d600160a060020a0360043516611178565b61ffff16600090815260026020526040902054600160a060020a031690565b600a5481565b600054600160a060020a031681565b600054600160a060020a031633146103c357600080fd5b80600160a060020a031663b436d8f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561040157600080fd5b505af1158015610415573d6000803e3d6000fd5b505050506040513d602081101561042b57600080fd5b505161ffff83811691161461043f57600080fd5b80600160a060020a031663b436d8f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561047d57600080fd5b505af1158015610491573d6000803e3d6000fd5b505050506040513d60208110156104a757600080fd5b505161ffff1615156105365761ffff8281166000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905560035461051591740100000000000000000000000000000000000000009091041660016111be565b600360146101000a81548161ffff021916908361ffff160217905550610570565b61ffff82166000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5050565b6000806000806005543414151561058a57600080fd5b336000908152600b602090815260408083205461ffff8082168086526002855283862054845160e160020a6331a9108f02815262010000909404909216600484018190529351909950929750600160a060020a031695508593636352211e9360248084019491939192918390030190829087803b15801561060a57600080fd5b505af115801561061e573d6000803e3d6000fd5b505050506040513d602081101561063457600080fd5b50519050600160a060020a03811615156106895760008054600554604051600160a060020a039092169281156108fc029290818181858888f19350505050158015610683573d6000803e3d6000fd5b506106c2565b600554604051600160a060020a0383169180156108fc02916000818181858888f193505050501580156106c0573d6000803e3d6000fd5b505b604080517f32b34cc200000000000000000000000000000000000000000000000000000000815233600482015261ffff851660248201529051600160a060020a038416916332b34cc291604480830192600092919082900301818387803b15801561072c57600080fd5b505af1158015610740573d6000803e3d6000fd5b5050336000818152600b6020526040808220805464ff0000000019169055519193507f5c6c890314aa0d49059c35b35ff86ffb43efe8f543dc3691558f39dfa4a82011925090a250505050565b60008061079983610378565b905080600160a060020a031663301b7a866040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107d957600080fd5b505af11580156107ed573d6000803e3d6000fd5b505050506040513d602081101561080357600080fd5b50519392505050565b600160a060020a03166000908152600b6020526040902054640100000000900460ff1690565b336000908152600b602052604081205481908190819065010000000000900460ff16151561085f57600080fd5b4260015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106108b85780518252601f199092019160209182019101610899565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060015483830152336c010000000000000000000000000283860152845180840360340181526054909301948590528251909a509195509293508392850191508083835b602083106109415780518252601f199092019160209182019101610922565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060018054919750610980945090925090506111e2565b6001556008548481151561099057fe5b069150600854838115156109a057fe5b336000908152600960205260409020919006908190559050818114156109ef576040513390303180156108fc02916000818181858888f193505050501580156109ed573d6000803e3d6000fd5b505b336000818152600b60209081526040808320805465ff000000000019169055600982529182902054825190815290810184905281517fd47dbc17307fd51fef708e980ba8e68a142ef019ab0d706536ce162a94a54cc7929181900390910190a250505050565b6000806000806001600360149054906101000a900461ffff1661ffff1610151515610a7f57600080fd5b336000908152600b6020526040902054640100000000900460ff1615610aa457600080fd5b4260015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310610afd5780518252601f199092019160209182019101610ade565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060035490975074010000000000000000000000000000000000000000900461ffff90811693508716915050811515610b5a57fe5b069250610b668361078d565b91508161ffff168461ffff16811515610b7b57fe5b336000818152600b6020908152604091829020805464010000000061ffff1990911661ffff8b811691821763ffff0000191662010000999098069081169889029790971764ff00000000191691909117909155825190815290810194909452805192945090927fc3309aa2280d32de25c03d411f0c842eeabc30ecd339dbf4cab8a50341d1a46d929081900390910190a250505050565b6003546000908190600160a060020a03858116911614610c3157600080fd5b505080516020808301519082900360080260020a9004600a819055801515610cbb576006548514610cac576040805160e560020a62461bcd02815260206004820152600c60248201527fe98791e9a18de4b88de5b08d0000000000000000000000000000000000000000604482015290519081900360640190fd5b610cb686866111f4565b610d77565b8060011415610d27576007548514610d1d576040805160e560020a62461bcd02815260206004820152600c60248201527fe98791e9a18de4b88de5b08d0000000000000000000000000000000000000000604482015290519081900360640190fd5b610cb6868661155a565b6040805160e560020a62461bcd02815260206004820152600c60248201527fe8aabfe794a8e4b88de5b08d0000000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b60008054600160a060020a03163314610d9757600080fd5b5061ffff82166000908152600260205260408082205481517fc3f59687000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015292519290911692839263c3f5968792602480820193929182900301818387803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b50505050505050565b336000908152600b602052604081205481908190819081908190819081908190640100000000900460ff161515610e6157600080fd5b6004543414610e6f57600080fd5b336000908152600b60205260409020805464ff0000000019811690915561ffff8082169a5062010000909104169750610ec06005610eb434600a63ffffffff61181716565b9063ffffffff61183a16565b9650610ed334600a63ffffffff61181716565b9550610eeb6002610eb434600a63ffffffff61181716565b9450610f036002610eb434600a63ffffffff61181716565b9350868601850184019250348314610f1a57600080fd5b61ffff808a16600090815260026020908152604080832054815160e160020a6331a9108f028152948d1660048601529051600160a060020a0390911695508593636352211e9360248083019493928390030190829087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050506040513d6020811015610fa857600080fd5b50519050600160a060020a0381161515610ffb5760008054604051600160a060020a039091169189156108fc02918a91818181858888f19350505050158015610ff5573d6000803e3d6000fd5b50611033565b604051600160a060020a0382169088156108fc029089906000818181858888f19350505050158015611031573d6000803e3d6000fd5b505b60008054604051600160a060020a039091169188156108fc02918991818181858888f1935050505015801561106c573d6000803e3d6000fd5b50604051600160a060020a0383169086156108fc029087906000818181858888f193505050501580156110a3573d6000803e3d6000fd5b50336000818152600b6020526040808220805465ff0000000000191665010000000000179055517fcde596b2a6cbbdb334f93bbbbf9c291bca46157cde6ddcc206998769b3083e989190a2505050505050505050565b600160a060020a03166000908152600b602052604090205461ffff80821692620100009092041690565b600b6020526000908152604090205461ffff808216916201000081049091169060ff64010000000082048116916501000000000090041684565b600260205260009081526040902054600160a060020a031681565b600054600160a060020a0316331461118f57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082820161ffff80851690821610156111d757600080fd5b8091505b5092915050565b6000828201838110156111d757600080fd5b600160a060020a0382166000908152600b60205260408120548190819081908190640100000000900460ff161515611276576040805160e560020a62461bcd02815260206004820152601260248201527fe6aaa2e69fa5e4b88de58fafe7a7bbe58b950000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038088166000908152600b602090815260408083205461ffff8082168086526002855283862054845160e160020a6331a9108f02815262010000909404909216600484018190529351909b5092995090941696508693636352211e9360248083019493928390030190829087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b505050506040513d602081101561132157600080fd5b5051600354909250600160a060020a0390811691508216151561142757600080546040805160e060020a6323b872dd028152600160a060020a038b811660048301529283166024820152604481018a90529051918416926323b872dd926064808401936020939083900390910190829087803b1580156113a057600080fd5b505af11580156113b4573d6000803e3d6000fd5b505050506040513d60208110156113ca57600080fd5b50511515611422576040805160e560020a62461bcd02815260206004820152600c60248201527fe4baa4e69893e5a4b1e695970000000000000000000000000000000000000000604482015290519081900360640190fd5b611507565b6040805160e060020a6323b872dd028152600160a060020a0389811660048301528481166024830152604482018990529151918316916323b872dd916064808201926020929091908290030181600087803b15801561148557600080fd5b505af1158015611499573d6000803e3d6000fd5b505050506040513d60208110156114af57600080fd5b50511515611507576040805160e560020a62461bcd02815260206004820152600c60248201527fe4baa4e69893e5a4b1e695970000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0387166000818152600b6020526040808220805464ff0000000019169055517fcde596b2a6cbbdb334f93bbbbf9c291bca46157cde6ddcc206998769b3083e989190a250505050505050565b600160a060020a038083166000908152600b602090815260408083205461ffff8082168086526002855283862054845160e160020a6331a9108f02815262010000909404909216600484018190529351909693959190931693909283928592636352211e9260248084019382900301818787803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b505050506040513d602081101561160457600080fd5b5051600354909250600160a060020a039081169150821615156116bf57600080546040805160e060020a6323b872dd028152600160a060020a038b811660048301529283166024820152604481018a90529051918416926323b872dd926064808401936020939083900390910190829087803b15801561168357600080fd5b505af1158015611697573d6000803e3d6000fd5b505050506040513d60208110156116ad57600080fd5b505115156116ba57600080fd5b611754565b6040805160e060020a6323b872dd028152600160a060020a0389811660048301528481166024830152604482018990529151918316916323b872dd916064808201926020929091908290030181600087803b15801561171d57600080fd5b505af1158015611731573d6000803e3d6000fd5b505050506040513d602081101561174757600080fd5b5051151561175457600080fd5b604080517f32b34cc2000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015261ffff871660248301529151918516916332b34cc29160448082019260009290919082900301818387803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b5050604051600160a060020a038a1692507f5c6c890314aa0d49059c35b35ff86ffb43efe8f543dc3691558f39dfa4a820119150600090a250505050505050565b60008080831161182657600080fd5b828481151561183157fe5b04949350505050565b60008083151561184d57600091506111db565b5082820282848281151561185d57fe5b04146111d757600080fd00a165627a7a723058209d085940216d6c246d6fbce50f1ce25fb4fc2c2cbed18ba717e32ef75151e60f0029

   Swarm Source:
bzzr://9d085940216d6c246d6fbce50f1ce25fb4fc2c2cbed18ba717e32ef75151e60f

 

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