Реклама вашего контракта Кабинет инвестора
Меню
Появились вопросы или есть предложения?
Напишите нам в Telegram t.me/smartradar
SmartMMM

SmartMMM

Etherscan
0x9766a5a384c1Efb9F58Aaf687BeF00Ea96442575
Следить за контрактом

Баланс

0.5433 ETH.

Динамика пополнений
от общего пополнения за день

0%

Ввод

За последний час
0 ETH.
Всего
2.238 ETH.

Выводы

За последний час
0 ETH.
Всего
1.69465 ETH.

Условия

В день
-
В час
-

Инвесторов

10

Повторные пополнения

За последний час
0 ETH.
Всего
0.598 ETH.

Средняя оценка аудиторов

-

Контакты

  • Таймлайн:
  • час
  • день
  • неделя
  • месяц
Пополнения (146)
Выводы (158)
Аудит
Код
API
Комменторы
Дата Блок TxHash От кого Кому Сумма
19 фев. 21:06 7241326 0xf660f38235f73fd4fad5cb613428b428951f9af9ef41f80ec5383de104b74d04 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
18 фев. 18:24 7236576 0x81844aa0deb32465c66fb782ba77811447ceb6cc840e3433026b9bd3ebc2ff0d
Транзакция с ошибкой
0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
18 фев. 13:33 7235726 0x8016cc5ddcc22456f2d2ce2995d5a0f8292d9381bf4c6aebe37fa857cbd59273 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
12 фев. 20:42 7211880 0xf28ce121ffa3c9508f3c0697ffccffaca5f0839799d280bdb00f304c7df83128 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
11 фев. 21:43 7207843 0x1ce6368a5e082ed600a27af7fb601d2199ef25bb118ba4bab6e4a9169bdb4cf3 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
11 фев. 12:25 7206164 0xe050283fb2f09e5a99949b27d780cd89c385f3e0e8590dc529ab9206a5f38c90 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
10 фев. 14:48 7202420 0xc040ccd9d73b14e32524321e730fe16ce89368c5eaf5ecf249b81192599d81ae 0xd9aca3c367873a02b2f3d6a5b47f80f4264ab1fc 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
8 фев. 18:05 7193526 0x0b3b2c412e2ae4c14d29a934e25b4f57b3bd70f41cdd613004b99bb2114b770c 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
6 фев. 14:01 7182869 0xdac9eed7662a5b5295b72de30bac835f0383b1846472d088397300fd381a8167 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
6 фев. 00:09 7180028 0x0073512707df556988655b899b08329e9a447ca720c7fac98b065ce6aacb319f 0xeb75f2a4a462fa424b66e619ee38d0adb443992c 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
4 фев. 21:10 7174524 0x097cbde16a7ea1e9bd56be35c176fa5dc533edbd2b0d81aaccd7306cbd46229f 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
3 фев. 10:14 7167394 0xc49e14d516b3bfd56d12e429aacee5d1763a6ba20fe3d25100bd8d886d8165f9 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
3 фев. 10:12 7167389 0x520d540c899e8203d955a7d50dbfad84df6fa2c844a7c8e54f712354789a138c
Транзакция с ошибкой
0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
3 фев. 10:05 7167360 0xa90cd52eccdd05aa87e9f26bfc1744f9c1147d39e44a7272fd4bc36d826bbe22
Транзакция с ошибкой
0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
1 фев. 20:30 7159646 0x33e7cc36df9738fe0bea7a4104fe87a9c23f172ca31de6db0a774f212337383f 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
1 фев. 17:36 7159093 0x44f10d34d35a99c69f5a85524f945ea47cb4282741bfc0127323a00908eca09f 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
1 фев. 17:26 7159065 0xd2ffa8ee8feb3f5dcda67f73204a605fd9bc17b04049546834c00507fd3640f7
Транзакция с ошибкой
0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
31 янв. 01:06 7150787 0xb17d189049240c721ba4e4b658a13e14dda1886196e9c7fa55f9e6cffa0ac50e 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
30 янв. 14:33 7148601 0xc9a2b8b5c3b91c710da90240a4e26425afdc7e94aa57bef8ce018fd6d09ef668 0xd9aca3c367873a02b2f3d6a5b47f80f4264ab1fc 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
30 янв. 11:02 7147920 0x6053f97b807ef19499146f87ffa392bb0e2f8156c875ed6c61986f6e153f1e80 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
29 янв. 13:03 7143409 0x426b0567dd6694a9587142547e4a81f33d4ddc0511fcb5e889486b0eb32f1870 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
26 янв. 01:21 7126083 0xa6a60faf25f81e997e002bf8d159b005e2d0e6058ba86b8249419e087cfa85a1 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
25 янв. 19:57 7124903 0x7ceccd83b377a6cdab5006360b2871806e47b0e17388567387c3145870788fe6 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
25 янв. 18:06 7124530 0x6f1f33771b4ab9f4254863ce9caa07d079560af80a080d476ada385ea82730c5 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
24 янв. 14:27 7118688 0x4cf866d90bce7ffa1e40c97f882fcd0f65e0411e863c5c0a4fb793a2fdb569da 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0 Ether
Дата Блок parentTxHash От кого Кому Сумма
19 фев. 21:06 7241326 0xf660f38235f73fd4fad5cb613428b428951f9af9ef41f80ec5383de104b74d04 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.005893416666622887 Ether
18 фев. 13:33 7235726 0x8016cc5ddcc22456f2d2ce2995d5a0f8292d9381bf4c6aebe37fa857cbd59273 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.004933055555523984 Ether
12 фев. 20:42 7211880 0xf28ce121ffa3c9508f3c0697ffccffaca5f0839799d280bdb00f304c7df83128 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.003450999999974364 Ether
11 фев. 21:43 7207843 0x1ce6368a5e082ed600a27af7fb601d2199ef25bb118ba4bab6e4a9169bdb4cf3 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0.001809124999985527 Ether
11 фев. 12:25 7206164 0xe050283fb2f09e5a99949b27d780cd89c385f3e0e8590dc529ab9206a5f38c90 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.003453333333311232 Ether
10 фев. 14:48 7202420 0xc040ccd9d73b14e32524321e730fe16ce89368c5eaf5ecf249b81192599d81ae 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xd9aca3c367873a02b2f3d6a5b47f80f4264ab1fc 0.00096891666664905 Ether
8 фев. 18:05 7193526 0x0b3b2c412e2ae4c14d29a934e25b4f57b3bd70f41cdd613004b99bb2114b770c 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.004474749999966759 Ether
6 фев. 14:01 7182869 0xdac9eed7662a5b5295b72de30bac835f0383b1846472d088397300fd381a8167 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.001191458333325708 Ether
6 фев. 00:09 7180028 0x0073512707df556988655b899b08329e9a447ca720c7fac98b065ce6aacb319f 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xeb75f2a4a462fa424b66e619ee38d0adb443992c 0.001633062499973871 Ether
4 фев. 21:10 7174524 0x097cbde16a7ea1e9bd56be35c176fa5dc533edbd2b0d81aaccd7306cbd46229f 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.004436249999971608 Ether
3 фев. 10:14 7167394 0xc49e14d516b3bfd56d12e429aacee5d1763a6ba20fe3d25100bd8d886d8165f9 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.001422166666656102 Ether
1 фев. 20:30 7159646 0x33e7cc36df9738fe0bea7a4104fe87a9c23f172ca31de6db0a774f212337383f 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0.000325499999997396 Ether
1 фев. 17:36 7159093 0x44f10d34d35a99c69f5a85524f945ea47cb4282741bfc0127323a00908eca09f 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.001909249999985817 Ether
31 янв. 01:06 7150787 0xb17d189049240c721ba4e4b658a13e14dda1886196e9c7fa55f9e6cffa0ac50e 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0.000897999999992816 Ether
30 янв. 14:33 7148601 0xc9a2b8b5c3b91c710da90240a4e26425afdc7e94aa57bef8ce018fd6d09ef668 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xd9aca3c367873a02b2f3d6a5b47f80f4264ab1fc 0.00088996111109493 Ether
30 янв. 11:02 7147920 0x6053f97b807ef19499146f87ffa392bb0e2f8156c875ed6c61986f6e153f1e80 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.003952666666637304 Ether
29 янв. 13:03 7143409 0x426b0567dd6694a9587142547e4a81f33d4ddc0511fcb5e889486b0eb32f1870 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.002598749999983368 Ether
26 янв. 01:21 7126083 0xa6a60faf25f81e997e002bf8d159b005e2d0e6058ba86b8249419e087cfa85a1 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0.01437083333324136 Ether
25 янв. 19:57 7124903 0x7ceccd83b377a6cdab5006360b2871806e47b0e17388567387c3145870788fe6 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.006145833333294 Ether
25 янв. 18:06 7124530 0x6f1f33771b4ab9f4254863ce9caa07d079560af80a080d476ada385ea82730c5 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbc1891f73c82796ff0af6f950c28d6ba0585d7f6 0.04173749999973288 Ether
24 янв. 14:27 7118688 0x4cf866d90bce7ffa1e40c97f882fcd0f65e0411e863c5c0a4fb793a2fdb569da 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xbf4e10fb6d08fa8669bd33723cf38e2efcf0341b 0.0351840277775526 Ether
22 янв. 15:03 7108715 0xfcce7b68ae8c200484fc7cc7842819e98c92ae68cb392c012390839953d5cd65 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xa9fd96d4e580e3b8db88caa2418db94715f17680 0.00496898919267534 Ether
20 янв. 11:49 7097548 0xf1edade482f95318ff16efd67d913c9c9973af1289df88d9cc0d4d19e9f1de81 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xd9aca3c367873a02b2f3d6a5b47f80f4264ab1fc 0.00440555555552736 Ether
19 янв. 13:33 7092297 0xbe49a198c014e6add78798194180b6f30d1bb6a5dda4883b78b5bbdc737c115f 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0xa9fd96d4e580e3b8db88caa2418db94715f17680 0.004307584055237602 Ether
18 янв. 20:54 7088357 0xc46f3e12868b362506a251316f9cca4371ab8bf7145cc885df7a502afedf9523 0x9766a5a384c1efb9f58aaf687bef00ea96442575 0x8ca184eebe05e5f3cf4b7b82ace73b2f6d965b68 0.01092083333326344 Ether
Средняя оценка аудиторов -
Contract Source Code </>
/**
* start 21.11.18
*
* ███─█───█─████─████─███─█───█─█───█─█───█───████─████─█───█
* █───██─██─█──█─█──█──█──██─██─██─██─██─██───█──█─█──█─██─██
* ███─█─█─█─████─████──█──█─█─█─█─█─█─█─█─█───█────█──█─█─█─█
* ──█─█───█─█──█─█─█───█──█───█─█───█─█───█───█──█─█──█─█───█
* ███─█───█─█──█─█─█───█──█───█─█───█─█───█─█─████─████─█───█
*
*
* - Contacts:
*     -- t.me/Smart_MMM
*     -- https://SmartMMM.com
*
* - GAIN PER 24 HOURS:
*     -- Contract balance <   25 Ether:          1.0%
*     -- Contract balance >= 25 Ether:              1.5%
*     -- Contract balance >= 250 Ether:                2.0%
*     -- Contract balance >= 2500 Ether:                  2.5% max!
*     -- Contract balance >= 10000 Ether:              2.0%
*     -- Contract balance >= 20000 Ether:           1.5%
*     -- Contract balance >= 30000 Ether:       1.0%
*     -- Contract balance >= 40000 Ether:      0.8%
*     -- Contract balance >= 50000 Ether:     0.6%
*     -- Contract balance >= 60000 Ether:    0.4%
*     -- Contract balance >= 70000 Ether:   0.2%
*     -- Contract balance >= 100000 Ether:  0.1%
*
*     -- Contract balance < 30% max Balance: "soft restart"
*
* - Minimal contribution 0.01 eth
*
* - Contribution allocation schemes:
*    -- 90-95% payments to depositors and partners
*    -- 1-3% technical support team
*    -- 3-7% promotion
*   depends on the contract balance. more on the website SmartMMM.com
*
* - How to use:
*  1. Send from your personal ETH wallet to the smart-contract address any amount more than or equal to 0.01 ETH
*  2. Add your refferer's wallet to a HEX data in your transaction to
*      get a bonus amount back to your wallet
*      if there is no referrer, you will not get any bonuses
*  3. Use etherscan.io to verify your transaction
*  4. Claim your dividents by sending 0 ether transaction (available anytime)
*  5. You can reinvest anytime you want
*
* Smart contract has a "soft restart" function, details on smartMMM.com
*
* If you want to check your dividends, you can use etherscan.io site I / o by following the" internal Txns " tab of your wallet
* Attention: do not use wallets exchanges - you will lose your money. Use your personal wallet only for transactions
*
* RECOMMENDED GAS LIMIT: 300000
* RECOMMENDED GAS PRICE: https://ethgasstation.info/
*/

