avatar
Eunum

Вы подписаны0Подписчики (X)55Посты29Лайки11
avatar

🦄 @Uniswap V1 с нуля завершён. Полностью переписал V1 на Solidity с использованием Foundry вручную. - Фабрика + биржа, где биржа — это токен LP - x * y = k с комиссией 0,3% - Обмены ETH токен и токен токен, добавление/удаление ликвидности - 181 тест проходит, 100% покрытие forge - Документация + ограничения и замечания по безопасности 🎥 Видео скоро: не учебник по кодингу, а обзор кода на высоком уровне с фрагментами кода и анимациями, чтобы понять, как всё работает. Авторы: оригинальные контракты V1 + версия Solidity от @rosarioborgesi. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Завершены юнит-тесты для маршрута tokenToEth. - 131 тест проходит с 100% покрытием forge на данный момент. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Реализован removeLiquidity для сжигания долей пула. - Вывод пропорциональной доли как ETH, так и токенов, в зависимости от доли LP в общем объеме. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Реализован addLiquidity для начального и последующих депозитов в пул. - Первый депозит устанавливает цену пула, последующие депозиты должны соответствовать текущему соотношению. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Завершены юнит-тесты для маршрута обмена ethToToken. - Пока 55 тестов проходят с 100% покрытием forge. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Добавлены обертки вокруг приватных математических функций. - Написаны базовые юнит-тесты для ethToTokenSwapInput. 👨‍💻 GitHub: https://t.co/D4koIhyI6O

avatar

🦄 Прогресс в создании @Uniswap V1 с нуля. - Реализованы _getInputPrice() и _getOutputPrice() для расчета цены ETH/Token. - Реализован getEthToTokenInputPrice() для получения суммы токенов, покупаемых за фиксированную сумму ETH. - Реализован _ethToTokenInput() для выполнения обмена ETH на токены. 👨‍💻 GitHub: https://t.co/D4koIhyahg

avatar

При создании @Uniswap V1 с нуля я обнаружил особенность поведения баланса контракта при отправке ETH с помощью вызова функции. Предположим, баланс контракта составляет 10 ETH. Вы вызываете payable-функцию с 1 ETH. Внутри функции address(this).balance возвращает 11 ETH, а не 10. EVM добавляет любой входящий ETH к балансу до выполнения любой строки кода функции.

avatar

Сегодня завершился Воркшоп 1 UHI-11 🦄 Самый подробный воркшоп, который я когда-либо посещал. Я пришёл, зная x*y=k, и думал, что это всё про AMM. А потом — дизайны v2, v3 и v4, флеш-учёт, временные хранилища, претензии ERC-6909... намного сложнее постоянной формулы произведения 😅 Честно говоря, я понял, наверное, только 30%, но одно стало ясно: в v4 хук — это пользовательский код, который пул выполняет в определённых точках обмена, например, beforeSwap и afterSwap. Эту неделю я пересмотрю запись и ещё раз прочитаю материалы. Спасибо @TomWade и @AtriumAcademy за сессию 🙏