YopoInvest 10%
0x3515c2cc1b92e65183fdcfb231518d5af1139892
Баланс
0.647 ETH.
Динамика пополнений
от общего пополнения за день
0%
Ввод
За последний час
0 ETH.
Всего
1.672 ETH.
Выводы
За последний час
0 ETH.
Всего
1.02497 ETH.
Условия
В день
-
В час
-
Инвесторов
4
Повторные пополнения
За последний час
0 ETH.
Всего
0.872 ETH.
Средняя оценка аудиторов
-
- Таймлайн:
- час
- день
- неделя
- месяц
Пополнения (33)
Выводы (16)
Аудит
Код
API
Комменторы
Дата | Блок | TxHash | От кого | Кому | Сумма |
---|---|---|---|---|---|
19 фев. 17:16 | 7240658 | 0x5997dd993153fadeb51a5f5b2ff6baabed8f10dce780a2a0a150fc9b086d88cf | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
13 фев. 23:12 | 7216524 | 0x481411756fd8dee117a7eda1a8345f43fd9c58e6012c6636a94cc400cb773345 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
11 фев. 01:49 | 7204358 | 0x093a1e6f701a6c93ab0337e7af1df225839763d81a4da05335cd638aa9382f2c | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
11 фев. 01:45 | 7204347 |
0x34423157b43f526aaac37e3620a64f76f4058498a15b35c7c6901096c23d660b Транзакция с ошибкой |
0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
5 фев. 10:06 | 7177174 | 0x9158b62cec89da02cc3010941e0fe84bea17577bed499e95a852aec70ebd3fe3 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.745 Ether |
5 фев. 10:04 | 7177169 |
0xde357ff487e7276c49d26885609b1a65552ac8131cafd50dda03ff86cbad72ed Транзакция с ошибкой |
0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.748 Ether |
5 фев. 02:43 | 7175658 | 0x1852ab0f536bf41c190a657e84df9438d2272f3a30d392cdee05ec98f77b2e6f | 0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.1 Ether |
5 фев. 02:37 | 7175630 | 0x3569051a225a99acc4f8c43e7023f0ec7fcc1bb7a7b1c9208d08f9097d0fef5e | 0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
5 фев. 02:36 | 7175624 |
0xa3493ad7a1747d857872260380ae917f430a18fc7a68d353d02d36af16efb27e Транзакция с ошибкой |
0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
5 фев. 02:11 | 7175534 | 0x3d310f66bc8744c6ec42743d980442f2bdb64468bb432e9774b43e92b31346c3 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.027 Ether |
5 фев. 02:04 | 7175510 | 0x11f472905f51b7b73743a18245c9ce95444db8d474e1726306c4048a05b8f91a | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
4 фев. 10:35 | 7172341 | 0xd497fe691ff6e2f9631e823c6cdb8c69f8c194e66349f92b97db43fe77ac0c0e | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
4 фев. 00:50 | 7170323 | 0x53a390e5c1c32b64a701738dd38752c7374092d789d562aee82d761743dbc8e3 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.1 Ether |
4 фев. 00:47 | 7170310 |
0x3767fd666d54fdbcb6a820e9e6caa0f084bb0d6e61e5770b4761566a0d07cb6b Транзакция с ошибкой |
0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.1 Ether |
3 дек. 2018 г. 03:27 | 6815486 | 0x22cc4f68c91b136de119596bc01848a8befcca6e3c5a3ee8b0a020e3014b24e7 | 0x22a9b17c5e8b99bf5a4bfdda64ad68f32003d104 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0.5 Ether |
29 ноя. 2018 г. 03:45 | 6791300 |
0xdeff2f0b7b11be1e95df216e4d48c6c03b4a8f8763fa173dcf75d791c877817a Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
25 ноя. 2018 г. 16:28 | 6770256 |
0xe653e1b190a392cbf3a1490630c9016c350ecc4822e16d516e626f3792d28f7f Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
21 ноя. 2018 г. 03:15 | 6742480 |
0xe634708a96e2016c2f869be198107999d59c84b86b446cffad04c8de87fb3b94 Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
18 ноя. 2018 г. 00:29 | 6723548 |
0x619e91677d407d8b0cef587a43a3cd677a0c5d621be9e8baee1ee2de6ceb24da Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
16 ноя. 2018 г. 08:14 | 6713293 | 0x4a8ee7a604ea19644bee6495b8ad84eb9b23f787ae97a6a98c52fd9d5439474b | 0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
15 ноя. 2018 г. 14:40 | 6708800 |
0xfb454f1795a6da4ba2ce6575c67a0cd6c1652d795c6ca381e3b49e26725c37da Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
14 ноя. 2018 г. 14:51 | 6702726 |
0xc787014cf84251feb33b039e2f2bcc14743dfc4836eb6b0e1b6e01d86190c83d Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
13 ноя. 2018 г. 04:10 | 6693979 |
0xb968781449f6686ad6a293589cab5345dac6874213131d24be355a4470493c00 Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
12 ноя. 2018 г. 14:20 | 6690387 |
0xc490d5f0754cb8b58886ca778482edb8408a6a76e5992c3f4a18a6ffafabb148 Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
11 ноя. 2018 г. 00:50 | 6680864 |
0x9fd21423d3fca349ccc0c72524068138ea20a3f80c64f3f4c926e53c24902dc2 Транзакция с ошибкой |
0x8c6ac3261dd2096ce60963e93353fd3609a10b22 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0 Ether |
Дата | Блок | parentTxHash | От кого | Кому | Сумма |
---|---|---|---|---|---|
19 фев. 17:16 | 7240658 | 0x5997dd993153fadeb51a5f5b2ff6baabed8f10dce780a2a0a150fc9b086d88cf | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.190532 Ether |
13 фев. 23:12 | 7216524 | 0x481411756fd8dee117a7eda1a8345f43fd9c58e6012c6636a94cc400cb773345 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.09664666666666667 Ether |
11 фев. 01:49 | 7204358 | 0x093a1e6f701a6c93ab0337e7af1df225839763d81a4da05335cd638aa9382f2c | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.18639 Ether |
5 фев. 10:06 | 7177174 | 0x9158b62cec89da02cc3010941e0fe84bea17577bed499e95a852aec70ebd3fe3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.001815041666666666 Ether |
5 фев. 10:06 | 7177174 | 0x9158b62cec89da02cc3010941e0fe84bea17577bed499e95a852aec70ebd3fe3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.06705 Ether |
5 фев. 10:04 | 7177169 |
0xde357ff487e7276c49d26885609b1a65552ac8131cafd50dda03ff86cbad72ed Транзакция с ошибкой |
0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.001815041666666666 Ether |
5 фев. 02:43 | 7175658 | 0x1852ab0f536bf41c190a657e84df9438d2272f3a30d392cdee05ec98f77b2e6f | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.009 Ether |
5 фев. 02:37 | 7175630 | 0x3569051a225a99acc4f8c43e7023f0ec7fcc1bb7a7b1c9208d08f9097d0fef5e | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0.323 Ether |
5 фев. 02:11 | 7175534 | 0x3d310f66bc8744c6ec42743d980442f2bdb64468bb432e9774b43e92b31346c3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.00243 Ether |
5 фев. 02:04 | 7175510 | 0x11f472905f51b7b73743a18245c9ce95444db8d474e1726306c4048a05b8f91a | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.003266666666666666 Ether |
4 фев. 10:35 | 7172341 | 0xd497fe691ff6e2f9631e823c6cdb8c69f8c194e66349f92b97db43fe77ac0c0e | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xc9721cf7f10611974050caaf5ac68f93f23b0848 | 0.0018375 Ether |
4 фев. 00:50 | 7170323 | 0x53a390e5c1c32b64a701738dd38752c7374092d789d562aee82d761743dbc8e3 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.009 Ether |
3 дек. 2018 г. 03:27 | 6815486 | 0x22cc4f68c91b136de119596bc01848a8befcca6e3c5a3ee8b0a020e3014b24e7 | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.045 Ether |
16 ноя. 2018 г. 08:14 | 6713293 | 0x4a8ee7a604ea19644bee6495b8ad84eb9b23f787ae97a6a98c52fd9d5439474b | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0x0779d5536c81a1512aa29f4777648570c2bd2ad3 | 0.071 Ether |
30 окт. 2018 г. 05:27 | 6608866 | 0x06df965bf3501c53bc2d04a31b2b6d692ec86ba2bac32e28a113e1fa7ebbb20e | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.009 Ether |
29 окт. 2018 г. 14:03 | 6604918 | 0x2d3ffa8ab1feee32e92334fff3e608564cd555a8e2fc658758a697ac1a4ec67e | 0x3515c2cc1b92e65183fdcfb231518d5af1139892 | 0xe79b84906abb7dde4cc81bd27bc89a7e97366c0c | 0.009 Ether |
Средняя оценка аудиторов -
Contract Source Code </>
pragma solidity ^0.4.24; /*** * __ __ ___ ___ ___ * \ \ / / / _ \ | _ \ / _ \ * \ V / | (_) | | _/ | (_) | * _|_|_ \___/ _|_|_ \___/ * _| """ |_|"""""|_| """ |_|"""""| * "`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' * * * https://easyinvest10.app * * YOPO Lucky Investment Contract * - GAIN 3.3%-10% PER 24 HOURS! LUCKY PEOPLE GAINS LUCKY RATE! * - Different investors gain different division rates (see who the lucky guy is) * - 10% chance to win extra 10% ETH while investing 0.5 ETH or higher * - 1% chance to win double ETH while investing 0.1 ETH or higher * * How to use: * 1. Send any amount of ether to make an investment * 2a. Claim your profit by sending 0 ether transaction (1 time per hour) * OR * 2b. Send more ether to reinvest AND get your profit at the same time * 3. If you earn more than 200%, you can withdraw only one finish time * * RECOMMENDED GAS LIMIT: 140000 * RECOMMENDED GAS PRICE: https://ethgasstation.info/ * * Contract reviewed and approved by pros! * */ contract YopoInvest { using SafeMath for uint; mapping(address => uint) public rates; mapping(address => uint) public balance; mapping(address => uint) public time; mapping(address => uint) public percentWithdraw; mapping(address => uint) public allPercentWithdraw; uint public stepTime = 1 hours; uint public countOfInvestors = 0; address public ownerAddress = 0xe79b84906aBb7ddE4CC81bD27BC89A7E97366C0C; uint public projectPercent = 10; uint public floatRate = 50; uint public startTime = now; uint public lastTime = now; struct Bet { address addr; uint256 eth; uint256 rate; uint256 date; } Bet[] private _bets; uint256 public numberOfBets = 0; uint256[] public topRates; address[] public bonusAcounts; uint256 public numberOfbonusAcounts = 0; bool public enabledBonus = true; address[] public promotors = new address[](8); uint256 public numberOfPromo = 0; event Invest(address investor, uint256 amount, uint256 rate); event Withdraw(address investor, uint256 amount); event OnBonus(address investor, uint256 amount, uint256 bonus); modifier userExist { require(balance[msg.sender] > 0, "Address not found"); _; } modifier checkTime { require(now >= time[msg.sender].add(stepTime), "Too fast payout request"); _; } modifier onlyOwner { require (msg.sender == ownerAddress, "OnlyOwner methods called by non-owner."); _; } constructor() public{ addPromotor(0x56C4ECf7fBB1B828319d8ba6033f8F3836772FA9) ; } function() external payable { deposit(); } function deposit() private { if (msg.value > 0) { lastTime = now; uint bal = balance[msg.sender]; if (bal == 0) { countOfInvestors += 1; } if (bal > 0 && now > time[msg.sender].add(stepTime)) { collectDivision(); percentWithdraw[msg.sender] = 0; } // update division rate in first investment or reinvesting higher than current balance if(msg.value>=bal){ // update rates (uint _rate, uint _floatRate) = luckyrate(); floatRate = _floatRate; rates[msg.sender] = _rate; _bets.push(Bet(msg.sender, msg.value, _rate, now)); numberOfBets++; updateTopRates(numberOfBets-1); }else{ _bets.push(Bet(msg.sender, msg.value, rates[msg.sender], now)); numberOfBets++; } balance[msg.sender] = balance[msg.sender].add(msg.value); time[msg.sender] = now; luckybonus(); shareProfit(); emit Invest(msg.sender, msg.value, rates[msg.sender]); } else { collectDivision(); } } function collectDivision() userExist checkTime internal { if ((balance[msg.sender].mul(2)) <= allPercentWithdraw[msg.sender]) { balance[msg.sender] = 0; time[msg.sender] = 0; percentWithdraw[msg.sender] = 0; } else { uint payout = payoutAmount(); percentWithdraw[msg.sender] = percentWithdraw[msg.sender].add(payout); allPercentWithdraw[msg.sender] = allPercentWithdraw[msg.sender].add(payout); msg.sender.transfer(payout); emit Withdraw(msg.sender, payout); } } function payoutAmount() public view returns(uint256) { uint256 percent = rates[msg.sender]; uint256 different = now.sub(time[msg.sender]).div(stepTime); uint256 rate = balance[msg.sender].mul(percent).div(1000); uint256 withdrawalAmount = rate.mul(different).div(24).sub(percentWithdraw[msg.sender]); return withdrawalAmount; } function luckyrate() public view returns (uint256, uint256){ uint256 _seed = rand(); // longer gap time, higher bonus uint bonusRate = now.sub(lastTime).div(1 minutes); (uint minRate, uint maxRate) = rateRange(); uint rate = (_seed % (floatRate.sub(minRate)+1)).add(minRate).add(bonusRate); if(rate> maxRate){ rate = maxRate; } uint _floatRate = (maxRate.sub(rate).add(minRate)); if(_floatRate > maxRate){ _floatRate = maxRate; } if(_floatRate < minRate){ _floatRate = minRate; } return (rate, _floatRate); } function luckybonus() private { // check if you're a lucky guy if(enabledBonus && msg.value>= (0.1 ether)){ uint256 _seed = rand(); uint256 _bonus = 0; if(msg.value>= (0.5 ether) && (_seed % 10)==9){ // Congratulation! you win extra 10% _bonus = msg.value/10; }else if((_seed % 100)==99){ // Congratulation! you win DOUBLE! _bonus = msg.value; } if(_bonus>0){ if(_bonus > 1 ether){ /*1 ether is the highest bonus*/ _bonus = 1 ether; } balance[msg.sender] = balance[msg.sender].add(_bonus); bonusAcounts.push(msg.sender); numberOfbonusAcounts++; emit OnBonus(msg.sender, msg.value, _bonus); } } } function shareProfit() private { uint256 projectShare = msg.value.mul(projectPercent).div(100); uint256 promoFee = msg.value.div(100); uint256 i = 0; while(i<numberOfPromo && i<8){ address promo = promotors[i]; balance[promo] = balance[promo].add(promoFee); projectShare = projectShare.sub(promoFee); i++; } ownerAddress.transfer(projectShare); } function rand() private view returns(uint256) { return uint256(keccak256(abi.encodePacked( (block.timestamp) + (block.difficulty) + ((uint256(keccak256(abi.encodePacked(block.coinbase)))) / (now)) + (block.gaslimit) + ((uint256(keccak256(abi.encodePacked(msg.sender)))) / (now)) + (block.number) ))); } function rateRange() public view returns (uint256, uint256){ uint contractBalance = address(this).balance; if (contractBalance < 100 ether) { return (33, 60); } else if (contractBalance < 500 ether) { return (40, 70); } else if (contractBalance < 1000 ether) { return (46, 78); } else if (contractBalance < 2000 ether) { return (51, 85); } else if (contractBalance < 2500 ether) { return (55, 90); } else if (contractBalance < 5000 ether) { return (59, 95); } else{ return (62, 100); } } function getTopRatedBets() public view returns( address[], uint256[], uint256[], uint256[]){ uint256 i = 0; uint256 len = topRates.length; address[] memory _addrs = new address[](len); uint256[] memory _eths = new uint256[](len); uint256[] memory _rates = new uint256[](len); uint256[] memory _dates = new uint256[](len); while (i< len) { Bet memory b = _bets[topRates[i]]; _addrs[i] = b.addr; _eths[i] = b.eth; _rates[i] = b.rate; _dates[i] = b.date; i++; } return(_addrs, _eths, _rates, _dates); } function getBets(uint256 _len) public view returns( address[], uint256[], uint256[], uint256[]){ uint256 i = 0; uint256 len = _len> _bets.length? _bets.length: _len; address[] memory _addrs = new address[](len); uint256[] memory _eths = new uint256[](len); uint256[] memory _rates = new uint256[](len); uint256[] memory _dates = new uint256[](len); while (i< len) { Bet memory b = _bets[i]; _addrs[i] = b.addr; _eths[i] = b.eth; _rates[i] = b.rate; _dates[i] = b.date; i++; } return(_addrs, _eths, _rates, _dates); } /** sort rates */ function updateTopRates(uint256 indexOfBet) private{ if(indexOfBet<_bets.length){ uint256 maxLen = 20; /* only sort top 20 rates */ uint256 currentRate = _bets[indexOfBet].rate; uint256 len = topRates.length> maxLen ? maxLen: topRates.length; uint256 i = 0; while (i< len) { if(currentRate > _bets[topRates[i]].rate){ uint256 j = len.sub(1); if(j<maxLen-1){ topRates.push(topRates[topRates.length-1]); } while(j>i){ topRates[j]= topRates[j-1]; j--; } break; } i++; } if(i<maxLen){ if(i< topRates.length){ topRates[i] = indexOfBet; }else{ topRates.push(indexOfBet); } } } } function setEnabledBonus(bool _enabledBonus) public payable{ require(msg.sender == ownerAddress, "auth fails"); enabledBonus = _enabledBonus; } function getTopRates() public view returns (uint256[]){ return topRates; } function getBonusAccounts() public view returns (address[]){ return bonusAcounts; } function getPromotors() public view returns (address[]){ address[] memory _promotors = new address[](numberOfPromo); uint i = 0; while(i<numberOfPromo){ _promotors[i] = promotors[i]; i++; } return _promotors; } function addPromotor(address addr) onlyOwner public payable { require(numberOfPromo<8, "no more than 8 promotors"); promotors[numberOfPromo++] = addr; } function removePromotor(address addr) onlyOwner public payable { uint i = 0; bool found = false; while(i<numberOfPromo){ if(promotors[i] == addr){ found = true; } if(found){ promotors[i] = (i<numberOfPromo-1 ? promotors[i+1]: 0x0) ; } i++; } if(found){ numberOfPromo--; } } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ 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) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } 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; } }
Документация
Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Задача организации, в особенности же новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации новых предложений.
Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.
Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.
Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.
Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.
Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.
Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.
Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.
Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.
Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.
Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.
Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.
Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.
Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Информация о домене или любая информация о сайте
Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Товарищи! новая модель организационной деятельности позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом реализация намеченных плановых заданий позволяет выполнять важные задания по разработке новых предложений. Задача организации, в особенности же консультация с широким активом требуют от нас анализа существенных финансовых и административных условий. Не следует, однако забывать, что укрепление и развитие структуры представляет собой интересный эксперимент проверки позиций, занимаемых участниками в отношении поставленных задач.
Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.
Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.
Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.
Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.
С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.
Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.
Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.
Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.
Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.
Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.
Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.
Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.
Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.
Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.
Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.
С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.
Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.
Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.
Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.
Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.
Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.
Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.