TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Из Solidity в AI и дальше

24 Apr 2024, 11:41

Telegram'da ochish Ulashish Shikoyat qilish

Как Uniswap V2 вычисляет mintFee?

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

Uniswap V2 был разработан для сбора 1/6 части комиссии за своп в протоколе. Так как комиссия за своп составляет 0,3%, 1/6 часть от этой суммы равна 0,05%; то есть 0,05% от каждой сделки должно идти в протокол.

Ранее мы уже обсуждали, что сама процедура взимания комиссии за своп еще не активирована. Одной из причин может быть то, что это крайне не эффективное занятие. Посудите сами, при каждом свопе требовался бы дополнительный перевод токенов в пул (комиссия) и обновление переменных. И это при условии, что в одном пуле есть оба необходимых для свопа токена. А если нужно использовать несколько пулов? В общем, в V2 посчитали это трудоемким процессом.

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

Для того чтобы собрать mintFee, контракт вычисляет сумму комиссий, собранных с момента последней операции, и чеканит на адрес получателя достаточное количество токенов LP, чтобы вкладчик имел право на 1/6 часть самого сбора.

P.S. Во избежание путаницы в терминологии, мы обозначаем "fee" как 0,3%, взимаемые с трейдеров во время свопа, а "mintFee" - как 1/6 часть от 0,3%. Да, наличие комиссии в обоих терминах - не самая лучшая номенклатура, но это то, с чем нам приходится работать.

P.P.S. Также в данном контексте "ликвидность" - это квадратный корень из произведения остатков токенов в пуле. В некоторых источниках она обозначается как √𝑘, где 𝑘 = 𝑥𝑦, а 𝑥 и 𝑦 - остатки токенов.


Что еще нужно держать в уме для дальнейшего разбора?

В этой работе расчетов Uniswap V2 опирается на следующие два инварианта:

1. Если mint и burn не вызываются, ликвидность пула может только увеличиваться;

2. Увеличение ликвидности происходит исключительно за счет комиссий;

Таким образом, измеряя увеличение ликвидности с момента последнего mint или burn, пул понимает, сколько сборов было собрано.

Давайте разберем на примере, чтобы было чуть нагляднее.

Предположим, что в t₁ пул начинается с 10 токенов_0 и 10 токенов_1.

После множества торгов и сбора комиссии новый баланс пула составляет 40 токенов_0 и 40 токенов_1 в t₂.

Ликвидность измеряется как квадратный корень из произведения двух токенов, то есть ликвидность = sqrt(xy). Ликвидность составляла 10 на t₁ и 40 на t₂, sqrt(100) и sqrt(1600) соответственно. Мы собираемся взимать комиссию за рост с 10 до 40.

То есть 3/4, или 30 единиц ликвидности пула, приходится на комиссию. Мы хотим сминтить достаточное количество токенов LP, "mintFee", чтобы бенефициар получал 1/6 часть "комиссионной части" пула. То есть он должен иметь право на 5 единиц ликвидности (30 / 6).

Для формулы на скрине мы используем следующие обозначения:

s - количество LP токенов до сбора комиссии
η - комиссия
ℓ1 - ликвидность до сбора комиссии
ℓ2 - ликвидность после сбора комиссии

И ключевой инвариант:

η / p = s / d

То есть? если mintFee η может выкупить (redeem) количество ликвидности в протоколе 𝑝, то первоначальное предложение LP s может выкупить (redeem) оставшуюся часть пула d.

Именно этот расчет и показан на скрине.

Но если вам это еще ни о чем не говорит, то дальше мы посмотрим уже в код контракта, и вам точно станет понятнее.

#uniswap #v2 #mintfee

654 0 2 13
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot