Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview
Balance: 0.000000000000001511 Ether
Ether Value: Less Than $0.01 (@ $178.06/ETH)
Transactions: 6532 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 6532 transactions

TxHash Age From To Value [TxFee]
0x7f1d7e7296a4d70a2cc6eb1cfab6f1b3dc9b3c8d1c89f8dd1dfb4f55482394631 hr 22 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.025 Ether0.000440556
0x108431776765298c05b9ea24bb85a0d061af9e4edbc69991c98bdb700d31b63b3 hrs 31 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.05 Ether0.00094073
0xbf76734c6338fc47cf9bc2a009c57a95bc12fd49aad182d5d372c62436caf6793 hrs 37 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.05 Ether0.00037786
0xef913e9b2ccc80c8b6ed6c87d54b779269df5ce7ae7d091b0c5fa4f71d3f61e83 hrs 40 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.05 Ether0.00037786
0xcaa00da5bd988fbbcb17fd0e9c300f4073d1d84f7b1411f4b3bd4e540cbd00483 hrs 41 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.2 Ether0.000752132
0xe10a961ec35fc7c890192b826b34484d6c27aeacb1660eb9ee8c7e6cc239f8b23 hrs 42 mins ago0xbcee12cfc0263c793674f3bbc31481a286c40250  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000264304
0xdba20a3c9288c04c17ff6311b5ec4a58417726184b19a08b2732e975795b75644 hrs 49 mins ago0xd61fe9840fcca733697faaef53257f518cfbb7fd  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.01 Ether0.001016165
0xa2db70eead9f01139bb0e7495ab57b0ce2028cf0828be1b09664eb260312e39c6 hrs 55 mins ago0x4c77a426b0a780e68ff144ac65d9d91f25e5c21d  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.01 Ether0.000609099
0xcd15710b6e684647eb00f09a465af6a63fddcf5923813378a01b35a2e8dd688b7 hrs 3 mins ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.005 Ether0.000440295
0x5e15676ce0bf8fc582606a18382ff07a6d36611baf0c7fe206f5d297fb8bb6d17 hrs 6 mins ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.011 Ether0.000609099
0xacdf60298ee8cec7fc035be8c758d63f166961d058628cbfb5727dc7ab1d63b77 hrs 7 mins ago0x737a1647c8ebd06c084a85659ae379012f642268  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000282405
0x9f0daf14d3c79bb568ead492529e6da511bd5327139948abc8bdb746c0b945037 hrs 55 mins ago0x3a897bab7522d0eebdaa14bb79c67e5b266f1f4a  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.3 Ether0.002411555
0x10da0f9bc3282920a6628afc6840b00a6f729b69e23c6d3b3766215ac8d3bfdb8 hrs 28 mins ago0xc99ba911ab8c48226441afe38c5aa08cf74cb8d7  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000204856
0xc68b4cad1d8b71c39624ec7ee42a10e92cd8161b7446150deecd8f3f1851b6fa9 hrs 53 mins ago0x35f0a980ce5c2feeb48aa05ad7d7ebe217450824  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.0005 Ether0.00088426
0x0dc39dd85775fcaa5aed38d4fc8d468c932e27b10ffcbccce0337d009949019e9 hrs 56 mins ago0x35f0a980ce5c2feeb48aa05ad7d7ebe217450824  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.0005 Ether0.00088426
0x5336b24a38303d69eec8ad4183b492fbe1a8b1578fda9f9029ff090bd6649dc911 hrs 50 mins ago0xb54e40fc98bc4901cd2dcca08d35ae6737bbe37c  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000113706
0x9d308c9f9db8bb38ee9d15f3ae825ad2539673dd87393b87d1726e87ffd5773113 hrs 49 mins ago0xc99ba911ab8c48226441afe38c5aa08cf74cb8d7  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000297408
0xac2e901f77beaa2368f8e0b6b8e102f954598488a341632d71b43c8fbdcd011916 hrs 54 mins ago0xe3b4dcf7a144a96dc5078db32deda47ed66db7f5  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.025 Ether0.00089201
0xe56856f1e48c0d89ae7a314eaaea288428284ad50f81dd55d99e0e5a7e9f9b7117 hrs 51 mins ago0xc99ba911ab8c48226441afe38c5aa08cf74cb8d7  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000410104
0x2246c56237cc3c16c37c8ff14fe45de5072847e60f3ca4b6fb783027b467ac7918 hrs 8 mins ago0xa04f9f530b48d4706c1e3f5d467b1e803a71155d  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000183728
0xe7a36669f01742097db15cb6d3f43f6e51da05bcb58ece6da8f7fca8cf169a1f18 hrs 16 mins ago0x70bcef9e32730d4d5764039acf7f99668a890cff  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000158898
0x6be6cc70f9e14c5c0f247b8b584b0f85fc557d426971f882e9f5bf7aed62bff518 hrs 20 mins ago0x70bcef9e32730d4d5764039acf7f99668a890cff  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000898773
0x2aaebc88ab4be04e407d8374e57ea0b55a9d253816bf8e325c823a0a7ca606f518 hrs 56 mins ago0xc99ba911ab8c48226441afe38c5aa08cf74cb8d7  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130.2 Ether0.001090165
0xb58c94c409fc86df084db42e83afdde82cd24f5bdf4e1bd0ee4b8ffee465654119 hrs 35 mins ago0xd048bf355c2b7cd30399b05a1f1cc68e819716bb  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.000183728
0x261ac04c4d55d15bab416aeeda9c874d4b5b4a8f1929a4a6ba53652b82c1d4a119 hrs 41 mins ago0xc99ba911ab8c48226441afe38c5aa08cf74cb8d7  IN   0x35ac488b773dac506ee857895ee9dc34b250f3130 Ether0.00026483
[ 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
0x7f1d7e7296a4d70a2cc6eb1cfab6f1b3dc9b3c8d1c89f8dd1dfb4f554823946367287081 hr 22 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.025 Ether
0x108431776765298c05b9ea24bb85a0d061af9e4edbc69991c98bdb700d31b63b67281603 hrs 31 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0xbf76734c6338fc47cf9bc2a009c57a95bc12fd49aad182d5d372c62436caf67967281353 hrs 37 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0xef913e9b2ccc80c8b6ed6c87d54b779269df5ce7ae7d091b0c5fa4f71d3f61e867281223 hrs 40 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0xcaa00da5bd988fbbcb17fd0e9c300f4073d1d84f7b1411f4b3bd4e540cbd004867281143 hrs 41 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.2 Ether
0xdba20a3c9288c04c17ff6311b5ec4a58417726184b19a08b2732e975795b756467278304 hrs 49 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0xa2db70eead9f01139bb0e7495ab57b0ce2028cf0828be1b09664eb260312e39c67272806 hrs 55 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0xcd15710b6e684647eb00f09a465af6a63fddcf5923813378a01b35a2e8dd688b67272387 hrs 3 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.005 Ether
0x5e15676ce0bf8fc582606a18382ff07a6d36611baf0c7fe206f5d297fb8bb6d167272277 hrs 6 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.011 Ether
0x9f0daf14d3c79bb568ead492529e6da511bd5327139948abc8bdb746c0b9450367270387 hrs 55 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.3 Ether
0xc68b4cad1d8b71c39624ec7ee42a10e92cd8161b7446150deecd8f3f1851b6fa67265299 hrs 53 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0x0dc39dd85775fcaa5aed38d4fc8d468c932e27b10ffcbccce0337d009949019e67265169 hrs 56 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0xac2e901f77beaa2368f8e0b6b8e102f954598488a341632d71b43c8fbdcd0119672471416 hrs 54 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.025 Ether
0x2aaebc88ab4be04e407d8374e57ea0b55a9d253816bf8e325c823a0a7ca606f5672422418 hrs 56 mins ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.2 Ether
0x46a5be648ef63df747edc917fa7a4c1190ec4cdf80e10659a60319b6cbb0625e67215401 day 5 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.02 Ether
0xf1eb1cffc1818a934e86ba7ccf17639d2771d92ad8d56a69c75902d95e3a683d67215351 day 5 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.04 Ether
0xbf7e9d2ead99f8fcb80a4fd3b30b6467927dba0c115aea207fc5a8f2fd876ff767213531 day 6 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.025 Ether
0xfe382708ee75e3e9658c7f49c922a512aee04132b5a607326978e6f426d5d31967190531 day 15 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.01 Ether
0x452a35289be63c1abe14fc9309948916aa84b550e7174a5aa6ff29e3b1480f6b67183451 day 18 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.02 Ether
0x8d108a1209f8818a55b56df4f3db3dd9eeea2ebdc169bf5510e7675062bcf85a67181261 day 18 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.05 Ether
0x16a1dea2c095595d7b18b720b9c44bd049a331519af18db085acc7ad2ff433da67181221 day 18 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.1 Ether
0x652fe3bde3a1c8058226cd9070609f2e30346d2fb8214257b22376e74c7f717667181161 day 18 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.6 Ether
0x399735398361a57617d1165cc664feee1c5ed0d45f85104d8b0b9c12fb6ec5f867162312 days 2 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.03 Ether
0xe56052ed5dd05a81243bdca20589c81579e6f5c119560e2089294f520a389dca67161952 days 2 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 Ether
0x548fbcd481e0220aa821c8b3f3eb15e26814866b94bfd17a98fbd6f12d1fed2367161812 days 2 hrs ago0x35ac488b773dac506ee857895ee9dc34b250f3130x780b6e67925e35b98b6ff8a1b2653572af73b8f90.0005 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.