вижу как у них это реализовано, как минимум где они берут значения из пула? Нигде не вижу HTTP запросов на это
как это делает они можно просто посмотреть в исходном коде этой страницы Swap https://github.com/Uniswap/interface/blob/main/src/pages/Swap/index.tsx но если нужен калькулятор свапов для одного конкретного пула, то можно читать только из его контракта (без их sdk, periphery и прочего)
А допустим - как корректно считать имея просто смарт-контракт пула? Допустим я получил sqrtPriceX96 из Slot0, воспользовался этой либой https://github.com/thanpolas/univ3prices/blob/cf7855b0c1c892083bbcb9dced6f292040da2ae9/src/sqrt-price.js и получил некоторый price. Есть у меня token0 допустим это WETH, есть token1 это USDT, я хочу внести ETH чтобы получить USDT, например внести 0.1 ETH. В моем пуле комиссия 500 (0.5%), вычитаю ее из 0.1 ETH, получаю 0.09995 ETH, значит price * 0.09995 ETH = количество токенов которое я получу за 0.1 ETH
у меня кода расчета импакта нет возможно univ3prices.getAmountsForLiquidityRange(sqrtPrice, sqrtPriceA, sqrtPriceB, liquidity) из этой либы поможет
а что значит sqrtPriceA, sqrtPriceB и собственно liquidity?)
Обсуждают сегодня