Выверенное добавление ликвидности в пулы Uniswap v3
Поблагодарить за перевод, можно подписавшись на канал Crypto_Track
После беседы со многими поставщиками ликвидности на Uniswap V3 в 2022 году одно из самых частых высказываний, которые можно было услышать, звучало примерно так:
«У меня есть 5000 USDC, и я хочу добавить их к своей позиции ETH / OP. Чтобы осуществить это, мне приходится выполнить два или даже три обмена, в некоторых случаях противоположных направлений, и даже после всех этих манипуляций у меня останутся незадействованные монеты, и я просто теряю мотивацию.»
Действительно, это болевая точка, которую мы тоже почувствовали и для которой разработали решение.
Одной из проблем при добавлении ликвидности к существующим позициям в Uniswap v3 является получение активов, которые вы хотите добавить, в нужном соотношении. Это связано с тем, что цена активов постоянно меняется, и правильное соотношение зависит от текущей цены пула, а также диапазона позиций. А если вы переходите в один и тот же пул с достаточным влиянием на цену, расчеты становятся еще более сложными.
Используя функцию Revert, теперь вы можете добавить ликвидность к существующей позиции, используя любое количество базовых активов или даже любой третий произвольный токен. Revert автоматически вычислит нужные суммы, которые необходимо обменять для каждого из активов пары токенов, получит наилучшую возможную котировку, используя API 0x, и атомарно выполнит обмен и добавит ликвидность к вашим позициям.
Мы предоставим удобную возможность сделать то же самое при выходе, если вы захотите "вывести и обменять" или "собрать комиссию и обменять" для любых средств, связанных с одним из активов или произвольным третьим токеном.
Все это происходит атомарно по цепочке, мы используем v3utils.sol, контракт, который мы опубликовали для этой цели, и протокол 0x для обработки любых необходимых обменов, поэтому поставщики ликвидности могут уверенно использовать эту функцию, даже когда они предоставляют ликвидность для относительно небольших пулов.
Мы реализовали три основные операции, определенные контрактом v3utils.
Обмен и увеличение ликвидности: требуется любое количество токенов token0, token1 или третьего произвольного токена и NFT позиции Uniswap v3. Эта операция обменяет токены на правильные суммы в соответствии с переданными параметрами, учитывая диапазон позиций, цену пула, котировки 0x и параметры максимального проскальзывания, выполнит все необходимые обмены, добавит замененные токены в позицию Uniswap и вернет NFT пользователю.
Уменьшение ликвидности и обмен: это обратная операция, которая осуществляется с использованием позиции NFT Uniswap и желаемого выходного токена, который не обязательно должен быть одним из базовых активов. Она уменьшает ликвидность на указанную пользователем сумму, выполняет обмен в соответствии с параметрами 0x API и максимального проскальзывания, а затем возвращает пользователю результаты обмена(ов) и NFT позиции. Ее можно выполнять с использованием любого объема ликвидности, содержащегося в позиции.
Получение комиссий и обмен: этот вариант, аналогично, позволяет пользователям собирать невыплаченные комиссии со своей позиции на Uniswap v3 и атомарно обменивать их на любой произвольный токен. Возвращая в конце операции выходные данные обменов, а также позицию NFT с нетронутой базовой ликвидностью.
Скоро появится функция обмена и чеканки: с ее помощью можно будет атомарно обменять и отчеканить позицию.
И очевидным недостающим элементом здесь является та же идея атомарного перевода любого актива в определенную позицию на Uniswap, но вместо увеличения ликвидности существующей позиции создайте новую позицию, которой у вас еще нет. Не волнуйтесь, мы работаем над этим, тестируем и ожидаем, что через несколько дней он будет полностью интегрирован с инициатором возврата.
Функции, описанные выше, уже доступны на сайте и во всех сетях. Мы с нетерпением ждем ваших комментариев и отзывов, когда вы их опробуете. Подписывайтесь на нас в Twitter или заходите в наш Discord, чтобы быть в курсе событий.
Ссылка на статью: https://mirror.xyz/revertfinance.eth/WenyNv6UJkt8veWRZGBKetONP6tssMxbi5lh9J3zwYw
Перевод подготовлен каналом Crypto_Track