Sponsored Link:   FTEC - Artificial Intelligence trading revolution! Ready project! Softcap reached! Get MAX Bonus!
Contract Overview
Balance: 18.908732021228399164 Ether
Ether Value: $8,882.00 (@ $469.73/ETH)
Transactions: 13229 txns
Token Contract: Proof of Trevon James (PoTJ)
 Latest 25 txns from a total Of 13229 transactions (+4 PendingTxns)
View All

TxHash Age From To Value [TxFee]
0x0647c701be9c21cd775f41c97ab54205798e67f5059f23875525466d98b66bee(pending)0x904c2761a450dd3c483076ea9559475e6467ca3d  IN  0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether(pending)
0x609a90d5e6b5de4daf15e1066c527428f1ed33bcc8f2946b9c9085b05658aedb(pending)0x904c2761a450dd3c483076ea9559475e6467ca3d  IN  0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether(pending)
0x679b69c61f2ddb4b1104099bf14e98890b44688096f7461d5d6cbf93e38763e8(pending)0x904c2761a450dd3c483076ea9559475e6467ca3d  IN  0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether(pending)
0xdf861c93ea51388c7b5c12e3299e6fbc0ac79fa348668819452402abd99ff990(pending)0x0f21d37eda174aac3d5f98537983304c0705fdda  IN  0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether(pending)
0x3921f49274242ccc2d4688d7d92f239863062981c8c7d43172aafbb5d0b64b807 hrs 42 mins ago0xab8357856c5d104386d92e8834ff5f005b71794f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.0002420294
0x2a0812af47e4bdc1caeba46eab98339da465600a495c422807228f59bf874c341 day 17 hrs ago0xd2c379be3e5acbf96fcf16013afade5c6b201e03  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000312296
0x4bf48af43c64f52238b9c3cb1cc5ab5323702f59b9deb4f0699ea89078f199b02 days 2 hrs ago0xd064e8e7bf3b51a159449861cd6c7e37564222d0  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000234222
0x9e23e03b2b27fc037e936b44044ec8b2fda0ddbd72afbbfc903f23c2cd7f27e32 days 3 hrs ago0xbe1e5274c75db54a5555fd90e3da5625571c562e  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000049661
0x84618b39cb0b3bdf187e34256301e063b79dfb2f05c202e0b824a7b76f9042b42 days 10 hrs ago0xcb714ff587e9fdf479dea9ac6299d5ac3a764b20  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000043459
0x8bbecb1ee9bab8f0c0169ceacf4d2ba89b78da4581272bc46727e2c1617a2dfd2 days 12 hrs ago0xbe1e5274c75db54a5555fd90e3da5625571c562e  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000043459
0xa3a91b8a000d95752a30a5aa1ba339948967bc74862919d24e7cd639a83419be2 days 14 hrs ago0x60b5e35a82c49e3ea2c1b4fd4d549c3b86c6d55d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000068523
0x637d89312afe57079804f2e49ac65028125ca3ed2a0448c876a339c820f2cfc02 days 14 hrs ago0x60b5e35a82c49e3ea2c1b4fd4d549c3b86c6d55d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000130377
0x698490a5d630af4ff50cac8a5a64599ec18b4ccf055deb890624bb86b1e3699e2 days 15 hrs ago0xab4485ca338b91087a09ae8bc141648bb1c6e967  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000173836
0x76ae8680b469a79944ccf33f1a973dbe6dd04325f10dd37aac5d6b9f71b66c6d3 days 2 hrs ago0xaa7a7c2decb180f68f11e975e6d92b5dc06083a6  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000043459
0x039d01429a0ab0ac96adfbdd9d10f7c93c24dd7e2380821c5b0171c393442f1e3 days 4 hrs ago0x60b5e35a82c49e3ea2c1b4fd4d549c3b86c6d55d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000049661
0x12a7ade49d5a7075376133435f077fd090cdbe3c70445253eb6a1a3789b5f3363 days 14 hrs ago0x85a2765622ab983becd9933fef9adc3603ef0e2f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000086918
0x785cdc2c2727f78f03bfacdd25b2d4194912e99bf3f819f26c0d8812ff66bd9f3 days 14 hrs ago0x85a2765622ab983becd9933fef9adc3603ef0e2f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.00009945
0x97cd6d2daf1f4c8fe327daecac5c71a507c449760e7144f4a193bd642b7e440f3 days 21 hrs ago0x0071236b9f704c6c568d6f10e0f73ffeb5e17fc5  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000217295
0x4d88ba736c5f9f134d5562ba7377ba9d6250baaa614d3fa443c83253f0446fd24 days 8 hrs ago0x60b5e35a82c49e3ea2c1b4fd4d549c3b86c6d55d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.007600027
0x9acee494ee87f3521d1e70c30d9bf9a6b3daea38fac7f0a5e4d68bffd13f13f84 days 10 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000695344
0x2483bb3a3b0acbb53e19c37b4af34e7a4b03781ea144ac1254ad79a2696809864 days 10 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000796624
0x9a97861a91f4d5f7c57313b80f875b22ca27e71c037139064049d94441782f804 days 10 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.030400108
0x5648c9304de5129ff4286d4b8d09126b9894ea31611b19f9a753f19f552f893a4 days 12 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000608426
0x11bf2646c254baa6621c51ca4e86f78ba0f9cd3be1c28462e65accc7c17ee1b14 days 12 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.04555566
0xb169e873e3f589658c03808912373e188622be836246d97737aaed94e248ca474 days 13 hrs ago0x44c524b7cf1528d192fee8dcdba2ffa572c006e1  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.030400108
[ 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
0x84618b39cb0b3bdf187e34256301e063b79dfb2f05c202e0b824a7b76f9042b458238432 days 10 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xcb714ff587e9fdf479dea9ac6299d5ac3a764b200.205886216531073663 Ether
0x8bbecb1ee9bab8f0c0169ceacf4d2ba89b78da4581272bc46727e2c1617a2dfd58233162 days 12 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xbe1e5274c75db54a5555fd90e3da5625571c562e0.018956851920876923 Ether
0x637d89312afe57079804f2e49ac65028125ca3ed2a0448c876a339c820f2cfc058229792 days 14 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x60b5e35a82c49e3ea2c1b4fd4d549c3b86c6d55d0.070063801571089856 Ether
0x698490a5d630af4ff50cac8a5a64599ec18b4ccf055deb890624bb86b1e3699e58227882 days 15 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xab4485ca338b91087a09ae8bc141648bb1c6e9670.004328906899511488 Ether
0x76ae8680b469a79944ccf33f1a973dbe6dd04325f10dd37aac5d6b9f71b66c6d58199833 days 2 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xaa7a7c2decb180f68f11e975e6d92b5dc06083a60.007649423057924604 Ether
0x12a7ade49d5a7075376133435f077fd090cdbe3c70445253eb6a1a3789b5f33658172373 days 14 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x85a2765622ab983becd9933fef9adc3603ef0e2f0.007318016643852151 Ether
0x97cd6d2daf1f4c8fe327daecac5c71a507c449760e7144f4a193bd642b7e440f58155143 days 21 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x0071236b9f704c6c568d6f10e0f73ffeb5e17fc50.014973202356084098 Ether
0x9acee494ee87f3521d1e70c30d9bf9a6b3daea38fac7f0a5e4d68bffd13f13f858122504 days 10 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x44c524b7cf1528d192fee8dcdba2ffa572c006e10.185198666771153618 Ether
0x5648c9304de5129ff4286d4b8d09126b9894ea31611b19f9a753f19f552f893a58118584 days 12 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x44c524b7cf1528d192fee8dcdba2ffa572c006e10.012041592896220004 Ether
0x76121fe3b637ea5a4d1404e23774da49e899c3f9fb69469828844f46b2c9f3c058108074 days 16 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x21fa176515a141be959453e4fca0a42f3a5ceb260.0000000337992596 Ether
0x710213056a7c32732bed21c59fa17b2d10c350feaf286962afb4b4721bc7d3fd58078555 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x6742e1b1eab041c13251b589329860a205b13c960.00616560632796491 Ether
0x867a882ee1bea2c28ca917699b2b710aa70bbc61ae6ed6729ff49fc4728d9dbc58076875 days 5 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x6ec751f86e3adff24db54822dd70fa4f5f763fc70.000902187460812546 Ether
0x280e0fedbbe2d159c29e35ef33cd7ebfc0f45da026dc50569229ca8264c8e44758022406 days 3 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x21fa176515a141be959453e4fca0a42f3a5ceb260.029426769563619952 Ether
0x74acff256a8f5ce8f6b6147c579ca2537f49c7b5f404408b1fdd3772254354c157942357 days 11 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xefcd5e087e05058b362ea17acae5f1ec420864220.066542601114048423 Ether
0xc66eb5b0926416b033f4d403a21cefec81771f7b93941080bef1674fb6480f2457933387 days 15 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xfb3c04d6ee279f5566a10e50cd1e3353d6f206770.100099246048703882 Ether
0xa59a1560ff87f623d9ba344c0379c70453b6fc9d21b93a6517f3a16c338170e357917677 days 22 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xe7f53ce9421670ac2f11c5035e6f6f13d9829aa60.012187338500153718 Ether
0x1518fac40e20455ff1a7b3c7347de805bc74f4b999bebabd5a61a0faabac16e857903258 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x97f705a6014de6a62b5d5809b7686334bac6fb100.000747858523710084 Ether
0xa6ffff9bafd67413cf5739034f0fa9b758012c743577346ec7a3e8418bb1c55557836459 days 7 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x46091f77b224576e224796de5c50e8120ad7d7640.002402143788988632 Ether
0xbcb04c419f4bc11c752bc2f918fed4ee46e8938d4e06cc939d6bca5a1e64217157827909 days 11 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x4711b485be9179553e5df3b04684ef1f103d3fc70.00832233238968209 Ether
0x1fb5545b58d7d2f91cce9824699be6a956dd8d6b1706eb96bb5b7fa318e988fb57800389 days 22 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x8c6c152c9c88bb2fba6d5bbdf823a6848ec443070.004046975788446396 Ether
0x3d43b3c7988e3b76bc44647d9045bb4964f71f9bb28af984c183ff8b96944d3e577603410 days 15 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x10b99966bf1548dbbcf92fbcfbad66e6fc3f61970.015681618446957077 Ether
0xf782886a9edc35e4e4209de881a4e3f0c099dc655d01268a1f799a3d28947d2c577299711 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x454a191751c39c075a7617132ecbeabd49bc28ee0.009393696369331936 Ether
0x8da4e206953b593f3740925a84d02f2b1ee87ec4470728a954a465e96124f19f577298311 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x73e998eb9e4b6e10dc899d5b453f67b4670118a10.002599134804765798 Ether
0x29b1a913bc17f4eddc804bc5ef7249d4f40ebcfbd11e922b1836c49ec4c3a11e577280911 days 5 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x3b9b0b1e2d1a6eafb24b2a617a8b603b3d0b7e990.006233345283865363 Ether
0x968be9edaceab979a86eceff38ae0141ff6a5f8053879cb41ca82e7d7c0d066c577279911 days 5 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xb9dc6b4b3cfeac98406d70d0f61595d6614e024d0.012827248721189149 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: POTJ
Compiler Version: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.20;

/*
* Trevon James Presents....
* https://potj.me/
* https://discord.gg/8FdGtS8
* Twitter: https://twitter.com/BitcoinTre
* YouTube: https://www.youtube.com/channel/UCWZbtMeOAb_qpEVUl551l7w
* 
* 
*
* Proof of Trevon James
* Don't Talk To Me Unless It's About Intangible Coins.
*
* -> What?
* Incorporated the strong points of different POW{x}, best config:
* [✓] 20% dividends for token purchase, shared among all token holders.
* [✓] 10% dividends for token transfer, shared among all token holders.
* [✓] 25% dividends for token selling.
* [✓] 7% dividends is given to referrer.
* [✓] 50 tokens to activate Masternodes.
*
*/

contract POTJ {


    /*=================================
    =            MODIFIERS            =
    =================================*/

    /// @dev Only people with tokens
    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    /// @dev Only people with profits
    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }


    /*==============================
    =            EVENTS            =
    ==============================*/

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp,
        uint256 price
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned,
        uint timestamp,
        uint256 price
    );

    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 = "Proof of Trevon James";
    string public symbol = "PoTJ";
    uint8 constant public decimals = 18;

    /// @dev 15% dividends for token purchase
    uint8 constant internal entryFee_ = 20;

    /// @dev 10% dividends for token transfer
    uint8 constant internal transferFee_ = 10;

    /// @dev 25% dividends for token selling
    uint8 constant internal exitFee_ = 25;

    /// @dev 35% of entryFee_ (i.e. 7% dividends) is given to referrer
    uint8 constant internal refferalFee_ = 35;

    uint256 constant internal tokenPriceInitial_ = 0.00000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.000000001 ether;
    uint256 constant internal magnitude = 2 ** 64;

    /// @dev proof of stake (defaults at 50 tokens)
    uint256 public stakingRequirement = 50e18;


   /*=================================
    =            DATASETS            =
    ================================*/

    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;


    /*=======================================
    =            PUBLIC FUNCTIONS           =
    =======================================*/

    /// @dev 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);
    }

    /**
     * @dev 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);
    }

    /// @dev 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);
    }

    /// @dev 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();
    }

    /// @dev 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);
    }

    /// @dev 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(SafeMath.mul(_ethereum, exitFee_), 100);
        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, now, buyPrice());
    }


    /**
     * @dev Transfer tokens from the caller to a new holder.
     *  Remember, there's a 15% 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
        require(_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(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        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;
    }


    /*=====================================
    =      HELPERS AND CALCULATORS        =
    =====================================*/

    /**
     * @dev Method to view the current Ethereum stored in the contract
     *  Example: totalEthereumBalance()
     */
    function totalEthereumBalance() public view returns (uint256) {
        return this.balance;
    }

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

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

    /**
     * @dev 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) ;
    }

    /// @dev Retrieve the token balance of any single address.
    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    /// @dev Retrieve the dividend balance of any single address.
    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    /// @dev Return the sell 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(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    /// @dev Return the buy 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(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    /// @dev 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(SafeMath.mul(_ethereumToSpend, entryFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    /// @dev 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(SafeMath.mul(_ethereum, exitFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }


    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/

    /// @dev Internal function to actually purchase the tokens.
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy) internal returns (uint256) {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        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, now, buyPrice());

        return _amountOfTokens;
    }

    /**
     * @dev 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;
    }

    /**
     * @dev 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;
    }

    /// @dev This is where all your gas goes.
    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 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":"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":"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":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"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"},{"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"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"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"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","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
606060405260408051908101604052601581527f50726f6f66206f6620547265766f6e204a616d65730000000000000000000000602082015260009080516200004d929160200190620000b7565b5060408051908101604052600481527f506f544a000000000000000000000000000000000000000000000000000000006020820152600190805162000097929160200190620000b7565b506802b5e3af16b18800006002553415620000b157600080fd5b6200015c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fa57805160ff19168380011785556200012a565b828001600101855582156200012a579182015b828111156200012a5782518255916020019190600101906200010d565b50620001389291506200013c565b5090565b6200015991905b8082111562000138576000815560010162000143565b90565b610f8d806200016c6000396000f3006060604052600436106101105763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461011e57806306fdde031461014f57806310d0ffdd146101d957806318160ddd146101ef5780632260937314610202578063313ce567146102185780633ccfd60b146102415780634b7503341461025657806356d399e814610269578063688abbf71461027c5780636b2f46321461029457806370a08231146102a75780638620410b146102c6578063949e8acd146102d957806395d89b41146102ec578063a9059cbb146102ff578063e4849b3214610335578063e9fad8ee1461034b578063f088d5471461035e578063fdb5a03e14610372575b61011b346000610385565b50005b341561012957600080fd5b61013d600160a060020a03600435166105ed565b60405190815260200160405180910390f35b341561015a57600080fd5b610162610628565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019e578082015183820152602001610186565b50505050905090810190601f1680156101cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e457600080fd5b61013d6004356106c6565b34156101fa57600080fd5b61013d6106f9565b341561020d57600080fd5b61013d6004356106ff565b341561022357600080fd5b61022b61073b565b60405160ff909116815260200160405180910390f35b341561024c57600080fd5b610254610740565b005b341561026157600080fd5b61013d61080c565b341561027457600080fd5b61013d610863565b341561028757600080fd5b61013d6004351515610869565b341561029f57600080fd5b61013d6108ac565b34156102b257600080fd5b61013d600160a060020a03600435166108ba565b34156102d157600080fd5b61013d6108d5565b34156102e457600080fd5b61013d610920565b34156102f757600080fd5b610162610932565b341561030a57600080fd5b610321600160a060020a036004351660243561099d565b604051901515815260200160405180910390f35b341561034057600080fd5b610254600435610b48565b341561035657600080fd5b610254610cc4565b61013d600160a060020a0360043516610cfb565b341561037d57600080fd5b610254610d07565b600033818080808080806103a461039d8c6014610dc2565b6064610df8565b96506103b461039d886023610dc2565b95506103c08787610e0f565b94506103cc8b88610e0f565b93506103d784610e21565b9250680100000000000000008502915060008311801561040157506006546103ff8482610eb3565b115b151561040c57600080fd5b600160a060020a038a1615801590610436575087600160a060020a03168a600160a060020a031614155b801561045c5750600254600160a060020a038b1660009081526003602052604090205410155b156104a257600160a060020a038a166000908152600460205260409020546104849087610eb3565b600160a060020a038b166000908152600460205260409020556104bd565b6104ac8587610eb3565b945068010000000000000000850291505b60006006541115610521576104d460065484610eb3565b60068190556801000000000000000086028115156104ee57fe5b6007805492909104909101905560065468010000000000000000860281151561051357fe5b048302820382039150610527565b60068390555b600160a060020a03881660009081526003602052604090205461054a9084610eb3565b600160a060020a03808a166000818152600360209081526040808320959095556007546005909152939020805493870286900393840190559192508b16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d86426105b46108d5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a350909998505050505050505050565b600160a060020a0316600090815260056020908152604080832054600390925290912054600754680100000000000000009102919091030490565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106be5780601f10610693576101008083540402835291602001916106be565b820191906000526020600020905b8154815290600101906020018083116106a157829003601f168201915b505050505081565b60008080806106d961039d866014610dc2565b92506106e58584610e0f565b91506106f082610e21565b95945050505050565b60065490565b600080600080600654851115151561071657600080fd5b61071f85610ec2565b925061072f61039d846019610dc2565b91506106f08383610e0f565b601281565b600080600061074f6001610869565b1161075957600080fd5b3391506107666000610869565b600160a060020a0383166000818152600560209081526040808320805468010000000000000000870201905560049091528082208054929055920192509082156108fc0290839051600060405180830381858888f1935050505015156107cb57600080fd5b81600160a060020a03167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc8260405190815260200160405180910390a25050565b6000806000806006546000141561082a57640218711a00935061085d565b61083b670de0b6b3a7640000610ec2565b925061084b61039d846019610dc2565b91506108578383610e0f565b90508093505b50505090565b60025481565b6000338261087f5761087a816105ed565b6108a3565b600160a060020a0381166000908152600460205260409020546108a1826105ed565b015b91505b50919050565b600160a060020a0330163190565b600160a060020a031660009081526003602052604090205490565b600080600080600654600014156108f35764028fa6ae00935061085d565b610904670de0b6b3a7640000610ec2565b925061091461039d846014610dc2565b91506108578383610eb3565b60003361092c816108ba565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106be5780601f10610693576101008083540402835291602001916106be565b6000806000806000806109ae610920565b116109b857600080fd5b33600160a060020a0381166000908152600360205260409020549094508611156109e157600080fd5b60006109ed6001610869565b11156109fb576109fb610740565b610a0961039d87600a610dc2565b9250610a158684610e0f565b9150610a2083610ec2565b9050610a2e60065484610e0f565b600655600160a060020a038416600090815260036020526040902054610a549087610e0f565b600160a060020a038086166000908152600360205260408082209390935590891681522054610a839083610eb3565b600160a060020a0388811660008181526003602090815260408083209590955560078054948a16835260059091528482208054948c02909403909355825491815292909220805492850290920190915554600654610af79190680100000000000000008402811515610af157fe5b04610eb3565b600755600160a060020a038088169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060019695505050505050565b6000806000806000806000610b5b610920565b11610b6557600080fd5b33600160a060020a038116600090815260036020526040902054909650871115610b8e57600080fd5b869450610b9a85610ec2565b9350610baa61039d856019610dc2565b9250610bb68484610e0f565b9150610bc460065486610e0f565b600655600160a060020a038616600090815260036020526040902054610bea9086610e0f565b600160a060020a0387166000908152600360209081526040808320939093556007546005909152918120805492880268010000000000000000860201928390039055600654919250901115610c5b57610c57600754600654680100000000000000008602811515610af157fe5b6007555b85600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442610c916108d5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b33600160a060020a03811660009081526003602052604081205490811115610cef57610cef81610b48565b610cf7610740565b5050565b60006108a63483610385565b600080600080610d176001610869565b11610d2157600080fd5b610d2b6000610869565b33600160a060020a038116600090815260056020908152604080832080546801000000000000000087020190556004909152812080549082905590920194509250610d77908490610385565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458848360405191825260208201526040908101905180910390a2505050565b600080831515610dd55760009150610df1565b50828202828482811515610de557fe5b0414610ded57fe5b8091505b5092915050565b6000808284811515610e0657fe5b04949350505050565b600082821115610e1b57fe5b50900390565b6006546000906b204fce5e3e25026110000000908290633b9aca00610ea0610e9a7259aedfc10d7279c5eed140164540000000000088026002850a670de0b6b3a764000002016f0f0bdc21abb48db201e86d40000000008502017704140c78940f6a24fdffc78873d4490d210000000000000001610f2c565b85610e0f565b811515610ea957fe5b0403949350505050565b600082820183811015610ded57fe5b600654600090670de0b6b3a7640000838101918101908390610f19640218711a00828504633b9aca0002018702600283670de0b6b3a763ffff1982890a8b90030104633b9aca0002811515610f1357fe5b04610e0f565b811515610f2257fe5b0495945050505050565b80600260018201045b818110156108a6578091506002818285811515610f4e57fe5b0401811515610f5957fe5b049050610f355600a165627a7a72305820ae4b88f50b406a7a09a38f04fa4be89df8d2f5bf3e029f8320e56dcf651469010029

   Swarm Source:
bzzr://ae4b88f50b406a7a09a38f04fa4be89df8d2f5bf3e029f8320e56dcf65146901

 

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.