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

Wallie.me

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

Баланс

268.02 ETH.

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

0%

Ввод

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

Выводы

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

Условия

В день
-
В час
-

Инвесторов

290

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

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

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

-

Контакты

  • Таймлайн:
  • час
  • день
  • неделя
  • месяц
Пополнения (2829)
Выводы (1480)
Аудит
Код
API
Комменторы
Дата Блок TxHash От кого Кому Сумма
Вчера 11:57 7243950 0x782c820cfb4caa29438c9709713d79729d3d038f5c4c928fdcd703daca8cc1ef 0x62857cb465fc1de4bf2aac88bc77c4042bdd1b6a 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
Вчера 11:18 7243845 0x976da6d7ce3bfcaf843d1468d7f03273a7e7caec34d6be2e123ac8947e9a2b52 0x6a839466f59c192e89cf2c1ee630f31a899e0788 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
Вчера 11:16 7243838 0x216c77b41ffb5482aa741a5c6043213b083f62e031329e2b28923f9d4d8c5844 0x7aadaae34a97dcb65a3ce963186450508b1356da 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
Вчера 11:01 7243790 0xb9a7be9fc1ef861d1c003c815630551331ae4826031f0b17804a66da624e6821 0x06d47ab47586e02b8a38b5da67f0fcdac6595dd5 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 23:40 7241770 0x6891057aa9953bc78d1261fe6a0c2f0b827ee2daf31fa8ae44d96d0616de555f 0xad726227d793c8ac9a9125e521d6cfb0145fe649 0xe5af8907776fd5f1bb069369fd398ad33102751e 0.07 Ether
19 фев. 23:35 7241757 0x7e1c96e5eeeeee7b67b5af800fdff554dc5c3aecaf7c5bafbe6a73b77473bb23 0xad726227d793c8ac9a9125e521d6cfb0145fe649 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 20:52 7241282 0xcdd008377105fbbf868fff02fdb09cb1a625f5d22c0b40ded709b2fa5dcbedad 0xe80ea89577d241cd9a990a0219229bc9692fa6e4 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 20:23 7241205 0xc0266d49249500b9bc51705791639cf4462739f2f601859a6884507f4d371b3c 0x62e59fb4cfb05e953753d352f88a636aaee2274f 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 20:18 7241182 0x82df5246a2772a4ac49eecb640b81c43d0511bc02027cdf0baaccd09bf00bc42 0xda66f2aa8bf83d4bd307d04b8b1d5dafcafe7744 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 19:53 7241110 0x1626fcd86d274515171a059ad956e8c91d9ab92c8dcd3debcadcdd39ff63437b 0x5c31652d1e51467b3f27f9bce5abc08d600ec18d 0xe5af8907776fd5f1bb069369fd398ad33102751e 0.5 Ether
19 фев. 19:18 7241012 0x763aaeaa674662de24e394bfd94025434c9de19f891fbbd7a8c6d752d2ccbb0f 0x5c31652d1e51467b3f27f9bce5abc08d600ec18d 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 18:30 7240867 0x07df86d9feffa1532e2893a835bd024cbb6afec4f42b0f7eac407b9ad3e5644b 0xb8d26ce4673dcec22f3a1f3e449c5feab50ccd3c 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 18:29 7240862 0xe7b0fffb78cd8de1081a9c61da36b63f8ef6db1c327f53d5573581e4b5f2d223 0x8e9df4307d00dd70626a4e2bae9df35f55448168 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 18:12 7240816 0x580ff41e8a258f07b819fb24ff9a865fac1a2ddd1a96c29e4aa0536a7acd29e3 0x55d3401343fbb5570f7edb4ff9704889332be624 0xe5af8907776fd5f1bb069369fd398ad33102751e 0.017 Ether
19 фев. 18:05 7240799 0x639c66661c5180d7b0faf335ae7a65fca00cea037b646fb590ed2e207aedebce 0xa0ea9829a0f90bb6b194e4743fd21d90f291ec68 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 18:05 7240799 0x43cc73252ba53756cf5ce375b40579daf13c30db18613c26c34732bf12156f43 0x55d3401343fbb5570f7edb4ff9704889332be624 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:58 7240776 0x424fc4e5ae07ea16f5c256ed3d68166cefe37937f852e4c0de65a7a4b6238a63 0x5c31652d1e51467b3f27f9bce5abc08d600ec18d 0xe5af8907776fd5f1bb069369fd398ad33102751e 3.75 Ether
19 фев. 17:53 7240759 0x493f5fcc03879df35672856d3affd270e14b1dc85d5d0c62128c8018e9738fb1 0x7f61947d518ca5c41512a5bd90be1bac11c3c603 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:43 7240734 0x6ab011e8008d2489dad73e060b9e7531754b679e1b97a07be17f47c9949df16a 0x02d187e897719eae925ab038444a9bff05eeb678 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:37 7240718 0x60361d1af64cf949045d5b8b155d1db3d982186e1948b7d736a0f9ab0d24802c 0x025cd604297608730cd0cc70d8033b8a3a4c51ee 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:16 7240657 0xa9fc16f62f44b6ea1c57db9b69aec082d6aee02de51cc8354caea87c0033461a 0x7248a8875726bd43fafab69ec277fc05e02931ae 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:10 7240636 0x2ce154c41cd66d66a77e6b23667bf0692360fe9b3cbed7963911fd79caced2d4 0xa832de9e85a927f91b061a03c86cf3aa0cb1de28 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:09 7240633 0xc8c068e805805536b7ca8d86fa3a32f4040a6b27da91330acf06e01c690b375d 0xa832de9e85a927f91b061a03c86cf3aa0cb1de28 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 17:07 7240628 0xbe38b596019462bf9d364f910d50b1e5163ba4b2fd4c4f4490b2c371cb5a825c 0xa832de9e85a927f91b061a03c86cf3aa0cb1de28 0xe5af8907776fd5f1bb069369fd398ad33102751e 0 Ether
19 фев. 16:47 7240567 0x6aa06fbd61113647724e2fcb897a8e0e13a1558a8ce73a991a96df3e868c9c4e 0x4d82ae545a3969f4dfacaaf74ad020e3d45abeee 0xe5af8907776fd5f1bb069369fd398ad33102751e 0.7 Ether
Дата Блок parentTxHash От кого Кому Сумма
Сегодня 18:48 7249383 0xeb39b676ef119fd66a58080da15f9ce931620e9e2c1d7711a33e03a630affb3c 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xace34a140812270f2ff1aeba3c29356d05604d0c 0.07920987962962962 Ether
Сегодня 17:08 7249083 0x82db56ce52adea2d4b92de78410be9517f1b7927893370303e66c4ee794f54dd 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xb5a22886f22bdcb44b804a00005200a7fff2d346 0.080012009909645 Ether
Сегодня 16:35 7249000 0xc5e5ab6a11f91669eeec14543fe653af67112b8613e9a0e4ab9c93ea76237369 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x622f4784f38544647dfa6d119ceb5ca02666419b 0.0664292037037037 Ether
Сегодня 16:04 7248912 0x950bf7a87327cecfcad7f17b413fb6ea373aceec9536c7124fa2ffff80202eee 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x36905d2cb5b7e3e1893285d26d59ac5f3babc21d 0.3810613888888889 Ether
Сегодня 15:53 7248882 0x59e043e22f225bd3a3be4c85537741bb51931af18a747080e0486018ab6cb74d 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x7248a8875726bd43fafab69ec277fc05e02931ae 0.08545013888888889 Ether
Сегодня 11:43 7248156 0x7ffa9561db61871de2671c733eb10ff0d24a966b8ea5934dbd18c4c9837d99a7 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x89625aef1bfcf850ba556a86c9e9cb40cfa9e21c 0.14875652662037037 Ether
Сегодня 10:40 7247969 0x3b604b55f607ad2dc90a9706730fc2c1732cdebc0677ce6d03dfc63847306dd1 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xe50952b5f969ca43d4622cf63f469eed5324f1f2 1.3178629108049582 Ether
Сегодня 10:11 7247886 0xd03fefcd2ff46f2696b4d37cdab4249064b61a94ed7f862c21d43f314e58f354 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xa458e6b197172479159674799db5c7d7dea4e8ff 0.15743597222222222 Ether
Сегодня 08:18 7247533 0x7d79d69b1d99259c7aa9e27389264f301de4d9e162cd1a3e502ffe49fbc63559 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x62857cb465fc1de4bf2aac88bc77c4042bdd1b6a 0.0998603375 Ether
Сегодня 03:05 7246615 0xdebebe477e62798df0537cb109065e3b85bf6b99fe9e35f38542d4b3a69f2c8b 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x84b814c8c57fd419c3a58ff4004228cbf2ea5f4c 0.00386942824074074 Ether
Вчера 23:02 7245866 0xc8d2757d1831a84a8b03548586b4297a0ca8b4ee81918b5302d7c45fd36e6e81 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xf478b9a542e95c17d0338167ab5ae59774c090c6 0.009235390694444444 Ether
Вчера 20:25 7245408 0x3935dc16db37257ac7f23aec6324aaa8b81ce5fce410507ce52a149ac94a632c 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x19c0c5f27241888ce42bca2217346f004d74d75b 1.0035143402777777 Ether
Вчера 19:12 7245197 0xebf521c9454e65aa60bee1cb6a9cdc377549d9758822da40bd26256e5fda5667 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x37e868e9b9e5c6d90ae78a87495462fac835fa09 0.06688237378472223 Ether
Вчера 19:12 7245197 0x203e793e7993551e957ed39249289feab74d261f0cb6eeba6ac9ce60f12bf079 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x269a78fa1154e30cb8c5b85d59814dca70d972e9 0.021528074027777778 Ether
Вчера 17:28 7244891 0xb58bd795ff063e6436fb7fd494d9b2c5de0d6b18fedf3a01095415c1efcea0c2 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xfd342f4d9c40efa66601aafb60986bc8d5608d34 0.10314015046296296 Ether
Вчера 15:33 7244574 0x63497c0aa61d538484cb6b8635635affefc5efd568873f69fe1136395c5d0b4f 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x56957163e51f81ed0be96be6bca8cafca847a7b1 0.015551926041666666 Ether
Вчера 13:42 7244238 0x0fd19a79711cbe2e2d11574000709681875bff8c6600710eae058120142f2337 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xe7cc6b1d466e1a744cde5be2b24cfa171ebcde53 0.000003094259259259 Ether
Вчера 13:38 7244226 0x881870f4fbe1760d211076a86bf613147ddaace995faf324205f0eab04ec8092 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xe7cc6b1d466e1a744cde5be2b24cfa171ebcde53 0.006469297592592592 Ether
Вчера 13:32 7244207 0xebb55cf453c337b8c2ea57a1367b4b82dfc1136b8314e3124380ed7fdec20d3d 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x5244515bd8c323cdea3d2bd1ef9c19971ab9587e 0.006140825798611111 Ether
Вчера 13:21 7244173 0x32095cd4bea77fa79bd044810aa3f69a92d7bf8ebef911967239871f07904eb6 0xe5af8907776fd5f1bb069369fd398ad33102751e 0xc74e99b14a95f79870d155a3fc21abf454caf7e8 0.43035531712962966 Ether
Вчера 11:58 7243952 0x47642c3a653adf1bcf68a5881af00e38959c10afd091efc20bf937b50d59fabe 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x62857cb465fc1de4bf2aac88bc77c4042bdd1b6a 0.000038179166666666 Ether
Вчера 11:57 7243950 0x782c820cfb4caa29438c9709713d79729d3d038f5c4c928fdcd703daca8cc1ef 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x62857cb465fc1de4bf2aac88bc77c4042bdd1b6a 0.305851940625 Ether
Вчера 11:18 7243845 0x976da6d7ce3bfcaf843d1468d7f03273a7e7caec34d6be2e123ac8947e9a2b52 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x6a839466f59c192e89cf2c1ee630f31a899e0788 4.522953235144432 Ether
Вчера 11:16 7243838 0x216c77b41ffb5482aa741a5c6043213b083f62e031329e2b28923f9d4d8c5844 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x7aadaae34a97dcb65a3ce963186450508b1356da 0.001975115767361111 Ether
Вчера 11:01 7243790 0xb9a7be9fc1ef861d1c003c815630551331ae4826031f0b17804a66da624e6821 0xe5af8907776fd5f1bb069369fd398ad33102751e 0x06d47ab47586e02b8a38b5da67f0fcdac6595dd5 0.004973096053240739 Ether
Средняя оценка аудиторов -
Contract Source Code </>
pragma solidity 0.4.25;

