ETH Price: $2,638.95 (+0.89%)
Gas: 7.88 Gwei

Contract

0x291DE53a16b76dfE28551Fd3335225F506dB8b82
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer110508112020-10-14 1:27:261466 days ago1602638846IN
0xGold.io: 0xGOLD Token
0 ETH0.0018560550.6
Mint108533482020-09-13 11:24:501497 days ago1599996290IN
0xGold.io: 0xGOLD Token
0 ETH0.00417555135
Mint102384472020-06-10 14:12:561591 days ago1591798376IN
0xGold.io: 0xGOLD Token
0 ETH0.0009897632
Mint102384352020-06-10 14:10:341591 days ago1591798234IN
0xGold.io: 0xGOLD Token
0 ETH0.0030918100
Mint102384312020-06-10 14:10:101591 days ago1591798210IN
0xGold.io: 0xGOLD Token
0 ETH0.002165170
Mint102384242020-06-10 14:08:291591 days ago1591798109IN
0xGold.io: 0xGOLD Token
0 ETH0.0020088965
Mint102384222020-06-10 14:08:121591 days ago1591798092IN
0xGold.io: 0xGOLD Token
0 ETH0.0018248759
Mint102384162020-06-10 14:06:591591 days ago1591798019IN
0xGold.io: 0xGOLD Token
0 ETH0.0016380153
Mint102384132020-06-10 14:06:101591 days ago1591797970IN
0xGold.io: 0xGOLD Token
0 ETH0.0014537147
Mint102384072020-06-10 14:05:191591 days ago1591797919IN
0xGold.io: 0xGOLD Token
0 ETH0.0012990642
Mint102383992020-06-10 14:04:161591 days ago1591797856IN
0xGold.io: 0xGOLD Token
0 ETH0.001205839
Mint102383682020-06-10 13:56:501591 days ago1591797410IN
0xGold.io: 0xGOLD Token
0 ETH0.0010825535
Transfer96585882020-03-12 19:30:491681 days ago1584041449IN
0xGold.io: 0xGOLD Token
0 ETH0.0025821961
Transfer96584792020-03-12 19:05:261681 days ago1584039926IN
0xGold.io: 0xGOLD Token
0 ETH0.0021165550
Mint96077722020-03-04 23:45:161689 days ago1583365516IN
0xGold.io: 0xGOLD Token
0 ETH0.000092683
Mint96075022020-03-04 22:52:141689 days ago1583362334IN
0xGold.io: 0xGOLD Token
0 ETH0.000030931
Mint96026722020-03-04 4:57:531690 days ago1583297873IN
0xGold.io: 0xGOLD Token
0 ETH0.000092753
Mint96026672020-03-04 4:56:251690 days ago1583297785IN
0xGold.io: 0xGOLD Token
0 ETH0.000030931
Mint96026552020-03-04 4:53:571690 days ago1583297637IN
0xGold.io: 0xGOLD Token
0 ETH0.000030911
Transfer94057222020-02-02 22:15:121720 days ago1580681712IN
0xGold.io: 0xGOLD Token
0 ETH0.000036681
Transfer91393232019-12-21 6:21:061764 days ago1576909266IN
0xGold.io: 0xGOLD Token
0 ETH0.0008363222.8
Mint86513352019-09-30 17:13:541845 days ago1569863634IN
0xGold.io: 0xGOLD Token
0 ETH0.000189826
Transfer84302742019-08-27 5:17:011880 days ago1566883021IN
0xGold.io: 0xGOLD Token
0 ETH0.000184625
Transfer73161122019-03-06 13:49:502053 days ago1551880190IN
0xGold.io: 0xGOLD Token
0 ETH0.000147954
Transfer73026232019-03-04 11:20:382056 days ago1551698438IN
0xGold.io: 0xGOLD Token
0 ETH0.000221936
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
_0xGoldToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-09
*/

pragma solidity ^0.4.18;

// ----------------------------------------------------------------------------
//
//  Symbol       : 0xGOLD
//  Name         : 0xGold Token
//  Total supply : 5000000 (5 million)
//  Decimals     : 10
//
// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------

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

    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }

    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }

    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}

library ExtendedMath {
    //return the smaller of the two inputs (a or b)
    function limitLessThan(uint a, uint b) internal pure returns (uint c) {
        if(a > b) return b;
        return a;
    }
}

// ----------------------------------------------------------------------------
// ERC-20 Token Interface
// ----------------------------------------------------------------------------

contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
// ----------------------------------------------------------------------------

contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}


// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    function Owned() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract ERC918Interface  {

    function mint(uint256 nonce, bytes32 challenge_digest) public returns (bool success);

    function getChallengeNumber() public constant returns (bytes32);

    function getMiningDifficulty() public constant returns (uint);

    function getMiningTarget() public constant returns (uint);

    function getMiningReward() public constant returns (uint);

    event Mint(address indexed from, uint reward_amount, uint epochCount, bytes32 newChallengeNumber);

    address public lastRewardTo;
    uint public lastRewardAmount;
    uint public lastRewardEthBlockNumber;
    bytes32 public challengeNumber;


}

// ----------------------------------------------------------------------------
// ERC-20 Token
// ----------------------------------------------------------------------------

contract _0xGoldToken is ERC20Interface, Owned, ERC918Interface {

    using SafeMath for uint;
    using ExtendedMath for uint;

    string public symbol;
    string public  name;
    uint8 public decimals;
    uint public _totalSupply;
    uint public latestDifficultyPeriodStarted;
    uint public epochCount;                 //number of 'blocks' mined
    uint public _BLOCKS_PER_READJUSTMENT = 100;

    //a little number and a big number
    uint public  _MINIMUM_TARGET = 2**16;
    uint public  _MAXIMUM_TARGET = 2**234;
    
    address public parentAddress;     // for merge mining

    uint public miningTarget;
    bytes32 public challengeNumber;   //generate a new one when a new reward is minted

    uint public rewardEra;
    uint public maxSupplyForEra;

    address public lastRewardTo;
    uint public lastRewardAmount;
    uint public lastRewardEthBlockNumber;

    bool locked = false;

    mapping(bytes32 => bytes32) solutionForChallenge;

    uint public tokensMinted;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;

    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    function _0xGoldToken() public onlyOwner{

        symbol = "0xGOLD";
        name = "0xGold Token";
        decimals = 10;
        _totalSupply = 5000000 * 10**uint(decimals);

        if(locked) revert();

        locked = true;
        tokensMinted = 500000000000000; // 50,000
        rewardEra = 0;
        maxSupplyForEra = _totalSupply.div(2);
        miningTarget = _MAXIMUM_TARGET;
        latestDifficultyPeriodStarted = block.number;

        _startNewMiningEpoch();
        
        parentAddress = 0xB6eD7644C69416d67B522e20bC294A9a9B405B31; // for merge mining
        
        balances[owner] = tokensMinted;
        Transfer(address(0), owner, tokensMinted);


    }

    function mint(uint256 nonce, bytes32 challenge_digest) public returns (bool success) {

      //the PoW must contain work that includes a recent ethereum block hash (challenge number) and the msg.sender's address to prevent MITM attacks
      bytes32 digest =  keccak256(challengeNumber, msg.sender, nonce );

      //the challenge digest must match the expected
      if (digest != challenge_digest) revert();

      //the digest must be smaller than the target
      if(uint256(digest) > miningTarget) revert();

      //only allow one reward for each challenge
      bytes32 solution = solutionForChallenge[challengeNumber];
      solutionForChallenge[challengeNumber] = digest;
      if(solution != 0x0) revert();  //prevent the same answer from awarding twice

      uint reward_amount = getMiningReward();
      balances[msg.sender] = balances[msg.sender].add(reward_amount);
      tokensMinted = tokensMinted.add(reward_amount);

      //Cannot mint more tokens than there are
      assert(tokensMinted <= maxSupplyForEra);

      //set readonly diagnostics data
      lastRewardTo = msg.sender;
      lastRewardAmount = reward_amount;
      lastRewardEthBlockNumber = block.number;

      _startNewMiningEpoch();

      Mint(msg.sender, reward_amount, epochCount, challengeNumber );

      return true;

    }

    //a new 'block' to be mined
    function _startNewMiningEpoch() internal {

      //if max supply for the era will be exceeded next reward round then enter the new era before that happens

      //2 is the final reward era, almost all tokens minted
      //once the final era is reached, more tokens will not be given out because the assert function
      if( tokensMinted.add(getMiningReward()) > maxSupplyForEra && rewardEra < 2)
      {
        rewardEra = rewardEra + 1;
      }

      //set the next minted supply at which the era will change
      // total supply is 50000000000000000  because of 10 decimal places
      maxSupplyForEra = _totalSupply - _totalSupply.div( 2**(rewardEra + 1));

      epochCount = epochCount.add(1);

      //every so often, readjust difficulty. Dont readjust when deploying
      if(epochCount % _BLOCKS_PER_READJUSTMENT == 0)
      {
        _reAdjustDifficulty();
      }

      //make the latest ethereum block hash a part of the next challenge for PoW to prevent pre-mining future blocks
      //do this last since this is a protection mechanism in the mint() function
      challengeNumber = block.blockhash(block.number - 1);

    }

    //readjust the target by 5 percent
    function _reAdjustDifficulty() internal {

        uint ethBlocksSinceLastDifficultyPeriod = block.number - latestDifficultyPeriodStarted;
        //assume 240 ethereum blocks per hour

        //we want miners to spend 7 minutes to mine each 'block', about 28 ethereum blocks = one 0xGOLD epoch
        uint epochsMined = _BLOCKS_PER_READJUSTMENT; //256

        uint targetEthBlocksPerDiffPeriod = epochsMined * 28; //should be 28 times slower than ethereum

        //if there were less eth blocks passed in time than expected
        if( ethBlocksSinceLastDifficultyPeriod < targetEthBlocksPerDiffPeriod )
        {
          uint excess_block_pct = (targetEthBlocksPerDiffPeriod.mul(100)).div( ethBlocksSinceLastDifficultyPeriod );

          uint excess_block_pct_extra = excess_block_pct.sub(100).limitLessThan(1000);
          // If there were 5% more blocks mined than expected then this is 5.  If there were 100% more blocks mined than expected then this is 100.

          //make it harder
          miningTarget = miningTarget.sub(miningTarget.div(2000).mul(excess_block_pct_extra));   //by up to 50 %
        }else{
          uint shortage_block_pct = (ethBlocksSinceLastDifficultyPeriod.mul(100)).div( targetEthBlocksPerDiffPeriod );
          uint shortage_block_pct_extra = shortage_block_pct.sub(100).limitLessThan(1000); //always between 0 and 1000

          //make it easier
          miningTarget = miningTarget.add(miningTarget.div(2000).mul(shortage_block_pct_extra));   //by up to 50 %
        }

        latestDifficultyPeriodStarted = block.number;

        if(miningTarget < _MINIMUM_TARGET) //very difficult
        {
          miningTarget = _MINIMUM_TARGET;
        }

        if(miningTarget > _MAXIMUM_TARGET) //very easy
        {
          miningTarget = _MAXIMUM_TARGET;
        }
    }


    //this is a recent ethereum block hash, used to prevent pre-mining future blocks
    function getChallengeNumber() public constant returns (bytes32) {
        return challengeNumber;
    }

    //the number of zeroes the digest of the PoW solution requires.  Auto adjusts
     function getMiningDifficulty() public constant returns (uint) {
        return _MAXIMUM_TARGET.div(miningTarget);
    }

    function getMiningTarget() public constant returns (uint) {
       return miningTarget;
   }

    //reward is cut in half every reward era (as tokens are mined)
    function getMiningReward() public constant returns (uint) {
         //every reward era, the reward amount halves.
         return (16 * 10**uint(decimals) ).div( 2**rewardEra ) ;
    }

    //help debug mining software
    function getMintDigest(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number) public view returns (bytes32 digesttest) {
        bytes32 digest = keccak256(challenge_number,msg.sender,nonce);
        return digest;
      }

      //help debug mining software
      function checkMintSolution(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number, uint testTarget) public view returns (bool success) {
          bytes32 digest = keccak256(challenge_number,msg.sender,nonce);
          if(uint256(digest) > testTarget) revert();
          return (digest == challenge_digest);
        }

    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() public constant returns (uint) {
        return _totalSupply  - balances[address(0)];
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public constant returns (uint balance) {
        return balances[tokenOwner];
    }

    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        Transfer(msg.sender, to, tokens);
        return true;
    }

    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account
    // ------------------------------------------------------------------------
    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        Approval(msg.sender, spender, tokens);
        return true;
    }

    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    // ------------------------------------------------------------------------
    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        Transfer(from, to, tokens);
        return true;
    }

    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }

    // ------------------------------------------------------------------------
    // Don't accept ETH
    // ------------------------------------------------------------------------
    function () public payable {
        revert();
    }

    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
    
    // ------------------------------------------------------------------------
    // Merge Mining
    // ------------------------------------------------------------------------
    
    function merge() public returns (bool success) {

            bytes32 future_challengeNumber = block.blockhash(block.number - 1);
            if(challengeNumber == future_challengeNumber){
                return false; // ( this is likely the second time that mergeMint() has been called in a transaction, so return false (don't revert))
            }

            //verify Parent::lastRewardTo == msg.sender;
            if(ERC918Interface(parentAddress).lastRewardTo() != msg.sender){
                return false; // a different address called mint last so return false ( don't revert)
            }
            
            //verify Parent::lastRewardEthBlockNumber == block.number;

            if(ERC918Interface(parentAddress).lastRewardEthBlockNumber() != block.number){
                return false; // parent::mint() was called in a different block number so return false ( don't revert)
            }


             bytes32 parentChallengeNumber = ERC918Interface(parentAddress).challengeNumber();
             bytes32 solution = solutionForChallenge[parentChallengeNumber];
             if(solution != 0x0) return false;  //prevent the same answer from awarding twice
             bytes32 digest = 'merge';
             solutionForChallenge[parentChallengeNumber] = digest;


            //so now we may safely run the relevant logic to give an award to the sender, and update the contract
            
                       uint reward_amount = getMiningReward();

            balances[msg.sender] = balances[msg.sender].add(reward_amount);

            tokensMinted = tokensMinted.add(reward_amount);


            //Cannot mint more tokens than there are
            assert(tokensMinted <= maxSupplyForEra);

            //set readonly diagnostics data
            lastRewardTo = msg.sender;
            lastRewardAmount = reward_amount;
            lastRewardEthBlockNumber = block.number;


             _startNewMiningEpoch();

              Mint(msg.sender, reward_amount, epochCount, 0 ); // use 0 to indicate a merge mine

           return true;

        }


}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"parentAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"merge","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardEthBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardEra","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":"getMiningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getChallengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupplyForEra","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"},{"name":"testTarget","type":"uint256"}],"name":"checkMintSolution","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"epochCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_MAXIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"}],"name":"getMintDigest","outputs":[{"name":"digesttest","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_BLOCKS_PER_READJUSTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"latestDifficultyPeriodStarted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_MINIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"reward_amount","type":"uint256"},{"indexed":false,"name":"epochCount","type":"uint256"},{"indexed":false,"name":"newChallengeNumber","type":"bytes32"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526064600c5562010000600d557d040000000000000000000000000000000000000000000000000000000000600e556017805460ff1916905534156200004857600080fd5b60008054600160a060020a03338116600160a060020a031990921682179283905591909116146200007857600080fd5b6040805190810160405260068082527f3078474f4c4400000000000000000000000000000000000000000000000000006020830152908051620000c092916020019062000580565b5060408051908101604052600c81527f3078476f6c6420546f6b656e0000000000000000000000000000000000000000602082015260079080516200010a92916020019062000580565b506008805460ff1916600a90811791829055624c4b4060ff92831690910a0260095560175416156200013b57600080fd5b6017805460ff191660011790556601c6bf52634000601955600060125560095462000176906002640100000000620013746200021f82021704565b601355600e5460105543600a556200019b640100000000620012d76200024282021704565b600f8054600160a060020a03191673b6ed7644c69416d67b522e20bc294a9a9b405b3117905560195460008054600160a060020a039081168252601a60205260408083208490558254909116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a362000622565b60008082116200022e57600080fd5b81838115156200023a57fe5b049392505050565b601354620002796200026164010000000062000d496200032182021704565b60195490640100000000620012c76200035682021704565b1180156200028957506002601254105b1562000299576012805460010190555b601254600954620002be9160010160020a640100000000620013746200021f82021704565b60095403601355600b54620002e3906001640100000000620012c76200035682021704565b600b819055600c5490811515620002f657fe5b061515620003165762000316640100000000620013aa6200036d82021704565b600019430140601155565b601254600854600091620003509160ff16600a0a6010029060020a6401000000006200021f8102620013741704565b90505b90565b818101828110156200036757600080fd5b92915050565b600a54600c54439190910390601c81026000808080848710156200046157620003c087620003ab876064640100000000620014e46200052882021704565b90640100000000620013746200021f82021704565b9350620003f96103e8620003e4866064640100000000620013956200055082021704565b90640100000000620015096200056682021704565b92506200045862000440846200042b6107d06010546200021f6401000000000262001374179091906401000000009004565b90640100000000620014e46200052882021704565b60105490640100000000620013956200055082021704565b601055620004f3565b6200048185620003ab896064640100000000620014e46200052882021704565b9150620004a56103e8620003e4846064640100000000620013956200055082021704565b9050620004ef620004d7826200042b6107d06010546200021f6401000000000262001374179091906401000000009004565b60105490640100000000620012c76200035682021704565b6010555b43600a55600d5460105410156200050b57600d546010555b600e5460105411156200051f57600e546010555b50505050505050565b8181028215806200054457508183828115156200054157fe5b04145b15156200036757600080fd5b6000828211156200056057600080fd5b50900390565b6000818311156200057957508062000367565b5090919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005c357805160ff1916838001178555620005f3565b82800160010185558215620005f3579182015b82811115620005f3578251825591602001919060010190620005d6565b506200060192915062000605565b5090565b6200035391905b808211156200060157600081556001016200060c565b61154d80620006326000396000f3006060604052600436106101bd5763ffffffff60e060020a600035041662821de381146101c257806306fdde03146101f1578063095ea7b31461027b5780630b65108b146102b1578063163aa00d146102c457806317da485f146102e95780631801fbe5146102fc57806318160ddd1461031557806323b872dd146103285780632d38bf7a14610350578063313ce5671461036357806332e997081461038c5780633eaaf86b1461039f578063490203a7146103b25780634ef37628146103c55780634fa972e1146103d85780636de9f32b146103eb5780636fd396d6146103fe57806370a082311461041157806379ba50971461043057806381269a5614610445578063829965cc1461046457806387a2a9d6146104775780638a769d351461048a5780638ae0368b1461049d5780638da5cb5b146104b057806395d89b41146104c357806397566aa0146104d6578063a9059cbb146104f2578063b5ade81b14610514578063bafedcaa14610527578063cae9ca511461053a578063cb9ae7071461059f578063d4ee1d90146105b2578063dc39d06d146105c5578063dc6e9cf9146105e7578063dd62ed3e146105fa578063f2fde38b1461061f575b600080fd5b34156101cd57600080fd5b6101d561063e565b604051600160a060020a03909116815260200160405180910390f35b34156101fc57600080fd5b61020461064d565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610240578082015183820152602001610228565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028657600080fd5b61029d600160a060020a03600435166024356106eb565b604051901515815260200160405180910390f35b34156102bc57600080fd5b61029d610758565b34156102cf57600080fd5b6102d7610a37565b60405190815260200160405180910390f35b34156102f457600080fd5b6102d7610a3d565b341561030757600080fd5b61029d600435602435610a5b565b341561032057600080fd5b6102d7610be9565b341561033357600080fd5b61029d600160a060020a0360043581169060243516604435610c1b565b341561035b57600080fd5b6102d7610d2e565b341561036e57600080fd5b610376610d34565b60405160ff909116815260200160405180910390f35b341561039757600080fd5b6102d7610d3d565b34156103aa57600080fd5b6102d7610d43565b34156103bd57600080fd5b6102d7610d49565b34156103d057600080fd5b6102d7610d68565b34156103e357600080fd5b6102d7610d6e565b34156103f657600080fd5b6102d7610d74565b341561040957600080fd5b6101d5610d7a565b341561041c57600080fd5b6102d7600160a060020a0360043516610d89565b341561043b57600080fd5b610443610da4565b005b341561045057600080fd5b61029d600435602435604435606435610e32565b341561046f57600080fd5b6102d7610e8a565b341561048257600080fd5b6102d7610e90565b341561049557600080fd5b6102d7610e96565b34156104a857600080fd5b6102d7610e9c565b34156104bb57600080fd5b6101d5610ea2565b34156104ce57600080fd5b610204610eb1565b34156104e157600080fd5b6102d7600435602435604435610f1c565b34156104fd57600080fd5b61029d600160a060020a0360043516602435610f62565b341561051f57600080fd5b6102d7611021565b341561053257600080fd5b6102d7611027565b341561054557600080fd5b61029d60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102d95505050505050565b34156105aa57600080fd5b6102d7611194565b34156105bd57600080fd5b6101d561119a565b34156105d057600080fd5b61029d600160a060020a03600435166024356111a9565b34156105f257600080fd5b6102d761124c565b341561060557600080fd5b6102d7600160a060020a0360043581169060243516611252565b341561062a57600080fd5b610443600160a060020a036004351661127d565b600f54600160a060020a031681565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b505050505081565b600160a060020a033381166000818152601b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60115460009060001943014090829081908190819085141561077d5760009550610a2f565b600f54600160a060020a033381169116636fd396d66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107c957600080fd5b6102c65a03f115156107da57600080fd5b50505060405180519050600160a060020a03161415156107fd5760009550610a2f565b600f544390600160a060020a031663163aa00d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561084757600080fd5b6102c65a03f1151561085857600080fd5b505050604051805190501415156108725760009550610a2f565b600f54600160a060020a0316638ae0368b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156108ba57600080fd5b6102c65a03f115156108cb57600080fd5b505050604051805160008181526018602052604090205490955093505082156108f75760009550610a2f565b60008481526018602052604090207f6d65726765000000000000000000000000000000000000000000000000000000908190559150610934610d49565b600160a060020a0333166000908152601a6020526040902054909150610960908263ffffffff6112c716565b600160a060020a0333166000908152601a602052604090205560195461098c908263ffffffff6112c716565b601981905560135490111561099d57fe5b6014805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790556015819055436016556109d66112d7565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600b54600060405192835260208301919091526040808301919091526060909101905180910390a2600195505b505050505090565b60165481565b6000610a56601054600e5461137490919063ffffffff16565b905090565b6000806000806011543387604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040519081900390209250848314610aab57600080fd5b601054831115610aba57600080fd5b601154600090815260186020526040902080549084905591508115610ade57600080fd5b610ae6610d49565b600160a060020a0333166000908152601a6020526040902054909150610b12908263ffffffff6112c716565b600160a060020a0333166000908152601a6020526040902055601954610b3e908263ffffffff6112c716565b6019819055601354901115610b4f57fe5b6014805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316179055601581905543601655610b886112d7565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600b5460115460405192835260208301919091526040808301919091526060909101905180910390a250600195945050505050565b60008052601a6020527fb75ecc04ed35f89790e98640e901bda41eceff0cb896cf2765fb697680253750546009540390565b600160a060020a0383166000908152601a6020526040812054610c44908363ffffffff61139516565b600160a060020a038086166000908152601a6020908152604080832094909455601b8152838220339093168252919091522054610c87908363ffffffff61139516565b600160a060020a038086166000908152601b6020908152604080832033851684528252808320949094559186168152601a9091522054610ccd908363ffffffff6112c716565b600160a060020a038085166000818152601a6020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60125481565b60085460ff1681565b60105490565b60095481565b601254600854600091610a569160ff16600a0a6010029060020a611374565b60115490565b60135481565b60195481565b601454600160a060020a031681565b600160a060020a03166000908152601a602052604090205490565b60015433600160a060020a03908116911614610dbf57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600080833387604051928352600160a060020a03919091166c010000000000000000000000000260208301526034820152605401604051908190039020905082811115610e7e57600080fd5b93909314949350505050565b600b5481565b600e5481565b60105481565b60115481565b600054600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e35780601f106106b8576101008083540402835291602001916106e3565b600080823386604051928352600160a060020a03919091166c01000000000000000000000000026020830152603482015260540160405190819003902095945050505050565b600160a060020a0333166000908152601a6020526040812054610f8b908363ffffffff61139516565b600160a060020a033381166000908152601a60205260408082209390935590851681522054610fc0908363ffffffff6112c716565b600160a060020a038085166000818152601a602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600c5481565b60155481565b600160a060020a033381166000818152601b6020908152604080832094881680845294909152808220869055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611128578082015183820152602001611110565b50505050905090810190601f1680156111555780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561117657600080fd5b6102c65a03f1151561118757600080fd5b5060019695505050505050565b600a5481565b600154600160a060020a031681565b6000805433600160a060020a039081169116146111c557600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561122b57600080fd5b6102c65a03f1151561123c57600080fd5b5050506040518051949350505050565b600d5481565b600160a060020a039182166000908152601b6020908152604080832093909416825291909152205490565b60005433600160a060020a0390811691161461129857600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b8181018281101561075257600080fd5b6013546112f46112e5610d49565b6019549063ffffffff6112c716565b11801561130357506002601254105b15611312576012805460010190555b60125460095461132d9160010160020a63ffffffff61137416565b60095403601355600b5461134890600163ffffffff6112c716565b600b819055600c549081151561135a57fe5b061515611369576113696113aa565b600019430140601155565b600080821161138257600080fd5b818381151561138d57fe5b049392505050565b6000828211156113a457600080fd5b50900390565b600a54600c54439190910390601c8102600080808084871015611450576113e8876113dc87606463ffffffff6114e416565b9063ffffffff61137416565b935061140d6103e861140186606463ffffffff61139516565b9063ffffffff61150916565b92506114486114398461142d6107d060105461137490919063ffffffff16565b9063ffffffff6114e416565b6010549063ffffffff61139516565b6010556114b1565b611465856113dc89606463ffffffff6114e416565b915061147e6103e861140184606463ffffffff61139516565b90506114ad61149e8261142d6107d060105461137490919063ffffffff16565b6010549063ffffffff6112c716565b6010555b43600a55600d5460105410156114c857600d546010555b600e5460105411156114db57600e546010555b50505050505050565b8181028215806114fe57508183828115156114fb57fe5b04145b151561075257600080fd5b60008183111561151a575080610752565b50909190505600a165627a7a72305820550952450a435ffac15f34e5b89c08d807a518f40fefa3f258b8116679d2e7760029

Deployed Bytecode

0x6060604052600436106101bd5763ffffffff60e060020a600035041662821de381146101c257806306fdde03146101f1578063095ea7b31461027b5780630b65108b146102b1578063163aa00d146102c457806317da485f146102e95780631801fbe5146102fc57806318160ddd1461031557806323b872dd146103285780632d38bf7a14610350578063313ce5671461036357806332e997081461038c5780633eaaf86b1461039f578063490203a7146103b25780634ef37628146103c55780634fa972e1146103d85780636de9f32b146103eb5780636fd396d6146103fe57806370a082311461041157806379ba50971461043057806381269a5614610445578063829965cc1461046457806387a2a9d6146104775780638a769d351461048a5780638ae0368b1461049d5780638da5cb5b146104b057806395d89b41146104c357806397566aa0146104d6578063a9059cbb146104f2578063b5ade81b14610514578063bafedcaa14610527578063cae9ca511461053a578063cb9ae7071461059f578063d4ee1d90146105b2578063dc39d06d146105c5578063dc6e9cf9146105e7578063dd62ed3e146105fa578063f2fde38b1461061f575b600080fd5b34156101cd57600080fd5b6101d561063e565b604051600160a060020a03909116815260200160405180910390f35b34156101fc57600080fd5b61020461064d565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610240578082015183820152602001610228565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028657600080fd5b61029d600160a060020a03600435166024356106eb565b604051901515815260200160405180910390f35b34156102bc57600080fd5b61029d610758565b34156102cf57600080fd5b6102d7610a37565b60405190815260200160405180910390f35b34156102f457600080fd5b6102d7610a3d565b341561030757600080fd5b61029d600435602435610a5b565b341561032057600080fd5b6102d7610be9565b341561033357600080fd5b61029d600160a060020a0360043581169060243516604435610c1b565b341561035b57600080fd5b6102d7610d2e565b341561036e57600080fd5b610376610d34565b60405160ff909116815260200160405180910390f35b341561039757600080fd5b6102d7610d3d565b34156103aa57600080fd5b6102d7610d43565b34156103bd57600080fd5b6102d7610d49565b34156103d057600080fd5b6102d7610d68565b34156103e357600080fd5b6102d7610d6e565b34156103f657600080fd5b6102d7610d74565b341561040957600080fd5b6101d5610d7a565b341561041c57600080fd5b6102d7600160a060020a0360043516610d89565b341561043b57600080fd5b610443610da4565b005b341561045057600080fd5b61029d600435602435604435606435610e32565b341561046f57600080fd5b6102d7610e8a565b341561048257600080fd5b6102d7610e90565b341561049557600080fd5b6102d7610e96565b34156104a857600080fd5b6102d7610e9c565b34156104bb57600080fd5b6101d5610ea2565b34156104ce57600080fd5b610204610eb1565b34156104e157600080fd5b6102d7600435602435604435610f1c565b34156104fd57600080fd5b61029d600160a060020a0360043516602435610f62565b341561051f57600080fd5b6102d7611021565b341561053257600080fd5b6102d7611027565b341561054557600080fd5b61029d60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102d95505050505050565b34156105aa57600080fd5b6102d7611194565b34156105bd57600080fd5b6101d561119a565b34156105d057600080fd5b61029d600160a060020a03600435166024356111a9565b34156105f257600080fd5b6102d761124c565b341561060557600080fd5b6102d7600160a060020a0360043581169060243516611252565b341561062a57600080fd5b610443600160a060020a036004351661127d565b600f54600160a060020a031681565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b505050505081565b600160a060020a033381166000818152601b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60115460009060001943014090829081908190819085141561077d5760009550610a2f565b600f54600160a060020a033381169116636fd396d66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107c957600080fd5b6102c65a03f115156107da57600080fd5b50505060405180519050600160a060020a03161415156107fd5760009550610a2f565b600f544390600160a060020a031663163aa00d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561084757600080fd5b6102c65a03f1151561085857600080fd5b505050604051805190501415156108725760009550610a2f565b600f54600160a060020a0316638ae0368b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156108ba57600080fd5b6102c65a03f115156108cb57600080fd5b505050604051805160008181526018602052604090205490955093505082156108f75760009550610a2f565b60008481526018602052604090207f6d65726765000000000000000000000000000000000000000000000000000000908190559150610934610d49565b600160a060020a0333166000908152601a6020526040902054909150610960908263ffffffff6112c716565b600160a060020a0333166000908152601a602052604090205560195461098c908263ffffffff6112c716565b601981905560135490111561099d57fe5b6014805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790556015819055436016556109d66112d7565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600b54600060405192835260208301919091526040808301919091526060909101905180910390a2600195505b505050505090565b60165481565b6000610a56601054600e5461137490919063ffffffff16565b905090565b6000806000806011543387604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040519081900390209250848314610aab57600080fd5b601054831115610aba57600080fd5b601154600090815260186020526040902080549084905591508115610ade57600080fd5b610ae6610d49565b600160a060020a0333166000908152601a6020526040902054909150610b12908263ffffffff6112c716565b600160a060020a0333166000908152601a6020526040902055601954610b3e908263ffffffff6112c716565b6019819055601354901115610b4f57fe5b6014805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316179055601581905543601655610b886112d7565b33600160a060020a03167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600b5460115460405192835260208301919091526040808301919091526060909101905180910390a250600195945050505050565b60008052601a6020527fb75ecc04ed35f89790e98640e901bda41eceff0cb896cf2765fb697680253750546009540390565b600160a060020a0383166000908152601a6020526040812054610c44908363ffffffff61139516565b600160a060020a038086166000908152601a6020908152604080832094909455601b8152838220339093168252919091522054610c87908363ffffffff61139516565b600160a060020a038086166000908152601b6020908152604080832033851684528252808320949094559186168152601a9091522054610ccd908363ffffffff6112c716565b600160a060020a038085166000818152601a6020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60125481565b60085460ff1681565b60105490565b60095481565b601254600854600091610a569160ff16600a0a6010029060020a611374565b60115490565b60135481565b60195481565b601454600160a060020a031681565b600160a060020a03166000908152601a602052604090205490565b60015433600160a060020a03908116911614610dbf57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600080833387604051928352600160a060020a03919091166c010000000000000000000000000260208301526034820152605401604051908190039020905082811115610e7e57600080fd5b93909314949350505050565b600b5481565b600e5481565b60105481565b60115481565b600054600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e35780601f106106b8576101008083540402835291602001916106e3565b600080823386604051928352600160a060020a03919091166c01000000000000000000000000026020830152603482015260540160405190819003902095945050505050565b600160a060020a0333166000908152601a6020526040812054610f8b908363ffffffff61139516565b600160a060020a033381166000908152601a60205260408082209390935590851681522054610fc0908363ffffffff6112c716565b600160a060020a038085166000818152601a602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600c5481565b60155481565b600160a060020a033381166000818152601b6020908152604080832094881680845294909152808220869055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611128578082015183820152602001611110565b50505050905090810190601f1680156111555780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561117657600080fd5b6102c65a03f1151561118757600080fd5b5060019695505050505050565b600a5481565b600154600160a060020a031681565b6000805433600160a060020a039081169116146111c557600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561122b57600080fd5b6102c65a03f1151561123c57600080fd5b5050506040518051949350505050565b600d5481565b600160a060020a039182166000908152601b6020908152604080832093909416825291909152205490565b60005433600160a060020a0390811691161461129857600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b8181018281101561075257600080fd5b6013546112f46112e5610d49565b6019549063ffffffff6112c716565b11801561130357506002601254105b15611312576012805460010190555b60125460095461132d9160010160020a63ffffffff61137416565b60095403601355600b5461134890600163ffffffff6112c716565b600b819055600c549081151561135a57fe5b061515611369576113696113aa565b600019430140601155565b600080821161138257600080fd5b818381151561138d57fe5b049392505050565b6000828211156113a457600080fd5b50900390565b600a54600c54439190910390601c8102600080808084871015611450576113e8876113dc87606463ffffffff6114e416565b9063ffffffff61137416565b935061140d6103e861140186606463ffffffff61139516565b9063ffffffff61150916565b92506114486114398461142d6107d060105461137490919063ffffffff16565b9063ffffffff6114e416565b6010549063ffffffff61139516565b6010556114b1565b611465856113dc89606463ffffffff6114e416565b915061147e6103e861140184606463ffffffff61139516565b90506114ad61149e8261142d6107d060105461137490919063ffffffff16565b6010549063ffffffff6112c716565b6010555b43600a55600d5460105410156114c857600d546010555b600e5460105411156114db57600e546010555b50505050505050565b8181028215806114fe57508183828115156114fb57fe5b04145b151561075257600080fd5b60008183111561151a575080610752565b50909190505600a165627a7a72305820550952450a435ffac15f34e5b89c08d807a518f40fefa3f258b8116679d2e7760029

Swarm Source

bzzr://550952450a435ffac15f34e5b89c08d807a518f40fefa3f258b8116679d2e776

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

A decentralized virtual world where all of your items live inside the ethereum network, and there is a standard unit of gold used across all games.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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