ETH Price: $1,891.65 (-11.77%)
 

Overview

ETH Balance

0.206456663587133646 ETH

Eth Value

$390.54 (@ $1,891.65/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Pot Sha...236874042025-10-30 3:04:3598 days ago1761793475IN
0xD731C888...7A425C29d
0 ETH0.000003090.1
Withdraw ICO Ear...236874042025-10-30 3:04:3598 days ago1761793475IN
0xD731C888...7A425C29d
0 ETH0.000006510.1
Release ICO236873982025-10-30 3:03:2398 days ago1761793403IN
0xD731C888...7A425C29d
0 ETH0.000008380.1
Fund ICO236873932025-10-30 3:02:2398 days ago1761793343IN
0xD731C888...7A425C29d
0 ETH0.000013620.1
Withdraw Pot Sha...236741392025-10-28 6:28:23100 days ago1761632903IN
0xD731C888...7A425C29d
0 ETH0.000002350.1
Withdraw Pot Sha...236741362025-10-28 6:27:47100 days ago1761632867IN
0xD731C888...7A425C29d
0 ETH0.000003010.09745731
Withdraw ICO Ear...236654352025-10-27 1:13:23101 days ago1761527603IN
0xD731C888...7A425C29d
0 ETH0.000007490.11497755
Release ICO236654352025-10-27 1:13:23101 days ago1761527603IN
0xD731C888...7A425C29d
0 ETH0.000009630.11497755
Fund ICO236654352025-10-27 1:13:23101 days ago1761527603IN
0xD731C888...7A425C29d
0 ETH0.000015660.11497755
Withdraw Pot Sha...236295022025-10-22 0:28:23106 days ago1761092903IN
0xD731C888...7A425C29d
0 ETH0.00000340.11
Withdraw ICO Ear...236295002025-10-22 0:27:59106 days ago1761092879IN
0xD731C888...7A425C29d
0 ETH0.000007160.11
Release ICO236294992025-10-22 0:27:47106 days ago1761092867IN
0xD731C888...7A425C29d
0 ETH0.000009220.11
Fund ICO236294982025-10-22 0:27:35106 days ago1761092855IN
0xD731C888...7A425C29d
0 ETH0.000014980.11
Withdraw Pot Sha...236076912025-10-18 23:05:23110 days ago1760828723IN
0xD731C888...7A425C29d
0 ETH0.000003710.12
Withdraw ICO Ear...236076882025-10-18 23:04:47110 days ago1760828687IN
0xD731C888...7A425C29d
0 ETH0.000007720.11861289
Release ICO236076852025-10-18 23:04:11110 days ago1760828651IN
0xD731C888...7A425C29d
0 ETH0.000010050.12
Fund ICO236076802025-10-18 23:03:11110 days ago1760828591IN
0xD731C888...7A425C29d
0 ETH0.000016340.12
Withdraw Pot Sha...235940942025-10-17 1:26:59111 days ago1760664419IN
0xD731C888...7A425C29d
0 ETH0.000005470.17667046
Withdraw ICO Ear...235940882025-10-17 1:25:47111 days ago1760664347IN
0xD731C888...7A425C29d
0 ETH0.000011720.18
Release ICO235940842025-10-17 1:24:59111 days ago1760664299IN
0xD731C888...7A425C29d
0 ETH0.000015080.18
Fund ICO235940792025-10-17 1:23:59111 days ago1760664239IN
0xD731C888...7A425C29d
0 ETH0.000024520.18
Withdraw Pot Sha...235862252025-10-15 22:59:47113 days ago1760569187IN
0xD731C888...7A425C29d
0 ETH0.000007420.23962811
Withdraw ICO Ear...235862192025-10-15 22:58:35113 days ago1760569115IN
0xD731C888...7A425C29d
0 ETH0.000014120.21682466
Release ICO235861992025-10-15 22:54:35113 days ago1760568875IN
0xD731C888...7A425C29d
0 ETH0.000016760.2
Fund ICO235861942025-10-15 22:53:35113 days ago1760568815IN
0xD731C888...7A425C29d
0 ETH0.000027240.2
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer236874042025-10-30 3:04:3598 days ago1761793475
0xD731C888...7A425C29d
0.00016063 ETH
Transfer236741362025-10-28 6:27:47100 days ago1761632867
0xD731C888...7A425C29d
0.00020079 ETH
Transfer236295022025-10-22 0:28:23106 days ago1761092903
0xD731C888...7A425C29d
0.00025099 ETH
Transfer236076912025-10-18 23:05:23110 days ago1760828723
0xD731C888...7A425C29d
0.00031374 ETH
Transfer235940942025-10-17 1:26:59111 days ago1760664419
0xD731C888...7A425C29d
0.00039217 ETH
Transfer235862252025-10-15 22:59:47113 days ago1760569187
0xD731C888...7A425C29d
0.00049021 ETH
Transfer235723842025-10-14 0:31:59114 days ago1760401919
0xD731C888...7A425C29d
0.00061277 ETH
Transfer230794132025-08-06 3:42:47183 days ago1754451767
0xD731C888...7A425C29d
0.00076596 ETH
Transfer230547262025-08-02 17:00:11187 days ago1754154011
0xD731C888...7A425C29d
0.00095745 ETH
Transfer230202322025-07-28 21:10:23192 days ago1753737023
0xD731C888...7A425C29d
0.00119682 ETH
Transfer230115162025-07-27 15:56:23193 days ago1753631783
0xD731C888...7A425C29d
0.00149602 ETH
Transfer230011422025-07-26 5:11:11194 days ago1753506671
0xD731C888...7A425C29d
0.00187003 ETH
Transfer229922762025-07-24 23:24:59195 days ago1753399499
0xD731C888...7A425C29d
0.00233754 ETH
Transfer229848942025-07-23 22:38:11197 days ago1753310291
0xD731C888...7A425C29d
0.00302193 ETH
-94280562020-02-06 8:36:172191 days ago1580978177
0xD731C888...7A425C29d
0.0344025 ETH
-77226252019-05-08 22:13:432465 days ago1557353623
0xD731C888...7A425C29d
0.0036 ETH
Transfer59946632018-07-19 22:52:502758 days ago1532040770
0xD731C888...7A425C29d
0.0012572 ETH
Transfer57971572018-06-16 4:51:372791 days ago1529124697
0xD731C888...7A425C29d
0.00017971 ETH
Transfer57900572018-06-14 23:26:442792 days ago1529018804
0xD731C888...7A425C29d
0.00834588 ETH
Transfer57711642018-06-11 16:29:562796 days ago1528734596
0xD731C888...7A425C29d
0.00331307 ETH
Transfer57672972018-06-10 23:58:262796 days ago1528675106
0xD731C888...7A425C29d
0.01631687 ETH
Transfer57330732018-06-04 22:04:482803 days ago1528149888
0xD731C888...7A425C29d
0.01265399 ETH
Transfer57175612018-06-02 4:06:392805 days ago1527912399
0xD731C888...7A425C29d
0.03359982 ETH
Transfer56932982018-05-28 20:47:052810 days ago1527540425
0xD731C888...7A425C29d
0.01077414 ETH
Transfer56886642018-05-28 1:09:572810 days ago1527469797
0xD731C888...7A425C29d
0.00772009 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RigIdle

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-04-27
*/

pragma solidity ^0.4.18;

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

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

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

library NumericSequence
{
    using SafeMath for uint256;
    function sumOfN(uint256 basePrice, uint256 pricePerLevel, uint256 owned, uint256 count) internal pure returns (uint256 price)
    {
        require(count > 0);
        
        price = 0;
        price += SafeMath.mul((basePrice + pricePerLevel * owned), count);
        price += pricePerLevel * (count.mul((count-1))) / 2;
    }
}

//-----------------------------------------------------------------------
contract RigIdle  {
    using NumericSequence for uint;
    using SafeMath for uint;

    struct MinerData 
    {
        uint256[9]   rigs; // rig types and their upgrades
        uint8[3]     hasUpgrade;
        uint256      money;
        uint256      lastUpdateTime;
        uint256      premamentMineBonusPct;
        uint256      unclaimedPot;
        uint256      lastPotClaimIndex;
    }
    
    struct RigData
    {
        uint256 basePrice;
        uint256 baseOutput;
        uint256 pricePerLevel;
        uint256 priceInETH;
        uint256 limit;
    }
    
    struct BoostData
    {
        uint256 percentBonus;
        uint256 priceInWEI;
    }
    
    struct PVPData
    {
        uint256[6] troops;
        uint256    immunityTime;
        uint256    exhaustTime;
    }
    
    struct TroopData
    {
        uint256 attackPower;
        uint256 defensePower;
        uint256 priceGold;
        uint256 priceETH;
    }
    
    uint8 private constant NUMBER_OF_RIG_TYPES = 9;
    RigData[9]  private rigData;
    
    uint8 private constant NUMBER_OF_UPGRADES = 3;
    BoostData[3] private boostData;
    
    uint8 private constant NUMBER_OF_TROOPS = 6;
    uint8 private constant ATTACKER_START_IDX = 0;
    uint8 private constant ATTACKER_END_IDX = 3;
    uint8 private constant DEFENDER_START_IDX = 3;
    uint8 private constant DEFENDER_END_IDX = 6;
    TroopData[6] private troopData;

    // honey pot variables
    uint256 private honeyPotAmount;
    uint256 private honeyPotSharePct; // 90%
    uint256 private jackPot;
    uint256 private devFund;
    uint256 private nextPotDistributionTime;
    mapping(address => mapping(uint256 => uint256)) private minerICOPerCycle;
    uint256[] private honeyPotPerCycle;
    uint256[] private globalICOPerCycle;
    uint256 private cycleCount;
    
    //booster info
    uint256 private constant NUMBER_OF_BOOSTERS = 5;
    uint256 private boosterIndex;
    uint256 private nextBoosterPrice;
    address[5] private boosterHolders;
    
    mapping(address => MinerData) private miners;
    mapping(address => PVPData)   private pvpMap;
    mapping(uint256 => address)   private indexes;
    uint256 private topindex;
    
    address private owner;
    
    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    function RigIdle() public {
        owner = msg.sender;
        
        //                   price,           prod.     upgrade,        priceETH, limit
        rigData[0] = RigData(128,             1,        64,              0,          64);
        rigData[1] = RigData(1024,            64,       512,             0,          64);
        rigData[2] = RigData(204800,          1024,     102400,          0,          128);
        rigData[3] = RigData(25600000,        8192,     12800000,        0,          128);
        rigData[4] = RigData(30000000000,     65536,    30000000000,     0.01 ether, 256);
        rigData[5] = RigData(30000000000,     100000,   10000000000,     0,          256);
        rigData[6] = RigData(300000000000,    500000,   100000000000,    0,          256);
        rigData[7] = RigData(50000000000000,  3000000,  12500000000000,  0.1 ether,  256);
        rigData[8] = RigData(100000000000000, 30000000, 50000000000000,  0,          256);
        
        boostData[0] = BoostData(30,  0.01 ether);
        boostData[1] = BoostData(50,  0.1 ether);
        boostData[2] = BoostData(100, 1 ether);
        
        topindex = 0;
        honeyPotAmount = 0;
        devFund = 0;
        jackPot = 0;
        nextPotDistributionTime = block.timestamp;
        honeyPotSharePct = 90;
        
        // has to be set to a value
        boosterHolders[0] = owner;
        boosterHolders[1] = owner;
        boosterHolders[2] = owner;
        boosterHolders[3] = owner;
        boosterHolders[4] = owner;
        
        boosterIndex = 0;
        nextBoosterPrice = 0.1 ether;
        
        //pvp
        troopData[0] = TroopData(10,     0,      100000,   0);
        troopData[1] = TroopData(1000,   0,      80000000, 0);
        troopData[2] = TroopData(100000, 0,      0,        0.01 ether);
        troopData[3] = TroopData(0,      15,     100000,   0);
        troopData[4] = TroopData(0,      1500,   80000000, 0);
        troopData[5] = TroopData(0,      150000, 0,        0.01 ether);
        
        honeyPotPerCycle.push(0);
        globalICOPerCycle.push(1);
        cycleCount = 0;
    }
    
    //--------------------------------------------------------------------------
    // Data access functions
    //--------------------------------------------------------------------------
    function GetMinerData(address minerAddr) public constant returns 
        (uint256 money, uint256 lastupdate, uint256 prodPerSec, 
         uint256[9] rigs, uint[3] upgrades, uint256 unclaimedPot, bool hasBooster, uint256 unconfirmedMoney)
    {
        uint8 i = 0;
        
        money = miners[minerAddr].money;
        lastupdate = miners[minerAddr].lastUpdateTime;
        prodPerSec = GetProductionPerSecond(minerAddr);
        
        for(i = 0; i < NUMBER_OF_RIG_TYPES; ++i)
        {
            rigs[i] = miners[minerAddr].rigs[i];
        }
        
        for(i = 0; i < NUMBER_OF_UPGRADES; ++i)
        {
            upgrades[i] = miners[minerAddr].hasUpgrade[i];
        }
        
        unclaimedPot = miners[minerAddr].unclaimedPot;
        hasBooster = HasBooster(minerAddr);
        
        unconfirmedMoney = money + (prodPerSec * (now - lastupdate));
    }
    
    function GetTotalMinerCount() public constant returns (uint256 count)
    {
        count = topindex;
    }
    
    function GetMinerAt(uint256 idx) public constant returns (address minerAddr)
    {
        require(idx < topindex);
        minerAddr = indexes[idx];
    }
    
    function GetPotInfo() public constant returns (uint256 _honeyPotAmount, uint256 _devFunds, uint256 _jackPot, uint256 _nextDistributionTime)
    {
        _honeyPotAmount = honeyPotAmount;
        _devFunds = devFund;
        _jackPot = jackPot;
        _nextDistributionTime = nextPotDistributionTime;
    }
    
    function GetProductionPerSecond(address minerAddr) public constant returns (uint256 personalProduction)
    {
        MinerData storage m = miners[minerAddr];
        
        personalProduction = 0;
        uint256 productionSpeed = 100 + m.premamentMineBonusPct;
        
        if(HasBooster(minerAddr)) // 500% bonus
            productionSpeed += 500;
        
        for(uint8 j = 0; j < NUMBER_OF_RIG_TYPES; ++j)
        {
            personalProduction += m.rigs[j] * rigData[j].baseOutput;
        }
        
        personalProduction = personalProduction * productionSpeed / 100;
    }
    
    function GetGlobalProduction() public constant returns (uint256 globalMoney, uint256 globalHashRate)
    {
        globalMoney = 0;
        globalHashRate = 0;
        uint i = 0;
        for(i = 0; i < topindex; ++i)
        {
            MinerData storage m = miners[indexes[i]];
            globalMoney += m.money;
            globalHashRate += GetProductionPerSecond(indexes[i]);
        }
    }
    
    function GetBoosterData() public constant returns (address[5] _boosterHolders, uint256 currentPrice, uint256 currentIndex)
    {
        for(uint i = 0; i < NUMBER_OF_BOOSTERS; ++i)
        {
            _boosterHolders[i] = boosterHolders[i];
        }
        currentPrice = nextBoosterPrice;
        currentIndex = boosterIndex;
    }
    
    function HasBooster(address addr) public constant returns (bool hasBoost)
    { 
        for(uint i = 0; i < NUMBER_OF_BOOSTERS; ++i)
        {
           if(boosterHolders[i] == addr)
            return true;
        }
        return false;
    }
    
    function GetPVPData(address addr) public constant returns (uint256 attackpower, uint256 defensepower, uint256 immunityTime, uint256 exhaustTime,
    uint256[6] troops)
    {
        PVPData storage a = pvpMap[addr];
            
        immunityTime = a.immunityTime;
        exhaustTime = a.exhaustTime;
        
        attackpower = 0;
        defensepower = 0;
        for(uint i = 0; i < NUMBER_OF_TROOPS; ++i)
        {
            attackpower  += a.troops[i] * troopData[i].attackPower;
            defensepower += a.troops[i] * troopData[i].defensePower;
            
            troops[i] = a.troops[i];
        }
    }
    
    function GetCurrentICOCycle() public constant returns (uint256)
    {
        return cycleCount;
    }
    
    function GetICOData(uint256 idx) public constant returns (uint256 ICOFund, uint256 ICOPot)
    {
        require(idx <= cycleCount);
        ICOFund = globalICOPerCycle[idx];
        if(idx < cycleCount)
        {
            ICOPot = honeyPotPerCycle[idx];
        } else
        {
            ICOPot =  honeyPotAmount / 5; // actual day estimate
        }
    }
    
    function GetMinerICOData(address miner, uint256 idx) public constant returns (uint256 ICOFund, uint256 ICOShare, uint256 lastClaimIndex)
    {
        require(idx <= cycleCount);
        ICOFund = minerICOPerCycle[miner][idx];
        if(idx < cycleCount)
        {
            ICOShare = (honeyPotPerCycle[idx] * minerICOPerCycle[miner][idx]) / globalICOPerCycle[idx];
        } else 
        {
            ICOShare = (honeyPotAmount / 5) * minerICOPerCycle[miner][idx] / globalICOPerCycle[idx];
        }
        lastClaimIndex = miners[miner].lastPotClaimIndex;
    }
    
    function GetMinerUnclaimedICOShare(address miner) public constant returns (uint256 unclaimedPot)
    {
        MinerData storage m = miners[miner];
        
        require(m.lastUpdateTime != 0);
        require(m.lastPotClaimIndex < cycleCount);
        
        uint256 i = m.lastPotClaimIndex;
        uint256 limit = cycleCount;
        
        if((limit - i) > 30) // more than 30 iterations(days) afk
            limit = i + 30;
        
        unclaimedPot = 0;
        for(; i < cycleCount; ++i)
        {
            if(minerICOPerCycle[msg.sender][i] > 0)
                unclaimedPot += (honeyPotPerCycle[i] * minerICOPerCycle[miner][i]) / globalICOPerCycle[i];
        }
    }
    
    // -------------------------------------------------------------------------
    // RigWars game handler functions
    // -------------------------------------------------------------------------
    function StartNewMiner() external
    {
        require(miners[msg.sender].lastUpdateTime == 0);
        
        miners[msg.sender].lastUpdateTime = block.timestamp;
        miners[msg.sender].money = 0;
        miners[msg.sender].rigs[0] = 1;
        miners[msg.sender].unclaimedPot = 0;
        miners[msg.sender].lastPotClaimIndex = cycleCount;
        
        pvpMap[msg.sender].immunityTime = block.timestamp + 28800;
        pvpMap[msg.sender].exhaustTime  = block.timestamp;
        
        indexes[topindex] = msg.sender;
        ++topindex;
    }
    
    function UpgradeRig(uint8 rigIdx, uint16 count) external
    {
        require(rigIdx < NUMBER_OF_RIG_TYPES);
        require(count > 0);
        require(count <= 256);
        
        MinerData storage m = miners[msg.sender];
        
        require(rigData[rigIdx].limit >= (m.rigs[rigIdx] + count));
        
        UpdateMoney();
     
        // the base of geometrical sequence
        uint256 price = NumericSequence.sumOfN(rigData[rigIdx].basePrice, rigData[rigIdx].pricePerLevel, m.rigs[rigIdx], count); 
       
        require(m.money >= price);
        
        m.rigs[rigIdx] = m.rigs[rigIdx] + count;
        
        if(m.rigs[rigIdx] > rigData[rigIdx].limit)
            m.rigs[rigIdx] = rigData[rigIdx].limit;
        
        m.money -= price;
    }
    
    function UpgradeRigETH(uint8 rigIdx, uint256 count) external payable
    {
        require(rigIdx < NUMBER_OF_RIG_TYPES);
        require(count > 0);
        require(count <= 256);
        require(rigData[rigIdx].priceInETH > 0);
        
        MinerData storage m = miners[msg.sender];
        
        require(rigData[rigIdx].limit >= (m.rigs[rigIdx] + count));
      
        uint256 price = (rigData[rigIdx].priceInETH).mul(count); 
       
        require(msg.value >= price);
        
        BuyHandler(msg.value);
        
        UpdateMoney();
        
        m.rigs[rigIdx] = m.rigs[rigIdx] + count;
        
        if(m.rigs[rigIdx] > rigData[rigIdx].limit)
            m.rigs[rigIdx] = rigData[rigIdx].limit;
    }
    
    function UpdateMoney() private
    {
        require(miners[msg.sender].lastUpdateTime != 0);
        require(block.timestamp >= miners[msg.sender].lastUpdateTime);
        
        MinerData storage m = miners[msg.sender];
        uint256 diff = block.timestamp - m.lastUpdateTime;
        uint256 revenue = GetProductionPerSecond(msg.sender);
   
        m.lastUpdateTime = block.timestamp;
        if(revenue > 0)
        {
            revenue *= diff;
            
            m.money += revenue;
        }
    }
    
    function UpdateMoneyAt(address addr) private
    {
        require(miners[addr].lastUpdateTime != 0);
        require(block.timestamp >= miners[addr].lastUpdateTime);
        
        MinerData storage m = miners[addr];
        uint256 diff = block.timestamp - m.lastUpdateTime;
        uint256 revenue = GetProductionPerSecond(addr);
   
        m.lastUpdateTime = block.timestamp;
        if(revenue > 0)
        {
            revenue *= diff;
            
            m.money += revenue;
        }
    }
    
    function BuyUpgrade(uint256 idx) external payable
    {
        require(idx < NUMBER_OF_UPGRADES);
        require(msg.value >= boostData[idx].priceInWEI);
        require(miners[msg.sender].hasUpgrade[idx] == 0);
        require(miners[msg.sender].lastUpdateTime != 0);
        
        BuyHandler(msg.value);
        
        UpdateMoney();
        
        miners[msg.sender].hasUpgrade[idx] = 1;
        miners[msg.sender].premamentMineBonusPct +=  boostData[idx].percentBonus;
    }
    
    //--------------------------------------------------------------------------
    // BOOSTER handlers
    //--------------------------------------------------------------------------
    function BuyBooster() external payable 
    {
        require(msg.value >= nextBoosterPrice);
        require(miners[msg.sender].lastUpdateTime != 0);
        
        for(uint i = 0; i < NUMBER_OF_BOOSTERS; ++i)
            if(boosterHolders[i] == msg.sender)
                revert();
                
        address beneficiary = boosterHolders[boosterIndex];
        
        MinerData storage m = miners[beneficiary];
        
        // 20% interest after 5 buys
        m.unclaimedPot += (msg.value * 9403) / 10000;
        
        // distribute the rest
        honeyPotAmount += (msg.value * 597) / 20000;
        devFund += (msg.value * 597) / 20000;
        
        // increase price by 5%
        nextBoosterPrice += nextBoosterPrice / 20;
        
        UpdateMoney();
        UpdateMoneyAt(beneficiary);
        
        // transfer ownership    
        boosterHolders[boosterIndex] = msg.sender;
        
        // increase booster index
        boosterIndex += 1;
        if(boosterIndex >= 5)
            boosterIndex = 0;
    }
    
    //--------------------------------------------------------------------------
    // PVP handler
    //--------------------------------------------------------------------------
    // 0 for attacker 1 for defender
    function BuyTroop(uint256 idx, uint256 count) external payable
    {
        require(idx < NUMBER_OF_TROOPS);
        require(count > 0);
        require(count <= 1000);
        
        PVPData storage pvp = pvpMap[msg.sender];
        MinerData storage m = miners[msg.sender];
        
        uint256 owned = pvp.troops[idx];
        
        uint256 priceGold = NumericSequence.sumOfN(troopData[idx].priceGold, troopData[idx].priceGold, owned, count); 
        uint256 priceETH = (troopData[idx].priceETH).mul(count);
        
        UpdateMoney();
        
        require(m.money >= priceGold);
        require(msg.value >= priceETH);
        
        if(priceGold > 0)
            m.money -= priceGold;
         
        if(msg.value > 0)
            BuyHandler(msg.value);
        
        pvp.troops[idx] += count;
    }
    
    function Attack(address defenderAddr) external
    {
        require(msg.sender != defenderAddr);
        require(miners[msg.sender].lastUpdateTime != 0);
        require(miners[defenderAddr].lastUpdateTime != 0);
        
        PVPData storage attacker = pvpMap[msg.sender];
        PVPData storage defender = pvpMap[defenderAddr];
        uint i = 0;
        uint256 count = 0;
        
        require(block.timestamp > attacker.exhaustTime);
        require(block.timestamp > defender.immunityTime);
        
        // the aggressor loses immunity
        if(attacker.immunityTime > block.timestamp)
            attacker.immunityTime = block.timestamp - 1;
            
        attacker.exhaustTime = block.timestamp + 7200;
        
        uint256 attackpower = 0;
        uint256 defensepower = 0;
        for(i = 0; i < ATTACKER_END_IDX; ++i)
        {
            attackpower  += attacker.troops[i] * troopData[i].attackPower;
            defensepower += defender.troops[i + DEFENDER_START_IDX] * troopData[i + DEFENDER_START_IDX].defensePower;
        }
        
        if(attackpower > defensepower)
        {
            if(defender.immunityTime < block.timestamp + 14400)
                defender.immunityTime = block.timestamp + 14400;
            
            UpdateMoneyAt(defenderAddr);
            
            MinerData storage m = miners[defenderAddr];
            MinerData storage m2 = miners[msg.sender];
            uint256 moneyStolen = m.money / 2;
         
            for(i = DEFENDER_START_IDX; i < DEFENDER_END_IDX; ++i)
            {
                defender.troops[i] = 0;
            }
            
            for(i = ATTACKER_START_IDX; i < ATTACKER_END_IDX; ++i)
            {
                if(troopData[i].attackPower > 0)
                {
                    count = attacker.troops[i];
                    
                    // if the troops overpower the total defense power only a fraction is lost
                    if((count * troopData[i].attackPower) > defensepower)
                        count = defensepower / troopData[i].attackPower;
                        
                    attacker.troops[i] -= count;
                    defensepower -= count * troopData[i].attackPower;
                }
            }
            
            m.money -= moneyStolen;
            m2.money += moneyStolen;
        } else
        {
            for(i = ATTACKER_START_IDX; i < ATTACKER_END_IDX; ++i)
            {
                attacker.troops[i] = 0;
            }
            
            for(i = DEFENDER_START_IDX; i < DEFENDER_END_IDX; ++i)
            {
                if(troopData[i].defensePower > 0)
                {
                    count = defender.troops[i];
                    
                    // if the troops overpower the total defense power only a fraction is lost
                    if((count * troopData[i].defensePower) > attackpower)
                        count = attackpower / troopData[i].defensePower;
                        
                    defender.troops[i] -= count;
                    attackpower -= count * troopData[i].defensePower;
                }
            }
        }
    }
    
    //--------------------------------------------------------------------------
    // ICO/Pot share functions
    //--------------------------------------------------------------------------
    function ReleaseICO() external
    {
        require(miners[msg.sender].lastUpdateTime != 0);
        require(nextPotDistributionTime <= block.timestamp);
        require(honeyPotAmount > 0);
        require(globalICOPerCycle[cycleCount] > 0);

        nextPotDistributionTime = block.timestamp + 86400;

        honeyPotPerCycle[cycleCount] = honeyPotAmount / 5; // 20% of the pot
        
        honeyPotAmount -= honeyPotAmount / 5;

        honeyPotPerCycle.push(0);
        globalICOPerCycle.push(0);
        cycleCount = cycleCount + 1;

        MinerData storage jakpotWinner = miners[msg.sender];
        jakpotWinner.unclaimedPot += jackPot;
        jackPot = 0;
    }
    
    function FundICO(uint amount) external
    {
        require(miners[msg.sender].lastUpdateTime != 0);
        require(amount > 0);
        
        MinerData storage m = miners[msg.sender];
        
        UpdateMoney();
        
        require(m.money >= amount);
        
        m.money = (m.money).sub(amount);
        
        globalICOPerCycle[cycleCount] = globalICOPerCycle[cycleCount].add(uint(amount));
        minerICOPerCycle[msg.sender][cycleCount] = minerICOPerCycle[msg.sender][cycleCount].add(uint(amount));
    }
    
    function WithdrawICOEarnings() external
    {
        MinerData storage m = miners[msg.sender];
        
        require(miners[msg.sender].lastUpdateTime != 0);
        require(miners[msg.sender].lastPotClaimIndex < cycleCount);
        
        uint256 i = m.lastPotClaimIndex;
        uint256 limit = cycleCount;
        
        if((limit - i) > 30) // more than 30 iterations(days) afk
            limit = i + 30;
        
        m.lastPotClaimIndex = limit;
        for(; i < cycleCount; ++i)
        {
            if(minerICOPerCycle[msg.sender][i] > 0)
                m.unclaimedPot += (honeyPotPerCycle[i] * minerICOPerCycle[msg.sender][i]) / globalICOPerCycle[i];
        }
    }
    
    //--------------------------------------------------------------------------
    // ETH handler functions
    //--------------------------------------------------------------------------
    function BuyHandler(uint amount) private
    {
        // add 90% to honeyPot
        honeyPotAmount += (amount * honeyPotSharePct) / 100;
        jackPot += amount / 100;
        devFund += (amount * (100-(honeyPotSharePct+1))) / 100;
    }
    
    function WithdrawPotShare() public
    {
        MinerData storage m = miners[msg.sender];
        
        require(m.unclaimedPot > 0);
        require(m.lastUpdateTime != 0);
        
        uint256 amntToSend = m.unclaimedPot;
        m.unclaimedPot = 0;
        
        if(msg.sender.send(amntToSend))
        {
            m.unclaimedPot = 0;
        }
    }
    
    function WithdrawDevFunds() public
    {
        require(msg.sender == owner);

        if(owner.send(devFund))
        {
            devFund = 0;
        }
    }
    
    // fallback payment to pot
    function() public payable {
         devFund += msg.value;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"idx","type":"uint256"}],"name":"BuyUpgrade","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"minerAddr","type":"address"}],"name":"GetProductionPerSecond","outputs":[{"name":"personalProduction","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"FundICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawPotShare","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"miner","type":"address"}],"name":"GetMinerUnclaimedICOShare","outputs":[{"name":"unclaimedPot","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetGlobalProduction","outputs":[{"name":"globalMoney","type":"uint256"},{"name":"globalHashRate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"GetPVPData","outputs":[{"name":"attackpower","type":"uint256"},{"name":"defensepower","type":"uint256"},{"name":"immunityTime","type":"uint256"},{"name":"exhaustTime","type":"uint256"},{"name":"troops","type":"uint256[6]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetPotInfo","outputs":[{"name":"_honeyPotAmount","type":"uint256"},{"name":"_devFunds","type":"uint256"},{"name":"_jackPot","type":"uint256"},{"name":"_nextDistributionTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawDevFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetTotalMinerCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetCurrentICOCycle","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"HasBooster","outputs":[{"name":"hasBoost","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rigIdx","type":"uint8"},{"name":"count","type":"uint16"}],"name":"UpgradeRig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"miner","type":"address"},{"name":"idx","type":"uint256"}],"name":"GetMinerICOData","outputs":[{"name":"ICOFund","type":"uint256"},{"name":"ICOShare","type":"uint256"},{"name":"lastClaimIndex","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idx","type":"uint256"},{"name":"count","type":"uint256"}],"name":"BuyTroop","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"rigIdx","type":"uint8"},{"name":"count","type":"uint256"}],"name":"UpgradeRigETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"defenderAddr","type":"address"}],"name":"Attack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetBoosterData","outputs":[{"name":"_boosterHolders","type":"address[5]"},{"name":"currentPrice","type":"uint256"},{"name":"currentIndex","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idx","type":"uint256"}],"name":"GetICOData","outputs":[{"name":"ICOFund","type":"uint256"},{"name":"ICOPot","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"minerAddr","type":"address"}],"name":"GetMinerData","outputs":[{"name":"money","type":"uint256"},{"name":"lastupdate","type":"uint256"},{"name":"prodPerSec","type":"uint256"},{"name":"rigs","type":"uint256[9]"},{"name":"upgrades","type":"uint256[3]"},{"name":"unclaimedPot","type":"uint256"},{"name":"hasBooster","type":"bool"},{"name":"unconfirmedMoney","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idx","type":"uint256"}],"name":"GetMinerAt","outputs":[{"name":"minerAddr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawICOEarnings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ReleaseICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"StartNewMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"BuyBooster","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

606060405234156200001057600080fd5b605f8054600160a060020a03191633600160a060020a031617905560a0604051908101604052806080815260200160018152602001604081526020016000815260200160408152506000806009811015156200006857fe5b600502018151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526104008252602082018190526102008183015260006060830152608082015260058151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526203200082526104006020830152620190009082015260006060820152608080820152600a8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152630186a0008252612000602083015262c350009082015260006060820152608080820152600f8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526406fc23ac0080835262010000602084015290820152662386f26fc100006060820152610100608082015260148151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526406fc23ac008252620186a060208301526402540be4009082015260006060820152610100608082015260198151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526445d964b80082526207a120602083015264174876e80090820152600060608201526101006080820152601e8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152652d79883d20008252622dc6c06020830152650b5e620f48009082015267016345785d8a00006060820152610100608082015260238151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152655af3107a400082526301c9c3806020830152652d79883d20009082015260006060820152610100608082015260288151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060408051908101604052601e8152662386f26fc100006020820152602d81518155602082015160019091015550604080519081016040526032815267016345785d8a00006020820152602f815181556020820151600190910155506040805190810160405260648152670de0b6b3a76400006020820152603181518155602082015160019190910155506000605e819055604b819055604e819055604d81905542604f55605a604c819055605f5460568054600160a060020a0319908116600160a060020a0390931692831790915560578054821683179055605880548216831790556059805482168317905582541617905560545567016345785d8a0000605555608060405190810160405280600a815260200160008152602001620186a081526020016000815250603360006006811015156200050257fe5b60040201815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526103e882526000602083018190526304c4b400918301919091526060820152603781518155602082015181600101556040820151816002015560608201516003909101555060806040519081016040908152620186a0825260006020830181905290820152662386f26fc100006060820152603b815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526000808352600f6020840152620186a0918301919091526060820152603f8151815560208201518160010155604082015181600201556060820151600390910155506080604051908101604090815260008083526105dc60208401526304c4b4009183019190915260608201526043815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526000808352620249f0602084015290820152662386f26fc10000606082015260478151815560208201518160010155604082015181600201556060820151600390910155506051805460018101620006d583826200070d565b5060009182526020822001556052805460018101620006f583826200070d565b5060009182526020822060019101556053556200075d565b81548183558181151162000734576000838152602090206200073491810190830162000739565b505050565b6200075a91905b8082111562000756576000815560010162000740565b5090565b90565b611e6e806200076d6000396000f3006060604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630116bfc08114610152578063036a66eb1461015f5780631fd86a6a1461019057806333ad9495146101a65780633a70eabd146101b957806356a4e7f9146101d85780635b1fef12146102035780636e4dd931146102795780638357417d146102b7578063996f7602146102ca5780639f0eed0f146102dd578063af299510146102f0578063b4b9cd6214610323578063b4beff8a14610343578063b4e6f92b14610389578063badb2e5a14610397578063bc346c9c146103a8578063bd1f7d52146103c7578063cb68780f14610420578063cc0f65f714610436578063d291fa81146104ea578063d511beec1461051c578063dee8bd511461052f578063f362b9af14610542578063fdade29f14610555575b604e805434019055005b61015d60043561055d565b005b341561016a57600080fd5b61017e600160a060020a036004351661068d565b60405190815260200160405180910390f35b341561019b57600080fd5b61015d60043561071f565b34156101b157600080fd5b61015d610849565b34156101c457600080fd5b61017e600160a060020a03600435166108c8565b34156101e357600080fd5b6101eb6109d1565b60405191825260208201526040908101905180910390f35b341561020e57600080fd5b610222600160a060020a0360043516610a37565b6040518086815260200185815260200184815260200183815260200182600660200280838360005b8381101561026257808201518382015260200161024a565b505050509050019550505050505060405180910390f35b341561028457600080fd5b61028c610b03565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156102c257600080fd5b61015d610b17565b34156102d557600080fd5b61017e610b6d565b34156102e857600080fd5b61017e610b73565b34156102fb57600080fd5b61030f600160a060020a0360043516610b7a565b604051901515815260200160405180910390f35b341561032e57600080fd5b61015d60ff6004351661ffff60243516610bcb565b341561034e57600080fd5b610365600160a060020a0360043516602435610d61565b60405180848152602001838152602001828152602001935050505060405180910390f35b61015d600435602435610e82565b61015d60ff60043516602435610fb7565b34156103b357600080fd5b61015d600160a060020a0360043516611135565b34156103d257600080fd5b6103da6114d0565b604051808460a080838360005b838110156103ff5780820151838201526020016103e7565b50505050905001838152602001828152602001935050505060405180910390f35b341561042b57600080fd5b6101eb600435611535565b341561044157600080fd5b610455600160a060020a036004351661159e565b6040518089815260200188815260200187815260200186600960200280838360005b8381101561048f578082015183820152602001610477565b5050505090500185600360200280838360005b838110156104ba5780820151838201526020016104a2565b50505050905001848152602001831515151581526020018281526020019850505050505050505060405180910390f35b34156104f557600080fd5b6105006004356116e8565b604051600160a060020a03909116815260200160405180910390f35b341561052757600080fd5b61015d611715565b341561053a57600080fd5b61015d611840565b341561054d57600080fd5b61015d61195d565b61015d611a0d565b6003811061056a57600080fd5b602d816003811061057757fe5b6002020160010154341015151561058d57600080fd5b600160a060020a0333166000908152605b6020526040902060090181600381106105b357fe5b602081049091015460ff601f9092166101000a900416156105d357600080fd5b600160a060020a0333166000908152605b60205260409020600b015415156105fa57600080fd5b61060334611b6d565b61060b611ba0565b600160a060020a0333166000908152605b60205260409020600190600901826003811061063457fe5b602091828204019190066101000a81548160ff021916908360ff160217905550602d8160038110151561066357fe5b6002020154600160a060020a0333166000908152605b60205260409020600c018054909101905550565b600160a060020a0381166000908152605b60205260408120600c810154606401826106b785610b7a565b156106c4576101f4820191505b5060005b600960ff8216101561071057600060ff8216600981106106e457fe5b6005020160010154836000018260ff1660098110151561070057fe5b01540293909301926001016106c8565b60648483020495945050505050565b600160a060020a0333166000908152605b60205260408120600b0154151561074657600080fd5b6000821161075357600080fd5b50600160a060020a0333166000908152605b60205260409020610774611ba0565b600a8101548290101561078657600080fd5b600a81015461079b908363ffffffff611c4316565b600a820155605354605280546107ce9285929181106107b657fe5b6000918252602090912001549063ffffffff611c5816565b60526053548154811015156107df57fe5b6000918252602080832090910192909255600160a060020a03331681526050825260408082206053548352909252205461081f908363ffffffff611c5816565b600160a060020a033316600090815260506020908152604080832060535484529091529020555050565b600160a060020a0333166000908152605b60205260408120600d81015490919081901161087557600080fd5b600b820154151561088557600080fd5b50600d810180546000909155600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050156108c4576000600d8301555b5050565b600160a060020a0381166000908152605b60205260408120600b8101548290819015156108f457600080fd5b605354600e8401541061090657600080fd5b5050600e810154605354601e82820311156109215750601e81015b600093505b6053548210156109c957600160a060020a033316600090815260506020908152604080832085845290915281205411156109be57605280548390811061096857fe5b6000918252602080832090910154600160a060020a038816835260508252604080842086855290925291205460518054859081106109a257fe5b906000526020600020900154028115156109b857fe5b04840193505b816001019150610926565b505050919050565b60008080805b605e54821015610a3157506000818152605d6020818152604080842054600160a060020a0316808552605b8352908420600a81015494869052929091529490910193610a229061068d565b830192508160010191506109d7565b50509091565b600080600080610a45611d81565b600160a060020a0386166000908152605c60205260408120600681015460078201549297508796509450909250845b6006811015610af85760338160068110610a8a57fe5b6004020154828260068110610a9b57fe5b015402969096019560338160068110610ab057fe5b60040201600101548260000182600681101515610ac957fe5b0154029590950194818160068110610add57fe5b0154838260068110610aeb57fe5b6020020152600101610a74565b505091939590929450565b604b54604e54604d54604f54929391929091565b605f5433600160a060020a03908116911614610b3257600080fd5b605f54604e54600160a060020a039091169080156108fc0290604051600060405180830381858888f1935050505015610b6b576000604e555b565b605e5490565b6053545b90565b6000805b6005811015610bc057600160a060020a03831660568260058110610b9e57fe5b0154600160a060020a03161415610bb85760019150610bc5565b600101610b7e565b600091505b50919050565b600080600960ff851610610bde57600080fd5b600061ffff841611610bef57600080fd5b61010061ffff84161115610c0257600080fd5b600160a060020a0333166000908152605b60205260409020915061ffff83168260ff861660098110610c3057fe5b015401600060ff861660098110610c4357fe5b600502016004015410151515610c5857600080fd5b610c60611ba0565b610cb0600060ff861660098110610c7357fe5b6005020154600060ff871660098110610c8857fe5b6005020160020154846000018760ff16600981101515610ca457fe5b01548661ffff16611c6e565b90508082600a015410151515610cc557600080fd5b61ffff83168260ff861660098110610cd957fe5b0154018260ff861660098110610ceb57fe5b0155600060ff851660098110610cfd57fe5b6005020160040154826000018560ff16600981101515610d1957fe5b01541115610d5057600060ff851660098110610d3157fe5b6005020160040154826000018560ff16600981101515610d4d57fe5b01555b600a90910180549190910390555050565b60008060006053548411151515610d7757600080fd5b600160a060020a0385166000908152605060209081526040808320878452909152902054605354909350841015610e0e576052805485908110610db657fe5b6000918252602080832090910154600160a060020a03881683526050825260408084208885529092529120546051805487908110610df057fe5b90600052602060002090015402811515610e0657fe5b049150610e5d565b6052805485908110610e1c57fe5b6000918252602080832090910154600160a060020a0388168352605082526040808420888552909252912054604b546005900402811515610e5957fe5b0491505b50600160a060020a039093166000908152605b60205260409020600e01549093909150565b60008080808060068710610e9557600080fd5b60008611610ea257600080fd5b6103e8861115610eb157600080fd5b600160a060020a0333166000908152605c60209081526040808320605b9092529091209095509350848760068110610ee557fe5b01549250610f1f60338860068110610ef957fe5b6004020160020154603389600681101515610f1057fe5b60040201600201548589611c6e565b9150610f488660338960068110610f3257fe5b6004020160030154611cb990919063ffffffff16565b9050610f52611ba0565b600a84015482901015610f6457600080fd5b3481901015610f7257600080fd5b6000821115610f8757600a8401805483900390555b6000341115610f9957610f9934611b6d565b85858860068110610fa657fe5b018054909101905550505050505050565b600080600960ff851610610fca57600080fd5b60008311610fd757600080fd5b610100831115610fe657600080fd5b60008060ff861660098110610ff757fe5b600502016003015411151561100b57600080fd5b600160a060020a0333166000908152605b602052604090209150828260ff86166009811061103557fe5b015401600060ff86166009811061104857fe5b60050201600401541015151561105d57600080fd5b61108783600060ff87166009811061107157fe5b6005020160030154611cb990919063ffffffff16565b9050348190101561109757600080fd5b6110a034611b6d565b6110a8611ba0565b828260ff8616600981106110b857fe5b0154018260ff8616600981106110ca57fe5b0155600060ff8516600981106110dc57fe5b6005020160040154826000018560ff166009811015156110f857fe5b0154111561112f57600060ff85166009811061111057fe5b6005020160040154826000018560ff1660098110151561112c57fe5b01555b50505050565b600080600080600080600080600089600160a060020a031633600160a060020a03161415151561116457600080fd5b600160a060020a0333166000908152605b60205260409020600b0154151561118b57600080fd5b600160a060020a038a166000908152605b60205260409020600b015415156111b257600080fd5b600160a060020a033381166000908152605c6020526040808220928d16825281206007830154929b509950975087965042116111ed57600080fd5b600688015442116111fd57600080fd5b428960060154111561121457600019420160068a01555b611c20420160078a0155600096508694508493505b6003871015611299576033876006811061123f57fe5b600402015489886006811061125057fe5b01540294909401936033600388016006811061126857fe5b600402016001015488600001600360ff16890160068110151561128757fe5b01540284019350866001019650611229565b838511156113e2574261384001886006015410156112bc57613840420160068901555b6112c58a611cde565b505050600160a060020a038781166000908152605b60205260408082203390931682529020600a82015460039650600290045b600687101561131c57600088886006811061130f57fe5b01556001909601956112f8565b600096505b60038710156113c95760006033886006811061133957fe5b600402015411156113be5788876006811061135057fe5b01549550836033886006811061136257fe5b60040201548702111561138f576033876006811061137c57fe5b60040201548481151561138b57fe5b0495505b8589886006811061139c57fe5b018054919091039055603387600681106113b257fe5b60040201548602909303925b866001019650611321565b600a8084018054839003905582018054820190556114c4565b600096505b600387101561140b5760008988600681106113fe57fe5b01556001909601956113e7565b600396505b60068710156114c45760006033886006811061142857fe5b600402016001015411156114b95787876006811061144257fe5b01549550846033886006811061145457fe5b600402016001015487021115611487576033876006811061147157fe5b60040201600101548581151561148357fe5b0495505b8588886006811061149457fe5b018054919091039055603387600681106114aa57fe5b60040201600101548602850394505b866001019650611410565b50505050505050505050565b6114d8611da8565b600080805b600581101561152557605681600581106114f357fe5b0154600160a060020a031684826005811061150a57fe5b600160a060020a0390921660209290920201526001016114dd565b6055549250605454915050909192565b600080605354831115151561154957600080fd5b605280548490811061155757fe5b906000526020600020900154915060535483101561159057605180548490811061157d57fe5b9060005260206000209001549050611599565b50604b54600590045b915091565b60008060006115ab611dd0565b6115b3611deb565b600160a060020a0386166000908152605b60205260408120600a810154600b9091015490965094508080806115e78a61068d565b9650600090505b600960ff8216101561163e57600160a060020a038a166000908152605b6020526040902060ff82166009811061162057fe5b01548660ff83166009811061163157fe5b60200201526001016115ee565b5060005b600360ff821610156116aa57600160a060020a038a166000908152605b6020526040902060090160ff82166003811061167757fe5b602081049091015460ff601f9092166101000a9004811690869083166003811061169d57fe5b6020020152600101611642565b600160a060020a038a166000908152605b60205260409020600d015493506116d18a610b7a565b925087420387028901915050919395975091939597565b605e5460009082106116f957600080fd5b506000908152605d6020526040902054600160a060020a031690565b600160a060020a0333166000908152605b60205260408120600b8101549091908190151561174257600080fd5b605354600160a060020a0333166000908152605b60205260409020600e01541061176b57600080fd5b5050600e810154605354601e82820311156117865750601e81015b600e83018190555b60535482101561183b57600160a060020a033316600090815260506020908152604080832085845290915281205411156118305760528054839081106117d057fe5b6000918252602080832090910154600160a060020a0333168352605082526040808420868552909252912054605180548590811061180a57fe5b9060005260206000209001540281151561182057fe5b600d850180549290910490910190555b81600101915061178e565b505050565b600160a060020a0333166000908152605b60205260408120600b0154151561186757600080fd5b604f544290111561187757600080fd5b604b546000901161188757600080fd5b6000605260535481548110151561189a57fe5b600091825260209091200154116118b057600080fd5b620151804201604f55604b546005900460516053548154811015156118d157fe5b600091825260209091200155604b8054600581049003905560518054600181016118fb8382611e05565b50600091825260208220015560528054600181016119198382611e05565b506000918252602080832091909101829055605380546001019055600160a060020a0333168252605b905260408120604d8054600d90920180549092019091555550565b600160a060020a0333166000908152605b60205260409020600b01541561198357600080fd5b33600160a060020a03166000818152605b6020908152604080832042600b8201819055600a82018590556001808355600d8301869055605354600e90930192909255605c84528285206170808201600682015560070155605e80548552605d9093529220805473ffffffffffffffffffffffffffffffffffffffff19169093179092558154019055565b60008060006055543410151515611a2357600080fd5b600160a060020a0333166000908152605b60205260409020600b01541515611a4a57600080fd5b600092505b6005831015611a9057600160a060020a03331660568460058110611a6f57fe5b0154600160a060020a03161415611a8557600080fd5b826001019250611a4f565b60545460569060058110611aa057fe5b0154600160a060020a03166000818152605b60205260409020600d81018054612710346124bb810291909104909101909155604b8054614e20610255909302929092049182019055604e8054909101905560558054601481040190559092509050611b09611ba0565b611b1282611cde565b336056605454600581101515611b2457fe5b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560548054600101908190556005901061183b576000605455505050565b604c54604b80546064848402819004909101909155604d8054828504019055604e80549282036000190190930204019055565b600160a060020a0333166000908152605b60205260408120600b0154819081901515611bcb57600080fd5b600160a060020a0333166000908152605b60205260409020600b0154421015611bf357600080fd5b33600160a060020a0381166000908152605b60205260409020600b81015490945042039250611c219061068d565b42600b8501559050600081111561183b57600a92909201805491909202019055565b600082821115611c5257600080fd5b50900390565b81810182811015611c6857600080fd5b92915050565b6000808211611c7c57600080fd5b506000611c8d848402860183611cb9565b016002611ca483600019810163ffffffff611cb916565b8502811515611caf57fe5b0401949350505050565b818102821580611cd35750818382811515611cd057fe5b04145b1515611c6857600080fd5b600160a060020a0381166000908152605b60205260408120600b0154819081901515611d0957600080fd5b600160a060020a0384166000908152605b60205260409020600b0154421015611d3157600080fd5b600160a060020a0384166000908152605b60205260409020600b81015490935042039150611d5e8461068d565b42600b8501559050600081111561112f57600a9290920180549190920201905550565b60c06040519081016040526006815b6000815260200190600190039081611d905790505090565b60a06040519081016040526005815b600081526000199091019060200181611db75790505090565b61012060405190810160405260008152600860208201611d90565b606060405190810160405260008152600260208201611d90565b81548183558181151161183b5760008381526020902061183b918101908301610b7791905b80821115611e3e5760008155600101611e2a565b50905600a165627a7a72305820f45f9d4e7710fd6422915178a1e8ee9ae24ecf862710f5bb78d4b073302441540029

Deployed Bytecode

0x6060604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630116bfc08114610152578063036a66eb1461015f5780631fd86a6a1461019057806333ad9495146101a65780633a70eabd146101b957806356a4e7f9146101d85780635b1fef12146102035780636e4dd931146102795780638357417d146102b7578063996f7602146102ca5780639f0eed0f146102dd578063af299510146102f0578063b4b9cd6214610323578063b4beff8a14610343578063b4e6f92b14610389578063badb2e5a14610397578063bc346c9c146103a8578063bd1f7d52146103c7578063cb68780f14610420578063cc0f65f714610436578063d291fa81146104ea578063d511beec1461051c578063dee8bd511461052f578063f362b9af14610542578063fdade29f14610555575b604e805434019055005b61015d60043561055d565b005b341561016a57600080fd5b61017e600160a060020a036004351661068d565b60405190815260200160405180910390f35b341561019b57600080fd5b61015d60043561071f565b34156101b157600080fd5b61015d610849565b34156101c457600080fd5b61017e600160a060020a03600435166108c8565b34156101e357600080fd5b6101eb6109d1565b60405191825260208201526040908101905180910390f35b341561020e57600080fd5b610222600160a060020a0360043516610a37565b6040518086815260200185815260200184815260200183815260200182600660200280838360005b8381101561026257808201518382015260200161024a565b505050509050019550505050505060405180910390f35b341561028457600080fd5b61028c610b03565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156102c257600080fd5b61015d610b17565b34156102d557600080fd5b61017e610b6d565b34156102e857600080fd5b61017e610b73565b34156102fb57600080fd5b61030f600160a060020a0360043516610b7a565b604051901515815260200160405180910390f35b341561032e57600080fd5b61015d60ff6004351661ffff60243516610bcb565b341561034e57600080fd5b610365600160a060020a0360043516602435610d61565b60405180848152602001838152602001828152602001935050505060405180910390f35b61015d600435602435610e82565b61015d60ff60043516602435610fb7565b34156103b357600080fd5b61015d600160a060020a0360043516611135565b34156103d257600080fd5b6103da6114d0565b604051808460a080838360005b838110156103ff5780820151838201526020016103e7565b50505050905001838152602001828152602001935050505060405180910390f35b341561042b57600080fd5b6101eb600435611535565b341561044157600080fd5b610455600160a060020a036004351661159e565b6040518089815260200188815260200187815260200186600960200280838360005b8381101561048f578082015183820152602001610477565b5050505090500185600360200280838360005b838110156104ba5780820151838201526020016104a2565b50505050905001848152602001831515151581526020018281526020019850505050505050505060405180910390f35b34156104f557600080fd5b6105006004356116e8565b604051600160a060020a03909116815260200160405180910390f35b341561052757600080fd5b61015d611715565b341561053a57600080fd5b61015d611840565b341561054d57600080fd5b61015d61195d565b61015d611a0d565b6003811061056a57600080fd5b602d816003811061057757fe5b6002020160010154341015151561058d57600080fd5b600160a060020a0333166000908152605b6020526040902060090181600381106105b357fe5b602081049091015460ff601f9092166101000a900416156105d357600080fd5b600160a060020a0333166000908152605b60205260409020600b015415156105fa57600080fd5b61060334611b6d565b61060b611ba0565b600160a060020a0333166000908152605b60205260409020600190600901826003811061063457fe5b602091828204019190066101000a81548160ff021916908360ff160217905550602d8160038110151561066357fe5b6002020154600160a060020a0333166000908152605b60205260409020600c018054909101905550565b600160a060020a0381166000908152605b60205260408120600c810154606401826106b785610b7a565b156106c4576101f4820191505b5060005b600960ff8216101561071057600060ff8216600981106106e457fe5b6005020160010154836000018260ff1660098110151561070057fe5b01540293909301926001016106c8565b60648483020495945050505050565b600160a060020a0333166000908152605b60205260408120600b0154151561074657600080fd5b6000821161075357600080fd5b50600160a060020a0333166000908152605b60205260409020610774611ba0565b600a8101548290101561078657600080fd5b600a81015461079b908363ffffffff611c4316565b600a820155605354605280546107ce9285929181106107b657fe5b6000918252602090912001549063ffffffff611c5816565b60526053548154811015156107df57fe5b6000918252602080832090910192909255600160a060020a03331681526050825260408082206053548352909252205461081f908363ffffffff611c5816565b600160a060020a033316600090815260506020908152604080832060535484529091529020555050565b600160a060020a0333166000908152605b60205260408120600d81015490919081901161087557600080fd5b600b820154151561088557600080fd5b50600d810180546000909155600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050156108c4576000600d8301555b5050565b600160a060020a0381166000908152605b60205260408120600b8101548290819015156108f457600080fd5b605354600e8401541061090657600080fd5b5050600e810154605354601e82820311156109215750601e81015b600093505b6053548210156109c957600160a060020a033316600090815260506020908152604080832085845290915281205411156109be57605280548390811061096857fe5b6000918252602080832090910154600160a060020a038816835260508252604080842086855290925291205460518054859081106109a257fe5b906000526020600020900154028115156109b857fe5b04840193505b816001019150610926565b505050919050565b60008080805b605e54821015610a3157506000818152605d6020818152604080842054600160a060020a0316808552605b8352908420600a81015494869052929091529490910193610a229061068d565b830192508160010191506109d7565b50509091565b600080600080610a45611d81565b600160a060020a0386166000908152605c60205260408120600681015460078201549297508796509450909250845b6006811015610af85760338160068110610a8a57fe5b6004020154828260068110610a9b57fe5b015402969096019560338160068110610ab057fe5b60040201600101548260000182600681101515610ac957fe5b0154029590950194818160068110610add57fe5b0154838260068110610aeb57fe5b6020020152600101610a74565b505091939590929450565b604b54604e54604d54604f54929391929091565b605f5433600160a060020a03908116911614610b3257600080fd5b605f54604e54600160a060020a039091169080156108fc0290604051600060405180830381858888f1935050505015610b6b576000604e555b565b605e5490565b6053545b90565b6000805b6005811015610bc057600160a060020a03831660568260058110610b9e57fe5b0154600160a060020a03161415610bb85760019150610bc5565b600101610b7e565b600091505b50919050565b600080600960ff851610610bde57600080fd5b600061ffff841611610bef57600080fd5b61010061ffff84161115610c0257600080fd5b600160a060020a0333166000908152605b60205260409020915061ffff83168260ff861660098110610c3057fe5b015401600060ff861660098110610c4357fe5b600502016004015410151515610c5857600080fd5b610c60611ba0565b610cb0600060ff861660098110610c7357fe5b6005020154600060ff871660098110610c8857fe5b6005020160020154846000018760ff16600981101515610ca457fe5b01548661ffff16611c6e565b90508082600a015410151515610cc557600080fd5b61ffff83168260ff861660098110610cd957fe5b0154018260ff861660098110610ceb57fe5b0155600060ff851660098110610cfd57fe5b6005020160040154826000018560ff16600981101515610d1957fe5b01541115610d5057600060ff851660098110610d3157fe5b6005020160040154826000018560ff16600981101515610d4d57fe5b01555b600a90910180549190910390555050565b60008060006053548411151515610d7757600080fd5b600160a060020a0385166000908152605060209081526040808320878452909152902054605354909350841015610e0e576052805485908110610db657fe5b6000918252602080832090910154600160a060020a03881683526050825260408084208885529092529120546051805487908110610df057fe5b90600052602060002090015402811515610e0657fe5b049150610e5d565b6052805485908110610e1c57fe5b6000918252602080832090910154600160a060020a0388168352605082526040808420888552909252912054604b546005900402811515610e5957fe5b0491505b50600160a060020a039093166000908152605b60205260409020600e01549093909150565b60008080808060068710610e9557600080fd5b60008611610ea257600080fd5b6103e8861115610eb157600080fd5b600160a060020a0333166000908152605c60209081526040808320605b9092529091209095509350848760068110610ee557fe5b01549250610f1f60338860068110610ef957fe5b6004020160020154603389600681101515610f1057fe5b60040201600201548589611c6e565b9150610f488660338960068110610f3257fe5b6004020160030154611cb990919063ffffffff16565b9050610f52611ba0565b600a84015482901015610f6457600080fd5b3481901015610f7257600080fd5b6000821115610f8757600a8401805483900390555b6000341115610f9957610f9934611b6d565b85858860068110610fa657fe5b018054909101905550505050505050565b600080600960ff851610610fca57600080fd5b60008311610fd757600080fd5b610100831115610fe657600080fd5b60008060ff861660098110610ff757fe5b600502016003015411151561100b57600080fd5b600160a060020a0333166000908152605b602052604090209150828260ff86166009811061103557fe5b015401600060ff86166009811061104857fe5b60050201600401541015151561105d57600080fd5b61108783600060ff87166009811061107157fe5b6005020160030154611cb990919063ffffffff16565b9050348190101561109757600080fd5b6110a034611b6d565b6110a8611ba0565b828260ff8616600981106110b857fe5b0154018260ff8616600981106110ca57fe5b0155600060ff8516600981106110dc57fe5b6005020160040154826000018560ff166009811015156110f857fe5b0154111561112f57600060ff85166009811061111057fe5b6005020160040154826000018560ff1660098110151561112c57fe5b01555b50505050565b600080600080600080600080600089600160a060020a031633600160a060020a03161415151561116457600080fd5b600160a060020a0333166000908152605b60205260409020600b0154151561118b57600080fd5b600160a060020a038a166000908152605b60205260409020600b015415156111b257600080fd5b600160a060020a033381166000908152605c6020526040808220928d16825281206007830154929b509950975087965042116111ed57600080fd5b600688015442116111fd57600080fd5b428960060154111561121457600019420160068a01555b611c20420160078a0155600096508694508493505b6003871015611299576033876006811061123f57fe5b600402015489886006811061125057fe5b01540294909401936033600388016006811061126857fe5b600402016001015488600001600360ff16890160068110151561128757fe5b01540284019350866001019650611229565b838511156113e2574261384001886006015410156112bc57613840420160068901555b6112c58a611cde565b505050600160a060020a038781166000908152605b60205260408082203390931682529020600a82015460039650600290045b600687101561131c57600088886006811061130f57fe5b01556001909601956112f8565b600096505b60038710156113c95760006033886006811061133957fe5b600402015411156113be5788876006811061135057fe5b01549550836033886006811061136257fe5b60040201548702111561138f576033876006811061137c57fe5b60040201548481151561138b57fe5b0495505b8589886006811061139c57fe5b018054919091039055603387600681106113b257fe5b60040201548602909303925b866001019650611321565b600a8084018054839003905582018054820190556114c4565b600096505b600387101561140b5760008988600681106113fe57fe5b01556001909601956113e7565b600396505b60068710156114c45760006033886006811061142857fe5b600402016001015411156114b95787876006811061144257fe5b01549550846033886006811061145457fe5b600402016001015487021115611487576033876006811061147157fe5b60040201600101548581151561148357fe5b0495505b8588886006811061149457fe5b018054919091039055603387600681106114aa57fe5b60040201600101548602850394505b866001019650611410565b50505050505050505050565b6114d8611da8565b600080805b600581101561152557605681600581106114f357fe5b0154600160a060020a031684826005811061150a57fe5b600160a060020a0390921660209290920201526001016114dd565b6055549250605454915050909192565b600080605354831115151561154957600080fd5b605280548490811061155757fe5b906000526020600020900154915060535483101561159057605180548490811061157d57fe5b9060005260206000209001549050611599565b50604b54600590045b915091565b60008060006115ab611dd0565b6115b3611deb565b600160a060020a0386166000908152605b60205260408120600a810154600b9091015490965094508080806115e78a61068d565b9650600090505b600960ff8216101561163e57600160a060020a038a166000908152605b6020526040902060ff82166009811061162057fe5b01548660ff83166009811061163157fe5b60200201526001016115ee565b5060005b600360ff821610156116aa57600160a060020a038a166000908152605b6020526040902060090160ff82166003811061167757fe5b602081049091015460ff601f9092166101000a9004811690869083166003811061169d57fe5b6020020152600101611642565b600160a060020a038a166000908152605b60205260409020600d015493506116d18a610b7a565b925087420387028901915050919395975091939597565b605e5460009082106116f957600080fd5b506000908152605d6020526040902054600160a060020a031690565b600160a060020a0333166000908152605b60205260408120600b8101549091908190151561174257600080fd5b605354600160a060020a0333166000908152605b60205260409020600e01541061176b57600080fd5b5050600e810154605354601e82820311156117865750601e81015b600e83018190555b60535482101561183b57600160a060020a033316600090815260506020908152604080832085845290915281205411156118305760528054839081106117d057fe5b6000918252602080832090910154600160a060020a0333168352605082526040808420868552909252912054605180548590811061180a57fe5b9060005260206000209001540281151561182057fe5b600d850180549290910490910190555b81600101915061178e565b505050565b600160a060020a0333166000908152605b60205260408120600b0154151561186757600080fd5b604f544290111561187757600080fd5b604b546000901161188757600080fd5b6000605260535481548110151561189a57fe5b600091825260209091200154116118b057600080fd5b620151804201604f55604b546005900460516053548154811015156118d157fe5b600091825260209091200155604b8054600581049003905560518054600181016118fb8382611e05565b50600091825260208220015560528054600181016119198382611e05565b506000918252602080832091909101829055605380546001019055600160a060020a0333168252605b905260408120604d8054600d90920180549092019091555550565b600160a060020a0333166000908152605b60205260409020600b01541561198357600080fd5b33600160a060020a03166000818152605b6020908152604080832042600b8201819055600a82018590556001808355600d8301869055605354600e90930192909255605c84528285206170808201600682015560070155605e80548552605d9093529220805473ffffffffffffffffffffffffffffffffffffffff19169093179092558154019055565b60008060006055543410151515611a2357600080fd5b600160a060020a0333166000908152605b60205260409020600b01541515611a4a57600080fd5b600092505b6005831015611a9057600160a060020a03331660568460058110611a6f57fe5b0154600160a060020a03161415611a8557600080fd5b826001019250611a4f565b60545460569060058110611aa057fe5b0154600160a060020a03166000818152605b60205260409020600d81018054612710346124bb810291909104909101909155604b8054614e20610255909302929092049182019055604e8054909101905560558054601481040190559092509050611b09611ba0565b611b1282611cde565b336056605454600581101515611b2457fe5b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560548054600101908190556005901061183b576000605455505050565b604c54604b80546064848402819004909101909155604d8054828504019055604e80549282036000190190930204019055565b600160a060020a0333166000908152605b60205260408120600b0154819081901515611bcb57600080fd5b600160a060020a0333166000908152605b60205260409020600b0154421015611bf357600080fd5b33600160a060020a0381166000908152605b60205260409020600b81015490945042039250611c219061068d565b42600b8501559050600081111561183b57600a92909201805491909202019055565b600082821115611c5257600080fd5b50900390565b81810182811015611c6857600080fd5b92915050565b6000808211611c7c57600080fd5b506000611c8d848402860183611cb9565b016002611ca483600019810163ffffffff611cb916565b8502811515611caf57fe5b0401949350505050565b818102821580611cd35750818382811515611cd057fe5b04145b1515611c6857600080fd5b600160a060020a0381166000908152605b60205260408120600b0154819081901515611d0957600080fd5b600160a060020a0384166000908152605b60205260409020600b0154421015611d3157600080fd5b600160a060020a0384166000908152605b60205260409020600b81015490935042039150611d5e8461068d565b42600b8501559050600081111561112f57600a9290920180549190920201905550565b60c06040519081016040526006815b6000815260200190600190039081611d905790505090565b60a06040519081016040526005815b600081526000199091019060200181611db75790505090565b61012060405190810160405260008152600860208201611d90565b606060405190810160405260008152600260208201611d90565b81548183558181151161183b5760008381526020902061183b918101908301610b7791905b80821115611e3e5760008155600101611e2a565b50905600a165627a7a72305820f45f9d4e7710fd6422915178a1e8ee9ae24ecf862710f5bb78d4b073302441540029

Swarm Source

bzzr://f45f9d4e7710fd6422915178a1e8ee9ae24ecf862710f5bb78d4b07330244154

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.