/**
 * 
 *                                  ╔╗╔╗╔╗╔══╗╔╗──╔╗──╔══╗╔═══╗──╔╗──╔╗╔═══╗
 *                                  ║║║║║║║╔╗║║║──║║──╚╗╔╝║╔══╝──║║──║║║╔══╝
 *                                  ║║║║║║║╚╝║║║──║║───║║─║╚══╗──║╚╗╔╝║║╚══╗
 *                                  ║║║║║║║╔╗║║║──║║───║║─║╔══╝──║╔╗╔╗║║╔══╝
 *                                  ║╚╝╚╝║║║║║║╚═╗║╚═╗╔╝╚╗║╚══╗╔╗║║╚╝║║║╚══╗
 *                                  ╚═╝╚═╝╚╝╚╝╚══╝╚══╝╚══╝╚═══╝╚╝╚╝──╚╝╚═══╝
 *                                  ┌──────────────────────────────────────┐  
 *                                  │      Website:  http://wallie.me      │
 *                                  │                                      │  
 *                                  │  CN Telegram: https://t.me/WallieCH  │
 *                                  │  RU Telegram: https://t.me/wallieRU  |
 *                                  │  *  Telegram: https://t.me/WallieNews|
 *                                  |Twitter: https://twitter.com/Wallie_me|
 *                                  └──────────────────────────────────────┘ 
 *                    | Youtube – https://www.youtube.com/channel/UC1q3sPOlXsaJGrT8k-BZuyw |
 *
 *                                     * WALLIE - distribution contract *
 * 
 *  - Growth before 2000 ETH 1.1% and after 2000 ETH 1.2% in 24 hours
 * 
 * Distribution: *
 * - 10% Advertising, promotion
 * - 5% for developers and technical support
 * 
 * - Referral program:
 *   5% Level 1
 *   3% Level 2
 *   1% Level 3
 * 
 * - 3% Cashback
 * 
 *
 *
 * Usage rules *
 *  Holding:
 *   1. Send any amount of ether but not less than 0.01 ETH to make a contribution.
 *   2. Send 0 ETH at any time to get profit from the Deposit.
 *  
 *  - You can make a profit at any time. Consider your transaction costs (GAS).
 *  
 * Affiliate program *
 * - You have access to a multy-level referral system for additional profit (5%, 3%, 1% of the referral's contribution).
 * - Affiliate fees will come from each referral's Deposit as long as it doesn't change your wallet address Ethereum on the other.
 * 
 *  
 * 
 *
 * RECOMMENDED GAS LIMIT: 300000
 * RECOMMENDED GAS PRICE: https://ethgasstation.info/
 *
 * The contract has been tested for vulnerabilities!
 *
 */

