Contract Overview
Balance: 0.000000000000001695 Ether
Ether Value: Less Than $0.01 (@ $117.42/ETH)
Transactions: 8684 txns
Token Tracker: Mineral (ORE)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xec169d7079562a3b95fd5d0dc13ce93575adec27at txn 0x57f234b41f403990cd93bd76795bd938b290d28c92520b3fb2d157f6e5bc67a2
Token Balance:
 Latest 25 transactions from a total of 8684 transactions

TxHash Age From To Value [TxFee]
0xc43b8cc37489ac2cb193aafdfdea02e29833be7ff25eef23123b9137f02106bf4 hrs 7 mins ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.001060578
0xbeabac6a6389c6611da5182f2f893c592d077879c62a06fc84df5c9ed452f01b9 hrs 14 mins ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.000530289
0x4df237eda8f52b51c1f3a306f12615f36de3b38c066ee653c99146589dee0f331 day 8 hrs ago0xab1886297355d4083619a1e082bed785ae891997  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000198306
0x35f2783975794d9c71765bbaadb9678f5ebddb4fb9d1c4581c3e667940855d351 day 11 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.01 Ether0.000534945
0xd48d5d70fadc48ec62eb5be3a3f6826a331757c49c3182f065a78e9be06001da1 day 11 hrs ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000197178
0x8ee0efc93332bc6a8991f901f460ebd49c70f0d3c6bb6759ebc2232e1167f8fc1 day 23 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.000530295
0xc9525094cd262f9af506899c6132a25154f64471c2ecccdab62e67b143e552ed2 days 21 hrs ago0x35f66d112ae5b8f65b711800636c1a8cb6c3770a  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.003 Ether0.00114807
0x0c9cf5630adc55ab726e932c799147c80434fd4362b68cb6d1e50d43b0b40fb42 days 21 hrs ago0x35f66d112ae5b8f65b711800636c1a8cb6c3770a  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.00253137
0x08698be2c02804acdd48b0555f7f51d1730b3763dc4d1dcaea26dc46ce06d8063 days 9 hrs ago0x7e313be930991143800b003186dbfef89d89184d  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000154896
0x12d6bfb08dd98167765d412502220b5bdb137825e293942322299739096dd9ae4 days 13 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000189114
0x766a2aa5ecd71a05c9455161221692e613a2912ef5db59da9a19face0908d8894 days 4 hrs ago0x8aa1913c292e570fa12260d54962cafaeb2c9ec2  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000161397
0x043e5e18d1bebc61ecc80c2a57f488244cf30342aaff295f23db7b4e35512d574 days 5 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000423588
0xc8e0d869ae9698dba116e0550a75e909bf899eb6931a7fbdf1b61688988278c74 days 10 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.01 Ether0.000353704
0xa1f776e955c7554504fbb8400c94211e2704b355e9fd524632376728d4f7e3984 days 10 hrs ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.000353504
0xdeedc1731d0b59151efbddd29a089752708ef53ce094bed892f59e268e1eeae04 days 10 hrs ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000174962
0x8d60d2e7790f4f9f171d7e4ddea6ca0b3af999e5eeeee8db3a6dd078fe0f27964 days 23 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.000326412
0xa6b68347027ac5ca3d4c83002123b83b648a4f5192cb7c88dd0041a6ab2fdd3b4 days 23 hrs ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.0055 Ether0.000249852
0x83dc749b2e2745986d3a88cdfadff1d50e3a6eeec4708dd5c581803f95af58f24 days 23 hrs ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.0005 Ether0.000530556
0x15c92dc45f8be611ffb4702848285491975ed97396cd7058a24f53d3f7af43195 days 3 hrs ago0x09432d67b9a99468ef161bc770cef41a44e8c85d  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.0005 Ether0.000356804
0x5562021cba8f7d15f69ebec357df13d7f5dcfd45684d01b9ada65272dce863c65 days 10 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.025 Ether0.000353704
0x59b7af570f6119e81a1adc257369bfc9660964682b74343e64425f076a50643b5 days 10 hrs ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000462442
0xa48f754f3d371946df26d3c3b7babee0089fdf9c79fd7647b397e2d41c0b6ff05 days 10 hrs ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.00035353
0x2400608a2c6019ad306b94637b8ddab8f76ed3155b4c10365fa2d836a24847f25 days 10 hrs ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000168886
0xb2cd6e2601c40ac7ccfc0cef3a0a74cc9463e9cc3dc3aef9aa503c3b9e693b776 days 4 hrs ago0xd8d88bf397d38d27f2f9d6e379ce9c6aa15022ee  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.00033038
0xe5f8e393587982681f417b540452325dad5cc042be09ab82f2112c1c359f275b6 days 9 hrs ago0x2bc4a4eabc987a021731e1c51892cb09975c1c29  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.001667056
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xc43b8cc37489ac2cb193aafdfdea02e29833be7ff25eef23123b9137f02106bf71080444 hrs 7 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0xbeabac6a6389c6611da5182f2f893c592d077879c62a06fc84df5c9ed452f01b71069789 hrs 14 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0x35f2783975794d9c71765bbaadb9678f5ebddb4fb9d1c4581c3e667940855d3571014101 day 11 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x8ee0efc93332bc6a8991f901f460ebd49c70f0d3c6bb6759ebc2232e1167f8fc70985891 day 23 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0xc9525094cd262f9af506899c6132a25154f64471c2ecccdab62e67b143e552ed70935592 days 21 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.003 Ether
0xc8e0d869ae9698dba116e0550a75e909bf899eb6931a7fbdf1b61688988278c770848154 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0xa1f776e955c7554504fbb8400c94211e2704b355e9fd524632376728d4f7e39870847364 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0x8d60d2e7790f4f9f171d7e4ddea6ca0b3af999e5eeeee8db3a6dd078fe0f279670818074 days 23 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0xa6b68347027ac5ca3d4c83002123b83b648a4f5192cb7c88dd0041a6ab2fdd3b70818034 days 23 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0055 Ether
0x83dc749b2e2745986d3a88cdfadff1d50e3a6eeec4708dd5c581803f95af58f270817974 days 23 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0x15c92dc45f8be611ffb4702848285491975ed97396cd7058a24f53d3f7af431970808425 days 3 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0x5562021cba8f7d15f69ebec357df13d7f5dcfd45684d01b9ada65272dce863c670792375 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.025 Ether
0xa48f754f3d371946df26d3c3b7babee0089fdf9c79fd7647b397e2d41c0b6ff070791145 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0xd8b29bbc751042a80f89c66b0dc5cd4395de24363392e08c95ad23dfa112ab4570735466 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0x89c1913def2d2032f3b04cecb88f7aac9d91918c1fff015f79bdf012d2fdd12f70687817 days 7 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x8f3cec2a9234bf2f33806386dd35feb66491216ee5a48333c1717b9967c0e50270682077 days 9 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0xedfa18deb67fddbcd56ffa181b9379d9bae0f7f20c6749690c6bdedf6ac05a1070681517 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.025 Ether
0x9622d95e7b44c958290aefe10cee8c59f2510e19fdf3a02c87dcd6da2568303c70658317 days 19 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0xcb441ca19782a77f48e504e8517dcbdc8cd777cbfaf8c729e5797835f17bf48b70658177 days 19 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0x211f5f71dcbddce763845ff28183b8ae92dff41153f461566efaa4adf242e7b270623708 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x648597eb1acd6f164eb9ba49596142b6a869fa1874780d98dcf2724983e7150670623518 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0xeda43ab8c8d046db0fe43a6c9be905cd07a1cd286f7e58ee5a460c60cfd1f05570583789 days 3 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x1a859e5f5f1e66441197102d76d88ff214f54ba1c2c9ad55bb6de36d72615902705339910 days 1 hr ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0x504e55b62f45241e28b7de9b1119de03bb92920b3350d9b6c602442bd9247881705124110 days 10 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x49678c9a8e3980c3f66922381cfe7aa5e0797bc5d855a5e394cff50e95251c3a704712711 days 4 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0xb3e00c1a967882dc0b4e206758391d121b79514c(Excluding Constructor Arguments if any)
Contract Name: Mineral
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;




/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    
    uint256 c = a / b;
    
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}





/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  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);
}








/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}









/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }

}









/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}




