Contract Overview
Balance: 8.801497530894129834 Ether
Ether Value: $802.96 (@ $91.23/ETH)
Transactions: 13418 txns
Token Tracker: Proof of Trevon James (PoTJ)
 Latest 25 transactions from a total of 13418 transactions

TxHash Age From To Value [TxFee]
0x8ba2b625849613add729c32e3854bffa0049670f53dc9d8de6111c53023a075521 days 17 mins ago0x54fb0f19a148054c4c0987e00285af96b21e259b  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000311812
0x2ebc69be7ae92aafb2198c478b4f9a5eaaf13ae781939cc2888c0c83572b5fd838 days 3 hrs ago0x54fb0f19a148054c4c0987e00285af96b21e259b  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000227684
0xf5a24e74d3294cbf077674c3118db08fa3961f74f5e14ff93b1ffa4db033e3f852 days 21 hrs ago0x7c0c417a5e9de5c97bd979b26af96b113aa1937d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000389765
0x12841bf07757edebcc38daf398a417d9669452c4e9de378e1fdda8656007097561 days 20 hrs ago0xab8357856c5d104386d92e8834ff5f005b71794f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000311812
0xc298d90cd5680b7f61fd63a6fd48d4fe26427cccc063af80780d6c2f7a0803b967 days 2 hrs ago0x15a3139bd4767e8ee141467e49f0b223c7e1f5de  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000155906
0xed16db0ee1def31172fa37ceb31dc69118cb8ad3e2212a31c87fc641996912e268 days 12 hrs ago0xb6164d5445ef7e83e5b61233762503985f18691d  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000130377
0x3a5e40985145a0559bbb66d1b6ec9adddd781bc8b7d6a9e2f000fe53665420e468 days 16 hrs ago0xcb2b0eb210754bd93002faaca102092ef70b1d7e  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.0001050686
0xddcb178a1f3b120e2401a5e22aa4832cf652d7b600424b18afb742ae7fdc294a68 days 16 hrs ago0xcb2b0eb210754bd93002faaca102092ef70b1d7e  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.0001781819
0x388cf94cc13dd01256bc60059d49caa4794f0f1f86d215c203199034d48b45b068 days 18 hrs ago0x1f0f0de0ec5465f2f76d60284fb25615cefa48c7  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000397288
0xf9922ec1f83bd3a6d883106506b52304245a4bc09b73b9188130f091140dd8ae68 days 18 hrs ago0x1f0f0de0ec5465f2f76d60284fb25615cefa48c7  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000347672
0xb06cf8039914a7ab009e896111e6ede1c9d88b6e33c3adeb968af02fa80d6c1569 days 6 hrs ago0xf0c8560803da6995c4af5bba46676a0591f1656c  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000023158
0xf4bae162a71df6fe9d053e2efd172de2404a33af220f1b9103ad204c20e0eb9f69 days 11 hrs ago0x38e00b796e27e5cbb6a9eba8b5688801af4d20a9  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000130377
0x6a5bfe2d05a57e208cc61af3256c2ebfcab3286218aec0248f51a0815ab0891569 days 12 hrs ago0x38e00b796e27e5cbb6a9eba8b5688801af4d20a9  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000199156
0xd662d2a575d659630e725f39b9b0a942218ad563ecfd4e35cf910aace288d35978 days 5 hrs ago0xd2c379be3e5acbf96fcf16013afade5c6b201e03  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000260754
0x0acd68b21195c006e9ea6257af3401991d2b56fa67a50828421cb34ad3cdaf0e78 days 5 hrs ago0xd2c379be3e5acbf96fcf16013afade5c6b201e03  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000448677
0x1fc032c3d00a40e15c40ab4cc11c31ce689c958f3599bf49247516111d1f77f378 days 5 hrs ago0xd2c379be3e5acbf96fcf16013afade5c6b201e03  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000467718
0x2ee4c756c41f5743da23cddd8a044778282ddbba87efde0369a127c5f0db71b481 days 21 hrs ago0xab8357856c5d104386d92e8834ff5f005b71794f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000389765
0x00588caf5f20e9b99f066071ab5a9b2e6ed111e659d0e4d039eb3b1e7023578582 days 1 hr ago0xab8357856c5d104386d92e8834ff5f005b71794f  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000077953
0x787091694079b83b7f88d1f5fedf4cfc4e990777f1dde2210558a26dcdaf913a91 days 5 hrs ago0xe41b6cdcd395bf6dcece22cc9a2cae4d8271f0e0  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.0003215966
0x6d5da805a421c3cee85e144ec6adbade76e9ae5aacc3b515d5527fce9c6d3e7f91 days 5 hrs ago0xe41b6cdcd395bf6dcece22cc9a2cae4d8271f0e0  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.0003174208
0x67a2454c00768ea951959fdcadda704013ced71782666425dceae316daf1a36092 days 19 hrs ago0x0aa8e03ff2d1fa286c614c876c56bcd224acdf25  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000148983
0xb115d69a39d2a434ca77b557b5cfe8540cb6f4e402a3da10d5522129a1ed7ce792 days 20 hrs ago0x15a3139bd4767e8ee141467e49f0b223c7e1f5de  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000233859
0x40b654ca02e6ab6bb90be71db8e5268182597d4edc786e76283b991b45605be493 days 6 hrs ago0x0aa8e03ff2d1fa286c614c876c56bcd224acdf25  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000130377
0xb6cc889f601318fbd6a80fb0300199b801b96ac4c34775598ef7e5bb817c87e794 days 17 hrs ago0xa2381223639181689cd6c46d38a1a4884bb6d83c  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000225828
0x814de4aebe45ff737a74b6dfa7eac00f638c94be8f6cba9c34269b9ca1b4a27595 days 15 hrs ago0xd2c379be3e5acbf96fcf16013afade5c6b201e03  IN   0xc28e860c9132d55a184f9af53fc85e90aa3a01530 Ether0.000311812
[ 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
0xed16db0ee1def31172fa37ceb31dc69118cb8ad3e2212a31c87fc641996912e2645696368 days 12 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xb6164d5445ef7e83e5b61233762503985f18691d0.007436549925424224 Ether
0xddcb178a1f3b120e2401a5e22aa4832cf652d7b600424b18afb742ae7fdc294a645589268 days 16 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xcb2b0eb210754bd93002faaca102092ef70b1d7e0.008925959471910777 Ether
0xf9922ec1f83bd3a6d883106506b52304245a4bc09b73b9188130f091140dd8ae645559868 days 18 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x1f0f0de0ec5465f2f76d60284fb25615cefa48c70.005886466948323671 Ether
0xf4bae162a71df6fe9d053e2efd172de2404a33af220f1b9103ad204c20e0eb9f645100969 days 11 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x38e00b796e27e5cbb6a9eba8b5688801af4d20a90.001769430610294991 Ether
0xd662d2a575d659630e725f39b9b0a942218ad563ecfd4e35cf910aace288d359639765878 days 5 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xd2c379be3e5acbf96fcf16013afade5c6b201e032.527525432542140215 Ether
0x787091694079b83b7f88d1f5fedf4cfc4e990777f1dde2210558a26dcdaf913a631897391 days 5 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xe41b6cdcd395bf6dcece22cc9a2cae4d8271f0e00.033613741854729854 Ether
0x40b654ca02e6ab6bb90be71db8e5268182597d4edc786e76283b991b45605be4630665393 days 6 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x0aa8e03ff2d1fa286c614c876c56bcd224acdf250.012549086447863281 Ether
0xb6cc889f601318fbd6a80fb0300199b801b96ac4c34775598ef7e5bb817c87e7629781994 days 17 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xa2381223639181689cd6c46d38a1a4884bb6d83c0.001090715758835116 Ether
0xfdf339ad92db2a3777af543fe8e1c9947d5af3a67bb86d92456a81fe26486a35627586098 days 10 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xefcd5e087e05058b362ea17acae5f1ec420864221.364314512556573395 Ether
0xae2bf56b43e7c32ca7fab01995cf38e52aedd4f6a24a2ecb2ac05befe220774b6265484100 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xefcd5e087e05058b362ea17acae5f1ec420864220.215905921737021641 Ether
0x04cd9fa1a352be8fcd178bf3561cb3477454c0c4f20496ec6aaaa85f2c494ac26260082101 days 2 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x6cf441b689683d3049f11b02c001e14bd0d864210.003853541006137728 Ether
0xb1973d648614e520fbc677f21770c951d25b6b1439b2386c6145cc0e80d731d06238523104 days 17 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xccfd0c63c6335c5db47e5ddf0cb850dca8d25e220.008276104997899358 Ether
0x34d01c5105430454584a1fba0f69f1b7ec77fb829d214e57bbe0630bdee327806218079108 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xf0c8560803da6995c4af5bba46676a0591f1656c0.01208098787337535 Ether
0x6ffb65137801120e76957e2aec20c7fee7823ac857ec6da6d26fa6acc96a182a6211426109 days 6 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xd439ecd30792df6b0eac597c301208e9a47c5d320.041876158517750585 Ether
0x6cdaaeda863c074ca15b9cd5eeb830d8a7950fb1a0c148733783e507f1a8bae76195402112 days 13 mins ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x0923c9201c496a6da51dcb380909d02c5ba556200.020138176715848723 Ether
0x6ffc978c64ed1f10d18d43a54cef3e4ab1a6d162a86a6f114290eb65b8be9d5a6182515114 days 4 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x404015fb24d90ee668e65798b821bfcd3b8e8f100.060502712591971308 Ether
0x1999f912a109478eb01a4b032ca651197fb9cb56a2ed622a36049c2b6f48a49c6177062115 days 2 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xf8a306791d7e1e4693645b816fc021a35dd039380.015170657203250559 Ether
0x42b7450e3a5c5642b5f6cc441724f3e86d7c0aa24603151fedffc5135406728b6166916116 days 19 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xccfd0c63c6335c5db47e5ddf0cb850dca8d25e220.000167800843720254 Ether
0xe6df0c9bf6529c37fc173e5070d4073062584c00c0883e3fe393f2f32a8b6ce46151377119 days 10 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x2539e5ee8b93c8319232d3a7cddd03f009b3458f0.129271802191185971 Ether
0x98be8849bfd21faf69a807e4b11e17943d2383461a93dd089b7dc356c4eed6d26131058122 days 21 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x1f35e90d6de611183bb05fea9cbbb08f6ed37fc80.012565300593978597 Ether
0x8a0118198e7cb3192b98cc412f0fd0af58b266501f67456d1b2efaf136345f6f6102783127 days 15 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530xcb2b0eb210754bd93002faaca102092ef70b1d7e0.01680253827698845 Ether
0x70d9a3b5209e90993d2b3a749a25fc349752593cb759a346a00c2397a593b9206100381128 days 1 hr ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x33b0960a41cbd8d83e5ccc7567c3925f5c93b31d0.015017330245924947 Ether
0xf9a2e59ad2d2f32c725518422db1a9f68077e75c706ccc75b92b16a373db8fcb6093946129 days 3 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x10b99966bf1548dbbcf92fbcfbad66e6fc3f61970.03147883973407406 Ether
0x2dd8325593ce2e530f5c9de79b2f4bf99c71ae3596f92595ad310fcf6c4149b46075309132 days 6 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x90eb14337ef38a1f73574674b785d57f2d66b3530.126440777624628094 Ether
0xa3aa0ddfd478ac6202d690b83a2194755130f529687f8bf4fa9bc6d725a9c1d66073602132 days 14 hrs ago0xc28e860c9132d55a184f9af53fc85e90aa3a01530x168efa40108330c4f85f0191be36169b53daa7190.003314510696059643 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: POTJ
Compiler Text: 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 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.