contract Wallie
{
    //Investor
	mapping (address => Investor) public investors;

	//Event the new investor
	event NewInvestor(address _addr, uint256 _amount);

	//Event of the accrual of cashback bonus
	event CashbackBonus(address _addr, uint256 _amount, uint256 _revenue);

	//Referral bonus accrual event
	event RefererBonus(address _from, address _to, uint256 _amount, uint256 _revenue, uint256 _level);

	//New contribution event
	event NewInvestment(address _addr, uint256 _amount);

	//The event of the new withdrawal
	event NewWithdraw(address _addr, uint256 _amount);

	//The event of changes in the balance of the smart contract
	event ChangeBalance(uint256 _balance);

	struct Investor {
		//Member address
		address addr;
		//The address of the inviter
		address referer;
		//Deposit amount
		uint256 investment;
		//The time of the last contribution
		uint256 investment_time;
		//The time of the first contribution to the daily limit
		uint256 investment_first_time_in_day;
		//Deposit amount per day
		uint256 investments_daily;
		//Deposit income
		uint256 investment_profit;
		//Referral income
		uint256 referals_profit;
		//Cashback income
		uint256 cashback_profit;
		//Available balance income contributions
		uint256 investment_profit_balance;
		//Available referral income balance
		uint256 referals_profit_balance;
		//Available cashback income balance
		uint256 cashback_profit_balance;
	}

	//Percentage of daily charges before reaching the balance of 2000 ETH
	uint256 private constant dividends_perc_before_2000eth = 11;        // 1.1%
	//Percentage of daily charges after reaching the balance of 2000 ETH
	uint256 private constant dividends_perc_after_2000eth = 12;         // 1.2%
	//The percentage of the referral bonus of the first line
	uint256 public constant ref_bonus_level_1 = 5;                      // 5%
	//Second line referral bonus percentage
	uint256 public constant ref_bonus_level_2 = 3;                      // 3%
	//The percentage of referral bonus is the third line
	uint256 public constant ref_bonus_level_3 = 1;                      // 1%
	//Cashback bonus percentage
	uint256 public constant cashback_bonus = 3;                         // 3%
	//Minimum payment
	uint256 public constant min_invesment = 10 finney;                  // 0.01 eth
	//Deduction for advertising
	uint256 public constant advertising_fees = 15;                      // 15%
	//Limit to receive funds on the same day
	uint256 public constant contract_daily_limit = 100 ether;
	//Lock entry tools
	bool public block_investments = true;
	//The mode of payment
	bool public compensation = true;

	//Address smart contract first draft Wallie
	address first_project_addr = 0xC0B52b76055C392D67392622AE7737cdb6D42133;

	//Start time
	uint256 public start_time;
	//Current day
	uint256 current_day;
	//Launch day
	uint256 start_day;
	//Deposit amount per day
	uint256 daily_invest_to_contract;
	//The address of the owner
	address private adm_addr;
	//Starting block
	uint256 public start_block;
	//Project started
	bool public is_started = false;
	
	//Statistics
	//All investors
	uint256 private all_invest_users_count = 0;
	//Just introduced to the fund
	uint256 private all_invest = 0;
	//Total withdrawn from the fund
	uint256 private all_payments = 0;
	//The last address of the depositor
	address private last_invest_addr = 0;
	//The amount of the last contribution
	uint256 private last_invest_amount = 0;

	using SafeMath for uint;
    using ToAddress for *;
    using Zero for *;

constructor() public {
		adm_addr = msg.sender;
		current_day = 0;
		daily_invest_to_contract = 0;
	}

	//Current time
	function getTime() public view returns (uint256) {
		return (now);
	}

	//The creation of the account of the investor
	function createInvestor(address addr,address referer) private {
		investors[addr].addr = addr;
		if (investors[addr].referer.isZero()) {
			investors[addr].referer = referer;
		}
		all_invest_users_count++;
		emit NewInvestor(addr, msg.value);
	}

	//Check if there is an investor account
	function checkInvestor(address addr) public view returns (bool) {
		if (investors[addr].addr.isZero()) {
			return false;
		}
		else {
			return true;
		}
	}

	//Accrual of referral bonuses to the participant
	function setRefererBonus(address addr, uint256 amount, uint256 level_percent, uint256 level_num) private {
		if (addr.notZero()) {
			uint256 revenue = amount.mul(level_percent).div(100);

			if (!checkInvestor(addr)) {
				createInvestor(addr, address(0));
			}

			investors[addr].referals_profit = investors[addr].referals_profit.add(revenue);
			investors[addr].referals_profit_balance = investors[addr].referals_profit_balance.add(revenue);
			emit RefererBonus(msg.sender, addr, amount, revenue, level_num);
		}
	}

	//Accrual of referral bonuses to participants
	function setAllRefererBonus(address addr, uint256 amount) private {

		address ref_addr_level_1 = investors[addr].referer;
		address ref_addr_level_2 = investors[ref_addr_level_1].referer;
		address ref_addr_level_3 = investors[ref_addr_level_2].referer;

		setRefererBonus (ref_addr_level_1, amount, ref_bonus_level_1, 1);
		setRefererBonus (ref_addr_level_2, amount, ref_bonus_level_2, 2);
		setRefererBonus (ref_addr_level_3, amount, ref_bonus_level_3, 3);
	}

	//Get the number of dividends
	function calcDivedents (address addr) public view returns (uint256) {
		uint256 current_perc = 0;
		if (address(this).balance < 2000 ether) {
			current_perc = dividends_perc_before_2000eth;
		}
		else {
			current_perc = dividends_perc_after_2000eth;
		}

		return investors[addr].investment.mul(current_perc).div(1000).mul(now.sub(investors[addr].investment_time)).div(1 days);
	}

	//We transfer dividends to the participant's account
	function setDivedents(address addr) private returns (uint256) {
		investors[addr].investment_profit_balance = investors[addr].investment_profit_balance.add(calcDivedents(addr));
	}

	//We enroll the deposit
	function setAmount(address addr, uint256 amount) private {
		investors[addr].investment = investors[addr].investment.add(amount);
		investors[addr].investment_time = now;
		all_invest = all_invest.add(amount);
		last_invest_addr = addr;
		last_invest_amount = amount;
		emit NewInvestment(addr,amount);
	}

	//Cashback enrollment
	function setCashBackBonus(address addr, uint256 amount) private {
		if (investors[addr].referer.notZero() && investors[addr].investment == 0) {
			investors[addr].cashback_profit_balance = amount.mul(cashback_bonus).div(100);
			investors[addr].cashback_profit = investors[addr].cashback_profit.add(investors[addr].cashback_profit_balance);
			emit CashbackBonus(addr, amount, investors[addr].cashback_profit_balance);
		}
	}

	//Income payment
	function withdraw_revenue(address addr) private {
		uint256 withdraw_amount = calcDivedents(addr);
		
		if (check_x2_profit(addr,withdraw_amount) == true) {
		   withdraw_amount = 0; 
		}
		
		if (withdraw_amount > 0) {
		   investors[addr].investment_profit = investors[addr].investment_profit.add(withdraw_amount); 
		}
		
		withdraw_amount = withdraw_amount.add(investors[addr].investment_profit_balance).add(investors[addr].referals_profit_balance).add(investors[addr].cashback_profit_balance);
		

		if (withdraw_amount > 0) {
			clear_balance(addr);
			all_payments = all_payments.add(withdraw_amount);
			emit NewWithdraw(addr, withdraw_amount);
			emit ChangeBalance(address(this).balance.sub(withdraw_amount));
			addr.transfer(withdraw_amount);
		}
	}

	//Reset user balances
	function clear_balance(address addr) private {
		investors[addr].investment_profit_balance = 0;
		investors[addr].referals_profit_balance = 0;
		investors[addr].cashback_profit_balance = 0;
		investors[addr].investment_time = now;
	}

	//Checking the x2 profit
	function check_x2_profit(address addr, uint256 dividends) private returns(bool) {
		if (investors[addr].investment_profit.add(dividends) > investors[addr].investment.mul(2)) {
		    investors[addr].investment_profit_balance = investors[addr].investment.mul(2).sub(investors[addr].investment_profit);
			investors[addr].investment = 0;
			investors[addr].investment_profit = 0;
			investors[addr].investment_first_time_in_day = 0;
			investors[addr].investment_time = 0;
			return true;
		}
		else {
		    return false;
		}
	}

	function() public payable
	isStarted
	rerfererVerification
	isBlockInvestments
	minInvest
	allowInvestFirstThreeDays
	setDailyInvestContract
	setDailyInvest
	maxInvestPerUser
	maxDailyInvestPerContract
	setAdvertisingComiss {

		if (msg.value == 0) {
			//Request available payment
			withdraw_revenue(msg.sender);
		}
		else
		{
			//Contribution
			address ref_addr = msg.data.toAddr();

			//Check if there is an account
			if (!checkInvestor(msg.sender)) {
				//Создаем аккаунт пользователя
				createInvestor(msg.sender,ref_addr);
			}

			//Transfer of dividends on Deposit
			setDivedents(msg.sender);

			//Accrual of cashback
			setCashBackBonus(msg.sender, msg.value);

			//Deposit enrollment
			setAmount(msg.sender, msg.value);

			//Crediting bonuses to referrers
			setAllRefererBonus(msg.sender, msg.value);
		}
	}

	//Current day
	function today() public view returns (uint256) {
		return now.div(1 days);
	}

	//Prevent accepting deposits
	function BlockInvestments() public onlyOwner {
		block_investments = true;
	}

	//To accept deposits
	function AllowInvestments() public onlyOwner {
		block_investments = false;
	}
	
	//Disable compensation mode
	function DisableCompensation() public onlyOwner {
		compensation = false;
	}

	//Run the project
	function StartProject() public onlyOwner {
		require(is_started == false, "Project is started");
		block_investments = false;
		start_block = block.number;
		start_time = now;
		start_day = today();
		is_started = true;
	}
	
	//Investor account statistics
	function getInvestorInfo(address addr) public view returns (address, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
		Investor memory investor_info = investors[addr];
		return (investor_info.referer,
		investor_info.investment,
		investor_info.investment_time,
		investor_info.investment_first_time_in_day,
		investor_info.investments_daily,
		investor_info.investment_profit,
		investor_info.referals_profit,
		investor_info.cashback_profit,
		investor_info.investment_profit_balance,
		investor_info.referals_profit_balance,
		investor_info.cashback_profit_balance);
	}
	
	//The stats for the site
    function getWebStats() public view returns (uint256,uint256,uint256,uint256,address,uint256){
    return (all_invest_users_count,address(this).balance,all_invest,all_payments,last_invest_addr,last_invest_amount); 
    }

	//Check the start of the project
	modifier isStarted() {
		require(is_started == true, "Project not started");
		_;
	}

	//Checking deposit block
	modifier isBlockInvestments()
	{
		if (msg.value > 0) {
			require(block_investments == false, "investments is blocked");
		}
		_;
	}

	//Counting the number of user deposits per day
	modifier setDailyInvest() {
		if (now.sub(investors[msg.sender].investment_first_time_in_day) < 1 days) {
			investors[msg.sender].investments_daily = investors[msg.sender].investments_daily.add(msg.value);
		}
		else {
			investors[msg.sender].investments_daily = msg.value;
			investors[msg.sender].investment_first_time_in_day = now;
		}
		_;
	}

	//The maximum amount of contributions a user per day
	modifier maxInvestPerUser() {
		if (now.sub(start_time) <= 30 days) {
			require(investors[msg.sender].investments_daily <= 20 ether, "max payment must be <= 20 ETH");
		}
		else{
			require(investors[msg.sender].investments_daily <= 50 ether, "max payment must be <= 50 ETH");
		}
		_;
	}

	//Maximum amount of all deposits per day
	modifier maxDailyInvestPerContract() {
		if (now.sub(start_time) <= 30 days) {
			require(daily_invest_to_contract <= contract_daily_limit, "all daily invest to contract must be <= 100 ETH");
		}
		_;
	}

	//Minimum deposit amount
	modifier minInvest() {
		require(msg.value == 0 || msg.value >= min_invesment, "amount must be = 0 ETH or > 0.01 ETH");
		_;
	}

	//Calculation of the total number of deposits per day
	modifier setDailyInvestContract() {
		uint256 day = today();
		if (current_day == day) {
			daily_invest_to_contract = daily_invest_to_contract.add(msg.value);
		}
		else {
			daily_invest_to_contract = msg.value;
			current_day = day;
		}
		_;
	}

	//Permission for users of the previous project whose payments were <= 30% to make a contribution in the first 3 days
	modifier allowInvestFirstThreeDays() {
		if (now.sub(start_time) <= 3 days && compensation == true) {
			uint256 invested = WallieFirstProject(first_project_addr).invested(msg.sender);

			require(invested > 0, "invested first contract must be > 0");

			uint256 payments = WallieFirstProject(first_project_addr).payments(msg.sender);

			uint256 payments_perc = payments.mul(100).div(invested);

			require(payments_perc <= 30, "payments first contract must be <= 30%");
		}
		_;
	}

	//Verify the date field
	modifier rerfererVerification() {
		address ref_addr = msg.data.toAddr();
		if (ref_addr.notZero()) {
			require(msg.sender != ref_addr, "referer must be != msg.sender");
			require(investors[ref_addr].referer != msg.sender, "referer must be != msg.sender");
		}
		_;
	}

	//Only the owner
	modifier onlyOwner() {
		require(msg.sender == adm_addr,"onlyOwner!");
		_;
	}

	//Payment of remuneration for advertising
	modifier setAdvertisingComiss() {
		if (msg.sender != adm_addr && msg.value > 0) {
			investors[adm_addr].referals_profit_balance = investors[adm_addr].referals_profit_balance.add(msg.value.mul(advertising_fees).div(100));
		}
		_;
	}

}

