Contract 0xffb8cca6d55762df595f21e78f21cd8dfeadf1c8

 

Contract Overview

Balance:
5.642319100518067425 Ether

EtherValue:
$908.19 (@ $160.96/ETH)
TxHash Block Age From To Value [TxFee]
0x5ad5b469f0baf801b7e47578e54f33c46c7e96cdc28894d9230eda062722e5c9721050711 days 16 hrs ago0x5b81e57c809922009a874fe27f4df402ccef5e6a IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.0010840452
0x30efff2860287adc67ca0c206196b4b085cc00176d774afc4b082067df627fd7720819912 days 5 hrs ago0x4ed4c6741e4b94931c3ecb8090306311c7e59833 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000235662
0x93060e131613c1255592e5d95615cfbd753240a0a917657c5bc1704cd4a595e4718574317 days 50 mins ago0x87be304002701be4cc7f403eb1ce5090b263340c IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000471324
0x07eddba835a975d442c1cb1669f60bbb97bdedddf889ddc6b0c67467be23425b717569619 days 2 hrs ago0xe41dd02345c3015fed360d91553c1c9615c296c4 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.0000522996
0x91563e8f0bc6f8359b04042c04cea98df32b499ed293b45ef0341e31fbebf007717569019 days 2 hrs ago0xe41dd02345c3015fed360d91553c1c9615c296c4 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.0000680496
0x7474a001bc916a577420be3310db2a3f21f8edb1409fb8aeb253782a9ac9cc1b714454625 days 10 hrs ago0xe012157d741d568d5f14ddc6bbb724e9132ca86d IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000295662
0xaedf3c3057e954098be3eb8afe73a305b9b7f35f6a5460661a99050cce8f5776713523527 days 8 hrs ago0x2f20fc4493bd6adab696ee89ac0ab035727aa2e4 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000449470156
0x52df3be0352524f8debde7b7f27eaa5dabfd06b8dab1ecd9ab17151af9d57d6d711044932 days 5 hrs ago0x97f705a6014de6a62b5d5809b7686334bac6fb10 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000087166
0x26b3d7f7739a128bf0ee2bde1ef7167edaf933c9834b187ccaa2d0ecbd0442d9710679332 days 23 hrs ago0x21db5ce96df3b94a9def892b01f8a5a061630a9e IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000257247
0x5902281f6d47ebb82e7e6b7617ed89515a0be5307540d40409836b3ed5c6b4a9710678532 days 23 hrs ago0x7c76a64ac61d1eeafe2b8af6f7f0a6a1890418f3 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.00028583
0x4c7999384b1a490c661d3cbc016dcff3768e35ac24e816fa7632a6176b45e3a3710606233 days 2 hrs ago0x87be304002701be4cc7f403eb1ce5090b263340c IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000235662
0x0d4320e88329859636f015517b5225de4b2709aaf48ccb6543ce527c2ee842e0707793338 days 4 hrs ago0x5b81e57c809922009a874fe27f4df402ccef5e6a IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.00135505653
0xc4b6a70b486a3bd86dd14312963490104426387592c5df4c2300005eae6a9dc9705544542 days 5 hrs ago0x1243dff2c50c48038f1a913867cfe16d17e9f398 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000265662
0x39e3a616a4ef1d1901ec1e5790e2621bd0829902b8efc7ab375522cae766151a705512842 days 6 hrs ago0xec31176d4df0509115abc8065a8a3f8275aaff2b IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.00048368
0xb61b72072a2d93ac0ff43b53e860cc493a79eefa21e0be571fedd400adfc5de8704627043 days 20 hrs ago0x7c76a64ac61d1eeafe2b8af6f7f0a6a1890418f3 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000057562
0x931b765089e646bb928dbfbb284871c0d8289c1098925b916aec277e5330098f704614443 days 21 hrs ago0x7c76a64ac61d1eeafe2b8af6f7f0a6a1890418f3 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000129927
0x61757b309c04c4f6c1b9929311e40d8591505ed76f5a469cb1fc11904f7f749c704471644 days 3 hrs ago0x4ed4c6741e4b94931c3ecb8090306311c7e59833 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000353493
0x0b62a89f74fdeeb14774616ea2bb662c7d6d6b5400293825f41812b4dce1dff5704417244 days 5 hrs ago0xec31176d4df0509115abc8065a8a3f8275aaff2b IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.00056895
0x24795c9b2b5277f56b565c82e04cec5fe7dffd3d74475665b319fa8396f4ec8f704412044 days 6 hrs ago0xec31176d4df0509115abc8065a8a3f8275aaff2b IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000095596
0x98676d4be10b0deada1d9ef6e1ea4feaba9b65cec94740a6574fb048f28ecb53704234244 days 13 hrs ago0xe012157d741d568d5f14ddc6bbb724e9132ca86d IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000353493
0x18bc2a60bff3e8c0c6e2fa7e4fbaf9f4e34240eba82682e4f6ee1879645d9322703822545 days 7 hrs ago0x5b81e57c809922009a874fe27f4df402ccef5e6a IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.0002827944
0x96338a968cd47e00b84d533961a157e5faf4ad083ad3ad386db325c750f69cc1702991346 days 19 hrs ago0x87be304002701be4cc7f403eb1ce5090b263340c IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000353493
0xc87e959f3cf5ef2e371afa0cadaa6e7c45adf6a5b262c9a7d16c2dfcec0fbe21700754550 days 19 hrs ago0xe41dd02345c3015fed360d91553c1c9615c296c4 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.0000610162
0x0364255ecb5742cde47ec53c2e2b39eecab3df575df28252ae755e7f50516707700747550 days 19 hrs ago0x7c76a64ac61d1eeafe2b8af6f7f0a6a1890418f3 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000086618
0x622861513ad6c36b3ea62b512e25866939c237cc4c12ad325b78d69e20341d14700548251 days 4 hrs ago0x4ed4c6741e4b94931c3ecb8090306311c7e59833 IN  0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80 Ether0.000471324
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x07eddba835a975d442c1cb1669f60bbb97bdedddf889ddc6b0c67467be23425b717569619 days 2 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80xe41dd02345c3015fed360d91553c1c9615c296c40.055970897404744231 Ether
0x52df3be0352524f8debde7b7f27eaa5dabfd06b8dab1ecd9ab17151af9d57d6d711044932 days 5 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x97f705a6014de6a62b5d5809b7686334bac6fb100.004274367735429267 Ether
0x26b3d7f7739a128bf0ee2bde1ef7167edaf933c9834b187ccaa2d0ecbd0442d9710679332 days 23 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x21db5ce96df3b94a9def892b01f8a5a061630a9e0.871841116619568436 Ether
0x5902281f6d47ebb82e7e6b7617ed89515a0be5307540d40409836b3ed5c6b4a9710678532 days 23 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x7c76a64ac61d1eeafe2b8af6f7f0a6a1890418f30.576268197775331316 Ether
0x39e3a616a4ef1d1901ec1e5790e2621bd0829902b8efc7ab375522cae766151a705512842 days 6 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80xec31176d4df0509115abc8065a8a3f8275aaff2b0.805702067740534575 Ether
0x931b765089e646bb928dbfbb284871c0d8289c1098925b916aec277e5330098f704614443 days 21 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x0111e8a755a4212e6e1f13e75b1eaba8f837a2130.040340739592366989 Ether
0x84cf7b2367821e66a9780c4b4cd5a436cc6482e5a9b0b597266b6e3d4c0099a2703435546 days 6 mins ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.002435963916518362 Ether
0x91f930d9973e2eccddd2d6250d69b2c6e046b1544ac133d535e410b60f99c427702904246 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0xad44da51c9c7e6823364cf4d0c9caade638bd444d97189bd4091622e75ec4f6e702372447 days 21 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.003425980428579925 Ether
0x47ce2ea0df2986e6b582404413fb11b1aabdc720ce87bd3cf4d4698b5de01d1c701778448 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0x41ef78d8e42b70b27f8db52085469e8f6c383a66003c74c8aa1fdfb68523c127701376149 days 16 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.0002500125 Ether
0xee1e18a21fec95545500236cf1b5b871ceec6b2aa68969d24574b78491a49740701304749 days 19 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0x7e89cc75f6f20bba15168c0cbed06469902af2ce0294757925b02a100ab15f8d701298249 days 19 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.003280186047819621 Ether
0x0493284975d566285cde79cef066d8b8e7f1ea2e7e728bd063e802bc71932f77701201749 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0xc87e959f3cf5ef2e371afa0cadaa6e7c45adf6a5b262c9a7d16c2dfcec0fbe21700754550 days 19 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80xe41dd02345c3015fed360d91553c1c9615c296c40.01663382228809477 Ether
0x0364255ecb5742cde47ec53c2e2b39eecab3df575df28252ae755e7f50516707700747550 days 19 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x0111e8a755a4212e6e1f13e75b1eaba8f837a2130.074668352454091873 Ether
0x9ee7619b5fd0eda82fe58e9d391984b8f3f1939a3f98344b6c9a174d1f78a367700744250 days 19 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0x129490122d43a014a8de3dd2b0360517c695450fa629dc6c9035c79b50146ad8700665350 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0xb787d12ce3886c5333076e874974e20ffb1f1ab18d6a3e1ec27d913688f20c8d700657250 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0x5dd6daac181eb021a828d3dc76e183a01b5137d05ace9eb92ce3e751a71cf035700653950 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.006357689707600057 Ether
0xde4aa67af6be0acaf463c115389eefd948da62402d40248944490a1167036653700303451 days 14 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x846dedb19b105edafac2c9410fa2b5e73b596a140.953650252849686669 Ether
0xe74c427eb2ac46f0e6a3235f97b553ad765a8103baa8adbab2c2cedf69ddd898700294751 days 15 hrs ago0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80x6cb1a2088d4c158fba3a0cdb40cc614b322069a10.107742043262179913 Ether
0x6509be5eedaab8aac7e465baa8314d2e9bba68352d97528ba1d3e0ca04d001db700097051 days 23 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.000005625 Ether
0x887afb49f6a88f673efb65043606de1f7796260f6ecd639a4c1f271e929a3549699981852 days 4 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.001 Ether
0xd5a8f62954ebb0d24cf0ff2598d0ae3b9fd44b9cb1e74d251c340ac7553167b7699622452 days 19 hrs ago0x5c68bb8b8b000c5d750e4d70427d8a99c49bdaaa0xffb8cca6d55762df595f21e78f21cd8dfeadf1c80.00867289432725207 Ether
[ Download CSV Export 
Contract Source Code Verified (Exact Match)
Contract Name: ProofofEIF
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.25;

/*
*
*  _____                  __          __   ______ _____ ______ 
* |  __ \                / _|        / _| |  ____|_   _|  ____|
* | |__) | __ ___   ___ | |_    ___ | |_  | |__    | | | |__   
* |  ___/ '__/ _ \ / _ \|  _|  / _ \|  _| |  __|   | | |  __|  
* | |   | | | (_) | (_) | |   | (_) | |   | |____ _| |_| |     
* |_|   |_|  \___/ \___/|_|    \___/|_|   |______|_____|_|     
*                                                              
*            Proof of EIF   -  ZERO DEV FEES!
*
* [✓] 5% EIF fee - 5% goes to EasyInvestForever (excluding the shared divs below)
* [✓] 48%-8% Withdraw fee goes to Token Holders as divs 
*     (fee starts at 48% and reduces down to 8% over 30 day period to discourage early dumps)
* [✓] 15% Deposit fee of which at least 5% goes to Token Holders as divs 
*      (up to 10% to any referrers - referrers are sticky for better referral earnings)
* [✓] 0% Token transfer fee enabling third party trading
* [✓] Multi-level STICKY Referral System - 10% from total purchase
*  *  [✓]  1st level 50% (5% from total purchase)
*  *  [✓]  2nd level 30% (3% from total purchase)
*  *  [✓]  3rd level 20% (2% from total purchase)
*/


/**
 * Definition of contract accepting Proof of EIF (EIF) tokens
 * Games or any other innovative platforms can reuse this contract to support Proof Of EIF (EIF) tokens
 */
contract AcceptsEIF {
    ProofofEIF public tokenContract;

    constructor(address _tokenContract) public {
        tokenContract = ProofofEIF(_tokenContract);
    }

    modifier onlyTokenContract {
        require(msg.sender == address(tokenContract));
        _;
    }

    /**
    * @dev Standard ERC677 function that will handle incoming token transfers.
    *
    * @param _from  Token sender address.
    * @param _value Amount of tokens.
    * @param _data  Transaction metadata.
    */
    function tokenFallback(address _from, uint256 _value, bytes _data) external returns (bool);
}


contract ProofofEIF {

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

    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }
    
    modifier notGasbag() {
      require(tx.gasprice <= 200000000000); // max 200 gwei
      _;
    }

    modifier notContract() {
      require (msg.sender == tx.origin);

      _;
    }
    
    
       /// @dev Limit ambassador mine and prevent deposits before startTime
    modifier antiEarlyWhale {
        if (isPremine()) { //max 1ETH purchase premineLimit per ambassador
          require(ambassadors_[msg.sender] && msg.value <= premineLimit);
        // stop them purchasing a second time
          ambassadors_[msg.sender]=false;
        }
        else require (isStarted());
        _;
    }
    
    
    
    // administrators can:
    // -> change the name of the contract
    // -> change the name of the token
    // -> change the PoS difficulty (How many tokens it costs to hold a masternode, in case it gets crazy high later)
    // -> a few more things such as add ambassadors, administrators, reset more things
    // they CANNOT:
    // -> take funds
    // -> disable withdrawals
    // -> kill the contract
    // -> change the price of tokens
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }    
    
    // administrator list (see above on what they can do)
    mapping(address => bool) public administrators;
    // ambassadors list (promoters who will get the contract started)
    mapping(address => bool) public ambassadors_;

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

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

    event onReferralUse(
        address indexed referrer,
        uint8  indexed level,
        uint256 ethereumCollected,
        address indexed customerAddress,
        uint256 timestamp
    );



    string public name = "Proof of EIF";
    string public symbol = "EIF";
    uint8 constant public decimals = 18;
    uint8 constant internal entryFee_ = 15;
    
    /// @dev 48% dividends for token selling
    uint8 constant internal startExitFee_ = 48;

    /// @dev 8% dividends for token selling after step
    uint8 constant internal finalExitFee_ = 8;

    /// @dev Exit fee falls over period of 30 days
    uint256 constant internal exitFeeFallDuration_ = 30 days;
    
    /// @dev starting
    uint256 public startTime = 0; //  January 1, 1970 12:00:00
    mapping(address => uint256) internal bonusBalance_;
    uint256 public depositCount_;
    uint8 constant internal fundEIF_ = 5; // 5% goes to first EasyInvestForever contract
    
    /// @dev anti-early-whale
    uint256 public maxEarlyStake = 2.5 ether;
    uint256 public whaleBalanceLimit = 75 ether;
    uint256 public premineLimit = 1 ether;
    uint256 public ambassadorCount = 1;
    
    /// @dev PoEIF address
    address public PoEIF;
    
    // Address to send the 5% EasyInvestForever Fee
    address public giveEthFundAddress = 0x35027a992A3c232Dd7A350bb75004aD8567561B2;
    uint256 public totalEthFundRecieved; // total ETH EasyInvestForever recieved from this contract
    uint256 public totalEthFundCollected; // total ETH collected in this contract for EasyInvestForever
    
    
    uint8 constant internal maxReferralFee_ = 10; // 10% from total sum (lev1 - 5%, lev2 - 3%, lev3 - 2%)
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2 ** 64;
    uint256 public stakingRequirement = 50e18;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    
    // Special Platform control from scam game contracts on PoEIF platform
    mapping(address => bool) public canAcceptTokens_; // contracts, which can accept PoEIF tokens

    mapping(address => address) public stickyRef;
    
    /*=======================================
    =            CONSTRUCTOR                =
    =======================================*/

   constructor () public {
     PoEIF = msg.sender;
     // initially set only contract creator as ambassador and administrator but can be changed later
     ambassadors_[PoEIF] = true;
     administrators[PoEIF] = true;
   }    
    

    function buy(address _referredBy) notGasbag antiEarlyWhale public payable {
        purchaseInternal(msg.value, _referredBy);
    }

    function() payable notGasbag antiEarlyWhale public {
        purchaseInternal(msg.value, 0x0);
    }
    
