Sponsored Link:   Revain - How to find moon tokens to invest? See what crypto experts are saying. Read reviews!
Contract Overview
Balance: 22.377756001355259873 Ether
Ether Value: $13,417.03 (@ $599.57/ETH)
Transactions: 3855 txns
Token Contract: CraigGrantNow (CGNW)
 Latest 25 txns from a total Of 3855 transactions
View All

TxHash Age From To Value [TxFee]
0x960904d630641253cfdba62500bd896ef4dc85c70dea9e8618759854f6a962539 mins ago0x74158549eb47b1f581e1323d6e6cd5f03fbb1b16  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00043517
0x9277eb07126edaaca4dc19fbeb94541270d382e975d9baef707eccead1f4da8f36 mins ago0x3cafbe968eef12f4c0d75003a3ab1fe8669f3a66  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000391653
0x36d599e345eb51375dfc1079919a03681b5190242257581479a655c4cdca7aba46 mins ago0xa8d41bd33dd28592d3f9a133e9b3e7b0ec6f0fd5  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00043517
0x73676d36b21bf6ca1d981db9222affafe50c16cc1dfbf35360ef2bb9b85d380e1 hr 25 mins ago0x3cafbe968eef12f4c0d75003a3ab1fe8669f3a66  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000384392
0x0f8ede31765824593793fd984c7251c2f8d85bf17061d8ab3f1a80e0591368361 hr 48 mins ago0xe8cd8047c4eee2d9d83d8619525084fefca5de0d  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000251339
0xb9c448060adb9ca00fe430668464854bf531a344118bd57f93dbf4e46b5f32b11 hr 49 mins ago0xe8cd8047c4eee2d9d83d8619525084fefca5de0d  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000522204
0x2e8ae816b725ddc89088c5525c4d76df91b69e0e9af8a901393c9b1f65b698133 hrs 27 mins ago0x38e00b796e27e5cbb6a9eba8b5688801af4d20a9  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000304619
0xf5b48e5950d5483e0b0da90c9b5553d7c95716246b2e4baa110a616b686996235 hrs 1 min ago0xbdadc63328ccc91e457f3a0325bfb444b4e0e744  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.0002219367
0x3225471999360217f0f04f17822ec22435cbb4dd842b2e896ba336e1aa2196da5 hrs 3 mins ago0xbdadc63328ccc91e457f3a0325bfb444b4e0e744  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.0002447235
0x679b8e8cda8b59c0d2ff34b11d652585cdfbba8c46b57522be93d45c62e294b15 hrs 26 mins ago0xbc6232d9e8e2edc6c6a90b58e640e97a079a1043  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0.0675 Ether0.00045456
0xc01d234434ae47ad58c1a6651d89d3274403242d9aef072b4f81f704b62f2cfd7 hrs 26 mins ago0xd355a7c3a703855e4b93d311e458d2b28c081683  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000733616
0xe4796b94c1fb01c3c3e6ace22e716156cd2322aeca2fd212eeab807af7edd7bc7 hrs 29 mins ago0xd355a7c3a703855e4b93d311e458d2b28c081683  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000391653
0x7e8561aa7b51544b76b3d6aae6bf1a325a4bc1d5c740112f9b36e20056038c288 hrs 6 mins ago0x6b9e9e10abb661b56b0602817c3f4bcd7f4d32c2  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000304619
0xa707f53ffe71b0017347e4ccddb7212fd1d50647174927e35af74be28fb40ed110 hrs 46 mins ago0xa36f907be1fbf75e2495cc87f8f4d201c1b634af  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0.08 Ether0.000689416
0x2de00a63903ec06378f4d82cecdc663e2fef377f2f0198319a0541def4fde9a411 hrs 8 mins ago0xbc6232d9e8e2edc6c6a90b58e640e97a079a1043  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0.04037 Ether0.00060608
0x095d1a1943edb9b868c7a999bbe4e721af49460b0ebd927287d4b22420cf8cce12 hrs 4 mins ago0x8801b7c648278cd6df7b4a509aceb0c8d82f60c4  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000261102
0x9d967084e2cf8375999e1d4be3f3692fc60a6075da853e80c97c23c9d853a59412 hrs 23 mins ago0xc5f10e4dbfc298ceea161e23fba84cb5490a30ec  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000217585
0x7f96a381b20ecd883f8bb1f3df9cd81995496c6a14f35fd6f52b226d6ee3b31e12 hrs 29 mins ago0xc5f10e4dbfc298ceea161e23fba84cb5490a30ec  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000239925
0x3d8ae1122808c458a12b131aa3dc3412663218f4e9804f0f229819d8d2e8bcae12 hrs 33 mins ago0xc5f10e4dbfc298ceea161e23fba84cb5490a30ec  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000191428
0xa859c6d7facd95279ae29b89edd9f01ec642c96642afc6f91c541e47cf976bae12 hrs 49 mins ago0xa36f907be1fbf75e2495cc87f8f4d201c1b634af  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.0005898467
0x13cac6980035316dd8411187b5bc99c4aa0635f41b95fd7c7c63754b874f7caa13 hrs 21 mins ago0xa23cd266ab19fff6428604f200d6b4250e30ba06  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00043517
0x5964eb0359f8170f8bfc034fbe15a0343777b5cee069c063d0a68eac0bfe35b713 hrs 22 mins ago0xa23cd266ab19fff6428604f200d6b4250e30ba06  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00047985
0x56abd894c43703e0d168650c0203448499a84ff0540802122d436b725f095d2313 hrs 27 mins ago0xa23cd266ab19fff6428604f200d6b4250e30ba06  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.000348136
0x626ba24f6645a5905fc3b4c7808f28737c606f13ca8606efe95267b82faa3fe913 hrs 30 mins ago0xe1ad43c5bf2696f9315d3931651a920e07f31556  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00022849
0x97af4a6fe6442a2ac7433dd14a5b6453ca0ff00689c5a75ef7cf686ed7273af413 hrs 30 mins ago0xe1ad43c5bf2696f9315d3931651a920e07f31556  IN   0xbc1869a652f68260428b382fd06c96196d92d02d0 Ether0.00043517
[ 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
0x960904d630641253cfdba62500bd896ef4dc85c70dea9e8618759854f6a9625356798389 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x74158549eb47b1f581e1323d6e6cd5f03fbb1b160.131946587831524851 Ether
0x9277eb07126edaaca4dc19fbeb94541270d382e975d9baef707eccead1f4da8f567974436 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x3cafbe968eef12f4c0d75003a3ab1fe8669f3a660.466578767655855346 Ether
0x36d599e345eb51375dfc1079919a03681b5190242257581479a655c4cdca7aba567970546 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa8d41bd33dd28592d3f9a133e9b3e7b0ec6f0fd50.012955661923822507 Ether
0xb9c448060adb9ca00fe430668464854bf531a344118bd57f93dbf4e46b5f32b156794611 hr 49 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xe8cd8047c4eee2d9d83d8619525084fefca5de0d0.045446394427756741 Ether
0x2e8ae816b725ddc89088c5525c4d76df91b69e0e9af8a901393c9b1f65b6981356790643 hrs 27 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x38e00b796e27e5cbb6a9eba8b5688801af4d20a90.002349755999884015 Ether
0xf5b48e5950d5483e0b0da90c9b5553d7c95716246b2e4baa110a616b6869962356786725 hrs 1 min ago0xbc1869a652f68260428b382fd06c96196d92d02d0xbdadc63328ccc91e457f3a0325bfb444b4e0e7440.053312652830543274 Ether
0xe4796b94c1fb01c3c3e6ace22e716156cd2322aeca2fd212eeab807af7edd7bc56780877 hrs 29 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xd355a7c3a703855e4b93d311e458d2b28c0816830.000705036065626543 Ether
0x7e8561aa7b51544b76b3d6aae6bf1a325a4bc1d5c740112f9b36e20056038c2856779318 hrs 6 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x6b9e9e10abb661b56b0602817c3f4bcd7f4d32c20.004671942154397395 Ether
0x095d1a1943edb9b868c7a999bbe4e721af49460b0ebd927287d4b22420cf8cce567701512 hrs 4 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x8801b7c648278cd6df7b4a509aceb0c8d82f60c40.009094779393098535 Ether
0x9d967084e2cf8375999e1d4be3f3692fc60a6075da853e80c97c23c9d853a594567695412 hrs 23 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xc5f10e4dbfc298ceea161e23fba84cb5490a30ec0.002012799316011912 Ether
0x13cac6980035316dd8411187b5bc99c4aa0635f41b95fd7c7c63754b874f7caa567673913 hrs 21 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa23cd266ab19fff6428604f200d6b4250e30ba060.104082650590395831 Ether
0x56abd894c43703e0d168650c0203448499a84ff0540802122d436b725f095d23567671013 hrs 27 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa23cd266ab19fff6428604f200d6b4250e30ba060.003567461473884394 Ether
0x97af4a6fe6442a2ac7433dd14a5b6453ca0ff00689c5a75ef7cf686ed7273af4567670413 hrs 30 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xe1ad43c5bf2696f9315d3931651a920e07f315560.011047766331745414 Ether
0x3a41c4abfc1b87e0abd75f183ae52b8c7396fad5ed9b1182770670d284e53cb8567662213 hrs 49 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x32f90bf5f1cbcd4d7700b309d9a717a2ec73ca790.023247304009266091 Ether
0x23e374eca4c2a700d118b3daf030e1bb9bce48e6a118eda88d2aa17244830e88567656714 hrs 2 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x4e815d1e9a226347d8dc87f2d3079358a39159e60.002310577533362282 Ether
0x319ff3f4b8b766a406d25f2626c7f63961b2015969f8ffa9d1585ba7f103e9e9567647414 hrs 26 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa361f877727a2c0f94660f047f48c927eec4cfdf0.023975507807505162 Ether
0x56341be100b3372ed6fa22d4d511d37928495c8d2c051f2d2df6a12faf0e1eb4567644514 hrs 33 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa8d41bd33dd28592d3f9a133e9b3e7b0ec6f0fd50.03826686176960188 Ether
0xf4d033f598cf1c5ec929743275f4e39a6c7368d7948c21311bebda572ade5cd4567613015 hrs 51 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x9a264343b224b66ba4df78f2b3751159c61d96150.007521538674878014 Ether
0x10d2f177f84676af12072526bf074b0e30ca0b8ae9115e3b66b72ebad39fd51f567581917 hrs 14 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa36f907be1fbf75e2495cc87f8f4d201c1b634af0.007026825885025171 Ether
0xb1b47a746b586ce9b0d6175ff6e8ac5ea205a80c105dcc4c923fe92f20db5a68567576717 hrs 27 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xfe40c0f8c6e9072e00118f0a4576408c058a570a0.315007304111175907 Ether
0x2d117c427a5ad00a3a00c2a3814ecb95d619c59b04247c52494453e0eab68fd7567575517 hrs 30 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0xa36f907be1fbf75e2495cc87f8f4d201c1b634af0.042838756422891409 Ether
0xb15069b9d06dd7a70d84f48f716b73a8b49390c1981b4f6385bb94006c416d1b567564317 hrs 55 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x9349ea9cea7bb91534d0512fb5a7be2f134856120.003640506326020226 Ether
0xe8c6b4815ce545e2600c5dd13c8476dea5c8b70c4a15c12fad89c5dd900ee65e567552018 hrs 28 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x51e5769338084ee7b91bc91be4b39748635972be0.007316407761686272 Ether
0x4eca4fd1a2adf62c3f9439af678c1438cf3f811054b52e80c06cf2ef5b3ea684567538019 hrs 6 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x53b485cf5ac14fc0b07b9727340c8e4697b425240.016616109634585397 Ether
0x8d84e80b2dd666db7bd09443d817c1a556ab60a6c14ffac330191390ffd880e3567519719 hrs 51 mins ago0xbc1869a652f68260428b382fd06c96196d92d02d0x0e4705d75896b1aec52e885d93cdf8832338e3220.02323864022297246 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: Hourglass
Compiler Version: v0.4.23+commit.124ca40d
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.20;

/*
* Team JUST presents..
*
* Craig Grant Now (CGNW)
*
* -> What?
* The original autonomous pyramid, improved:
* [x] More stable than ever, having withstood severe testnet abuse and attack attempts from our community!.
* [x] Audited, tested, and approved by known community security specialists such as tocsick and Arc.
* [X] New functionality; you can now perform partial sell orders. If you succumb to weak hands, you don't have to dump all of your bags!
* [x] New functionality; you can now transfer tokens between wallets. Trading is now possible from within the contract!
* [x] New Feature: PoS Masternodes! The first implementation of Ethereum Staking in the world! Vitalik is mad.
* [x] Masternodes: Holding 100 PoWH3D Tokens allow you to generate a Masternode link, Masternode links are used as unique entry points to the contract!
* [x] Masternodes: All players who enter the contract through your Masternode have 30% of their 10% dividends fee rerouted from the master-node, to the node-master!
*
* -> What about the last projects?
* Every programming member of the old dev team has been fired and/or killed by 232.
* The new dev team consists of seasoned, professional developers and has been audited by veteran solidity experts.
* Additionally, two independent testnet iterations have been used by hundreds of people; not a single point of failure was found.
* 
* -> Who worked on this project?
* - PonziBot (math/memes/main site/master)
* - Mantso (lead solidity dev/lead web3 dev)
* - swagg (concept design/feedback/management)
* - Anonymous#1 (main site/web3/test cases)
* - Anonymous#2 (math formulae/whitepaper)
*
* -> Who has audited & approved the projected:
* - Arc
* - tocisck
* - sumpunk
*/

contract Hourglass {
    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    
    // only people with profits
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }
    
    // administrators can:
    // -> change the name of the contract
    // -> change the name of the token
    // -> change the PoS difficulty (How many tokens it costs to hold a masternode, in case it gets crazy high later)
    // they CANNOT:
    // -> take funds
    // -> disable withdrawals
    // -> kill the contract
    // -> change the price of tokens
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]);
        _;
    }
    
    
    // ensures that the first tokens in the contract will be equally distributed
    // meaning, no divine dump will be ever possible
    // result: healthy longevity.
    modifier antiEarlyWhale(uint256 _amountOfEthereum){
        address _customerAddress = msg.sender;
        
        // are we still in the vulnerable phase?
        // if so, enact anti early whale protocol 
        if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
            require(
                // is the customer in the ambassador list?
                ambassadors_[_customerAddress] == true &&
                
                // does the customer purchase exceed the max ambassador quota?
                (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_
                
            );
            
            // updated the accumulated quota    
            ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);
        
            // execute
            _;
        } else {
            // in case the ether count drops low, the ambassador phase won't reinitiate
            onlyAmbassadors = false;
            _;    
        }
        
    }
    
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );
    
    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
    
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "CraigGrantNow";
    string public symbol = "CGNW";
    uint8 constant public decimals = 18;
    uint8 constant internal dividendFee_ = 4;
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2**64;
    
    // proof of stake (defaults at 333 tokens)
    uint256 public stakingRequirement = 333e18;
    
    // ambassador program
    mapping(address => bool) internal ambassadors_;
    uint256 constant internal ambassadorMaxPurchase_ = 3 ether;
    uint256 constant internal ambassadorQuota_ = 7 ether;
    
    
    
   /*================================
    =            DATASETS            =
    ================================*/
    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal ambassadorAccumulatedQuota_;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;
    
    // administrator list (see above on what they can do)
    mapping(bytes32 => bool) public administrators;
    
    // when this is set to true, only ambassadors can purchase tokens (this prevents a whale premine, it ensures a fairly distributed upper pyramid)
    bool public onlyAmbassadors = true;
    


    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    /*
    * -- APPLICATION ENTRY POINTS --  
    */
    function Hourglass()
        public
    {
        
        // add the ambassadors here.
        // Craig Grant
        ambassadors_[0x0e4705d75896B1aEC52E885D93Cdf8832338E322] = true;
        
        // Luis Miguel Rivera
        ambassadors_[0x891cfd05b7bab80eccfd6e655e077b6033236b63] = true;
        
        // Coach Rick
        ambassadors_[0xa36f907be1fbf75e2495cc87f8f4d201c1b634af] = true;
        
        // Crypto Gangz
        ambassadors_[0xbfc699a6f932a440a7745125815427103de1c1f9] = true;
        
        // Crypto Clover
        ambassadors_[0xb1ac3b02260b30b3f02fb32c675e1bd8f1e7d3b9] = true;
        
        // Captain Crypto
        ambassadors_[0x4da6fc68499fb3753e77dd6871f2a0e4dc02febe] = true;
        
        // BitcoinCryptoPro
        ambassadors_[0xf35878127762a588cdfef8bbb6765f1cf8671a62] = true;
    }
    
     
    /**
     * Converts all incoming ethereum to tokens for the caller, and passes down the referral addy (if any)
     */
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value, _referredBy);
    }
    
    /**
     * Fallback function to handle ethereum that was send straight to the contract
     * Unfortunately we cannot use a referral address this way.
     */
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
    
    /**
     * Converts all of caller's dividends to tokens.
     */
    function reinvest()
        onlyStronghands()
        public
    {
        // fetch dividends
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
        
        // pay out the dividends virtually
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        
        // fire event
        onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    /**
     * Alias of sell() and withdraw().
     */
    function exit()
        public
    {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        
        // lambo delivery service
        withdraw();
    }

    /**
     * Withdraws all of the callers earnings.
     */
    function withdraw()
        onlyStronghands()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code
        
        // update dividend tracker
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // lambo delivery service
        _customerAddress.transfer(_dividends);
        
        // fire event
        onWithdraw(_customerAddress, _dividends);
    }
    
    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        // russian hackers BTFO
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;       
        
        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        // fire event
        onTokenSell(_customerAddress, _tokens, _taxedEthereum);
    }
    
    
    /**
     * Transfer tokens from the caller to a new holder.
     * Remember, there's a 10% fee here as well.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyBagholders()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        
        // make sure we have the requested tokens
        // also disables transfers until ambassador phase is over
        // ( we dont want whale premines )
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) withdraw();
        
        // liquify 10% of the tokens that are transfered
        // these are dispersed to shareholders
        uint256 _tokenFee = SafeMath.div(_amountOfTokens, dividendFee_);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);
  
        // burn the fee tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        
        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        
        // disperse dividends among holders
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        
        // fire event
        Transfer(_customerAddress, _toAddress, _taxedTokens);
        
        // ERC20
        return true;
       
    }
    
    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/
    /**
     * In case the amassador quota is not met, the administrator can manually disable the ambassador phase.
     */
    function disableInitialStage()
        onlyAdministrator()
        public
    {
        onlyAmbassadors = false;
    }
    
    /**
     * In case one of us dies, we need to replace ourselves.
     */
    function setAdministrator(bytes32 _identifier, bool _status)
        onlyAdministrator()
        public
    {
        administrators[_identifier] = _status;
    }
    
    /**
     * Precautionary measures in case we need to adjust the masternode rate.
     */
    function setStakingRequirement(uint256 _amountOfTokens)
        onlyAdministrator()
        public
    {
        stakingRequirement = _amountOfTokens;
    }
    
    /**
     * If we want to rebrand, we can.
     */
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
    
    /**
     * If we want to rebrand, we can.
     */
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    
    /*----------  HELPERS AND CALCULATORS  ----------*/
    /**
     * Method to view the current Ethereum stored in the contract
     * Example: totalEthereumBalance()
     */
    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return this.balance;
    }
    
    /**
     * Retrieve the total token supply.
     */
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return tokenSupply_;
    }
    
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    /**
     * Retrieve the dividends owned by the caller.
     * If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
     * The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
     * But in the internal calculations, we want them separate. 
     */ 
    function myDividends(bool _includeReferralBonus) 
        public 
        view 
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }
    
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    /**
     * Retrieve the dividend balance of any single address.
     */
    function dividendsOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
    /**
     * Return the buy price of 1 individual token.
     */
    function sellPrice() 
        public 
        view 
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice() 
        public 
        view 
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Function for the frontend to dynamically retrieve the price scaling of buy orders.
     */
    function calculateTokensReceived(uint256 _ethereumToSpend) 
        public 
        view 
        returns(uint256)
    {
        uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        
        return _amountOfTokens;
    }
    
    /**
     * Function for the frontend to dynamically retrieve the price scaling of sell orders.
     */
    function calculateEthereumReceived(uint256 _tokensToSell) 
        public 
        view 
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
    
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        antiEarlyWhale(_incomingEthereum)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;
 
        // no point in continuing execution if OP is a poorfag russian hacker
        // prevents overflow in the case that the pyramid somehow magically starts being used by everyone in the world
        // (or hackers)
        // and yes we know that the safemath function automatically rules out the "greater then" equasion.
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        // is the user referred by a masternode?
        if(
            // is this a referred purchase?
            _referredBy != 0x0000000000000000000000000000000000000000 &&

            // no cheating!
            _referredBy != _customerAddress &&
            
            // does the referrer have at least X whole tokens?
            // i.e is the referrer a godly chad masternode
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ){
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends cake
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }
        
        // we can't give people infinite ethereum
        if(tokenSupply_ > 0){
            
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
 
            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
            
            // calculate the amount of tokens the customer receives over his purchase 
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }
        
        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        
        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        //really i know you think you do but you don't
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        
        // fire event
        onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy);
        
        return _amountOfTokens;
    }

    /**
     * Calculate Token price based on an amount of incoming ethereum
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function ethereumToTokens_(uint256 _ethereum)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived = 
         (
            (
                // underflow attempts BTFO
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +
                            (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;
  
        return _tokensReceived;
    }
    
    /**
     * Calculate token sell value.
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
     function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns(uint256)
    {

        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
                        )-tokenPriceIncremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _etherReceived;
    }
    
    
    //This is where all your gas goes, sorry
    //Not sorry, you probably only paid 1 gwei
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526040805190810160405280600d81526020017f43726169674772616e744e6f7700000000000000000000000000000000000000815250600090805190602001906200005192919062000351565b506040805190810160405280600481526020017f43474e5700000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000351565b5068120d4da7b0bd14000060025560006008556001600b60006101000a81548160ff021916908315150217905550348015620000da57600080fd5b50600160036000730e4705d75896b1aec52e885d93cdf8832338e32273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073891cfd05b7bab80eccfd6e655e077b6033236b6373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073a36f907be1fbf75e2495cc87f8f4d201c1b634af73ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073bfc699a6f932a440a7745125815427103de1c1f973ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073b1ac3b02260b30b3f02fb32c675e1bd8f1e7d3b973ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000734da6fc68499fb3753e77dd6871f2a0e4dc02febe73ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073f35878127762a588cdfef8bbb6765f1cf8671a6273ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000400565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039457805160ff1916838001178555620003c5565b82800160010185558215620003c5579182015b82811115620003c4578251825591602001919060010190620003a7565b5b509050620003d49190620003d8565b5090565b620003fd91905b80821115620003f9576000816000905550600101620003df565b5090565b90565b61244480620004106000396000f30060806040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101c357806310d0ffdd1461025357806318160ddd1461029457806322609373146102bf57806327defa1f14610300578063313ce5671461032f578063392efb52146103605780633ccfd60b146103a95780634b750334146103c057806356d399e8146103eb578063688abbf7146104165780636b2f46321461045957806370a08231146104845780638328b610146104db5780638620410b1461050857806389135ae914610533578063949e8acd1461057057806395d89b411461059b578063a8e04f341461062b578063a9059cbb14610642578063b84c8246146106a7578063c47f002714610710578063e4849b3214610779578063e9fad8ee146107a6578063f088d547146107bd578063fdb5a03e14610807575b61016934600061081e565b50005b34801561017857600080fd5b506101ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111d565b6040518082815260200191505060405180910390f35b3480156101cf57600080fd5b506101d86111bf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102185780820151818401526020810190506101fd565b50505050905090810190601f1680156102455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025f57600080fd5b5061027e6004803603810190808035906020019092919050505061125d565b6040518082815260200191505060405180910390f35b3480156102a057600080fd5b506102a9611295565b6040518082815260200191505060405180910390f35b3480156102cb57600080fd5b506102ea6004803603810190808035906020019092919050505061129f565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b506103156112e8565b604051808215151515815260200191505060405180910390f35b34801561033b57600080fd5b506103446112fb565b604051808260ff1660ff16815260200191505060405180910390f35b34801561036c57600080fd5b5061038f6004803603810190808035600019169060200190929190505050611300565b604051808215151515815260200191505060405180910390f35b3480156103b557600080fd5b506103be611320565b005b3480156103cc57600080fd5b506103d56114c4565b6040518082815260200191505060405180910390f35b3480156103f757600080fd5b50610400611522565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b50610443600480360381019080803515159060200190929190505050611528565b6040518082815260200191505060405180910390f35b34801561046557600080fd5b5061046e611594565b6040518082815260200191505060405180910390f35b34801561049057600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b3565b6040518082815260200191505060405180910390f35b3480156104e757600080fd5b50610506600480360381019080803590602001909291905050506115fc565b005b34801561051457600080fd5b5061051d611690565b6040518082815260200191505060405180910390f35b34801561053f57600080fd5b5061056e60048036038101908080356000191690602001909291908035151590602001909291905050506116ee565b005b34801561057c57600080fd5b506105856117af565b6040518082815260200191505060405180910390f35b3480156105a757600080fd5b506105b06117c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f05780820151818401526020810190506105d5565b50505050905090810190601f16801561061d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561063757600080fd5b50610640611862565b005b34801561064e57600080fd5b5061068d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611909565b604051808215151515815260200191505060405180910390f35b3480156106b357600080fd5b5061070e600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c3b565b005b34801561071c57600080fd5b50610777600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611cdf565b005b34801561078557600080fd5b506107a460048036038101908080359060200190929190505050611d83565b005b3480156107b257600080fd5b506107bb611fb1565b005b6107f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612018565b6040518082815260200191505060405180910390f35b34801561081357600080fd5b5061081c61202a565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff16801561085f5750676124fee993bc00008261085b611594565b0311155b15610d4d5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561090d57506729a2241af62c000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561091857600080fd5b610961600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361219e565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109b58d600460ff166121bc565b98506109c28960036121bc565b97506109ce89896121d7565b96506109da8d8a6121d7565b95506109e5866121f0565b94506801000000000000000087029350600085118015610a115750600854610a0f8660085461219e565b115b1515610a1c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610a8557508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610ad25750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610b6857610b20600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961219e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b83565b610b72878961219e565b965068010000000000000000870293505b60006008541115610bee57610b9a6008548661219e565b600881905550600854680100000000000000008802811515610bb857fe5b04600960008282540192505081905550600854680100000000000000008802811515610be057fe5b048502840384039350610bf6565b846008819055505b610c3f600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661219e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061110d565b6000600b60006101000a81548160ff021916908315150217905550339950610d798d600460ff166121bc565b9850610d868960036121bc565b9750610d9289896121d7565b9650610d9e8d8a6121d7565b9550610da9866121f0565b94506801000000000000000087029350600085118015610dd55750600854610dd38660085461219e565b115b1515610de057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610e4957508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610e965750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610f2c57610ee4600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961219e565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f47565b610f36878961219e565b965068010000000000000000870293505b60006008541115610fb257610f5e6008548661219e565b600881905550600854680100000000000000008802811515610f7c57fe5b04600960008282540192505081905550600854680100000000000000008802811515610fa457fe5b048502840384039350610fba565b846008819055505b611003600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661219e565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460095402038115156111b757fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112555780601f1061122a57610100808354040283529160200191611255565b820191906000526020600020905b81548152906001019060200180831161123857829003601f168201915b505050505081565b60008060008061127185600460ff166121bc565b925061127d85846121d7565b9150611288826121f0565b9050809350505050919050565b6000600854905090565b60008060008060085485111515156112b657600080fd5b6112bf8561227d565b92506112cf83600460ff166121bc565b91506112db83836121d7565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600061132f6001611528565b11151561133b57600080fd5b3391506113486000611528565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611471573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080600060085414156114e9576402540be40064174876e80003935061151c565b6114fa670de0b6b3a764000061227d565b925061150a83600460ff166121bc565b915061151683836121d7565b90508093505b50505090565b60025481565b600080339050826115415761153c8161111d565b61158c565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a8261111d565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561168557600080fd5b816002819055505050565b600080600080600060085414156116b5576402540be40064174876e8000193506116e8565b6116c6670de0b6b3a764000061227d565b92506116d683600460ff166121bc565b91506116e2838361219e565b90508093505b50505090565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561177757600080fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117be816115b3565b91505090565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b505050505081565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156118eb57600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b60008060008060008061191a6117af565b11151561192657600080fd5b339350600b60009054906101000a900460ff161580156119855750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b151561199057600080fd5b600061199c6001611528565b11156119ab576119aa611320565b5b6119b986600460ff166121bc565b92506119c586846121d7565b91506119d08361227d565b90506119de600854846121d7565b600881905550611a2d600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876121d7565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab9600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361219e565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611bc2600954600854680100000000000000008402811515611bbc57fe5b0461219e565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611cc457600080fd5b8160019080519060200190611cda929190612373565b505050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611d6857600080fd5b8160009080519060200190611d7e929190612373565b505050565b6000806000806000806000611d966117af565b111515611da257600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611df357600080fd5b869450611dff8561227d565b9350611e0f84600460ff166121bc565b9250611e1b84846121d7565b9150611e29600854866121d7565b600881905550611e78600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866121d7565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611f5257611f4b600954600854680100000000000000008602811515611f4557fe5b0461219e565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561200c5761200b81611d83565b5b612014611320565b5050565b6000612024348361081e565b50919050565b60008060008061203a6001611528565b11151561204657600080fd5b6120506000611528565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214183600061081e565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b60008082840190508381101515156121b257fe5b8091505092915050565b60008082848115156121ca57fe5b0490508091505092915050565b60008282111515156121e557fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be400612266612260600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a010101612328565b856121d7565b81151561226f57fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a7640000612311670de0b6b3a764000085036402540be400670de0b6b3a7640000868115156122cf57fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156122fa57fe5b046402540be4000281151561230b57fe5b046121d7565b81151561231a57fe5b049050809350505050919050565b60008060026001840181151561233a57fe5b0490508291505b8181101561236d57809150600281828581151561235a57fe5b040181151561236557fe5b049050612341565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123b457805160ff19168380011785556123e2565b828001600101855582156123e2579182015b828111156123e15782518255916020019190600101906123c6565b5b5090506123ef91906123f3565b5090565b61241591905b808211156124115760008160009055506001016123f9565b5090565b905600a165627a7a723058204cd67680af7e6618491e0f7231fac8e313c8710831167bea74a11391936cc8d10029

   Swarm Source:
bzzr://4cd67680af7e6618491e0f7231fac8e313c8710831167bea74a11391936cc8d1

 

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.