Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview
Balance: 0.000577773239050253 Ether
Ether Value: $0.09 (@ $153.09/ETH)
Transactions: 643 txns
Token Tracker: God (God)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x802df0c73eb17e540b39f1ae73c13dcea5a1caaaat txn 0x123432948c9aced45327a3a9cd8c21727580405c8979b570949c2e0925deca44
 Latest 25 transactions from a total of 643 transactions

TxHash Age From To Value [TxFee]
0x08394f39335e75fdaa79dfeb1477f3a416c4183323fe429a775443e29067090183 days 10 hrs ago0x3abc8325a9ff36d78844ea8281b8c190c66c3d44  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000702
0x47ac8e08f1547ef36a95b32873d2ed6f34258ef5c1456b56d566d1edca09bab784 days 1 hr ago0x3abc8325a9ff36d78844ea8281b8c190c66c3d44  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000324006
0x5cf247adf47c4bbf16c4c9f6993cce4782378e65f3f42a55cd0f9e08a32447a384 days 17 hrs ago0xc33570f175da4ac02fc111bcc6bccd60dbac42ca  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.00032439
0x7bed3cecad8877ef9d45f49aafcd544f5ef01416c7257d9bab2ec4cccc104cbc84 days 17 hrs ago0xc33570f175da4ac02fc111bcc6bccd60dbac42ca  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000124495
0xa95f9addc269d62df05a8c9d102613fd82bf427cc93fa07e58e441f0cdf0623385 days 7 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0000915621
0x8ff2820b912c64507b82e470a27ec1fb10f1bbefc7588192344d30376c267ddb85 days 7 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0001132677
0x19e73155dd053c7978fb2a0c61e0b2ad11e6e3ac6b904b3bcd6f388481df6aef85 days 7 hrs ago0xb327d112a560f832765a12c72451de40af3c2be2  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000101604
0x0847590f96dad61a5db2a37060259461b80ebd13ea90e14c170614b4bba1676286 days 8 hrs ago0x0ff19e30ae8764758bf937f5f1cad428caecf6c7  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0000471
0x9c2f326f99c102d770c5cadb07e5dc1416caf661a6cf12391efa44d64c3537d587 days 39 mins ago0x0ff19e30ae8764758bf937f5f1cad428caecf6c7  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0000471
0x49b4bff48ada14f6dd4a6614a619c66c36556636285790de1e0cdea3f9c4b5dd88 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000261606
0x1e35736cb5829b5cfefbf6411c666f4c4480bd12df6635ac7bd9add55234b17788 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0001780072
0x8423a895196f9f4e1ca5b35819081d2e4c93d364e4375f266a518f6a820a24ca88 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000323622
0x63da5011219eb060a9258433ba0ceef52c78b5e32745c08840b59ccac2923a9d88 days 11 hrs ago0xb327d112a560f832765a12c72451de40af3c2be2  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000304812
0xb7e99561198e1f0b628f73a160c1cfaa02afd194b9933992110be388ac5b977688 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000261606
0xe0a1a71bdda28e1aa5c6f2e0f3584fb0d055a429a24eb2f6ea6fd7ab1faa1fd588 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000324006
0x0e946890324e761c82fab3e3ddaa2103b9ef723d5c4bc438fa24c72ed3d38d8688 days 11 hrs ago0xb327d112a560f832765a12c72451de40af3c2be2  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000305196
0xb03027c24e37f19476a047cfb532c2a63144350098d46331ae0eb6cc54f7957f88 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000261606
0x40e8cf6ad62b0fea4b2d534980d7e47ae6178cf97a9622e92e2df5fdf924a13988 days 11 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000323238
0x70f2542c100e92c0b82774c596520255d11543a41b75db1fdbafb3272227ee6288 days 11 hrs ago0xb327d112a560f832765a12c72451de40af3c2be2  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000485196
0x62b24b995c5c65966b4556f32118220558507b2ff85f06ec58f019a084ce4e2b88 days 12 hrs ago0x802df0c73eb17e540b39f1ae73c13dcea5a1caaa  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0.2 Ether0.00007082
0xd4f00d3c0d5aea23748f6b36188e693696149e66918e2739e9611c6d8a093d0888 days 18 hrs ago0x80762e0955b2929ca879696d1e2011a9adb774c7  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000140916
0x00fe56e0cc1e8b6c864cf37ab452c12f6c6685c0ff2299df3e37ac4d8f1793b288 days 23 hrs ago0xa56f29c95540f392c83bd8eccee961abf3880eb1  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0.0001 Ether0.000204528
0x6c2a3205dd0d8addee91901111fc493de39a1972cffaee1937b60f30e57a431c88 days 23 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.0001172641
0x0db5446c457e0ff1a4b84874d06d65baba9f3cb212ce042a6fc6b2fcd16f824488 days 23 hrs ago0x94b66369eec9423011739570f54acabbec4343dd  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000233622
0xc4e6d1a6f27d6c8ad9fd24bd8b0f29084dd4c8234fbc9825c47e4b771c1ef05388 days 23 hrs ago0xb327d112a560f832765a12c72451de40af3c2be2  IN   0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0 Ether0.000323208
[ 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
0xa95f9addc269d62df05a8c9d102613fd82bf427cc93fa07e58e441f0cdf06233621529785 days 7 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.002704106867193 Ether
0x49b4bff48ada14f6dd4a6614a619c66c36556636285790de1e0cdea3f9c4b5dd619661988 days 11 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.030045677357699955 Ether
0xb7e99561198e1f0b628f73a160c1cfaa02afd194b9933992110be388ac5b9776619659188 days 11 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.150228404788498875 Ether
0xb03027c24e37f19476a047cfb532c2a63144350098d46331ae0eb6cc54f7957f619658288 days 11 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.019229231888927982 Ether
0x6c2a3205dd0d8addee91901111fc493de39a1972cffaee1937b60f30e57a431c619362188 days 23 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.009013700057309996 Ether
0x52f671fb25a0f758457311bf37634715aae4449ec5c496c22f8745bc70aa2a25619344089 days 29 mins ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xabd3b02114a4430d85238a6119141a3702bb46be0.19830149577463205 Ether
0xff76f9b15399a322837b26be8c807308f795e530a05d90b76971f147bbef9452618897089 days 18 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.002324157737307468 Ether
0x44bf504068da4cbe7bcd3bb356d0e7670e7b2e537d3c419702df14d6b20383d2618752690 days 14 mins ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.053781770791742835 Ether
0x89543be58c978fbff07c90695f6c3cab6da139d6b7c3fa50dbcea4e233504f13618655590 days 4 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.001802736420506981 Ether
0xd0c755868c54cb3e2d5fb8a26db443c2df2323574a1d092ad1a927ad0e7a8cdb618651990 days 4 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.087132473324503744 Ether
0x9e7ffb7af916fff46cf9d21f893ae477bb4b72d88c9ccf5e62b4ed4f8f0bdee7618650390 days 4 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.009614613742703906 Ether
0x26dd4ac771c6342a92c3412186014111c7fc6ffe96267a3770e9ab70281731dc618648990 days 4 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.901371468258226823 Ether
0x682824312a0e22ad996797140d3fa105ed86d8b37b3f1d413b92d3a34ba6e507618606390 days 6 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.00195296484371175 Ether
0x7353cc9e8a97aff19560c20214d7079492d2feda6200a7d4af3c8af1579dffff618604890 days 6 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.009013708263679055 Ether
0xb53d8cf74e2d771fb2a186851c410bdb5c9796708fc16c3b5863762ac581f4c3618604590 days 6 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xd01f87509d592df2d2ff48e273027ab01165e0e30.009013700278450532 Ether
0x1df49f3a2d1540587b3196efebe7aa311a63d6d755fcfaf9b2fb678341674783618462690 days 11 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.001952964843770249 Ether
0x8e6b15e2bebf5f14c191d1e774fb4c9d517ffbc1d37b32fc69dd0319a4cc261c618458390 days 12 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.009013700163959996 Ether
0x57e2b45a480a4e198ed723005af4afce8f8880319867b0369aa147e1780ebf5e618451790 days 12 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.010015224184499895 Ether
0x31e3bde8b92624cbf9231db12501fcf32d9819efe42a0a0643081c96126abd17618331890 days 17 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0x94b66369eec9423011739570f54acabbec4343dd0.009013701316049996 Ether
0xe34a3381565c17b7c8707ddfa764975d5a9baa527e8c4a2b7b9b4ea32a75825e618317290 days 17 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.023670000119267748 Ether
0x5e91ec1dfc3beab7b9bbaa8c1f892db8cab4e53c8b538905482a2da4593ed6b7618312490 days 17 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xdc69ce879023ec0a6958880eb39991a9bd78e0d20.090227190718660095 Ether
0x0a7437cd0be47d954b76677b6b6253f8a5f22ae9066c154eb919a14cf37d3dd8618273590 days 19 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xcec269b2c42931f43e3e08c0f20faa6e6a9cb2ff0.008099995499598152 Ether
0xfec826d7d144ecfacef5861fa2290d27695e23057eee74a4cf4b9fa320875ac5618256190 days 20 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xc30e89db73798e4cb3b204be0a4c735c453e5c740.216790282274555094 Ether
0xad0211e96517628fbd60dfe6750162e58c2ee8fbd2bda6e092c9d9df37e730a4618249290 days 20 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xc30e89db73798e4cb3b204be0a4c735c453e5c740.354101056703722984 Ether
0x303ab6b797679ab98d52009a7252121e99276e0861f633482ad0b2f80fcada11618246890 days 20 hrs ago0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d0xc30e89db73798e4cb3b204be0a4c735c453e5c74243.888278885226035727 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: God
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.23;

contract God {
    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlyTokenHolders() {
        require(myTokens() > 0);
        _;
    }

    // only people with profits
    modifier onlyProfitsHolders() {
        require(myDividends(true) > 0);
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }


    /*==============================
    =            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
    );

    event onInjectEtherFromIco(uint _incomingEthereum, uint _dividends, uint profitPerShare_);

    event onInjectEtherToDividend(address sender, uint _incomingEthereum, uint profitPerShare_);

    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    event Approval(address indexed _owner, address indexed _spender, uint256 _value);



    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "God";
    string public symbol = "God";
    uint8 constant public decimals = 18;
    uint8 constant internal dividendFee_ = 10;
    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 100 tokens)
    uint256 public stakingRequirement = 100e18;

    uint constant internal  MIN_TOKEN_TRANSFER = 1e10;


    /*================================
     =            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_;

    mapping(address => mapping(address => uint256)) internal allowed;

    // administrator list (see above on what they can do)
    address internal owner;
    mapping(address => bool) public administrators;

    address bankAddress;
    mapping(address => bool) public contractAddresses;

    int internal contractPayout = 0;

    bool internal isProjectBonus = true;
    uint internal projectBonus = 0;
    uint internal projectBonusRate = 10;  // 1/10

    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    constructor()
    public
    {
        // add administrators here
        owner = msg.sender;
        administrators[owner] = 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()
    public
    payable
    {
        purchaseTokens(msg.value, 0x0);
    }

    function injectEtherFromIco()
    public
    payable
    {
        uint _incomingEthereum = msg.value;
        require(_incomingEthereum > 0);
        uint256 _dividends = SafeMath.div(_incomingEthereum, dividendFee_);

        if (isProjectBonus) {
            uint temp = SafeMath.div(_dividends, projectBonusRate);
            _dividends = SafeMath.sub(_dividends, temp);
            projectBonus = SafeMath.add(projectBonus, temp);
        }
        profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
        emit onInjectEtherFromIco(_incomingEthereum, _dividends, profitPerShare_);
    }

    function injectEtherToDividend()
    public
    payable
    {
        uint _incomingEthereum = msg.value;
        require(_incomingEthereum > 0);
        profitPerShare_ += (_incomingEthereum * magnitude / (tokenSupply_));
        emit onInjectEtherToDividend(msg.sender, _incomingEthereum, profitPerShare_);
    }

    function injectEther()
    public
    payable
    {}

    /**
     * Converts all of caller's dividends to tokens.
     */
    function reinvest()
    onlyProfitsHolders()
    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
        emit 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()
    onlyProfitsHolders()
    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
        emit onWithdraw(_customerAddress, _dividends);
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
    onlyTokenHolders()
    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);

        if (isProjectBonus) {
            uint temp = SafeMath.div(_dividends, projectBonusRate);
            _dividends = SafeMath.sub(_dividends, temp);
            projectBonus = SafeMath.add(projectBonus, temp);
        }

        // 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
        emit 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)
    onlyTokenHolders()
    public
    returns (bool)
    {
        address _customerAddress = msg.sender;
        require(_amountOfTokens >= MIN_TOKEN_TRANSFER
        && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        bytes memory empty;
        transferFromInternal(_customerAddress, _toAddress, _amountOfTokens, empty);
        return true;
    }

    function transferFromInternal(address _from, address _toAddress, uint _amountOfTokens, bytes _data)
    internal
    {
        require(_toAddress != address(0x0));
        uint fromLength;
        uint toLength;
        assembly {
            fromLength := extcodesize(_from)
            toLength := extcodesize(_toAddress)
        }

        if (fromLength > 0 && toLength <= 0) {
            // contract to human
            contractAddresses[_from] = true;
            contractPayout -= (int) (_amountOfTokens);
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);

        } else if (fromLength <= 0 && toLength > 0) {
            // human to contract
            contractAddresses[_toAddress] = true;
            contractPayout += (int) (_amountOfTokens);
            tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfTokens);
            payoutsTo_[_from] -= (int256) (profitPerShare_ * _amountOfTokens);

        } else if (fromLength > 0 && toLength > 0) {
            // contract to contract
            contractAddresses[_from] = true;
            contractAddresses[_toAddress] = true;
        } else {
            // human to human
            payoutsTo_[_from] -= (int256) (profitPerShare_ * _amountOfTokens);
            payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);
        }

        // exchange tokens
        tokenBalanceLedger_[_from] = SafeMath.sub(tokenBalanceLedger_[_from], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);

        // to contract
        if (toLength > 0) {
            ERC223Receiving receiver = ERC223Receiving(_toAddress);
            receiver.tokenFallback(_from, _amountOfTokens, _data);
        }

        // fire event
        emit Transfer(_from, _toAddress, _amountOfTokens);

    }

    function transferFrom(address _from, address _toAddress, uint _amountOfTokens)
    public
    returns (bool)
    {
        // Setup variables
        address _customerAddress = _from;
        bytes memory empty;
        // Make sure we own the tokens we're transferring, are ALLOWED to transfer that many tokens,
        // and are transferring at least one full token.
        require(_amountOfTokens >= MIN_TOKEN_TRANSFER
        && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]
        && _amountOfTokens <= allowed[_customerAddress][msg.sender]);

        transferFromInternal(_from, _toAddress, _amountOfTokens, empty);
        allowed[_from][msg.sender] = SafeMath.sub(allowed[_from][msg.sender], _amountOfTokens);

        // Good old ERC20.
        return true;

    }

    function transferTo(address _from, address _to, uint _amountOfTokens, bytes _data)
    public
    {
        if (_from != msg.sender) {
            require(_amountOfTokens >= MIN_TOKEN_TRANSFER
            && _amountOfTokens <= tokenBalanceLedger_[_from]
            && _amountOfTokens <= allowed[_from][msg.sender]);
            allowed[_from][msg.sender] = SafeMath.sub(allowed[_from][msg.sender], _amountOfTokens);
        }
        else {
            require(_amountOfTokens >= MIN_TOKEN_TRANSFER
            && _amountOfTokens <= tokenBalanceLedger_[_from]);
        }
        transferFromInternal(_from, _to, _amountOfTokens, _data);
    }

    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/

    function setBank(address _identifier, uint256 value)
    onlyAdministrator()
    public
    {
        bankAddress = _identifier;
        contractAddresses[_identifier] = true;
        tokenBalanceLedger_[_identifier] = value;
    }

    /**
     * In case one of us dies, we need to replace ourselves.
     */
    function setAdministrator(address _identifier, bool _status)
    onlyAdministrator()
    public
    {
        require(_identifier != owner);
        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;
    }

    function getContractPayout()
    onlyAdministrator()
    public
    view
    returns (int)
    {
        return contractPayout;
    }

    function getIsProjectBonus()
    onlyAdministrator()
    public
    view
    returns (bool)
    {
        return isProjectBonus;
    }

    function setIsProjectBonus(bool value)
    onlyAdministrator()
    public
    {
        isProjectBonus = value;
    }

    function getProjectBonus()
    onlyAdministrator()
    public
    view
    returns (uint)
    {
        return projectBonus;
    }

    function takeProjectBonus(address to, uint value)
    onlyAdministrator()
    public {
        require(value <= projectBonus);
        to.transfer(value);
    }


    /*----------  HELPERS AND CALCULATORS  ----------*/
    /**
     * Method to view the current Ethereum stored in the contract
     * Example: totalEthereumBalance()
     */
    function totalEthereumBalance()
    public
    view
    returns (uint)
    {
        return address(this).balance;
    }

    /**
     * Retrieve the total token supply.
     */
    function totalSupply()
    public
    view
    returns (uint256)
    {
        return tokenSupply_;
    }


    // erc 20
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }


    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
    public
    view
    returns (uint256)
    {
        address _customerAddress = msg.sender;
        return getBalance(_customerAddress);
    }

    function getProfitPerShare()
    public
    view
    returns (uint256)
    {
        return (uint256) ((int256)(tokenSupply_*profitPerShare_)) / magnitude;
    }

    function getContractETH()
    public
    view
    returns (uint256)
    {
        return address(this).balance;
    }

    /**
     * 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)
    {
        if(contractAddresses[_customerAddress]){
            return 0;
        }
        return tokenBalanceLedger_[_customerAddress];
    }

    /**
     * Retrieve the token balance of any single address.
     */
    function getBalance(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)
    internal
    returns (uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);

        if (isProjectBonus) {
            uint temp = SafeMath.div(_undividedDividends, projectBonusRate);
            _dividends = SafeMath.sub(_dividends, temp);
            projectBonus = SafeMath.add(projectBonus, temp);
        }

        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        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?
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            // 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
        emit 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;
        }
    }
}

