Sponsored Link:   FTEC - Artificial Intelligence trading revolution! Ready project! Softcap reached! Apply for whitelist!
Contract Overview
Balance: 0.249783507343237268 Ether
Ether Value: $130.54 (@ $522.62/ETH)
Transactions: 4820 txns
 Latest 25 txns from a total Of 4820 transactions
View All

TxHash Age From To Value [TxFee]
0x9c408e7db95aa8bd6f4ebe73305761cbf9c5e0f6adbe289b0e750b173f7a89954 days 6 hrs ago0xd78976a6455212764fab53a3d07eb6ac5b76b16e  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.000049752
0xba22d526e20e8db77c220ba82d0fa4066914615c2874e09c59142b0770202b0b4 days 7 hrs ago0xd78976a6455212764fab53a3d07eb6ac5b76b16e  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0001209978
0x5b3e2b5f1b0667b4b06f24c5d3130b666306cf37d404000500434de06767845c5 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00007487676
0x2850a37909c5a281694ddcc838c9c645ca4d37aee82679996ad29293fb9564095 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00010795365
0x0e6c5ff25e168d839c95ac1e89aecbc02ecddbf84dd10e8381db7e44dcd0a4b65 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0002837771
0xdaf65484d28ad34566354ab06eeb969885054e46154e6e42b4465c8e586413745 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0001804603
0xecd9e6d8aedc3b2e7ce9da4ef9f6e86764a8c5563ba6eb02fe96db84fbb87e776 days 6 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00016404
0x6081572c9d904b2f9e839f06b2fb857dbafc78bb2d652c04abe8494d65985edd6 days 6 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.000310152
0x34ebc7e7a0f16ca093509a087f7c4967b472fcf36cb34a942e426ee4a06b2e806 days 6 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0001429962
0x6e44a2386ecbcf93bc8c8b14350c8b85ddbbd1dbd1ecfbe2f200ae7e901476686 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00017776239
0xff04cef3b6ba4db89fba6817e2bae431ab76f9af41572a15c8ba5b64ca9702976 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00018399741
0x591b298972fbd2f63d5899c18b3a6913de8f6ae9aa9dfe66fdf73dc0114a78027 days 8 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0005249736
0x34edd5a4cca1fa1470b4dd60f376c15a7135ba4e316a50a813a4fca1644edbe77 days 12 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00040816
0xcfab5260ce0b5a8e4476092e2533255d7641c575ee87c57a95d89c88a4ea4ef57 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00017776239
0xc5973353c4618ce9b538b302b0d961db0edecff46ff2f0f3651f66f1105b4fe17 days 12 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00018399741
0x321cc7f91752cb582566466766ae90e6ded81bd465f9c2e46245b076a41490568 days 6 hrs ago0x1d234b212cce0128b29c8bfb5963d341020e6cc9  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.000130668
0x69bc6141ef1ccb54360db86d1f30e82e221ffe783ee43fe4d6495f2843dfb42b8 days 19 hrs ago0x118778b46e57480b358a27a29bb04e068f6764c7  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.000099504
0x7a292266fd1f850d699867be2e733090d95ab96bd6f0f670264cfd7caf3385738 days 19 hrs ago0x118778b46e57480b358a27a29bb04e068f6764c7  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00019858
0x47b6f17278570749718f3c622b29926135947931dbbc82b0c16d56120caaeba19 days 10 hrs ago0x118778b46e57480b358a27a29bb04e068f6764c7  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0004540164
0x83738320f4f2c525e29788c362d52f738a564a409101bf09ea5fc996cb85ac079 days 10 hrs ago0x118778b46e57480b358a27a29bb04e068f6764c7  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.000099477609
0x34215cfd737a6243b80c2b3484729f27d1c65aeab99c18be7ce7563fede79d0f9 days 11 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0000771156
0xd1d2bebc77928ea4e66ff3549e63a7545632360ac6722b1a655347c4785db63f9 days 11 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0002032391
0xbc1f1c904e7cfc6129a61e7d15ff948d6821c0646372ce0b6a1ac02c64555a1a9 days 11 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.00026620139
0x5225eb8096c24073d585814d2bf48f4907ffdfcdcf6f00352bc7d90408c1bf869 days 11 hrs ago0xf0333b94f895eb5aab3822da376f9cbcfce8a19c  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0001922361
0x4d60b1e64451deca52f16961c0905c2ecc44eb5f89571957b99d8fbc56f9db7a9 days 15 hrs ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0 Ether0.0002734
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x9c408e7db95aa8bd6f4ebe73305761cbf9c5e0f6adbe289b0e750b173f7a899557971574 days 6 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xd78976a6455212764fab53a3d07eb6ac5b76b16e0.000179714076501879 Ether
0x5b3e2b5f1b0667b4b06f24c5d3130b666306cf37d404000500434de06767845c57900575 days 12 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.008345882501066429 Ether
0x69bc6141ef1ccb54360db86d1f30e82e221ffe783ee43fe4d6495f2843dfb42b57711648 days 19 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x118778b46e57480b358a27a29bb04e068f6764c70.003313079240358472 Ether
0x34215cfd737a6243b80c2b3484729f27d1c65aeab99c18be7ce7563fede79d0f57672979 days 11 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.016316877181878057 Ether
0x076f87f2fa97a0394e35837fb68a92490c9873ece919e1492bee06db2fa5180c573307315 days 13 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.012653990252920455 Ether
0xbbfa56dbbc2716cf0145c606723be7614550e5ff2708de83eac8aeb25dee4733571756118 days 7 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xd78976a6455212764fab53a3d07eb6ac5b76b16e0.033599823666812835 Ether
0x54a4a2406fac5497f4fa10b5294810319f2a0cdd65a5fa6d3768d837077d7166569329822 days 15 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.010774147782431321 Ether
0x8cb0c601121c4653a8759370092f7762c4bbf6121b10abf72ecf34e9f59b7b8b568866423 days 10 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x36e058332ae39efad2315776b9c844e30d07388b0.007720092760203515 Ether
0xe73dd72de4dfb3cdfb0a46c451765e612f2970a9c65f8ecb81f966d5643663b0567322226 days 3 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xe57a18783640c9fa3c5e8e4d4b4443e2024a7ff90.159864036434196097 Ether
0x2ae0623c54e84e1b91d684ea2b0e2a192fc86c8ebec75520d48cb9046e46f6f6567094026 days 13 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.007153923593387556 Ether
0x5d79b749048fe392f8e13b9de352a7f2701df1a70e2ef99844d1f993ae6b3fae566462527 days 16 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.007490902516792619 Ether
0x760bc40e4907d3ed6ee6e3aac9f664f587cc534d98c66ee9bc233fe78d5fd9a0565496129 days 10 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xd78976a6455212764fab53a3d07eb6ac5b76b16e0.017901915124761737 Ether
0xc8e1e18096eb118efff896afbd889cfd7c316eecd16d405d24f5bc34351b919b565473029 days 11 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.024786315059771075 Ether
0x532b125b8e84ed637effa546759ca7e704bba398e985d35c9a6da2d74a60d8a9564628130 days 22 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x36e058332ae39efad2315776b9c844e30d07388b0.003986582295943709 Ether
0xe06335c5dd272a7c144d88763bc853d216dcd77c1a96098f9f86f4aa455e9dff564090731 days 21 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xa5b8f955f90216d11f7da256d6fc376e63ddc34b0.011107320896269009 Ether
0xebdb8f2a528cb73bf49be7a1d27eb82e981c9a283e215e6d0b842223dd0fc530563463733 days 25 mins ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x293493dc8a6379a9913b1b1f579a0c90f7d99a490.033631525128963146 Ether
0xb656f77db22a468c7aa646db92639c305736e6ad4f5caa42ca5b30fdf60a554d563179833 days 12 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xf0333b94f895eb5aab3822da376f9cbcfce8a19c0.028127349832652132 Ether
0x03024cf9dc7a4614c1e242cd59e5ce6d46887576cfeb625ff11c0cce429f33cb562572034 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x36e058332ae39efad2315776b9c844e30d07388b0.001772035808809296 Ether
0x16596eca20d0e381ce4dbeda3a3ad7b115c289c2a815ca564fbdc89ee0de8860562563134 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xc910fbbabad59de4ad6e598887f04c36e20877b20.065996968955278932 Ether
0x5054883267a1adeeb7d1f3de4fcc2791fa65b819bb543a71c958008487e5757b562563034 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x8871759b2530fee82cd1b31c534252a1db707b0b0.030274312983571404 Ether
0x5637fffedf06c7ba0c6e201aa4bee6505fd978e18c4ece58696edcbadba1ee66562561934 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x4a4c35280bc7e7f426453db48e5faf66f47398b60.122439864335200959 Ether
0x9e7bb6e018d7670c371354b2f40eda02fe9966b8d4f0d03e84502624e270d58d562561434 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xb053e9e6b3504ce44994d7e801f908b4307cc3e20.068330014795038933 Ether
0x3b58f0621a9de15a6d8af720dd00c70e0797373e81798f56f98296e847dc6e62562561434 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x53da753a4d453aa132da0a20137c95c02e554c450.050646834853238741 Ether
0x62f2be6cd02bf029f5e5b3bd1793881ef84c52179c4e84cf8b062594b564b79a562560934 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0xc1565b55e0b39d44bbcc9a091d9065d70f1a2c670.080458239912294635 Ether
0x6460748d870deacc6795e4f0cb81372dd57725135960d39ab12ddfd367ff08f3562560934 days 14 hrs ago0xd731c88890ca047cd1bed2e6ea1562c7a425c29d0x54d4aac8e3868c64dd11dcd1f40d2468c18b190b0.050869345475293641 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: RigIdle
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 ABI  
[{"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"}]

  Contract Creation Code Switch To Opcodes View