pragma solidity ^0.4.24;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address private _owner;

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() internal {
    _owner = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

contract SmartMMM is Ownable
{
    struct DepositItem {
        uint time;
        uint sum;
        uint withdrawalTime;
        uint restartIndex;
        uint invested;
        uint payments;
        uint referralPayments;
        uint cashback;
        uint referalsLevelOneCount;
        uint referalsLevelTwoCount;
        address referrerLevelOne;
        address referrerLevelTwo;
    }

    address public techSupport = 0x799358af628240603A1ce05b7D9ea211b9D64304;
    address public adsSupport = 0x8Fa6E56c844be9B96C30B72cC2a8ccF6465a99F9;

    mapping(address => DepositItem) public deposits;
    mapping(address => bool) public referrers;
    mapping(address => uint) public waitingReferrers;

    uint public referrerPrice = 70700000000000000; // 0.0707 ether
    uint public referrerBeforeEndTime = 0;
    uint public maxBalance = 0;
    uint public invested;
    uint public payments;
    uint public referralPayments;
    uint public investorsCount;
    uint[] public historyOfRestarts;

    event Deposit(address indexed from, uint256 value);
    event Withdraw(address indexed to, uint256 value);
    event PayBonus(address indexed to, uint256 value);

    constructor () public
    {
        historyOfRestarts.push(now);
    }


    function bytesToAddress(bytes source) private pure returns(address parsedAddress)
    {
        assembly {
            parsedAddress := mload(add(source,0x14))
        }
        return parsedAddress;
    }

    function getPercents(uint balance) public pure returns(uint depositPercent, uint referrerLevelOnePercent, uint referrerLevelTwoPercent, uint cashBackPercent, uint techSupportPercent, uint adsSupportPercent)
    {
        if(balance < 25 ether) return (69444444444, 90, 10, 20, 30, 60);
        else if(balance >= 25 ether && balance < 250 ether) return (104166666667, 80, 10, 20, 30, 60);
        else if(balance >= 250 ether && balance < 2500 ether ) return (138888888889, 70, 10, 20, 30, 60);
        else if(balance >= 2500 ether && balance < 10000 ether) return (173611111111, 60, 10, 20, 30, 60);
        else if(balance >= 10000 ether && balance < 20000 ether) return (138888888889, 50, 10, 15, 25, 50);
        else if(balance >= 20000 ether && balance < 30000 ether) return (104166666667, 40, 5, 15, 25, 50);
        else if(balance >= 30000 ether && balance < 40000 ether) return (69444444444, 30, 5, 10, 20, 40);
        else if(balance >= 40000 ether && balance < 50000 ether) return (55555555555, 20, 5, 5, 20, 40);
        else if(balance >= 50000 ether && balance < 60000 ether) return (416666666667, 10, 5, 5, 15, 30);
        else if(balance >= 60000 ether && balance < 70000 ether) return (277777777778, 8, 3, 3, 10, 20);
        else if(balance >= 70000 ether && balance < 100000 ether) return (138888888889, 5, 2, 2, 10, 20);
        else return (6944444444, 0, 0, 0, 10, 10);
    }

    function () public payable
    {
        uint balance = address(this).balance;
        (uint depositPercent, uint referrerLevelOnePercent, uint referrerLevelTwoPercent, uint cashBackPercent, uint techSupportPercent, uint adsSupportPercent) = getPercents(balance);

        if(msg.value == 0)
        {
            payWithdraw(msg.sender, balance, depositPercent);
            return;
        }

        if(msg.value == referrerPrice && !referrers[msg.sender] && waitingReferrers[msg.sender] == 0 && deposits[msg.sender].sum != 0)
        {
            waitingReferrers[msg.sender] = now;
        }
        else
        {
            addDeposit(msg.sender, msg.value, balance, referrerLevelOnePercent, referrerLevelTwoPercent, cashBackPercent, depositPercent, techSupportPercent, adsSupportPercent);
        }
    }

    function isNeedRestart(uint balance) public returns (bool)
    {
        if(balance < maxBalance / 100 * 30) {
            maxBalance = 0;
            return true;
        }
        return false;
    }

    function calculateNewTime(uint oldTime, uint oldSum, uint newSum, uint currentTime) public pure returns (uint)
    {
        return oldTime + newSum / (newSum + oldSum) * (currentTime - oldTime);
    }

    function calculateNewDepositSum(uint minutesBetweenRestart, uint minutesWork, uint depositSum) public pure returns (uint)
    {
        if(minutesWork > minutesBetweenRestart) minutesWork = minutesBetweenRestart;
        return (depositSum *(100-(uint(minutesWork) * 100 / minutesBetweenRestart)+7)/100);
    }

    function addDeposit(address investorAddress, uint weiAmount, uint balance, uint referrerLevelOnePercent, uint referrerLevelTwoPercent, uint cashBackPercent, uint depositPercent, uint techSupportPercent, uint adsSupportPercent) private
    {
        checkReferrer(investorAddress, weiAmount, referrerLevelOnePercent, referrerLevelTwoPercent, cashBackPercent);
        DepositItem memory deposit = deposits[investorAddress];
        if(deposit.sum == 0)
        {
            deposit.time = now;
            investorsCount++;
        }
        else
        {
            uint sum = getWithdrawSum(investorAddress, depositPercent);
            deposit.sum += sum;
            deposit.time = calculateNewTime(deposit.time, deposit.sum, weiAmount, now);
        }
        deposit.withdrawalTime = now;
        deposit.sum += weiAmount;
        deposit.restartIndex = historyOfRestarts.length - 1;
        deposit.invested += weiAmount;
        deposits[investorAddress] = deposit;

        emit Deposit(investorAddress, weiAmount);

        payToSupport(weiAmount, techSupportPercent, adsSupportPercent);

        if (maxBalance < balance) {
            maxBalance = balance;
        }
        invested += weiAmount;
    }

    function payToSupport(uint weiAmount, uint techSupportPercent, uint adsSupportPercent) private {
        techSupport.transfer(weiAmount * techSupportPercent / 1000);
        adsSupport.transfer(weiAmount * adsSupportPercent / 1000);
    }

    function checkReferrer(address investorAddress, uint weiAmount, uint referrerLevelOnePercent, uint referrerLevelTwoPercent, uint cashBackPercent) private
    {
        address referrerLevelOneAddress = deposits[investorAddress].referrerLevelOne;
        address referrerLevelTwoAddress = deposits[investorAddress].referrerLevelTwo;
        if (deposits[investorAddress].sum == 0 && msg.data.length == 20) {
            referrerLevelOneAddress = bytesToAddress(bytes(msg.data));
            if (referrerLevelOneAddress != investorAddress && referrerLevelOneAddress != address(0)) {
                if (referrers[referrerLevelOneAddress] || waitingReferrers[referrerLevelOneAddress] != 0 && (now - waitingReferrers[referrerLevelOneAddress]) >= 7 days || now <= referrerBeforeEndTime) {
                    deposits[investorAddress].referrerLevelOne = referrerLevelOneAddress;
                    deposits[referrerLevelOneAddress].referalsLevelOneCount++;
                    referrerLevelTwoAddress = deposits[referrerLevelOneAddress].referrerLevelOne;
                    if (referrerLevelTwoAddress != investorAddress && referrerLevelTwoAddress != address(0)) {
                        deposits[investorAddress].referrerLevelTwo = referrerLevelTwoAddress;
                        deposits[referrerLevelTwoAddress].referalsLevelTwoCount++;
                    }
                }
            }
        }
        if (referrerLevelOneAddress != address(0)) {
            uint cashBackBonus = weiAmount * cashBackPercent / 1000;
            uint referrerLevelOneBonus = weiAmount * referrerLevelOnePercent / 1000;

            emit PayBonus(investorAddress, cashBackBonus);
            emit PayBonus(referrerLevelOneAddress, referrerLevelOneBonus);

            referralPayments += referrerLevelOneBonus;
            deposits[referrerLevelOneAddress].referralPayments += referrerLevelOneBonus;
            referrerLevelOneAddress.transfer(referrerLevelOneBonus);

            deposits[investorAddress].cashback += cashBackBonus;
            investorAddress.transfer(cashBackBonus);

            if (referrerLevelTwoAddress != address(0)) {
                uint referrerLevelTwoBonus = weiAmount * referrerLevelTwoPercent / 1000;
                emit PayBonus(referrerLevelTwoAddress, referrerLevelTwoBonus);
                referralPayments += referrerLevelTwoBonus;
                deposits[referrerLevelTwoAddress].referralPayments += referrerLevelTwoBonus;
                referrerLevelTwoAddress.transfer(referrerLevelTwoBonus);
            }
        }
    }

    function payWithdraw(address to, uint balance, uint percent) private
    {
        require(deposits[to].sum > 0);

        if(isNeedRestart(balance))
        {
            historyOfRestarts.push(now);
        }

        uint lastRestartIndex = historyOfRestarts.length - 1;

        if(lastRestartIndex - deposits[to].restartIndex >= 1)
        {
            uint minutesBetweenRestart = (historyOfRestarts[lastRestartIndex] - historyOfRestarts[deposits[to].restartIndex]) / 1 minutes;
            uint minutesWork = (historyOfRestarts[lastRestartIndex] - deposits[to].time) / 1 minutes;
            deposits[to].sum = calculateNewDepositSum(minutesBetweenRestart, minutesWork, deposits[to].sum);
            deposits[to].restartIndex = lastRestartIndex;
            deposits[to].time = now;
        }

        uint sum = getWithdrawSum(to, percent);
        require(sum > 0);

        deposits[to].withdrawalTime = now;
        deposits[to].payments += sum;
        payments += sum;
        to.transfer(sum);

        emit Withdraw(to, sum);
    }

    function getWithdrawSum(address investorAddress, uint percent) private view returns(uint sum) {
        uint minutesCount = (now - deposits[investorAddress].withdrawalTime) / 1 minutes;
        sum = deposits[investorAddress].sum * percent / 10000000000000000 * minutesCount;
    }

    function addReferrer(address referrerAddress) onlyOwner public
    {
        referrers[referrerAddress] = true;
    }

    function setReferrerPrice(uint newPrice) onlyOwner public
    {
        referrerPrice = newPrice;
    }

    function setReferrerBeforeEndTime(uint newTime) onlyOwner public
    {
        referrerBeforeEndTime = newTime;
    }

    function getDaysAfterStart() public constant returns(uint daysAfterStart) {
        daysAfterStart = (now - historyOfRestarts[0]) / 1 days;
    }

    function getDaysAfterLastRestart() public constant returns(uint daysAfeterLastRestart) {
        daysAfeterLastRestart = (now - historyOfRestarts[historyOfRestarts.length - 1]) / 1 days;
    }
}
Документация
Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Задача организации, в особенности же новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации новых предложений.

Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.

Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.

Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.

Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.

Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.

Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.

Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.

Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.

Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Информация о домене или любая информация о сайте
Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Товарищи! новая модель организационной деятельности позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом реализация намеченных плановых заданий позволяет выполнять важные задания по разработке новых предложений. Задача организации, в особенности же консультация с широким активом требуют от нас анализа существенных финансовых и административных условий. Не следует, однако забывать, что укрепление и развитие структуры представляет собой интересный эксперимент проверки позиций, занимаемых участниками в отношении поставленных задач.

Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.

Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.

Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.

Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.

Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.

С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.

Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.

Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.

Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.

Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.

Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.

Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.

Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.

Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.