TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.48K subscribers
Post #1023 995
Uniswap V2: swap(). Часть 4

Сегодня мы поговорим про всем известную константу XY = K, а именно, как она работает при свапах и расчете комиссии за свап.

Посмотрите на эти строки в функции свапа:

uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));


Uniswap V2 взымает установленные в коде 0.3% за каждый свап, поэтому мы видим цифры 1000 и 3.

Для упрощения объяснения работы константы, давайте для начала представим, что Юнисвап вообще не берет комиссию и напишем небольшую проверку, заменяющую предыдущие две строки:

require(balance0 * balance1 >= reserve0 * reserve1, "K");

Если внимательно присмотреться, К - это не совсем константа, не смотря на то, что в документации и примерах ее всегда называют AMM “constant product formula”, или константа формулы продукта.

Объяснение может быть очень простым: смотрите, когда кто-то переводит токены в пул и изменяет константу К, мы же не хотим его ограничивать, так как сами заинтересованы в обогащении наших поставщиков ликвидности и увеличении пула?

Так и Юнисвап не ограничивает вас от перевода очень больших объемов токенов и изменении К. Когда К становится больше, объем пула становится больше, а это именно то, что хотят поставщики ликвидности.

Теперь вернемся к процентам за перевод.

Мы хотим, чтобы не только К становился больше, мы хотим, чтобы он становился больше как минимум на такое количество, чтобы можно было взымать комиссию!

Глядя на код, мы можем сказать, что сама комиссия берется не по размеру пула, а по объему переводов. И применяется только к количеству токенов, которые поступают в пул, а не тех, что отправляются пользователю!

Например:

1. Мы отправили 1000 токенов_0 и забрали 1000 токенов_1. Нам потребуется заплатить комиссию в 3 токена_0;

2. Мы берем займ 1000 токенов_0 и должны будем вернуть 1000 токенов_0 плюс комиссию в 3 токена_0. Токен_1 здесь вообще не участвует, как можно заметить.

Теперь, глядя на изначальные строки расчета комиссии при свапе, мы понимаем, как они работают. Умножение на 1000 необходимо, так как Solidity не работает с "плавающей точкой" и требуется делать дополнительные умножения для проверки получения этих 0.3% комиссии.

#uniswap #constant #swap #fee
  • ❤ 4
  • 👍 2
More from @solidityset
  1. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  2. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  3. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  4. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
  5. Sep 14, 2026Графы повсюду Если вы также следите за новостями в мире ИИ, то наверняка уже все чаще встр…
  6. Sep 10, 2026GTA6, Cyberleek, блокчейн и безопасность Увидел несколько постов (тут и тут) про Cyberleek…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →