// Обмін ETH на ERC-20 function ethToTokenSwap(uint256 _minTokens) public payable { // Отримуємо кількість токенів, які знаходятся на контракті uint256 tokenReserve = getReserve(); // Обраховуємо кількість токенів, які отримає користувач в обмін на ETH(для цього викликається функція getAmount) uint256 tokensBought = getAmount(msg.value, address(this).balance - msg.value, tokenReserve); // Перевірка на прослизання(slippage) require(tokensBought >= _minTokens, "insufficient output"); // Переводимо токени на адрес користувача IERC20(tokenAddress).transfer(msg.sender, tokensBought); }
0.7.1