DeFi
March 3

Вводный курс DeFi для всех. Работа с dAPPs через смарт-контракты. Uniswap. Часть III

DeFi

Попробуем понять, какая сейчас цена в паре USDT/WETH пула с комиссией 0,3%.

Берём значение sqrtPriceX96 и вычисляем цену по формуле 2.

Формула

Мы получили значение, сколько USDT можем получить за единицу обёрнутого Эфира. Но единица USDt - это 10 в минус 6 степени. А единица обёрнутого эфира - это 10 в минус 18 степени. Потому что у контракта USDT количество знаков после запятой decimals 6, а у обернутого эфира 18.

Теперь поймём, сколько стоит целый обернутый эфир, а не 10 в минус 18. Для этого наше значение умножим на 10 в степени 18 и разделим на 10 в степени 6.

Формула

Сравним это значение с тем, что показывает Uniswap в своем приложении. Вычисленное нами значение близко тому, что показывает приложение.

Расхождение связано с тем, что существует погрешность округления. а также существует много пулов разных версий Uniswap с разным уровнем комиссии для нашей торговой пары. И приложение Uniswap само определяет, через какой пул и какой версии лучше всего для нас произвести обмен. Но близкое значение мы должны получить.

Теперь представим задачку: мы решили внести ликвидность в эту пару и нам нужно определить в тиках ценовой диапазон, в котором будет задействована наша ликвидность.

Представим, что наш ценовой диапазон: От 1900 до 2100 USDT за 1 ETH.

Как мы определим для них индексы тиков?

Сначала преобразуем цену, чтобы узнать, сколько за единицу обернутого эфира мы получим USDT. Умножаем 1900 на 10 в степени 6 и делим на 10 в степени 18.

Далее вычислим квадратный корень из полученной цены и вычисляем индексы тиков ценового диапазона по Формуле 3.

Теперь эти значения разделим на tickSpacing нашего пула, округлим до целого и обратно умножим.

Мы получили искомые индексы тиков, кратные значению tickSpacing.

-200820 и -199800

Теперь проверим, какие цены соответствуют этим индексам тиков. Используем Формулу 4.

Мы получили значения, сколько стоит 1 единица WETH (1*10^-18) в USDT

Теперь вычислим, сколько стоит 1 обернутый эфир в USDT, используя decimals обоих токенов.

Значения, близкие к тем, что мы выбирали в качестве ценового диапазона: 1900,79 и 2104,89.

Поясняющее видео

[Продолжение следует...]

До!