/**
 * Sends FUND money to the Easy Invest Forever Contract
 * Contract address can also be updated by admin if required in the future
 */
 
     function updateFundAddress(address _newAddress)
        onlyAdministrator()
        public
    {
        giveEthFundAddress = _newAddress;
    }
    
    function payFund() public {
        uint256 ethToPay = SafeMath.sub(totalEthFundCollected, totalEthFundRecieved);
        require(ethToPay > 0);
        totalEthFundRecieved = SafeMath.add(totalEthFundRecieved, ethToPay);
        if(!giveEthFundAddress.call.value(ethToPay)()) {
            revert();
        }
    }

 /**
  * Anyone can donate divs using this function to spread some love to all tokenholders without buying tokens
  */
    function donateDivs() payable public {
        require(msg.value > 10000 wei && tokenSupply_ > 0);

        uint256 _dividends = msg.value;
        // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
        profitPerShare_ += (_dividends * magnitude / tokenSupply_);
    } 

    // @dev Function setting the start time of the system  - can also be reset when contract balance is under 10ETH
    function setStartTime(uint256 _startTime) onlyAdministrator public {
        if (address(this).balance < 10 ether ) {
            startTime = _startTime; 
            // If not already in premine, set premine to start again - remove default ambassador afterwards for zero premine
            if (!isPremine()) {depositCount_ = 0; ambassadorCount = 1; ambassadors_[PoEIF] = true;}
        }
    }
    
    // @dev Function for find if premine
    function isPremine() public view returns (bool) {
      return depositCount_ < ambassadorCount;
    }

    // @dev Function for find if started
    function isStarted() public view returns (bool) {
      return startTime!=0 && now > startTime;
    }    

    function reinvest() onlyStronghands public {
        uint256 _dividends = myDividends(false);
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }

    function exit() public {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyStronghands public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false);
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        _customerAddress.transfer(_dividends);
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyBagholders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee()), 100);
        
        uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundEIF_), 100);
        // Take out dividends and then _fundPayout
        uint256 _taxedEthereum =  SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout);

        // Add ethereum to send to fund
        totalEthFundCollected = SafeMath.add(totalEthFundCollected, _fundPayout);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        emit onTokenSell(_customerAddress, _tokens, _taxedEthereum, now, buyPrice());
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        // also disables transfers until ambassador phase is over
        // ( we dont want whale premines )
        require(!isPremine() && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) withdraw();

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

        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);


        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        return true;
    }


 /**
    * Transfer token to a specified address and forward the data to recipient
    * ERC-677 standard
    * https://github.com/ethereum/EIPs/issues/677
    * @param _to    Receiver address.
    * @param _value Amount of tokens that will be transferred.
    * @param _data  Transaction metadata.
    */
    function transferAndCall(address _to, uint256 _value, bytes _data) external returns (bool) {
      require(_to != address(0));
      require(canAcceptTokens_[_to] == true); // security check that contract approved by PoEIF platform
      require(transfer(_to, _value)); // do a normal token transfer to the contract

      if (isContract(_to)) {
        AcceptsEIF receiver = AcceptsEIF(_to);
        require(receiver.tokenFallback(msg.sender, _value, _data));
      }

      return true;
    }

    /**
     * Additional check that the game address we are sending tokens to is a contract
     * assemble the given address bytecode. If bytecode exists then the _addr is a contract.
     */
     function isContract(address _addr) private constant returns (bool is_contract) {
       // retrieve the size of the code on target address, this needs assembly
       uint length;
       assembly { length := extcodesize(_addr) }
       return length > 0;
     }

    /**
     * Precautionary measures in case we need to adjust the masternode rate.
     */
    function setStakingRequirement(uint256 _amountOfTokens)
        onlyAdministrator()
        public
    {
        stakingRequirement = _amountOfTokens;
    }
    
     /**
     * Set new Early limits (only appropriate at start of new game).
     */
    function setEarlyLimits(uint256 _whaleBalanceLimit, uint256 _maxEarlyStake, uint256 _premineLimit)
        onlyAdministrator()
        public
    {
        whaleBalanceLimit = _whaleBalanceLimit;
        maxEarlyStake = _maxEarlyStake;
        premineLimit = _premineLimit;
    }
    

    /**
     * Add or remove game contract, which can accept PoEIF (EIF) tokens
     */
    function setCanAcceptTokens(address _address, bool _value)
      onlyAdministrator()
      public
    {
      canAcceptTokens_[_address] = _value;
    }

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

  /**
   * @dev add an address to the ambassadors_ list (this can be done anytime until the premine finishes)
   * @param addr address
   * @return true if the address was added to the list, false if the address was already in the list
   */
  function addAmbassador(address addr) onlyAdministrator public returns(bool success) {
    if (!ambassadors_[addr] && isPremine()) {
      ambassadors_[addr] = true;
      ambassadorCount += 1;
      success = true;
    }
  }


  /**
   * @dev remove an address from the ambassadors_ list
   * (only do this if they take too long to buy premine - they are removed automatically during premine purchase)
   * @param addr address
   * @return true if the address was removed from the list,
   * false if the address wasn't in the list in the first place
   */
  function removeAmbassador(address addr) onlyAdministrator public returns(bool success) {
    if (ambassadors_[addr]) {
      ambassadors_[addr] = false;
      ambassadorCount -= 1;
      success = true;
    }
  }
  
    /**
   * @dev add an address to the administrators list
   * @param addr address
   * @return true if the address was added to the list, false if the address was already in the list
   */
  function addAdministrator(address addr) onlyAdministrator public returns(bool success) {
    if (!administrators[addr]) {
      administrators[addr] = true;
      success = true;
    }
  }


  /**
   * @dev remove an address from the administrators list
   * @param addr address
   * @return true if the address was removed from the list,
   * false if the address wasn't in the list in the first place or not called by original administrator
   */
  function removeAdministrator(address addr) onlyAdministrator public returns(bool success) {
    if (administrators[addr] && msg.sender==PoEIF) {
      administrators[addr] = false;
      success = true;
    }
  }


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

    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    function myTokens() public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function myDividends(bool _includeReferralBonus) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    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 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundEIF_), 100);
            uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout);
            return _taxedEthereum;
        }
    }

    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundEIF_), 100);
            uint256 _taxedEthereum =  SafeMath.add(SafeMath.add(_ethereum, _dividends), _fundPayout);

            return _taxedEthereum;
        }
    }

    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereumToSpend, entryFee_), 100);
        uint256 _fundPayout = SafeMath.div(SafeMath.mul(_ethereumToSpend, fundEIF_), 100);
        uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereumToSpend, _dividends), _fundPayout);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    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 _fundPayout = SafeMath.div(SafeMath.mul(_ethereum, fundEIF_), 100);
        uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_ethereum, _dividends), _fundPayout);
        return _taxedEthereum;
    }

    function exitFee() public view returns (uint8) {
        if (startTime==0 || now < startTime){
           return startExitFee_;
        }
        
        uint256 secondsPassed = now - startTime;
        if (secondsPassed >= exitFeeFallDuration_) {
            return finalExitFee_;
        }
        uint8 totalChange = startExitFee_ - finalExitFee_;
        uint8 currentChange = uint8(totalChange * secondsPassed / exitFeeFallDuration_);
        uint8 currentFee = startExitFee_- currentChange;
        return currentFee;
    }
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/

    // Make sure we will send back excess if user sends more than early limits
    function purchaseInternal(uint256 _incomingEthereum, address _referredBy)
      internal
      notContract() // no contracts allowed
      returns(uint256) {

      uint256 purchaseEthereum = _incomingEthereum;
      uint256 excess;
      if(purchaseEthereum > maxEarlyStake ) { // check if the transaction is over early limit of 2.5 ether
          if (SafeMath.sub(address(this).balance, purchaseEthereum) <= whaleBalanceLimit) { // if so check the contract is less than 75 ether whaleBalanceLimit
              purchaseEthereum = maxEarlyStake;
              excess = SafeMath.sub(_incomingEthereum, purchaseEthereum);
          }
      }
    
      if (excess > 0) {
        msg.sender.transfer(excess);
      }
    
      purchaseTokens(purchaseEthereum, _referredBy);
    }

    function handleReferrals(address _referredBy, uint _referralBonus, uint _undividedDividends) internal returns (uint){
        uint _dividends = _undividedDividends;
        address _level1Referrer = stickyRef[msg.sender];
        
        if (_level1Referrer == address(0x0)){
            _level1Referrer = _referredBy;
        }
        // is the user referred by a masternode?
        if(
            // is this a referred purchase?
            _level1Referrer != 0x0000000000000000000000000000000000000000 &&

            // no cheating!
            _level1Referrer != msg.sender &&

            // does the referrer have at least X whole tokens?
            // i.e is the referrer a godly chad masternode
            tokenBalanceLedger_[_level1Referrer] >= stakingRequirement
        ){
            // wealth redistribution
            if (stickyRef[msg.sender] == address(0x0)){
                stickyRef[msg.sender] = _level1Referrer;
            }

            // level 1 refs - 50%
            uint256 ethereumCollected =  _referralBonus/2;
            referralBalance_[_level1Referrer] = SafeMath.add(referralBalance_[_level1Referrer], ethereumCollected);
            _dividends = SafeMath.sub(_dividends, ethereumCollected);
            emit onReferralUse(_level1Referrer, 1, ethereumCollected, msg.sender, now);

            address _level2Referrer = stickyRef[_level1Referrer];

            if (_level2Referrer != address(0x0) && tokenBalanceLedger_[_level2Referrer] >= stakingRequirement){
                // level 2 refs - 30%
                ethereumCollected =  (_referralBonus*3)/10;
                referralBalance_[_level2Referrer] = SafeMath.add(referralBalance_[_level2Referrer], ethereumCollected);
                _dividends = SafeMath.sub(_dividends, ethereumCollected);
                emit onReferralUse(_level2Referrer, 2, ethereumCollected, _level1Referrer, now);
                address _level3Referrer = stickyRef[_level2Referrer];

                if (_level3Referrer != address(0x0) && tokenBalanceLedger_[_level3Referrer] >= stakingRequirement){
                    //level 3 refs - 20%
                    ethereumCollected =  (_referralBonus*2)/10;
                    referralBalance_[_level3Referrer] = SafeMath.add(referralBalance_[_level3Referrer], ethereumCollected);
                    _dividends = SafeMath.sub(_dividends, ethereumCollected);
                    emit onReferralUse(_level3Referrer, 3, ethereumCollected, _level2Referrer, now);
                }
            }
        }
        return _dividends;
    }

    function purchaseTokens(uint256 _incomingEthereum, address _referredBy) internal returns (uint256) {
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_incomingEthereum, maxReferralFee_), 100);
        uint256 _dividends = handleReferrals(_referredBy, _referralBonus, _undividedDividends);
        uint256 _fundPayout = SafeMath.div(SafeMath.mul(_incomingEthereum, fundEIF_), 100);
        uint256 _taxedEthereum = SafeMath.sub(SafeMath.sub(_incomingEthereum, _undividedDividends), _fundPayout);
        totalEthFundCollected = SafeMath.add(totalEthFundCollected, _fundPayout);
        
        
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy, now, buyPrice());
        // Keep track
        depositCount_++;
        return _amountOfTokens;
    }

    function ethereumToTokens_(uint256 _ethereum) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
            (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                (_tokenPriceInitial ** 2)
                                +
                                (2 * (tokenPriceIncremental_ * 1e18) * (_ethereum * 1e18))
                                +
                                ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                                +
                                (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                            )
                        ), _tokenPriceInitial
                    )
                ) / (tokenPriceIncremental_)
            ) - (tokenSupply_);

        return _tokensReceived;
    }

    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
            (
                SafeMath.sub(
                    (
                        (
                            (
                                tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                            ) - tokenPriceIncremental_
                        ) * (tokens_ - 1e18)
                    ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
                )
                / 1e18);

        return _etherReceived;
    }

    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;
        }
    }


}