/**
 * @title Math
 * @dev Assorted math operations
 */

library Math {
  function max64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a < b ? a : b;
  }
}






/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is StandardToken {

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public {
        require(_value > 0);
        require(_value <= balances[msg.sender]);
        
        

        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(burner, _value);
    }
}





/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}









contract Jewel {
    function incise(address owner, uint256 value) external returns (uint);
}

contract DayQualitys {
    function getAreaQualityByDay(uint32 time, uint32 area) external returns (uint32);
}

contract Mineral is BurnableToken, Ownable {

    string public name = "Mineral";
    string public symbol = "ORE";
    uint8 public decimals = 18;

    uint256 public constant INITIAL_SUPPLY = 800 * 1000 * 1000 * (10 ** uint256(decimals));

    uint public constant MINER_4_HOURS = 0.0005 ether;
    uint public constant MINER_8_HOURS = 0.001 ether;
    uint public constant MINER_24_HOURS = 0.003 ether;

    mapping(address => uint[][72]) public deployRange;

    
    
    uint public timeScale = 1; 

    
    
    mapping(uint32 => uint32[3][72]) private areaHourDeployed;

    
    struct AreaHourDeployed {
        uint32[72] lastCollectHour;
        
        mapping(uint32 => uint32[3][72]) hour; 
    }
    
    
    mapping(address => AreaHourDeployed) private userAreaHourDeployed;

    
    uint8 public constant CHECK_POINT_HOUR = 4;

    
    
    mapping(uint32 => uint32[72]) private areaCheckPoints;

    
    mapping(uint32 => uint) private dayAverageOutput;

    
    struct AreaCheckPoint {
        
        mapping(uint32 => uint32[72]) hour;
    }

    
    
    mapping(address => AreaCheckPoint) private userAreaCheckPoints;

    uint256 amountEther;

    
    mapping (address => uint) public remainEther;

    uint32 public constractDeployTime = uint32(now) / 1 hours * 1 hours;

    mapping(address => uint) activeArea; 
    
    bool enableWhiteList = true;
    mapping(address => bool) whiteUserList;    
    address serverAddress;

    address coldWallet;

    bool enableCheckArea = true;

    Jewel public jewelContract;
    DayQualitys public dayQualitysContract;

    event Pause();
    event Unpause();

    bool public paused = false;

    function Mineral() public {
        totalSupply = INITIAL_SUPPLY;
        balances[this] = 300 * 1000 * 1000 * (10 ** uint256(decimals));
        balances[parseAddr("0x22de6b7F8b6119bA8E62FB4165834eA00adb6f3E")] = 110 * 1000 * 1000 * (10 ** uint256(decimals));
        balances[parseAddr("0xA3eCD9F46CCfE4D27D747C9c7469990df7412d48")] = 30 * 1000 * 1000 * (10 ** uint256(decimals));
        balances[parseAddr("0x686824DB069586aC0aD8060816F1D66A0EE8297b")] = 60 * 1000 * 1000 * (10 ** uint256(decimals));
        balances[parseAddr("0x9E8eA5C674EBd85868215ceFab9c108Ab9ceA702")] = 150 * 1000 * 1000 * (10 ** uint256(decimals));
        balances[parseAddr("0x4706f5d2a0d4D4eE5A37dDE1438C7de774A2A184")] = 150 * 1000 * 1000 * (10 ** uint256(decimals));
        dayAverageOutput[0] = 241920 * 10 ** uint256(decimals);
    }

    function parseAddr(string _a) internal returns (address){
        bytes memory b = bytes(_a);
        uint result = 0;
        for (uint i = 0; i < b.length; i++) {
            uint c = uint(b[i]);
            if (c >= 48 && c <= 57) {
                result = result * 16 + (c - 48);
            }
            if(c >= 65 && c<= 90) {
                result = result * 16 + (c - 55);
            }
            if(c >= 97 && c<= 122) {
                result = result * 16 + (c - 87);
            }
        }
        return address(result);
    }

    /*
    function setTimeScale(uint scale) public onlyOwner {
        timeScale = scale;
    }

    
    function setConstractDeployTime(uint32 time) public onlyOwner {
        constractDeployTime = time;
    }*/

    function setColdWallet(address _coldWallet) public onlyOwner {
        coldWallet = _coldWallet;
    }

    function disableWhiteUserList() public onlyOwner {
        enableWhiteList = false;
    }

    function disableCheckArea() public onlyOwner {
        enableCheckArea = false;
    }

    modifier checkWhiteList() {
        if (enableWhiteList) {
            require(whiteUserList[msg.sender]);
        }
        _;
    }

    function setServerAddress(address addr) public onlyOwner {
        serverAddress = addr;
    }

    function authUser(string addr) public {
        require(msg.sender == serverAddress || msg.sender == owner);
        address s = bytesToAddress(bytes(addr));
        whiteUserList[s] = true;
    }

    function bytesToAddress (bytes b) internal view returns (address) {
        uint result = 0;
        for (uint i = 0; i < b.length; i++) {
            uint c = uint(b[i]);
            if (c >= 48 && c <= 57) {
                result = result * 16 + (c - 48);
            }
            if(c >= 65 && c <= 90) {
                result = result * 16 + (c - 55);
            }
            if(c >= 97 && c <= 122) {
                result = result * 16 + (c - 87);
            }
        }
        return address(result);
    }

    function setDayQualitys(address dayQualitys) public onlyOwner {
        dayQualitysContract = DayQualitys(dayQualitys);
    }

    function getMyDeployAt(uint32 area, uint32 hour) public view returns (uint32[3]) {
        return userAreaHourDeployed[msg.sender].hour[hour][area];
    }

    function getMyMinersAt(uint32 area, uint32 hour) public view returns (uint32) {
        return _getUserMinersAt(msg.sender, area, hour);
    }

    function _getUserMinersAt(address user, uint32 area, uint32 hour) internal view returns(uint32) {
        //now start from start's nearest check point
        uint32 nc = hour/CHECK_POINT_HOUR*CHECK_POINT_HOUR;
        if (userAreaCheckPoints[user].hour[nc][area] == 0 && userAreaCheckPoints[user].hour[nc + CHECK_POINT_HOUR][area] == 0) {
            return 0;
        }
        uint32 h = 0;
        int64 userInc = 0;
        uint32[3] storage ptUser;
        AreaHourDeployed storage _userAreaHourDeployed = userAreaHourDeployed[user];
        
        for (h = nc; h <= hour; ++h) {
            
            
            
            ptUser = _userAreaHourDeployed.hour[h][area];
            userInc += ptUser[0] + ptUser[1] + ptUser[2] - _userAreaHourDeployed.hour[h - 4][area][0] - 
                _userAreaHourDeployed.hour[h - 8][area][1] - _userAreaHourDeployed.hour[h - 24][area][2];
        }
        return userAreaCheckPoints[user].hour[nc][area] + uint32(userInc);
    }

    function getDeployAt(uint32 area, uint32 hour) public view returns (uint32[3]) {
        return areaHourDeployed[hour][area];
    }


    function getMinersAt(uint32 area, uint32 hour) public view returns (uint32) {
        return _getMinersAt(area, hour);
    }

    function _getMinersAt(uint32 area, uint32 hour) internal view returns (uint32) {
        //now start from start's nearest check point
        uint32 nc = hour/CHECK_POINT_HOUR*CHECK_POINT_HOUR;
        uint32 h = 0;
        int64 userInc = 0;
        int64 totalInc = 0;
        uint32[3] storage ptArea;
        
        for (h = nc; h <= hour; ++h) {
            
            
            
            ptArea = areaHourDeployed[h][area];
            totalInc += ptArea[0] + ptArea[1] + ptArea[2] - areaHourDeployed[h - 4][area][0] - areaHourDeployed[h - 8][area][1] - areaHourDeployed[h - 24][area][2];
        }

        return areaCheckPoints[nc][area] + uint32(totalInc);
    }

    function updateArea(uint areaId) internal pure returns (uint) {
        
        uint row = areaId / 8;
        uint colum = areaId % 8;

        uint result = uint(1) << areaId;
        if (row-1 >= 0) {
            result |= uint(1) << ((row-1)*8+colum);
        }
        if (row+1 < 9) {
            result |= uint(1) << ((row+1)*8+colum);
        }
        if (colum-1 >= 0) {
            result |= uint(1) << (row*8+colum-1);
        }
        if (colum+1 < 8) {
            result |= uint(1) << (row*8+colum+1);
        }
        
        return result;
    }

    function checkArea(uint32[] area, address user) internal {
        if (enableCheckArea) {
            uint[] memory distinctArea = new uint[](area.length);
            uint distinctAreaLength = 0;
        
            for (uint i = 0; i < area.length; i++) {
                bool find = false;
                for (uint j = 0; j < distinctAreaLength; j++) {
                    if (distinctArea[j] == area[i]) {
                        find = true;
                        break;
                    }
                }     
                if (!find) {
                    distinctArea[distinctAreaLength] = area[i];
                    distinctAreaLength += 1;
                }
            }

            if (activeArea[user] == 0) {
                require(distinctAreaLength == 1);
                activeArea[user] = updateArea(distinctArea[0]);
            } else {
                uint userActiveArea = activeArea[user];
                uint updateActiveArea = userActiveArea;
                for (i = 0; i < distinctAreaLength; i++) {
                    require(userActiveArea & uint(1) << distinctArea[i] > 0);
                    updateActiveArea = updateActiveArea | updateArea(distinctArea[i]);
                }

                activeArea[user] = updateActiveArea;
            }
        }
    }

    function deployMiners(address user, uint32[] area, uint32[] period, uint32[] count) public checkWhiteList whenNotPaused payable {
        require(area.length > 0);
        require(area.length == period.length);
        require(area.length == count.length);
        address _user = user;
        if (_user == address(0)) {
            _user = msg.sender;
        }
        
        uint32 _hour = uint32((now - constractDeployTime) * timeScale / 1 hours);

        checkArea(area, user);
        
        uint payment = _deployMiners(_user, _hour, area, period, count);
        _updateCheckPoints(_user, _hour, area, period, count);

        require(payment <= msg.value);
        remainEther[msg.sender] += (msg.value - payment);
        if (coldWallet != address(0)) {
            coldWallet.transfer(payment);
        } else {
            amountEther += payment;
        }
        
    }

    /*function deployMinersTest(uint32 _hour, address user, uint32[] area, uint32[] period, uint32[] count) public checkWhiteList payable {
        require(area.length > 0);
        require(area.length == period.length);
        require(area.length == count.length);
        address _user = user;
        if (_user == address(0)) {
            _user = msg.sender;
        }
        

        checkArea(area, user);
        
        uint payment = _deployMiners(_user, _hour, area, period, count);
        _updateCheckPoints(_user, _hour, area, period, count);

        require(payment <= msg.value);
        remainEther[msg.sender] += (msg.value - payment);
        amountEther += payment;
    }*/

    function _deployMiners(address _user, uint32 _hour, uint32[] memory area, uint32[] memory period, uint32[] memory count) internal returns(uint){
        uint payment = 0;
        uint32 minerCount = 0;
        uint32[3][72] storage _areaDeployed = areaHourDeployed[_hour];
        uint32[3][72] storage _userAreaDeployed = userAreaHourDeployed[_user].hour[_hour];
        
        
        for (uint index = 0; index < area.length; ++index) {
            require (period[index] == 4 || period[index] == 8 || period[index] == 24);
            if (period[index] == 4) {
                _areaDeployed[area[index]][0] += count[index];
                _userAreaDeployed[area[index]][0] += count[index];
                payment += count[index] * MINER_4_HOURS;
            } else if (period[index] == 8) {
                _areaDeployed[area[index]][1] += count[index];
                _userAreaDeployed[area[index]][1] += count[index];
                payment += count[index] * MINER_8_HOURS;
            } else if (period[index] == 24) {
                _areaDeployed[area[index]][2] += count[index];
                _userAreaDeployed[area[index]][2] += count[index];
                payment += count[index] * MINER_24_HOURS;
            }
            minerCount += count[index];
            DeployMiner(_user, area[index], _hour, _hour + period[index], count[index]);

            adjustDeployRange(area[index], _hour, _hour + period[index]);
        }
        return payment;
    }   

    function adjustDeployRange(uint area, uint start, uint end) internal {
        uint len = deployRange[msg.sender][area].length;
        if (len == 0) {
            deployRange[msg.sender][area].push(start | (end << 128));
        } else {
            uint s = uint128(deployRange[msg.sender][area][len - 1]);
            uint e = uint128(deployRange[msg.sender][area][len - 1] >> 128);
            
            if (start >= s && start < e) {
                end = e > end ? e : end;
                deployRange[msg.sender][area][len - 1] = s | (end << 128);
            } else {
                deployRange[msg.sender][area].push(start | (end << 128));
            }
        }
    }

    function getDeployArrayLength(uint area) public view returns (uint) {
        return deployRange[msg.sender][area].length;
    }
    
    function getDeploy(uint area, uint index) public view returns (uint,uint) {
        uint s = uint128(deployRange[msg.sender][area][index]);
        uint e = uint128(deployRange[msg.sender][area][index] >> 128);
        return (s, e);
    }

    function _updateCheckPoints(address _user, uint32 _hour, uint32[] memory area, uint32[] memory period, uint32[] memory count) internal {
        uint32 _area = 0;
        uint32 _count = 0;
        uint32 ce4 = _hour + 4;
        uint32 ce8 = _hour + 8;
        uint32 ce24 = _hour + 24;
        uint32 cs = (_hour/CHECK_POINT_HOUR+1)*CHECK_POINT_HOUR;
        AreaCheckPoint storage _userAreaCheckPoints = userAreaCheckPoints[_user];
        uint32 cp = 0;
        for (uint index = 0; index < area.length; ++index) {
            _area = area[index];
            _count = count[index];
            if (period[index] == 4) {
                for (cp = cs; cp <= ce4; cp += CHECK_POINT_HOUR) {
                    areaCheckPoints[cp][_area] += _count;
                    _userAreaCheckPoints.hour[cp][_area] += _count;
                }
            } else if (period[index] == 8) {
                for (cp = cs; cp <= ce8; cp += CHECK_POINT_HOUR) {
                    areaCheckPoints[cp][_area] += _count;
                    _userAreaCheckPoints.hour[cp][_area] += _count;
                }
            } else if (period[index] == 24) {
                for (cp = cs; cp <= ce24; cp += CHECK_POINT_HOUR) {
                    areaCheckPoints[cp][_area] += _count;
                    _userAreaCheckPoints.hour[cp][_area] += _count;
                }
            }
        }
    }

    

    event DeployMiner(address addr, uint32 area, uint32 start, uint32 end, uint32 count);

    event Collect(address addr, uint32 area, uint32 start, uint32 end, uint areaCount);

    function getMyLastCollectHour(uint32 area) public view returns (uint32){
        return userAreaHourDeployed[msg.sender].lastCollectHour[area];
    }

    
    
    function collect(address user, uint32[] area) public  checkWhiteList whenNotPaused {
        require(address(dayQualitysContract) != address(0));
        uint32 current = uint32((now - constractDeployTime) * timeScale / 1 hours);
        require(area.length > 0);
        address _user = user;
        if (_user == address(0)) {
            _user = msg.sender;
        }
        uint total = 0;
        
        for (uint a = 0; a < area.length; ++a) {
            uint len = deployRange[msg.sender][area[a]].length;
            bool finish = true;
            for (uint i = 0; i < len; i += 1) {
                uint s = uint128(deployRange[msg.sender][area[a]][i]);
                uint e = uint128(deployRange[msg.sender][area[a]][i] >> 128);
                if (current < e && current >= s ) {
                    total += _collect(_user, uint32(s), current, area[a]);
                    
                    deployRange[msg.sender][area[a]][i] = current | (e << 128);
                    finish = false;
                } else if (current >= e) {
                    total += _collect(_user, uint32(s), uint32(e), area[a]);
                }
            }
            
            if (finish) {
                deployRange[msg.sender][area[a]].length = 0;
            } else {
                deployRange[msg.sender][area[a]][0] = deployRange[msg.sender][area[a]][len - 1];
                deployRange[msg.sender][area[a]].length = 1;
            }
        }    

        ERC20(this).transfer(_user, total);
    }

    function _collect(address _user, uint32 start, uint32 end, uint32 area) internal returns (uint) {
        uint result = 0;
        uint32 writeCount = 1;
        uint income = 0;
        uint32[] memory totalMiners = new uint32[](CHECK_POINT_HOUR);
        uint32[] memory userMiners = new uint32[](CHECK_POINT_HOUR);
        uint32 ps = start/CHECK_POINT_HOUR*CHECK_POINT_HOUR+CHECK_POINT_HOUR;
        if (ps >= end) {
            
            (income, writeCount) = _collectMinersByCheckPoints(_user, area, start, end, totalMiners, userMiners, writeCount);
            result += income;
        } else {
            
            (income, writeCount) = _collectMinersByCheckPoints(_user, area, start, ps, totalMiners, userMiners, writeCount);
            result += income;

            while (ps < end) {
                (income, writeCount) = _collectMinersByCheckPoints(_user, area, ps, uint32(Math.min64(end, ps + CHECK_POINT_HOUR)), totalMiners, userMiners, writeCount);
                result += income;

                ps += CHECK_POINT_HOUR;
            }
        }
        Collect(_user, area, start, end, result);
        return result;
    }

    function _collectMinersByCheckPoints(address _user, uint32 area, uint32 start, uint32 end, uint32[] memory totalMiners, uint32[] memory userMiners, uint32 _writeCount) internal returns (uint income, uint32 writeCount) {
        //now start from start's nearest check point
        writeCount = _writeCount;
        income = 0;
        
        
        if (userAreaCheckPoints[_user].hour[start/CHECK_POINT_HOUR*CHECK_POINT_HOUR][area] == 0 && userAreaCheckPoints[_user].hour[start/CHECK_POINT_HOUR*CHECK_POINT_HOUR + CHECK_POINT_HOUR][area] == 0) {
            return;
        }
        _getMinersByCheckPoints(_user, area, start, end, totalMiners, userMiners);
        uint ao = dayAverageOutput[start / 24];
        if (ao == 0) {
            uint32 d = start / 24;
            for (; d >= 0; --d) {
                if (dayAverageOutput[d] != 0) {
                    break;
                }
            } 
            ao = dayAverageOutput[d];
            for (d = d+1; d <= start / 24; ++d) {
                ao = ao*9996/10000;
                if ((start / 24 - d) < writeCount) {
                    dayAverageOutput[d] = ao;
                }
            }
            if (writeCount > (start / 24 - d - 1)) {
                writeCount = writeCount - (start / 24 - d - 1);
            } else {
                writeCount = 0;
            }
        }

        uint week = dayQualitysContract.getAreaQualityByDay(uint32(start * 1 hours + constractDeployTime), area);
        require(week > 0);

        ao = week * ao / 10 / 24 / 72;
        
        income = _getTotalIncomeAt(end - start, userMiners, totalMiners, ao, week);

        if (week == 10) { 
            income = income * 8 / 10;
        } else if (week == 5) { 
            income = income * 6 / 10;
        } 
    }

    function _getTotalIncomeAt(uint32 hourLength, uint32[] memory userMiners, uint32[] memory totalMiners, uint areaOutput, uint week) internal view returns(uint) {
        uint income = 0;
        for (uint i = 0; i < hourLength; ++i) {
            if (userMiners[i] != 0 && totalMiners[i] != 0) {
                income += (Math.min256(10 ** uint256(decimals), areaOutput / totalMiners[i]) * userMiners[i]);
            }
        }
        return income;
    } 

    function _getMinersByCheckPoints(address _user, uint32 area, uint32 start, uint32 end, uint32[] memory totalMiners, uint32[] memory userMiners) internal view {
        require((end - start) <= CHECK_POINT_HOUR);
        //now start from start's nearest check point
        uint32 h = 0;
        int64 userInc = 0;
        int64 totalInc = 0;
        uint32[3] storage ptUser;
        uint32[3] storage ptArea;
        AreaHourDeployed storage _userAreaHourDeployed = userAreaHourDeployed[_user];
        
        for (h = start/CHECK_POINT_HOUR*CHECK_POINT_HOUR; h <= start; ++h) {
            
            
            
            ptUser = _userAreaHourDeployed.hour[h][area];
            ptArea = areaHourDeployed[h][area];
            totalInc += ptArea[0] + ptArea[1] + ptArea[2] - areaHourDeployed[h - 4][area][0] - areaHourDeployed[h - 8][area][1] - areaHourDeployed[h - 24][area][2];
            userInc += ptUser[0] + ptUser[1] + ptUser[2] - _userAreaHourDeployed.hour[h - 4][area][0] - _userAreaHourDeployed.hour[h - 8][area][1] - _userAreaHourDeployed.hour[h - 24][area][2];
        }

        totalMiners[0] = areaCheckPoints[start/CHECK_POINT_HOUR*CHECK_POINT_HOUR][area] + uint32(totalInc);
        userMiners[0] = userAreaCheckPoints[_user].hour[start/CHECK_POINT_HOUR*CHECK_POINT_HOUR][area] + uint32(userInc);

        uint32 i = 1;
        for (h = start + 1; h < end; ++h) {
            
            
            
            ptUser = _userAreaHourDeployed.hour[h][area];
            ptArea = areaHourDeployed[h][area];
            totalMiners[i] = totalMiners[i-1] + ptArea[0] + ptArea[1] + ptArea[2] - areaHourDeployed[h - 4][area][0] - areaHourDeployed[h - 8][area][1] - areaHourDeployed[h - 24][area][2];
            userMiners[i] = userMiners[i-1] + ptUser[0] + ptUser[1] + ptUser[2] - _userAreaHourDeployed.hour[h - 4][area][0] - _userAreaHourDeployed.hour[h - 8][area][1] - _userAreaHourDeployed.hour[h - 24][area][2];
            ++i;
        }
    }

    
    function withdraw() public {
        uint remain = remainEther[msg.sender]; 
        require(remain > 0);
        remainEther[msg.sender] = 0;

        msg.sender.transfer(remain);
    }

    
    function withdrawMinerFee() public onlyOwner {
        require(amountEther > 0);
        owner.transfer(amountEther);
        amountEther = 0;
    }

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyOwner whenNotPaused public {
        paused = true;
        Pause();
    }

    function unpause() onlyOwner whenPaused public {
        paused = false;
        Unpause();
    }

    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    function setJewelContract(address jewel) public onlyOwner {
        jewelContract = Jewel(jewel);
    }

    function incise(uint256 value) public returns (uint) {
        require(jewelContract != address(0));

        uint256 balance = balances[msg.sender];
        require(balance >= value);
        uint256 count = (value / (10 ** uint256(decimals)));
        require(count >= 1);

        uint ret = jewelContract.incise(msg.sender, count);

        burn(count * 10 ** uint256(decimals));

        return ret;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"remainEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_coldWallet","type":"address"}],"name":"setColdWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableWhiteUserList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CHECK_POINT_HOUR","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawMinerFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint32"},{"name":"hour","type":"uint32"}],"name":"getMyDeployAt","outputs":[{"name":"","type":"uint32[3]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint256"}],"name":"getDeployArrayLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint32"},{"name":"hour","type":"uint32"}],"name":"getDeployAt","outputs":[{"name":"","type":"uint32[3]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint32"},{"name":"hour","type":"uint32"}],"name":"getMyMinersAt","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setServerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"area","type":"uint32[]"}],"name":"collect","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MINER_8_HOURS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint256"},{"name":"index","type":"uint256"}],"name":"getDeploy","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"string"}],"name":"authUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINER_4_HOURS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"incise","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINER_24_HOURS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dayQualitysContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"deployRange","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"jewel","type":"address"}],"name":"setJewelContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"constractDeployTime","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint32"}],"name":"getMyLastCollectHour","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableCheckArea","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"jewelContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"area","type":"uint32"},{"name":"hour","type":"uint32"}],"name":"getMinersAt","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"area","type":"uint32[]"},{"name":"period","type":"uint32[]"},{"name":"count","type":"uint32[]"}],"name":"deployMiners","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"dayQualitys","type":"address"}],"name":"setDayQualitys","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timeScale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"area","type":"uint32"},{"indexed":false,"name":"start","type":"uint32"},{"indexed":false,"name":"end","type":"uint32"},{"indexed":false,"name":"count","type":"uint32"}],"name":"DeployMiner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"area","type":"uint32"},{"indexed":false,"name":"start","type":"uint32"},{"indexed":false,"name":"end","type":"uint32"},{"indexed":false,"name":"areaCount","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60c0604052600760808190527f4d696e6572616c0000000000000000000000000000000000000000000000000060a0908152620000409160049190620005f4565b506040805180820190915260038082527f4f5245000000000000000000000000000000000000000000000000000000000060209092019182526200008791600591620005f4565b506006805460ff191660121790556001600855610e1063ffffffff42166010805463ffffffff191692909104610e100263ffffffff169190911790556012805460ff19166001179055601580547401000000000000000000000000000000000000000060a060020a60ff0219918216179091556017805490911690553480156200011057600080fd5b5060038054600160a060020a0319163317905560068054632faf080060ff918216600a90810a91820260009081553081526001602081815260408084206311e1a30090960290955595548451606081018652602a81527f3078323264653662374638623631313962413845363246423431363538333465978101979097527f41303061646236663345000000000000000000000000000000000000000000009487019490945263068e77809390941690910a9190910292620001db9064010000000062000520810204565b600160a060020a0316600160a060020a0316815260200190815260200160002081905550600660009054906101000a900460ff1660ff16600a0a6301c9c380026001600062000295606060405190810160405280602a81526020017f307841336543443946343643436645344432374437343743396337343639393981526020017f306466373431326434380000000000000000000000000000000000000000000081525062000520640100000000026401000000009004565b600160a060020a0316600160a060020a0316815260200190815260200160002081905550600660009054906101000a900460ff1660ff16600a0a630393870002600160006200034f606060405190810160405280602a81526020017f307836383638323444423036393538366143306144383036303831364631443681526020017f364130454538323937620000000000000000000000000000000000000000000081525062000520640100000000026401000000009004565b600160a060020a0316600160a060020a0316815260200190815260200160002081905550600660009054906101000a900460ff1660ff16600a0a6308f0d180026001600062000409606060405190810160405280602a81526020017f307839453865413543363734454264383538363832313563654661623963313081526020017f384162396365413730320000000000000000000000000000000000000000000081525062000520640100000000026401000000009004565b600160a060020a0316600160a060020a0316815260200190815260200160002081905550600660009054906101000a900460ff1660ff16600a0a6308f0d1800260016000620004c3606060405190810160405280602a81526020017f307834373036663564326130643444346545354133376444453134333843376481526020017f653737344132413138340000000000000000000000000000000000000000000081525062000520640100000000026401000000009004565b600160a060020a03168152602080820192909252604001600090812092909255600654918052600c905260ff16600a0a6203b100027f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e85562000699565b6000818180805b8351821015620005ea5783828151811015156200054057fe5b01602001517f01000000000000000000000000000000000000000000000000000000000000009081900481020490506030811080159062000582575060398111155b15620005945760308103836010020192505b60418110158015620005a75750605a8111155b15620005b95760378103836010020192505b60618110158015620005cc5750607a8111155b15620005de5760578103836010020192505b60019091019062000527565b5090949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200063757805160ff191683800117855562000667565b8280016001018555821562000667579182015b82811115620006675782518255916020019190600101906200064a565b506200067592915062000679565b5090565b6200069691905b8082111562000675576000815560010162000680565b90565b613d5280620006a96000396000f30060806040526004361061023a5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630433df85811461023f57806306087e5b1461027257806306fdde0314610295578063095ea7b31461031f57806314dacf5b146103575780631813aea51461036c57806318160ddd1461039757806323b872dd146103ac57806328ce5cdb146103d65780632b048f77146103eb5780632c027eb9146104475780632ff2e9dc1461045f578063313ce567146104745780633b404266146104895780633ccfd60b146104ad5780633dd00c42146104c25780633f4ba83a146104ff57806342966c681461051457806347b64eb01461052c5780634d6a7d331461054d5780634dbd71eb146105b057806350beb835146105c55780635a589fc9146105f95780635c975abb1461065257806363c2558a14610667578063661884631461067c57806370a08231146106a057806382281104146106c15780638456cb59146106d95780638da5cb5b146106ee5780638e73d8571461071f5780638ffdbf0b1461073457806390ce34ec1461074957806395d89b411461077057806395ddb3a614610785578063a7d53800146107a6578063a9059cbb146107bb578063a949f3af146107df578063b74d13a5146107fd578063cc99ece114610812578063d6387a3e14610827578063d73dd6231461084b578063dd62ed3e1461086f578063eea0d16814610896578063f0a7975f1461095e578063f2fde38b1461097f578063f32b85e8146109a0575b600080fd5b34801561024b57600080fd5b50610260600160a060020a03600435166109b5565b60408051918252519081900360200190f35b34801561027e57600080fd5b50610293600160a060020a03600435166109c7565b005b3480156102a157600080fd5b506102aa610a0d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e45781810151838201526020016102cc565b50505050905090810190601f1680156103115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032b57600080fd5b50610343600160a060020a0360043516602435610a9b565b604080519115158252519081900360200190f35b34801561036357600080fd5b50610293610b01565b34801561037857600080fd5b50610381610b24565b6040805160ff9092168252519081900360200190f35b3480156103a357600080fd5b50610260610b29565b3480156103b857600080fd5b50610343600160a060020a0360043581169060243516604435610b2f565b3480156103e257600080fd5b50610293610b5c565b3480156103f757600080fd5b5061040f63ffffffff60043581169060243516610bc6565b6040518082606080838360005b8381101561043457818101518382015260200161041c565b5050505090500191505060405180910390f35b34801561045357600080fd5b50610260600435610c64565b34801561046b57600080fd5b50610260610c86565b34801561048057600080fd5b50610381610c98565b34801561049557600080fd5b5061040f63ffffffff60043581169060243516610ca1565b3480156104b957600080fd5b50610293610ccc565b3480156104ce57600080fd5b506104e663ffffffff60043581169060243516610d27565b6040805163ffffffff9092168252519081900360200190f35b34801561050b57600080fd5b50610293610d3b565b34801561052057600080fd5b50610293600435610db3565b34801561053857600080fd5b50610293600160a060020a0360043516610e71565b34801561055957600080fd5b50604080516020600460248035828101358481028087018601909752808652610293968435600160a060020a031696369660449591949091019291829185019084908082843750949750610eb79650505050505050565b3480156105bc57600080fd5b50610260611381565b3480156105d157600080fd5b506105e060043560243561138c565b6040805192835260208301919091528051918290030190f35b34801561060557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102939436949293602493928401919081908401838280828437509497506114399650505050505050565b34801561065e57600080fd5b50610343611499565b34801561067357600080fd5b506102606114a9565b34801561068857600080fd5b50610343600160a060020a03600435166024356114b4565b3480156106ac57600080fd5b50610260600160a060020a03600435166115a4565b3480156106cd57600080fd5b506102606004356115bf565b3480156106e557600080fd5b506102936116d2565b3480156106fa57600080fd5b5061070361174f565b60408051600160a060020a039092168252519081900360200190f35b34801561072b57600080fd5b5061026061175e565b34801561074057600080fd5b50610703611769565b34801561075557600080fd5b50610260600160a060020a0360043516602435604435611778565b34801561077c57600080fd5b506102aa6117b4565b34801561079157600080fd5b50610293600160a060020a036004351661180f565b3480156107b257600080fd5b506104e6611855565b3480156107c757600080fd5b50610343600160a060020a0360043516602435611861565b3480156107eb57600080fd5b506104e663ffffffff60043516611885565b34801561080957600080fd5b506102936118c8565b34801561081e57600080fd5b506107036118ff565b34801561083357600080fd5b506104e663ffffffff6004358116906024351661190e565b34801561085757600080fd5b50610343600160a060020a036004351660243561191a565b34801561087b57600080fd5b50610260600160a060020a03600435811690602435166119b3565b604080516020600460248035828101358481028087018601909752808652610293968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506119de9650505050505050565b34801561096a57600080fd5b50610293600160a060020a0360043516611b2c565b34801561098b57600080fd5b50610293600160a060020a0360043516611b72565b3480156109ac57600080fd5b50610260611c07565b600f6020526000908152604090205481565b600354600160a060020a031633146109de57600080fd5b6015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6004805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a935780601f10610a6857610100808354040283529160200191610a93565b820191906000526020600020905b815481529060010190602001808311610a7657829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600354600160a060020a03163314610b1857600080fd5b6012805460ff19169055565b600481565b60005481565b60175460009060a060020a900460ff1615610b4957600080fd5b610b54848484611c0d565b949350505050565b600354600160a060020a03163314610b7357600080fd5b600e54600010610b8257600080fd5b600354600e54604051600160a060020a039092169181156108fc0291906000818181858888f19350505050158015610bbe573d6000803e3d6000fd5b506000600e55565b610bce613cbd565b336000908152600a6020908152604080832063ffffffff8087168552600990910190925290912090841660488110610c0257fe5b604080516060810191829052929190910190600390826000855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610c1c57509498975050505050505050565b3360009081526007602052604081208260488110610c7e57fe5b015492915050565b60065460ff16600a0a632faf08000281565b60065460ff1681565b610ca9613cbd565b63ffffffff808316600090815260096020526040902090841660488110610c0257fe5b336000908152600f6020526040812054908111610ce857600080fd5b336000818152600f60205260408082208290555183156108fc0291849190818181858888f19350505050158015610d23573d6000803e3d6000fd5b5050565b6000610d34338484611d86565b9392505050565b600354600160a060020a03163314610d5257600080fd5b60175460a060020a900460ff161515610d6a57600080fd5b6017805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6000808211610dc157600080fd5b33600090815260016020526040902054821115610ddd57600080fd5b5033600081815260016020526040902054610dfe908363ffffffff61200516565b600160a060020a03821660009081526001602052604081209190915554610e2b908363ffffffff61200516565b600055604080518381529051600160a060020a038316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600354600160a060020a03163314610e8857600080fd5b6014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000806000806000806000601260009054906101000a900460ff1615610ef8573360009081526013602052604090205460ff161515610ef857600080fd5b60175460a060020a900460ff1615610f0f57600080fd5b601754600160a060020a03161515610f2657600080fd5b600854601054610e109163ffffffff90911642030204985060008a51111515610f4e57600080fd5b8a9750600160a060020a0388161515610f65573397505b60009650600095505b89518610156112e0573360009081526007602052604090208a518b9088908110610f9457fe5b6020908102909101015163ffffffff1660488110610fae57fe5b0154945060019350600092505b84831015611198573360009081526007602052604090208a518b9088908110610fe057fe5b6020908102909101015163ffffffff1660488110610ffa57fe5b0180548490811061100757fe5b90600052602060002001546fffffffffffffffffffffffffffffffff16915060806007600033600160a060020a0316600160a060020a031681526020019081526020016000208b8881518110151561105b57fe5b6020908102909101015163ffffffff166048811061107557fe5b0180548590811061108257fe5b90600052602060002001549060020a90046fffffffffffffffffffffffffffffffff169050808963ffffffff161080156110c25750818963ffffffff1610155b15611167576110ea88838b8d8a8151811015156110db57fe5b90602001906020020151612017565b3360009081526007602052604090208b51919098019763ffffffff8b16700100000000000000000000000000000000840217918c908990811061112957fe5b6020908102909101015163ffffffff166048811061114357fe5b0180548590811061115057fe5b90600052602060002001819055506000935061118d565b63ffffffff8916811161118d576111888883838d8a8151811015156110db57fe5b870196505b600183019250610fbb565b83156111e6573360009081526007602052604081208b518c90899081106111bb57fe5b6020908102909101015163ffffffff16604881106111d557fe5b6111e0910182613cdc565b506112d5565b3360009081526007602052604090208a518b908890811061120357fe5b6020908102909101015163ffffffff166048811061121d57fe5b018054600019870190811061122e57fe5b6000918252602080832090910154338352600790915260409091208b518c908990811061125757fe5b6020908102909101015163ffffffff166048811061127157fe5b018054600090811061127f57fe5b60009182526020808320909101929092553381526007909152604090208a51600191908c90899081106112ae57fe5b6020908102909101015163ffffffff16604881106112c857fe5b6112d3910182613cdc565b505b856001019550610f6e565b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038a166004820152602481018990529051309163a9059cbb9160448083019260209291908290030181600087803b15801561134857600080fd5b505af115801561135c573d6000803e3d6000fd5b505050506040513d602081101561137257600080fd5b50505050505050505050505050565b66038d7ea4c6800081565b33600090815260076020526040812081908190819086604881106113ac57fe5b018054869081106113b957fe5b6000918252602080832090910154338352600790915260409091206fffffffffffffffffffffffffffffffff909116925060809087604881106113f857fe5b0180548790811061140557fe5b90600052602060002001549060020a90046fffffffffffffffffffffffffffffffff16905081819350935050509250929050565b601454600090600160a060020a031633148061145f5750600354600160a060020a031633145b151561146a57600080fd5b61147382612172565b600160a060020a03166000908152601360205260409020805460ff191660011790555050565b60175460a060020a900460ff1681565b6601c6bf5263400081565b336000908152600260209081526040808320600160a060020a03861684529091528120548083111561150957336000908152600260209081526040808320600160a060020a038816845290915281205561153e565b611519818463ffffffff61200516565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526001602052604090205490565b601654600090819081908190600160a060020a031615156115df57600080fd5b336000908152600160205260409020549250848310156115fe57600080fd5b60065460ff16600a0a8581151561161157fe5b049150600182101561162257600080fd5b601654604080517f833eaa8b000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163833eaa8b916044808201926020929091908290030181600087803b15801561168f57600080fd5b505af11580156116a3573d6000803e3d6000fd5b505050506040513d60208110156116b957600080fd5b5051600654909150610b549060ff16600a0a8302610db3565b600354600160a060020a031633146116e957600080fd5b60175460a060020a900460ff161561170057600080fd5b6017805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b660aa87bee53800081565b601754600160a060020a031681565b6007602052600083815260409020826048811061179157fe5b0180548290811061179e57fe5b9060005260206000200160009250925050505481565b6005805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a935780601f10610a6857610100808354040283529160200191610a93565b600354600160a060020a0316331461182657600080fd5b6016805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60105463ffffffff1681565b60175460009060a060020a900460ff161561187b57600080fd5b610d34838361223b565b336000908152600a6020526040812063ffffffff8316604881106118a557fe5b600891828204019190066004029054906101000a900463ffffffff169050919050565b600354600160a060020a031633146118df57600080fd5b6015805474ff000000000000000000000000000000000000000019169055565b601654600160a060020a031681565b6000610d34838361231e565b336000908152600260209081526040808320600160a060020a038616845290915281205461194e908363ffffffff61249516565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6012546000908190819060ff1615611a0e573360009081526013602052604090205460ff161515611a0e57600080fd5b60175460a060020a900460ff1615611a2557600080fd5b8551600010611a3357600080fd5b8451865114611a4157600080fd5b8351865114611a4f57600080fd5b869250600160a060020a0383161515611a66573392505b600854601054610e109163ffffffff909116420302049150611a8886886124a4565b611a9583838888886126b5565b9050611aa48383888888612c16565b34811115611ab157600080fd5b336000908152600f60205260409020805434839003019055601554600160a060020a031615611b1a57601554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015611b14573d6000803e3d6000fd5b50611b23565b600e8054820190555b50505050505050565b600354600160a060020a03163314611b4357600080fd5b6017805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a03163314611b8957600080fd5b600160a060020a0381161515611b9e57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b6000600160a060020a0383161515611c2457600080fd5b600160a060020a038416600090815260016020526040902054821115611c4957600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115611c7957600080fd5b600160a060020a038416600090815260016020526040902054611ca2908363ffffffff61200516565b600160a060020a038086166000908152600160205260408082209390935590851681522054611cd7908363ffffffff61249516565b600160a060020a038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054611d1b908363ffffffff61200516565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6000808080808060048063ffffffff8916600160a060020a038c166000908152600d60209081526040808320949093049490940263ffffffff81811683529390945220919650891660488110611dd857fe5b60088104919091015460079091166004026101000a900463ffffffff16158015611e565750600160a060020a0389166000908152600d6020908152604080832063ffffffff60048a0181168552925290912090891660488110611e3757fe5b60088104919091015460079091166004026101000a900463ffffffff16155b15611e645760009550611ff9565b50600160a060020a0388166000908152600a602052604081208594509092505b63ffffffff80881690851611611fa15763ffffffff8085166000908152600983016020526040902090891660488110611eb957fe5b63ffffffff6017198701811660009081526009850160205260409020929091019350891660488110611ee757fe5b015463ffffffff600719860181166000908152600984016020526040902068010000000000000000909204811691908a1660488110611f2257fe5b015463ffffffff6003198701811660009081526009850160205260409020640100000000909204811691908b1660488110611f5957fe5b015484546001979097019663ffffffff918216818316640100000000830484160168010000000000000000909204831691909101039190910391909103169290920191611e84565b600160a060020a0389166000908152600d6020908152604080832063ffffffff808a168552925290912084918a1660488110611fd957fe5b600891828204019190066004029054906101000a900463ffffffff160195505b50505050509392505050565b60008282111561201157fe5b50900390565b60408051600480825260a08201909252600091829160019183916060918291849160208201608080388339505060408051600480825260a082019092529295509050602082016080803883390190505091506004808063ffffffff8d16040201905063ffffffff808a16908216106120a5576120988b898c8c87878b612f75565b9681019695509350612105565b6120b48b898c8487878b612f75565b96810196955093505b8863ffffffff168163ffffffff161015612105576120f58b89836120ed63ffffffff808f169060048401166132b5565b87878b612f75565b96810196955093506004016120bd565b60408051600160a060020a038d16815263ffffffff808b166020830152808d16828401528b1660608201526080810188905290517feb20d87b6aef9216f658e1fcee101a026ada2f53b25e6fc37e6ed979b8d9f44f9181900360a00190a150939998505050505050505050565b60008080805b845182101561223257848281518110151561218f57fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050603081108015906121d0575060398111155b156121e15760308103836010020192505b604181101580156121f35750605a8111155b156122045760378103836010020192505b606181101580156122165750607a8111155b156122275760578103836010020192505b600190910190612178565b50909392505050565b6000600160a060020a038316151561225257600080fd5b3360009081526001602052604090205482111561226e57600080fd5b3360009081526001602052604090205461228e908363ffffffff61200516565b3360009081526001602052604080822092909255600160a060020a038516815220546122c0908363ffffffff61249516565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6000600463ffffffff831681900402808280805b63ffffffff808816908516116124475763ffffffff80851660009081526009602052604090209089166048811061236557fe5b63ffffffff60171987018116600090815260096020526040902092909101925089166048811061239157fe5b015463ffffffff60071986018116600090815260096020526040902068010000000000000000909204811691908a16604881106123ca57fe5b015463ffffffff600319870181166000908152600960205260409020640100000000909204811691908b16604881106123ff57fe5b015483546001979097019663ffffffff918216818316640100000000830484160168010000000000000000909204831691909101039190910391909103169190910190612332565b63ffffffff8086166000908152600b6020526040902083918a166048811061246b57fe5b600891828204019190066004029054906101000a900463ffffffff16019550505050505092915050565b600082820183811015610d3457fe5b6060600080600080600080601560149054906101000a900460ff16156126aa5788516040519080825280602002602001820160405280156124ef578160200160208202803883390190505b50965060009550600094505b88518510156125b55760009350600092505b8583101561256557888581518110151561252357fe5b9060200190602002015163ffffffff16878481518110151561254157fe5b90602001906020020151141561255a5760019350612565565b60019092019161250d565b8315156125aa57888581518110151561257a57fe5b9060200190602002015163ffffffff16878781518110151561259857fe5b60209081029091010152600195909501945b6001909401936124fb565b600160a060020a038816600090815260116020526040902054151561262057600186146125e157600080fd5b6126028760008151811015156125f357fe5b906020019060200201516132df565b600160a060020a0389166000908152601160205260409020556126aa565b5050600160a060020a038616600090815260116020526040812054909350805b8585101561268e576000878681518110151561265857fe5b6020908102909101015160020a83161161267157600080fd5b61268287868151811015156125f357fe5b60019095019417612640565b600160a060020a03881660009081526011602052604090208190555b505050505050505050565b63ffffffff84166000818152600960208181526040808420600160a060020a038b168552600a8352818520958552949092019052812090918291829190825b8851811015612c0757878181518110151561270b57fe5b9060200190602002015163ffffffff16600414806127465750878181518110151561273257fe5b9060200190602002015163ffffffff166008145b8061276e5750878181518110151561275a57fe5b9060200190602002015163ffffffff166018145b151561277957600080fd5b878181518110151561278757fe5b9060200190602002015163ffffffff166004141561288e5786818151811015156127ad57fe5b90602001906020020151838a838151811015156127c657fe5b6020908102909101015163ffffffff16604881106127e057fe5b01805463ffffffff19811663ffffffff9182169390930116919091179055865187908290811061280c57fe5b90602001906020020151828a8381518110151561282557fe5b6020908102909101015163ffffffff166048811061283f57fe5b01805463ffffffff19811663ffffffff918216939093011691909117905586516601c6bf526340009088908390811061287457fe5b9060200190602002015163ffffffff160285019450612ae8565b878181518110151561289c57fe5b9060200190602002015163ffffffff16600814156129a85786818151811015156128c257fe5b90602001906020020151838a838151811015156128db57fe5b6020908102909101015163ffffffff16604881106128f557fe5b01805463ffffffff6401000000008083048216949094011690920267ffffffff0000000019909216919091179055865187908290811061293157fe5b90602001906020020151828a8381518110151561294a57fe5b6020908102909101015163ffffffff166048811061296457fe5b01805463ffffffff64010000000080830482169094011690920267ffffffff0000000019909216919091179055865166038d7ea4c680009088908390811061287457fe5b87818151811015156129b657fe5b9060200190602002015163ffffffff1660181415612ae85786818151811015156129dc57fe5b90602001906020020151838a838151811015156129f557fe5b6020908102909101015163ffffffff1660488110612a0f57fe5b01805463ffffffff68010000000000000000808304821694909401169092026bffffffff0000000000000000199092169190911790558651879082908110612a5357fe5b90602001906020020151828a83815181101515612a6c57fe5b6020908102909101015163ffffffff1660488110612a8657fe5b01805463ffffffff680100000000000000008083048216909401169092026bffffffff0000000000000000199092169190911790558651660aa87bee53800090889083908110612ad257fe5b9060200190602002015163ffffffff1602850194505b8681815181101515612af657fe5b90602001906020020151840193507f66412e9e4538ab9be49dd3e9c38afd30dc90b3bfdfe105047cf5cc945c311af68b8a83815181101515612b3457fe5b906020019060200201518c8b85815181101515612b4d57fe5b906020019060200201518e018b86815181101515612b6757fe5b602090810290910181015160408051600160a060020a03909716875263ffffffff9586169287019290925292841685820152908316606085015291166080830152519081900360a00190a1612bff8982815181101515612bc357fe5b9060200190602002015163ffffffff168b63ffffffff168a84815181101515612be857fe5b906020019060200201518d0163ffffffff1661335d565b6001016126f4565b50929998505050505050505050565b600160a060020a0385166000908152600d602052604081208190600487810191600889019160188a0191600163ffffffff8c16839004019091029085805b8b51811015612f65578b81815181101515612c6b57fe5b9060200190602002015198508981815181101515612c8557fe5b9060200190602002015197508a81815181101515612c9f57fe5b9060200190602002015163ffffffff1660041415612d83578391505b63ffffffff80881690831611612d7e5763ffffffff8083166000908152600b6020526040902089918b1660488110612cef57fe5b6008810491909101805460079092166004026101000a63ffffffff81810219841693829004811694909401841602919091179055828116600090815260208590526040902089918b1660488110612d4257fe5b60088104909101805463ffffffff6004600790941684026101000a80830482169095018116850294021916929092179091559190910190612cbb565b612f5d565b8a81815181101515612d9157fe5b9060200190602002015163ffffffff1660081415612e70578391505b63ffffffff80871690831611612d7e5763ffffffff8083166000908152600b6020526040902089918b1660488110612de157fe5b6008810491909101805460079092166004026101000a63ffffffff81810219841693829004811694909401841602919091179055828116600090815260208590526040902089918b1660488110612e3457fe5b60088104909101805463ffffffff6004600790941684026101000a80830482169095018116850294021916929092179091559190910190612dad565b8a81815181101515612e7e57fe5b9060200190602002015163ffffffff1660181415612f5d578391505b63ffffffff80861690831611612f5d5763ffffffff8083166000908152600b6020526040902089918b1660488110612ece57fe5b6008810491909101805460079092166004026101000a63ffffffff81810219841693829004811694909401841602919091179055828116600090815260208590526040902089918b1660488110612f2157fe5b60088104909101805463ffffffff6004600790941684026101000a80830482169095018116850294021916929092179091559190910190612e9a565b600101612c54565b5050505050505050505050505050565b600160a060020a0387166000908152600d60209081526040808320600463ffffffff8a811682900490910281168552925282208391839182918291908c1660488110612fbd57fe5b60088104919091015460079091166004026101000a900463ffffffff161580156130445750600160a060020a038c166000908152600d60209081526040808320600463ffffffff8f81168290048202909101811685529252909120908c166048811061302557fe5b60088104919091015460079091166004026101000a900463ffffffff16155b1561304e576132a6565b61305c8c8c8c8c8c8c613539565b601863ffffffff8b811691909104166000908152600c6020526040902054925082151561319d57601863ffffffff8b160491505b600063ffffffff8316106130ca5763ffffffff82166000908152600c6020526040902054156130be576130ca565b60001990910190613090565b63ffffffff82166000908152600c602052604090205492506001909101905b601863ffffffff8b160463ffffffff168263ffffffff1611151561315e5761271061270c84020492508363ffffffff168260188c63ffffffff1681151561312c57fe5b040363ffffffff1610156131535763ffffffff82166000908152600c602052604090208390555b8160010191506130e9565b600182601863ffffffff8d1604030363ffffffff168463ffffffff16111561319857600182601863ffffffff8d160403038403935061319d565b600093505b601754601054604080517f0eb3f993000000000000000000000000000000000000000000000000000000008152610e108e0263ffffffff9384160183166004820152918e16602483015251600160a060020a0390921691630eb3f993916044808201926020929091908290030181600087803b15801561321c57600080fd5b505af1158015613230573d6000803e3d6000fd5b505050506040513d602081101561324657600080fd5b505163ffffffff1690506000811161325d57600080fd5b60486018600a838602040404925061327a8a8a03888a8685613bd4565b945080600a141561329357600a600886020494506132a6565b80600514156132a657600a600686020494505b50505097509795505050505050565b60008167ffffffffffffffff168367ffffffffffffffff16106132d85781610d34565b5090919050565b60006008820460078316600284900a60001983018411613308576008600019840102820160020a175b60098360010110156133225760086001840102820160020a175b600060001983011061333d576000196008840283010160020a175b6008826001011015610b54576008929092020160010160020a1792915050565b33600090815260076020526040812081908190866048811061337b57fe5b015492508215156133d15733600090815260076020526040902086604881106133a057fe5b0180546001810182556000918252602090912070010000000000000000000000000000000086028717910155613531565b33600090815260076020526040902086604881106133eb57fe5b01805460001985019081106133fc57fe5b6000918252602080832090910154338352600790915260409091206fffffffffffffffffffffffffffffffff9091169250608090876048811061343b57fe5b018054600019860190811061344c57fe5b90600052602060002001549060020a90046fffffffffffffffffffffffffffffffff16905081851015801561348057508085105b156134ea578381116134925783613494565b805b336000908152600760205260409020909450700100000000000000000000000000000000850283179087604881106134c857fe5b01805460001986019081106134d957fe5b600091825260209091200155613531565b336000908152600760205260409020866048811061350457fe5b01805460018101825560009182526020909120700100000000000000000000000000000000860287179101555b505050505050565b6000808080808080600463ffffffff8c8c0316111561355757600080fd5b600160a060020a038d166000908152600a60205260408120600463ffffffff8e1681900402985090965086955091505b63ffffffff808c169088161161379c5763ffffffff80881660009081526009840160205260409020908d16604881106135bc57fe5b63ffffffff808a1660009081526009602052604090209290910195508d16604881106135e457fe5b63ffffffff6017198a01811660009081526009602052604090209290910194508d166048811061361057fe5b015463ffffffff60071989018116600090815260096020526040902068010000000000000000909204811691908e166048811061364957fe5b015463ffffffff6003198a0181166000908152600960205260409020640100000000909204811691908f166048811061367e57fe5b015485546017198b0163ffffffff90811660009081526009880160205260409020928116828216640100000000840483160168010000000000000000909304821692909201919091039290920392909203811696909601958d16604881106136e257fe5b015463ffffffff600719890181166000908152600985016020526040902068010000000000000000909204811691908e166048811061371d57fe5b015463ffffffff6003198a01811660009081526009860160205260409020640100000000909204811691908f166048811061375457fe5b0154865460019a909a019963ffffffff918216818316640100000000830484160168010000000000000000909204831691909101039190910391909103169590950194613587565b84600b6000600460ff16600460ff168f63ffffffff168115156137bb57fe5b040263ffffffff1663ffffffff1681526020019081526020016000208d63ffffffff166048811015156137ea57fe5b600891828204019190066004029054906101000a900463ffffffff160189600081518110151561381657fe5b9060200190602002019063ffffffff16908163ffffffff168152505085600d60008f600160a060020a0316600160a060020a031681526020019081526020016000206000016000600460ff16600460ff168f63ffffffff1681151561387757fe5b040263ffffffff1663ffffffff1681526020019081526020016000208d63ffffffff166048811015156138a657fe5b600891828204019190066004029054906101000a900463ffffffff16018860008151811015156138d257fe5b63ffffffff9092166020928302909101909101525060018a810196505b8963ffffffff168763ffffffff1610156113725763ffffffff80881660009081526009840160205260409020908d166048811061392857fe5b63ffffffff808a1660009081526009602052604090209290910195508d166048811061395057fe5b63ffffffff6017198a01811660009081526009602052604090209290910194508d166048811061397c57fe5b015463ffffffff60071989018116600090815260096020526040902068010000000000000000909204811691908e16604881106139b557fe5b015463ffffffff6003198a0181166000908152600960205260409020640100000000909204811691908f16604881106139ea57fe5b01600060088104919091015460079091166004026101000a900463ffffffff1685600260088104919091015460079091166004026101000a900463ffffffff1686600160088104919091015460079091166004026101000a900463ffffffff16876000600891828204019190066004029054906101000a900463ffffffff168e6001880363ffffffff16815181101515613a8057fe5b90602001906020020151010101030303898263ffffffff16815181101515613aa457fe5b63ffffffff92831660209182029092018101919091526017198901821660009081526009850190915260409020908d1660488110613ade57fe5b015463ffffffff600719890181166000908152600985016020526040902068010000000000000000909204811691908e1660488110613b1957fe5b015463ffffffff6003198a01811660009081526009860160205260409020640100000000909204811691908f1660488110613b5057fe5b015486548b5163ffffffff928316926801000000000000000083048116926401000000008104821692908216918f916000198a01909116908110613b9057fe5b90602001906020020151010101030303888263ffffffff16815181101515613bb457fe5b63ffffffff909216602092830290910190910152600196870196016138ef565b600080805b8763ffffffff16811015613ca3578681815181101515613bf557fe5b9060200190602002015163ffffffff16600014158015613c3357508581815181101515613c1e57fe5b9060200190602002015163ffffffff16600014155b15613c9b578681815181101515613c4657fe5b60209081029091010151600654875163ffffffff90921691613c959160ff16600a0a90899085908110613c7557fe5b9060200190602002015163ffffffff1688811515613c8f57fe5b04613cae565b02820191505b600101613bd9565b509695505050505050565b60008183106132d85781610d34565b6060604051908101604052806003906020820280388339509192915050565b815481835581811115613d0057600083815260209020613d00918101908301613d05565b505050565b613d2391905b80821115613d1f5760008155600101613d0b565b5090565b905600a165627a7a723058207502ec7dc64dc5cbf594830ad5a7904e16365f453afcbcc56527f1118d6986d90029

   Swarm Source:
bzzr://7502ec7dc64dc5cbf594830ad5a7904e16365f453afcbcc56527f1118d6986d9

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.