606060405234156200001057600080fd5b605f8054600160a060020a03191633600160a060020a031617905560a0604051908101604052806080815260200160018152602001604081526020016000815260200160408152506000806009811015156200006857fe5b600502018151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526104008252602082018190526102008183015260006060830152608082015260058151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526203200082526104006020830152620190009082015260006060820152608080820152600a8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152630186a0008252612000602083015262c350009082015260006060820152608080820152600f8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526406fc23ac0080835262010000602084015290820152662386f26fc100006060820152610100608082015260148151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526406fc23ac008252620186a060208301526402540be4009082015260006060820152610100608082015260198151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a060405190810160409081526445d964b80082526207a120602083015264174876e80090820152600060608201526101006080820152601e8151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152652d79883d20008252622dc6c06020830152650b5e620f48009082015267016345785d8a00006060820152610100608082015260238151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060a06040519081016040908152655af3107a400082526301c9c3806020830152652d79883d20009082015260006060820152610100608082015260288151815560208201518160010155604082015181600201556060820151816003015560808201516004909101555060408051908101604052601e8152662386f26fc100006020820152602d81518155602082015160019091015550604080519081016040526032815267016345785d8a00006020820152602f815181556020820151600190910155506040805190810160405260648152670de0b6b3a76400006020820152603181518155602082015160019190910155506000605e819055604b819055604e819055604d81905542604f55605a604c819055605f5460568054600160a060020a0319908116600160a060020a0390931692831790915560578054821683179055605880548216831790556059805482168317905582541617905560545567016345785d8a0000605555608060405190810160405280600a815260200160008152602001620186a081526020016000815250603360006006811015156200050257fe5b60040201815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526103e882526000602083018190526304c4b400918301919091526060820152603781518155602082015181600101556040820151816002015560608201516003909101555060806040519081016040908152620186a0825260006020830181905290820152662386f26fc100006060820152603b815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526000808352600f6020840152620186a0918301919091526060820152603f8151815560208201518160010155604082015181600201556060820151600390910155506080604051908101604090815260008083526105dc60208401526304c4b4009183019190915260608201526043815181556020820151816001015560408201518160020155606082015160039091015550608060405190810160409081526000808352620249f0602084015290820152662386f26fc10000606082015260478151815560208201518160010155604082015181600201556060820151600390910155506051805460018101620006d583826200070d565b5060009182526020822001556052805460018101620006f583826200070d565b5060009182526020822060019101556053556200075d565b81548183558181151162000734576000838152602090206200073491810190830162000739565b505050565b6200075a91905b8082111562000756576000815560010162000740565b5090565b90565b611e6e806200076d6000396000f3006060604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630116bfc08114610152578063036a66eb1461015f5780631fd86a6a1461019057806333ad9495146101a65780633a70eabd146101b957806356a4e7f9146101d85780635b1fef12146102035780636e4dd931146102795780638357417d146102b7578063996f7602146102ca5780639f0eed0f146102dd578063af299510146102f0578063b4b9cd6214610323578063b4beff8a14610343578063b4e6f92b14610389578063badb2e5a14610397578063bc346c9c146103a8578063bd1f7d52146103c7578063cb68780f14610420578063cc0f65f714610436578063d291fa81146104ea578063d511beec1461051c578063dee8bd511461052f578063f362b9af14610542578063fdade29f14610555575b604e805434019055005b61015d60043561055d565b005b341561016a57600080fd5b61017e600160a060020a036004351661068d565b60405190815260200160405180910390f35b341561019b57600080fd5b61015d60043561071f565b34156101b157600080fd5b61015d610849565b34156101c457600080fd5b61017e600160a060020a03600435166108c8565b34156101e357600080fd5b6101eb6109d1565b60405191825260208201526040908101905180910390f35b341561020e57600080fd5b610222600160a060020a0360043516610a37565b6040518086815260200185815260200184815260200183815260200182600660200280838360005b8381101561026257808201518382015260200161024a565b505050509050019550505050505060405180910390f35b341561028457600080fd5b61028c610b03565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156102c257600080fd5b61015d610b17565b34156102d557600080fd5b61017e610b6d565b34156102e857600080fd5b61017e610b73565b34156102fb57600080fd5b61030f600160a060020a0360043516610b7a565b604051901515815260200160405180910390f35b341561032e57600080fd5b61015d60ff6004351661ffff60243516610bcb565b341561034e57600080fd5b610365600160a060020a0360043516602435610d61565b60405180848152602001838152602001828152602001935050505060405180910390f35b61015d600435602435610e82565b61015d60ff60043516602435610fb7565b34156103b357600080fd5b61015d600160a060020a0360043516611135565b34156103d257600080fd5b6103da6114d0565b604051808460a080838360005b838110156103ff5780820151838201526020016103e7565b50505050905001838152602001828152602001935050505060405180910390f35b341561042b57600080fd5b6101eb600435611535565b341561044157600080fd5b610455600160a060020a036004351661159e565b6040518089815260200188815260200187815260200186600960200280838360005b8381101561048f578082015183820152602001610477565b5050505090500185600360200280838360005b838110156104ba5780820151838201526020016104a2565b50505050905001848152602001831515151581526020018281526020019850505050505050505060405180910390f35b34156104f557600080fd5b6105006004356116e8565b604051600160a060020a03909116815260200160405180910390f35b341561052757600080fd5b61015d611715565b341561053a57600080fd5b61015d611840565b341561054d57600080fd5b61015d61195d565b61015d611a0d565b6003811061056a57600080fd5b602d816003811061057757fe5b6002020160010154341015151561058d57600080fd5b600160a060020a0333166000908152605b6020526040902060090181600381106105b357fe5b602081049091015460ff601f9092166101000a900416156105d357600080fd5b600160a060020a0333166000908152605b60205260409020600b015415156105fa57600080fd5b61060334611b6d565b61060b611ba0565b600160a060020a0333166000908152605b60205260409020600190600901826003811061063457fe5b602091828204019190066101000a81548160ff021916908360ff160217905550602d8160038110151561066357fe5b6002020154600160a060020a0333166000908152605b60205260409020600c018054909101905550565b600160a060020a0381166000908152605b60205260408120600c810154606401826106b785610b7a565b156106c4576101f4820191505b5060005b600960ff8216101561071057600060ff8216600981106106e457fe5b6005020160010154836000018260ff1660098110151561070057fe5b01540293909301926001016106c8565b60648483020495945050505050565b600160a060020a0333166000908152605b60205260408120600b0154151561074657600080fd5b6000821161075357600080fd5b50600160a060020a0333166000908152605b60205260409020610774611ba0565b600a8101548290101561078657600080fd5b600a81015461079b908363ffffffff611c4316565b600a820155605354605280546107ce9285929181106107b657fe5b6000918252602090912001549063ffffffff611c5816565b60526053548154811015156107df57fe5b6000918252602080832090910192909255600160a060020a03331681526050825260408082206053548352909252205461081f908363ffffffff611c5816565b600160a060020a033316600090815260506020908152604080832060535484529091529020555050565b600160a060020a0333166000908152605b60205260408120600d81015490919081901161087557600080fd5b600b820154151561088557600080fd5b50600d810180546000909155600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050156108c4576000600d8301555b5050565b600160a060020a0381166000908152605b60205260408120600b8101548290819015156108f457600080fd5b605354600e8401541061090657600080fd5b5050600e810154605354601e82820311156109215750601e81015b600093505b6053548210156109c957600160a060020a033316600090815260506020908152604080832085845290915281205411156109be57605280548390811061096857fe5b6000918252602080832090910154600160a060020a038816835260508252604080842086855290925291205460518054859081106109a257fe5b906000526020600020900154028115156109b857fe5b04840193505b816001019150610926565b505050919050565b60008080805b605e54821015610a3157506000818152605d6020818152604080842054600160a060020a0316808552605b8352908420600a81015494869052929091529490910193610a229061068d565b830192508160010191506109d7565b50509091565b600080600080610a45611d81565b600160a060020a0386166000908152605c60205260408120600681015460078201549297508796509450909250845b6006811015610af85760338160068110610a8a57fe5b6004020154828260068110610a9b57fe5b015402969096019560338160068110610ab057fe5b60040201600101548260000182600681101515610ac957fe5b0154029590950194818160068110610add57fe5b0154838260068110610aeb57fe5b6020020152600101610a74565b505091939590929450565b604b54604e54604d54604f54929391929091565b605f5433600160a060020a03908116911614610b3257600080fd5b605f54604e54600160a060020a039091169080156108fc0290604051600060405180830381858888f1935050505015610b6b576000604e555b565b605e5490565b6053545b90565b6000805b6005811015610bc057600160a060020a03831660568260058110610b9e57fe5b0154600160a060020a03161415610bb85760019150610bc5565b600101610b7e565b600091505b50919050565b600080600960ff851610610bde57600080fd5b600061ffff841611610bef57600080fd5b61010061ffff84161115610c0257600080fd5b600160a060020a0333166000908152605b60205260409020915061ffff83168260ff861660098110610c3057fe5b015401600060ff861660098110610c4357fe5b600502016004015410151515610c5857600080fd5b610c60611ba0565b610cb0600060ff861660098110610c7357fe5b6005020154600060ff871660098110610c8857fe5b6005020160020154846000018760ff16600981101515610ca457fe5b01548661ffff16611c6e565b90508082600a015410151515610cc557600080fd5b61ffff83168260ff861660098110610cd957fe5b0154018260ff861660098110610ceb57fe5b0155600060ff851660098110610cfd57fe5b6005020160040154826000018560ff16600981101515610d1957fe5b01541115610d5057600060ff851660098110610d3157fe5b6005020160040154826000018560ff16600981101515610d4d57fe5b01555b600a90910180549190910390555050565b60008060006053548411151515610d7757600080fd5b600160a060020a0385166000908152605060209081526040808320878452909152902054605354909350841015610e0e576052805485908110610db657fe5b6000918252602080832090910154600160a060020a03881683526050825260408084208885529092529120546051805487908110610df057fe5b90600052602060002090015402811515610e0657fe5b049150610e5d565b6052805485908110610e1c57fe5b6000918252602080832090910154600160a060020a0388168352605082526040808420888552909252912054604b546005900402811515610e5957fe5b0491505b50600160a060020a039093166000908152605b60205260409020600e01549093909150565b60008080808060068710610e9557600080fd5b60008611610ea257600080fd5b6103e8861115610eb157600080fd5b600160a060020a0333166000908152605c60209081526040808320605b9092529091209095509350848760068110610ee557fe5b01549250610f1f60338860068110610ef957fe5b6004020160020154603389600681101515610f1057fe5b60040201600201548589611c6e565b9150610f488660338960068110610f3257fe5b6004020160030154611cb990919063ffffffff16565b9050610f52611ba0565b600a84015482901015610f6457600080fd5b3481901015610f7257600080fd5b6000821115610f8757600a8401805483900390555b6000341115610f9957610f9934611b6d565b85858860068110610fa657fe5b018054909101905550505050505050565b600080600960ff851610610fca57600080fd5b60008311610fd757600080fd5b610100831115610fe657600080fd5b60008060ff861660098110610ff757fe5b600502016003015411151561100b57600080fd5b600160a060020a0333166000908152605b602052604090209150828260ff86166009811061103557fe5b015401600060ff86166009811061104857fe5b60050201600401541015151561105d57600080fd5b61108783600060ff87166009811061107157fe5b6005020160030154611cb990919063ffffffff16565b9050348190101561109757600080fd5b6110a034611b6d565b6110a8611ba0565b828260ff8616600981106110b857fe5b0154018260ff8616600981106110ca57fe5b0155600060ff8516600981106110dc57fe5b6005020160040154826000018560ff166009811015156110f857fe5b0154111561112f57600060ff85166009811061111057fe5b6005020160040154826000018560ff1660098110151561112c57fe5b01555b50505050565b600080600080600080600080600089600160a060020a031633600160a060020a03161415151561116457600080fd5b600160a060020a0333166000908152605b60205260409020600b0154151561118b57600080fd5b600160a060020a038a166000908152605b60205260409020600b015415156111b257600080fd5b600160a060020a033381166000908152605c6020526040808220928d16825281206007830154929b509950975087965042116111ed57600080fd5b600688015442116111fd57600080fd5b428960060154111561121457600019420160068a01555b611c20420160078a0155600096508694508493505b6003871015611299576033876006811061123f57fe5b600402015489886006811061125057fe5b01540294909401936033600388016006811061126857fe5b600402016001015488600001600360ff16890160068110151561128757fe5b01540284019350866001019650611229565b838511156113e2574261384001886006015410156112bc57613840420160068901555b6112c58a611cde565b505050600160a060020a038781166000908152605b60205260408082203390931682529020600a82015460039650600290045b600687101561131c57600088886006811061130f57fe5b01556001909601956112f8565b600096505b60038710156113c95760006033886006811061133957fe5b600402015411156113be5788876006811061135057fe5b01549550836033886006811061136257fe5b60040201548702111561138f576033876006811061137c57fe5b60040201548481151561138b57fe5b0495505b8589886006811061139c57fe5b018054919091039055603387600681106113b257fe5b60040201548602909303925b866001019650611321565b600a8084018054839003905582018054820190556114c4565b600096505b600387101561140b5760008988600681106113fe57fe5b01556001909601956113e7565b600396505b60068710156114c45760006033886006811061142857fe5b600402016001015411156114b95787876006811061144257fe5b01549550846033886006811061145457fe5b600402016001015487021115611487576033876006811061147157fe5b60040201600101548581151561148357fe5b0495505b8588886006811061149457fe5b018054919091039055603387600681106114aa57fe5b60040201600101548602850394505b866001019650611410565b50505050505050505050565b6114d8611da8565b600080805b600581101561152557605681600581106114f357fe5b0154600160a060020a031684826005811061150a57fe5b600160a060020a0390921660209290920201526001016114dd565b6055549250605454915050909192565b600080605354831115151561154957600080fd5b605280548490811061155757fe5b906000526020600020900154915060535483101561159057605180548490811061157d57fe5b9060005260206000209001549050611599565b50604b54600590045b915091565b60008060006115ab611dd0565b6115b3611deb565b600160a060020a0386166000908152605b60205260408120600a810154600b9091015490965094508080806115e78a61068d565b9650600090505b600960ff8216101561163e57600160a060020a038a166000908152605b6020526040902060ff82166009811061162057fe5b01548660ff83166009811061163157fe5b60200201526001016115ee565b5060005b600360ff821610156116aa57600160a060020a038a166000908152605b6020526040902060090160ff82166003811061167757fe5b602081049091015460ff601f9092166101000a9004811690869083166003811061169d57fe5b6020020152600101611642565b600160a060020a038a166000908152605b60205260409020600d015493506116d18a610b7a565b925087420387028901915050919395975091939597565b605e5460009082106116f957600080fd5b506000908152605d6020526040902054600160a060020a031690565b600160a060020a0333166000908152605b60205260408120600b8101549091908190151561174257600080fd5b605354600160a060020a0333166000908152605b60205260409020600e01541061176b57600080fd5b5050600e810154605354601e82820311156117865750601e81015b600e83018190555b60535482101561183b57600160a060020a033316600090815260506020908152604080832085845290915281205411156118305760528054839081106117d057fe5b6000918252602080832090910154600160a060020a0333168352605082526040808420868552909252912054605180548590811061180a57fe5b9060005260206000209001540281151561182057fe5b600d850180549290910490910190555b81600101915061178e565b505050565b600160a060020a0333166000908152605b60205260408120600b0154151561186757600080fd5b604f544290111561187757600080fd5b604b546000901161188757600080fd5b6000605260535481548110151561189a57fe5b600091825260209091200154116118b057600080fd5b620151804201604f55604b546005900460516053548154811015156118d157fe5b600091825260209091200155604b8054600581049003905560518054600181016118fb8382611e05565b50600091825260208220015560528054600181016119198382611e05565b506000918252602080832091909101829055605380546001019055600160a060020a0333168252605b905260408120604d8054600d90920180549092019091555550565b600160a060020a0333166000908152605b60205260409020600b01541561198357600080fd5b33600160a060020a03166000818152605b6020908152604080832042600b8201819055600a82018590556001808355600d8301869055605354600e90930192909255605c84528285206170808201600682015560070155605e80548552605d9093529220805473ffffffffffffffffffffffffffffffffffffffff19169093179092558154019055565b60008060006055543410151515611a2357600080fd5b600160a060020a0333166000908152605b60205260409020600b01541515611a4a57600080fd5b600092505b6005831015611a9057600160a060020a03331660568460058110611a6f57fe5b0154600160a060020a03161415611a8557600080fd5b826001019250611a4f565b60545460569060058110611aa057fe5b0154600160a060020a03166000818152605b60205260409020600d81018054612710346124bb810291909104909101909155604b8054614e20610255909302929092049182019055604e8054909101905560558054601481040190559092509050611b09611ba0565b611b1282611cde565b336056605454600581101515611b2457fe5b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560548054600101908190556005901061183b576000605455505050565b604c54604b80546064848402819004909101909155604d8054828504019055604e80549282036000190190930204019055565b600160a060020a0333166000908152605b60205260408120600b0154819081901515611bcb57600080fd5b600160a060020a0333166000908152605b60205260409020600b0154421015611bf357600080fd5b33600160a060020a0381166000908152605b60205260409020600b81015490945042039250611c219061068d565b42600b8501559050600081111561183b57600a92909201805491909202019055565b600082821115611c5257600080fd5b50900390565b81810182811015611c6857600080fd5b92915050565b6000808211611c7c57600080fd5b506000611c8d848402860183611cb9565b016002611ca483600019810163ffffffff611cb916565b8502811515611caf57fe5b0401949350505050565b818102821580611cd35750818382811515611cd057fe5b04145b1515611c6857600080fd5b600160a060020a0381166000908152605b60205260408120600b0154819081901515611d0957600080fd5b600160a060020a0384166000908152605b60205260409020600b0154421015611d3157600080fd5b600160a060020a0384166000908152605b60205260409020600b81015490935042039150611d5e8461068d565b42600b8501559050600081111561112f57600a9290920180549190920201905550565b60c06040519081016040526006815b6000815260200190600190039081611d905790505090565b60a06040519081016040526005815b600081526000199091019060200181611db75790505090565b61012060405190810160405260008152600860208201611d90565b606060405190810160405260008152600260208201611d90565b81548183558181151161183b5760008381526020902061183b918101908301610b7791905b80821115611e3e5760008155600101611e2a565b50905600a165627a7a72305820f45f9d4e7710fd6422915178a1e8ee9ae24ecf862710f5bb78d4b073302441540029

   Swarm Source:
bzzr://f45f9d4e7710fd6422915178a1e8ee9ae24ecf862710f5bb78d4b07330244154

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.