library SafeMath {
    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;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    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":"ambassadorCount","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":"","type":"address"}],"name":"canAcceptTokens_","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"updateFundAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_address","type":"address"},{"name":"_value","type":"bool"}],"name":"setCanAcceptTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAmbassador","outputs":[{"name":"success","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":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"name":"","type":"bool"}],"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":"","type":"address"}],"name":"stickyRef","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isStarted","outputs":[{"name":"","type":"bool"}],"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":"maxEarlyStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"giveEthFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ambassadors_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"premineLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exitFee","outputs":[{"name":"","type":"uint8"}],"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":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAdministrator","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthFundCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_whaleBalanceLimit","type":"uint256"},{"name":"_maxEarlyStake","type":"uint256"},{"name":"_premineLimit","type":"uint256"}],"name":"setEarlyLimits","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"PoEIF","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"payFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whaleBalanceLimit","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":true,"inputs":[],"name":"totalEthFundRecieved","outputs":[{"name":"","type":"uint256"}],"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":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAdministrator","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"donateDivs","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"isPremine","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"depositCount_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAmbassador","outputs":[{"name":"success","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":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"referrer","type":"address"},{"indexed":true,"name":"level","type":"uint8"},{"indexed":false,"name":"ethereumCollected","type":"uint256"},{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onReferralUse","type":"event"}]