contract ERC223Receiving {
    function tokenFallback(address _from, uint _amountOfTokens, bytes _data) public returns (bool);
}

/**
 * @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":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"getContractPayout","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amountOfTokens","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getProfitPerShare","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":false,"inputs":[{"name":"_from","type":"address"},{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contractAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"takeProjectBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"injectEther","outputs":[],"payable":true,"stateMutability":"payable","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":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIsProjectBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"bool"}],"name":"setIsProjectBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractETH","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":"address"},{"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":"injectEtherToDividend","outputs":[],"payable":true,"stateMutability":"payable","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":"injectEtherFromIco","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getProjectBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"address"},{"name":"value","type":"uint256"}],"name":"setBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"name":"_incomingEthereum","type":"uint256"},{"indexed":false,"name":"_dividends","type":"uint256"},{"indexed":false,"name":"profitPerShare_","type":"uint256"}],"name":"onInjectEtherFromIco","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"_incomingEthereum","type":"uint256"},{"indexed":false,"name":"profitPerShare_","type":"uint256"}],"name":"onInjectEtherToDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60c0604052600360808190527f476f64000000000000000000000000000000000000000000000000000000000060a090815262000040916000919062000100565b506040805180820190915260038082527f476f6400000000000000000000000000000000000000000000000000000000006020909201918252620000879160019162000100565b5068056bc75e2d6310000060025560006007819055600e819055600f805460ff19166001179055601055600a601155348015620000c357600080fd5b50600a8054600160a060020a031916331790819055600160a060020a03166000908152600b60205260409020805460ff19166001179055620001a5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014357805160ff191683800117855562000173565b8280016001018555821562000173579182015b828111156200017357825182559160200191906001019062000156565b506200018192915062000185565b5090565b620001a291905b808211156200018157600081556001016200018c565b90565b611d2480620001b56000396000f3006080604052600436106102025763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461021057806306fdde0314610243578063095ea7b3146102cd57806310d0ffdd146103055780631741526f1461031d57806318160ddd1461033257806319fb361f146103475780631aebcb89146103b857806322609373146103cd57806323b872dd146103e5578063313ce5671461040f5780633ccfd60b1461043a5780634661ac951461044f5780634b7503341461047057806356d399e814610485578063629b9cb11461049a578063688abbf7146104be5780636a3a2119146104d85780636b2f4632146104e057806370a08231146104f557806376be1585146105165780637c71c0eb1461053757806380560a0a1461054c5780638258cbbd146104e05780638328b610146105665780638620410b1461057e57806387c9505814610593578063949e8acd146105b957806395d89b41146105ce578063a6741cfd146105e3578063a9059cbb146105eb578063b67e20641461060f578063b7b5e81114610617578063b84c82461461062c578063bc44ea9a14610685578063c47f0027146106a9578063dd62ed3e14610702578063e4849b3214610729578063e9fad8ee14610741578063f088d54714610756578063f8b2cb4f1461076a578063fdb5a03e1461078b575b61020d3460006107a0565b50005b34801561021c57600080fd5b50610231600160a060020a0360043516610a57565b60408051918252519081900360200190f35b34801561024f57600080fd5b50610258610a95565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029257818101518382015260200161027a565b50505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d957600080fd5b506102f1600160a060020a0360043516602435610b23565b604080519115158252519081900360200190f35b34801561031157600080fd5b50610231600435610b89565b34801561032957600080fd5b50610231610bb9565b34801561033e57600080fd5b50610231610be4565b34801561035357600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526103b694600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750610beb9650505050505050565b005b3480156103c457600080fd5b50610231610d03565b3480156103d957600080fd5b50610231600435610d19565b3480156103f157600080fd5b506102f1600160a060020a0360043581169060243516604435610d52565b34801561041b57600080fd5b50610424610e29565b6040805160ff9092168252519081900360200190f35b34801561044657600080fd5b506103b6610e2e565b34801561045b57600080fd5b506102f1600160a060020a0360043516610f01565b34801561047c57600080fd5b50610231610f16565b34801561049157600080fd5b50610231610f6a565b3480156104a657600080fd5b506103b6600160a060020a0360043516602435610f70565b3480156104ca57600080fd5b506102316004351515610fd3565b6103b6611016565b3480156104ec57600080fd5b50610231611018565b34801561050157600080fd5b50610231600160a060020a036004351661101d565b34801561052257600080fd5b506102f1600160a060020a0360043516611062565b34801561054357600080fd5b506102f1611077565b34801561055857600080fd5b506103b660043515156110a3565b34801561057257600080fd5b506103b66004356110d5565b34801561058a57600080fd5b506102316110f9565b34801561059f57600080fd5b506103b6600160a060020a03600435166024351515611141565b3480156105c557600080fd5b506102316111a6565b3480156105da57600080fd5b506102586111b8565b6103b6611212565b3480156105f757600080fd5b506102f1600160a060020a036004351660243561128b565b6103b66112f6565b34801561062357600080fd5b506102316113b6565b34801561063857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103b69436949293602493928401919081908401838280828437509497506113df9650505050505050565b34801561069157600080fd5b506103b6600160a060020a0360043516602435611415565b3480156106b557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103b69436949293602493928401919081908401838280828437509497506114879650505050505050565b34801561070e57600080fd5b50610231600160a060020a03600435811690602435166114b8565b34801561073557600080fd5b506103b66004356114e3565b34801561074d57600080fd5b506103b6611672565b610231600160a060020a036004351661169f565b34801561077657600080fd5b50610231600160a060020a03600435166116ab565b34801561079757600080fd5b506103b66116c6565b60003381808080808080806107b68c600a61177c565b97506107c388600361177c565b96506107cf8c89611793565b95506107db8888611793565b600f5490955060ff1615610813576107f58860115461177c565b93506108018585611793565b945061080f601054856117a5565b6010555b61081c866117bb565b92506801000000000000000085029150600083118015610846575060075461084484826117a5565b115b151561085157600080fd5b600160a060020a038b161580159061087b575088600160a060020a03168b600160a060020a031614155b80156108a15750600254600160a060020a038c1660009081526003602052604090205410155b156108e757600160a060020a038b166000908152600460205260409020546108c990886117a5565b600160a060020a038c16600090815260046020526040902055610902565b6108f185886117a5565b945068010000000000000000850291505b6000600754111561096657610919600754846117a5565b600781905568010000000000000000860281151561093357fe5b6008805492909104909101905560075468010000000000000000860281151561095857fe5b04830282038203915061096c565b60078390555b600160a060020a03891660009081526003602052604090205461098f90846117a5565b600360008b600160a060020a0316600160a060020a031681526020019081526020016000208190555081836008540203905080600560008b600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a031689600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58e86604051808381526020018281526020019250505060405180910390a350909a9950505050505050505050565b600160a060020a038116600090815260056020908152604080832054600390925282205460085468010000000000000000929102030490505b919050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b505050505081565b336000818152600960209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000808080610b9985600a61177c565b9250610ba58584611793565b9150610bb0826117bb565b95945050505050565b336000818152600b602052604081205490919060ff161515610bda57600080fd5b600e5491505b5090565b6007545b90565b600160a060020a0384163314610cb9576402540be4008210158015610c285750600160a060020a0384166000908152600360205260409020548211155b8015610c575750600160a060020a03841660009081526009602090815260408083203384529091529020548211155b1515610c6257600080fd5b600160a060020a0384166000908152600960209081526040808320338452909152902054610c909083611793565b600160a060020a0385166000908152600960209081526040808320338452909152902055610cf1565b6402540be4008210158015610ce65750600160a060020a0384166000908152600360205260409020548211155b1515610cf157600080fd5b610cfd84848484611853565b50505050565b6008546007546801000000000000000091020490565b6000806000806007548511151515610d3057600080fd5b610d3985611bc9565b9250610d4683600a61177c565b9150610bb08383611793565b60008360606402540be4008410801590610d845750600160a060020a0382166000908152600360205260409020548411155b8015610db35750600160a060020a03821660009081526009602090815260408083203384529091529020548411155b1515610dbe57600080fd5b610dca86868684611853565b600160a060020a0386166000908152600960209081526040808320338452909152902054610df89085611793565b600160a060020a03871660009081526009602090815260408083203384529091529020556001925050509392505050565b601281565b6000806000610e3d6001610fd3565b11610e4757600080fd5b339150610e546000610fd3565b600160a060020a038316600081815260056020908152604080832080546801000000000000000087020190556004909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610ebd573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600d6020526000908152604090205460ff1681565b60008060008060075460001415610f34576414f46b04009350610f64565b610f45670de0b6b3a7640000611bc9565b9250610f5283600a61177c565b9150610f5e8383611793565b90508093505b50505090565b60025481565b336000818152600b602052604090205460ff161515610f8e57600080fd5b601054821115610f9d57600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015610cfd573d6000803e3d6000fd5b60003382610fe957610fe481610a57565b61100d565b600160a060020a03811660009081526004602052604090205461100b82610a57565b015b91505b50919050565b565b303190565b600160a060020a0381166000908152600d602052604081205460ff161561104657506000610a90565b50600160a060020a031660009081526003602052604090205490565b600b6020526000908152604090205460ff1681565b336000818152600b602052604081205490919060ff16151561109857600080fd5b5050600f5460ff1690565b336000818152600b602052604090205460ff1615156110c157600080fd5b50600f805460ff1916911515919091179055565b336000818152600b602052604090205460ff1615156110f357600080fd5b50600255565b600080600080600754600014156111175764199c82cc009350610f64565b611128670de0b6b3a7640000611bc9565b925061113583600a61177c565b9150610f5e83836117a5565b336000818152600b602052604090205460ff16151561115f57600080fd5b600a54600160a060020a038481169116141561117a57600080fd5b50600160a060020a03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000336111b2816116ab565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b1b5780601f10610af057610100808354040283529160200191610b1b565b346000811161122057600080fd5b60075468010000000000000000820281151561123857fe5b60088054929091049190910190819055604080513381526020810184905280820192909252517f0b7062c5e80b550628cf935ce6a62e41e9780c12387fc4aac59178dd7b4c7cbe9181900360600190a150565b6000806060600061129a6111a6565b116112a457600080fd5b3391506402540be40084101580156112d45750600160a060020a0382166000908152600360205260409020548411155b15156112df57600080fd5b6112eb82868684611853565b506001949350505050565b3460008080831161130657600080fd5b61131183600a61177c565b600f5490925060ff16156113495761132b8260115461177c565b90506113378282611793565b9150611345601054826117a5565b6010555b60075468010000000000000000830281151561136157fe5b60088054929091049190910190819055604080518581526020810185905280820192909252517fe25eb8bd212472a2c6a3fca01bdb1ce433b5fddb157d1c1ace49ac894989b76d9181900360600190a1505050565b336000818152600b602052604081205490919060ff1615156113d757600080fd5b505060105490565b336000818152600b602052604090205460ff1615156113fd57600080fd5b8151611410906001906020850190611c6a565b505050565b336000818152600b602052604090205460ff16151561143357600080fd5b50600c8054600160a060020a0390931673ffffffffffffffffffffffffffffffffffffffff19909316831790556000918252600d60209081526040808420805460ff19166001179055600390915290912055565b336000818152600b602052604090205460ff1615156114a557600080fd5b8151611410906000906020850190611c6a565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b6000806000806000806000806114f76111a6565b1161150157600080fd5b3360008181526003602052604090205490975088111561152057600080fd5b87955061152c86611bc9565b945061153985600a61177c565b93506115458585611793565b600f5490935060ff161561157d5761155f8460115461177c565b915061156b8483611793565b9350611579601054836117a5565b6010555b61158960075487611793565b600755600160a060020a0387166000908152600360205260409020546115af9087611793565b600160a060020a038816600090815260036020908152604080832093909355600854600590915291812080549289026801000000000000000087020192839003905560075491925010156116255761162160085460075468010000000000000000870281151561161b57fe5b046117a5565b6008555b60408051878152602081018590528151600160a060020a038a16927fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139928290030190a25050505050505050565b336000818152600360205260408120549081111561169357611693816114e3565b61169b610e2e565b5050565b600061101034836107a0565b600160a060020a031660009081526003602052604090205490565b6000806000806116d66001610fd3565b116116e057600080fd5b6116ea6000610fd3565b3360008181526005602090815260408083208054680100000000000000008702019055600490915281208054908290559092019450925061172c9084906107a0565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828481151561178a57fe5b04949350505050565b60008282111561179f57fe5b50900390565b6000828201838110156117b457fe5b9392505050565b6007546000906c01431e0fae6d7217caa00000009082906402540be40061184061183a730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001611c35565b85611793565b81151561184957fe5b0403949350505050565b60008080600160a060020a038616151561186c57600080fd5b863b9250853b9150600083118015611885575060008211155b156118f057600160a060020a0387166000908152600d60205260409020805460ff19166001179055600e805486900390556007546118c390866117a5565b600755600854600160a060020a0387166000908152600560205260409020805491870290910190556119fa565b600083111580156119015750600082115b1561196b57600160a060020a0386166000908152600d60205260409020805460ff19166001179055600e80548601905560075461193e9086611793565b600755600854600160a060020a0388166000908152600560205260409020805491870290910390556119fa565b60008311801561197b5750600082115b156119bd57600160a060020a038781166000908152600d60205260408082208054600160ff199182168117909255938a168352912080549092161790556119fa565b60088054600160a060020a038981166000908152600560205260408082208054948b02909403909355925490891683529120805491870290910190555b600160a060020a038716600090815260036020526040902054611a1d9086611793565b600160a060020a038089166000908152600360205260408082209390935590881681522054611a4c90866117a5565b600160a060020a038716600090815260036020526040812091909155821115611b7557506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483019081526024830187905260606044840190815286516064850152865189949385169363c0ee0b8a938c938b938b9360840190602085019080838360005b83811015611afa578181015183820152602001611ae2565b50505050905090810190601f168015611b275780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015611b4857600080fd5b505af1158015611b5c573d6000803e3d6000fd5b505050506040513d6020811015611b7257600080fd5b50505b85600160a060020a031687600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b600754600090670de0b6b3a7640000838101918101908390611c226414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be40002811515611c1c57fe5b04611793565b811515611c2b57fe5b0495945050505050565b80600260018201045b81811015611010578091506002818285811515611c5757fe5b0401811515611c6257fe5b049050611c3e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611cab57805160ff1916838001178555611cd8565b82800160010185558215611cd8579182015b82811115611cd8578251825591602001919060010190611cbd565b50610be092610be89250905b80821115610be05760008155600101611ce45600a165627a7a72305820cfa96c56f02d26671d23808be9faac439a43343c4f0cee75a367f38aac01d2b20029

   Swarm Source:
bzzr://cfa96c56f02d26671d23808be9faac439a43343c4f0cee75a367f38aac01d2b2

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.