//The interface of the first draft (the amount of deposits and amount of payments)
contract WallieFirstProject {

	mapping (address => uint256) public invested;

	mapping (address => uint256) public payments;
}

library SafeMath {

	/**
	  * @dev Multiplies two numbers, reverts on overflow.
	  */
	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
		// benefit is lost if 'b' is also tested.
		// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
		if (a == 0) {
			return 0;
		}

		uint256 c = a * b;
		require(c / a == b);

		return c;
	}

	/**
	* @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
	*/
	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b > 0); // Solidity only automatically asserts when dividing by 0
		uint256 c = a / b;
		// assert(a == b * c + a % b); // There is no case in which this doesn't hold

		return c;
	}

	/**
	* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
	*/
	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b <= a);
		uint256 c = a - b;

		return c;
	}

	/**
	* @dev Adds two numbers, reverts on overflow.
	*/
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		require(c >= a);

		return c;
	}

	/**
	* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
	* reverts when dividing by zero.
	*/
	function mod(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b != 0);
		return a % b;
	}
}

library ToAddress
{
	function toAddr(uint source) internal pure returns(address) {
		return address(source);
	}

	function toAddr(bytes source) internal pure returns(address addr) {
		assembly { addr := mload(add(source,0x14)) }
		return addr;
	}
}

library Zero
{
	function requireNotZero(uint a) internal pure {
		require(a != 0, "require not zero");
	}

	function requireNotZero(address addr) internal pure {
		require(addr != address(0), "require not zero address");
	}

	function notZero(address addr) internal pure returns(bool) {
		return !(addr == address(0));
	}

	function isZero(address addr) internal pure returns(bool) {
		return addr == address(0);
	}
}
Документация
Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Задача организации, в особенности же новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации новых предложений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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