Contract Creation Code
60c0604052600c60808190527f50726f6f66206f6620454946000000000000000000000000000000000000000060a09081526200004091600291906200014d565b506040805180820190915260038082527f454946000000000000000000000000000000000000000000000000000000000060209092019182526200008591816200014d565b5060006004556722b1c8c1227a0000600755680410d586a20a4c0000600855670de0b6b3a76400006009556001600a55600c8054600160a060020a0319167335027a992a3c232dd7a350bb75004ad8567561b21790556802b5e3af16b1880000600f55348015620000f557600080fd5b50600b8054600160a060020a0319163317808255600160a060020a039081166000908152600160208181526040808420805460ff199081168517909155955490941683528290529190208054909216179055620001f2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019057805160ff1916838001178555620001c0565b82800160010185558215620001c0579182015b82811115620001c0578251825591602001919060010190620001a3565b50620001ce929150620001d2565b5090565b620001ef91905b80821115620001ce5760008155600101620001d9565b90565b61205c80620002026000396000f3006080604052600436106102655763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b81146102ed578063016650441461032057806306fdde03146103355780630f34dc16146103bf57806310d0ffdd146103f457806318160ddd1461040c5780631d5459f7146104215780632260937314610444578063294205b41461045c578063295c25d514610482578063313ce567146104a35780633ccfd60b146104ce5780633e0a322d146104e35780634000aea0146104fb5780634b7503341461052c5780634d6352e514610541578063544736e61461057e57806356d399e814610593578063585bc281146105a85780635e079aa5146105bd5780636122d906146105d257806362254eeb146105f35780636284ae4114610608578063688abbf71461061d57806368fa8134146106375780636b2f46321461065857806370a082311461066d57806376be15851461068e57806378e97925146106af5780637ff276bd146106c4578063817189df146106d95780638328b610146106f75780638620410b1461070f57806387c935cf146107245780638974372d1461073957806391e331071461074e578063949e8acd1461076357806395d89b4114610778578063a4d556861461078d578063a9059cbb146107a2578063b84c8246146107c6578063c47f00271461081f578063c999117614610878578063ca970bac14610899578063d6dda33d146108a1578063da7af32d146108b6578063de96587e146108cb578063e4849b32146108ec578063e9fad8ee14610904578063f088d54714610919578063fdb5a03e1461092d575b642e90edd0003a111561027757600080fd5b61027f610942565b156102cc573360009081526001602052604090205460ff1680156102a557506009543411155b15156102b057600080fd5b336000908152600160205260409020805460ff191690556102df565b6102d461094d565b15156102df57600080fd5b6102ea346000610968565b50005b3480156102f957600080fd5b5061030e600160a060020a03600435166109f5565b60408051918252519081900360200190f35b34801561032c57600080fd5b5061030e610a30565b34801561034157600080fd5b5061034a610a36565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038457818101518382015260200161036c565b50505050905090810190601f1680156103b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103cb57600080fd5b506103e0600160a060020a0360043516610ac1565b604080519115158252519081900360200190f35b34801561040057600080fd5b5061030e600435610ad6565b34801561041857600080fd5b5061030e610b2b565b34801561042d57600080fd5b50610442600160a060020a0360043516610b31565b005b34801561045057600080fd5b5061030e600435610b7f565b34801561046857600080fd5b50610442600160a060020a03600435166024351515610bdf565b34801561048e57600080fd5b506103e0600160a060020a0360043516610c29565b3480156104af57600080fd5b506104b8610cb1565b6040805160ff9092168252519081900360200190f35b3480156104da57600080fd5b50610442610cb6565b3480156104ef57600080fd5b50610442600435610d89565b34801561050757600080fd5b506103e060048035600160a060020a0316906024803591604435918201910135610e01565b34801561053857600080fd5b5061030e610f3b565b34801561054d57600080fd5b50610562600160a060020a0360043516610fa9565b60408051600160a060020a039092168252519081900360200190f35b34801561058a57600080fd5b506103e061094d565b34801561059f57600080fd5b5061030e610fc4565b3480156105b457600080fd5b5061030e610fca565b3480156105c957600080fd5b50610562610fd0565b3480156105de57600080fd5b506103e0600160a060020a0360043516610fdf565b3480156105ff57600080fd5b5061030e610ff4565b34801561061457600080fd5b506104b8610ffa565b34801561062957600080fd5b5061030e6004351515611052565b34801561064357600080fd5b506103e0600160a060020a0360043516611093565b34801561066457600080fd5b5061030e611111565b34801561067957600080fd5b5061030e600160a060020a0360043516611116565b34801561069a57600080fd5b506103e0600160a060020a0360043516611131565b3480156106bb57600080fd5b5061030e611146565b3480156106d057600080fd5b5061030e61114c565b3480156106e557600080fd5b50610442600435602435604435611152565b34801561070357600080fd5b5061044260043561117f565b34801561071b57600080fd5b5061030e6111a3565b34801561073057600080fd5b50610562611209565b34801561074557600080fd5b50610442611218565b34801561075a57600080fd5b5061030e611275565b34801561076f57600080fd5b5061030e61127b565b34801561078457600080fd5b5061034a61128e565b34801561079957600080fd5b5061030e6112e9565b3480156107ae57600080fd5b506103e0600160a060020a03600435166024356112ef565b3480156107d257600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261044294369492936024939284019190819084018382808284375094975061143b9650505050505050565b34801561082b57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104429436949293602493928401919081908401838280828437509497506114719650505050505050565b34801561088457600080fd5b506103e0600160a060020a03600435166114a2565b61044261150f565b3480156108ad57600080fd5b506103e0610942565b3480156108c257600080fd5b5061030e61155a565b3480156108d757600080fd5b506103e0600160a060020a0360043516611560565b3480156108f857600080fd5b506104426004356115d3565b34801561091057600080fd5b5061044261176b565b610442600160a060020a0360043516611794565b34801561093957600080fd5b50610442611818565b600a54600654105b90565b6000600454600014158015610963575060045442115b905090565b6000808033321461097857600080fd5b8491506007548211156109aa576008546109933031846118ce565b116109aa5760075491506109a785836118ce565b90505b60008111156109e257604051339082156108fc029083906000818181858888f193505050501580156109e0573d6000803e3d6000fd5b505b6109ec82856118e0565b50505092915050565b600160a060020a0316600090815260126020908152604080832054601090925290912054601454680100000000000000009102919091030490565b600a5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b505050505081565b60156020526000908152604090205460ff1681565b600080808080610af1610aea87600f611abe565b6064611ae9565b9350610b01610aea876005611abe565b9250610b16610b1087866118ce565b846118ce565b9150610b2182611b00565b9695505050505050565b60135490565b3360008181526020819052604090205460ff161515610b4f57600080fd5b50600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008060006013548611151515610b9857600080fd5b610ba186611b98565b9350610bba610aea85610bb2610ffa565b60ff16611abe565b9250610bca610aea856005611abe565b9150610b21610bd985856118ce565b836118ce565b3360008181526020819052604090205460ff161515610bfd57600080fd5b50600160a060020a03919091166000908152601560205260409020805460ff1916911515919091179055565b3360008181526020819052604081205490919060ff161515610c4a57600080fd5b600160a060020a03831660009081526001602052604090205460ff16158015610c765750610c76610942565b15610cab57600160a060020a0383166000908152600160208190526040909120805460ff191682179055600a80548201905591505b50919050565b601281565b6000806000610cc56001611052565b11610ccf57600080fd5b339150610cdc6000611052565b600160a060020a038316600081815260126020908152604080832080546801000000000000000087020190556011909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610d45573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b3360008181526020819052604090205460ff161515610da757600080fd5b678ac7230489e8000030311015610dfd576004829055610dc5610942565b1515610dfd57600060068190556001600a819055600b54600160a060020a0316825260208190526040909120805460ff191690911790555b5050565b600080600160a060020a0386161515610e1957600080fd5b600160a060020a03861660009081526015602052604090205460ff161515600114610e4357600080fd5b610e4d86866112ef565b1515610e5857600080fd5b610e6186611c04565b15610f2f57506040517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052606060448401908152606484018690528893600160a060020a0385169363c0ee0b8a9390928a928a928a929091608401848480828437820191505095505050505050602060405180830381600087803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b505050506040513d6020811015610f2257600080fd5b50511515610f2f57600080fd5b50600195945050505050565b600080600080600060135460001415610f5b576414f46b04009450610fa2565b610f6c670de0b6b3a7640000611b98565b9350610f7d610aea85610bb2610ffa565b9250610f8d610aea856005611abe565b9150610f9c610bd985856118ce565b90508094505b5050505090565b601660205260009081526040902054600160a060020a031681565b600f5481565b60075481565b600c54600160a060020a031681565b60016020526000908152604090205460ff1681565b60095481565b600080600080600060045460001480611014575060045442105b156110225760309450610fa2565b6004544203935062278d00841061103c5760089450610fa2565b50505062278d0060289190910204603003919050565b6000338261106857611063816109f5565b61108c565b600160a060020a03811660009081526011602052604090205461108a826109f5565b015b9392505050565b3360008181526020819052604081205490919060ff1615156110b457600080fd5b600160a060020a03831660009081526020819052604090205460ff1680156110e65750600b54600160a060020a031633145b15610cab575050600160a060020a03166000908152602081905260409020805460ff19169055600190565b303190565b600160a060020a031660009081526010602052604090205490565b60006020819052908152604090205460ff1681565b60045481565b600e5481565b3360008181526020819052604090205460ff16151561117057600080fd5b50600892909255600755600955565b3360008181526020819052604090205460ff16151561119d57600080fd5b50600f55565b6000806000806000601354600014156111c35764199c82cc009450610fa2565b6111d4670de0b6b3a7640000611b98565b93506111e4610aea85600f611abe565b92506111f4610aea856005611abe565b9150610f9c6112038585611c0c565b83611c0c565b600b54600160a060020a031681565b6000611228600e54600d546118ce565b90506000811161123757600080fd5b611243600d5482611c0c565b600d55600c54604051600160a060020a03909116908290600081818185875af192505050151561127257600080fd5b50565b60085481565b60003361128781611116565b91505b5090565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b600d5481565b60008060006112fc61127b565b1161130657600080fd5b5033611310610942565b1580156113355750600160a060020a0381166000908152601060205260409020548311155b151561134057600080fd5b600061134c6001611052565b111561135a5761135a610cb6565b600160a060020a03811660009081526010602052604090205461137d90846118ce565b600160a060020a0380831660009081526010602052604080822093909355908616815220546113ac9084611c0c565b600160a060020a0385811660008181526010602090815260408083209590955560148054948716808452601283528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3600191505b5092915050565b3360008181526020819052604090205460ff16151561145957600080fd5b815161146c906003906020850190611fa2565b505050565b3360008181526020819052604090205460ff16151561148f57600080fd5b815161146c906002906020850190611fa2565b3360008181526020819052604081205490919060ff1615156114c357600080fd5b600160a060020a03831660009081526020819052604090205460ff161515610cab575050600160a060020a03166000908152602081905260409020805460ff1916600190811790915590565b60006127103411801561152457506000601354115b151561152f57600080fd5b34905060135468010000000000000000820281151561154a57fe5b6014805492909104909101905550565b60065481565b3360008181526020819052604081205490919060ff16151561158157600080fd5b600160a060020a03831660009081526001602052604090205460ff1615610cab575050600160a060020a03166000908152600160208190526040909120805460ff19169055600a805460001901905590565b6000806000806000806000806115e761127b565b116115f157600080fd5b3360008181526010602052604090205490975088111561161057600080fd5b87955061161c86611b98565b945061162d610aea86610bb2610ffa565b935061163d610aea866005611abe565b925061164c610b1086866118ce565b915061165a600e5484611c0c565b600e5560135461166a90876118ce565b601355600160a060020a03871660009081526010602052604090205461169090876118ce565b600160a060020a03881660009081526010602090815260408083209390935560145460129091529181208054928902680100000000000000008602019283900390556013549192501015611706576117026014546013546801000000000000000087028115156116fc57fe5b04611c0c565b6014555b86600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e87844261173c6111a3565b604080519485526020850193909352838301919091526060830152519081900360800190a25050505050505050565b336000818152601060205260408120549081111561178c5761178c816115d3565b610dfd610cb6565b642e90edd0003a11156117a657600080fd5b6117ae610942565b156117fb573360009081526001602052604090205460ff1680156117d457506009543411155b15156117df57600080fd5b336000908152600160205260409020805460ff1916905561180e565b61180361094d565b151561180e57600080fd5b610dfd3482610968565b6000806000806118286001611052565b1161183257600080fd5b61183c6000611052565b3360008181526012602090815260408083208054680100000000000000008702019055601190915281208054908290559092019450925061187e9084906118e0565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000828211156118da57fe5b50900390565b60003381808080808080806118f9610aea8d600f611abe565b9750611909610aea8d600a611abe565b96506119168b888a611c1b565b9550611926610aea8d6005611abe565b945061193b6119358d8a6118ce565b866118ce565b9350611949600e5486611c0c565b600e5561195584611b00565b9250680100000000000000008602915060008311801561197f575060135461197d8482611c0c565b115b151561198a57600080fd5b600060135411156119ee576119a160135484611c0c565b60138190556801000000000000000087028115156119bb57fe5b601480549290910490910190556013546801000000000000000087028115156119e057fe5b0483028203820391506119f4565b60138390555b600160a060020a038916600090815260106020526040902054611a179084611c0c565b600160a060020a03808b166000818152601060209081526040808320959095556014546012909152939020805493870286900393840190559192508c16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8e8642611a816111a3565b604080519485526020850193909352838301919091526060830152519081900360800190a350506006805460010190559998505050505050505050565b600080831515611ad15760009150611434565b50828202828482811515611ae157fe5b041461108c57fe5b6000808284811515611af757fe5b04949350505050565b6013546000906c01431e0fae6d7217caa00000009082906402540be400611b85611b7f730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001611f6d565b856118ce565b811515611b8e57fe5b0403949350505050565b601354600090670de0b6b3a7640000838101918101908390611bf16414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be40002811515611beb57fe5b046118ce565b811515611bfa57fe5b0495945050505050565b6000903b1190565b60008282018381101561108c57fe5b336000908152601660205260408120548290600160a060020a0316828080831515611c44578893505b600160a060020a03841615801590611c655750600160a060020a0384163314155b8015611c8b5750600f54600160a060020a03851660009081526010602052604090205410155b15611f605733600090815260166020526040902054600160a060020a03161515611ce557336000908152601660205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a038416600090815260116020526040902054600289049350611d0e9084611c0c565b600160a060020a038516600090815260116020526040902055611d3185846118ce565b6040805185815242602082015281519297503392600192600160a060020a038916927faa2bebb51de7655c0cc01571c3c91cda2f269b8d8add6392407afc885f8b0a58929081900390910190a4600160a060020a038085166000908152601660205260409020541691508115801590611dc45750600f54600160a060020a03831660009081526010602052604090205410155b15611f6057600160a060020a038216600090815260116020526040902054600a60038a02049350611df59084611c0c565b600160a060020a038316600090815260116020526040902055611e1885846118ce565b945083600160a060020a0316600283600160a060020a03167faa2bebb51de7655c0cc01571c3c91cda2f269b8d8add6392407afc885f8b0a588642604051808381526020018281526020019250505060405180910390a450600160a060020a03808216600090815260166020526040902054168015801590611eb45750600f54600160a060020a03821660009081526010602052604090205410155b15611f6057600160a060020a038116600090815260116020526040902054600a60028a02049350611ee59084611c0c565b600160a060020a038216600090815260116020526040902055611f0885846118ce565b945081600160a060020a0316600382600160a060020a03167faa2bebb51de7655c0cc01571c3c91cda2f269b8d8add6392407afc885f8b0a588642604051808381526020018281526020019250505060405180910390a45b5092979650505050505050565b80600260018201045b81811015610cab578091506002818285811515611f8f57fe5b0401811515611f9a57fe5b049050611f76565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611fe357805160ff1916838001178555612010565b82800160010185558215612010579182015b82811115612010578251825591602001919060010190611ff5565b5061128a9261094a9250905b8082111561128a576000815560010161201c5600a165627a7a72305820fd5a5e19ecdc5d62a83df107d6f445176a7cbced3b812988c15bc324145c7e440029


   Swarm Source:
bzzr://fd5a5e19ecdc5d62a83df107d6f445176a7cbced3b812988c15bc324145c7e44
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.