MLPool(далее мета-пул) представляет собой LP токен(ERC20
) c функцией приема/снятия сторонних ERC20
токенов от внешних пользователей. Помимо этого мета-пул обладает набором интерфейсов для управления позицией в пуле uniswap_v3
. Позиция в пуле uniswap_v3
репрезентует переданные ему пару токенов(например USDC
и WETH
) и характерезуется верхней и нижней границей позиции и суммой позиции.
Работа функций deposit
и withdraw
мета-пула не семетрична. deposit
имеет pull стратегию, withdraw
- push.
При депонировании(deposit
) пользователь передает мета-пулу требуемый токен(например WETH
), в замен получает LP токен MLP_WETHUSDC
, торговый робот при следующей ребалансировки позиции в пуле uniswap_v3
автоматически нарастит ее емкость на сумму пришедшую от пользователей мета-пула за весь период после последней ребалансировки(важно знать, что для наращивания позиции помимо пользовательских токенов используя капитал управляющих мета-пула).
При снятии(withdraw
) пользователь сжигает часть позиции в пуле uniswap_v3
и забирает вложенный токен, второй токен соженной позиции остается на контракте мета-пула.
Для операций над позицией в пуле uniswap_v3
мета-пул имеем следующие инструменты:
Создание позиции в пуле
аналог выставления пары лимитных ордеров по границам спреда
Удаление позиции в пуле
Cбор токенов, принадлежащих позиции мета-пула, включая заработанную комиссию
Прямой обмен токенов в пуле
аналог выставления рыночного ордера(с условиями выполнения по типу FOK)
uniswap_v3
? По видео сложилось впечатление что несколькими. Если несколькими - нужно уточненить как они между собой связанны(выявить зависимость tickLower
, tickUpper
и Amount
между пулами)uniswap_v3
. Иными словами предполагается ли использование пользовательских токенов для косвенной ре-балансировки через выставление рыночных ордеров(swap
), или для данной операции мы используем дополнительный бюджет токенов, депонируемый управляющим мета-пула(MLP)?Задача торговой системы используя данные инструменты управлять ликвидностью мета-пула(некоторым количеством пары токенов) в автоматическом режиме, с минимальным использованием человека(за исключением определения и пере-определения ключевых параметров).
mint
) - параметры tickLower
, tickUpper
, amount
- задаются ли эти параметры вручную или вычисляются исходя из данных внешних систем.burn
) и создание новой(mint
) - параметры tickLower
, tickUpper
, amount
- задаются ли эти параметры вручную или вычисляются исходя из данных внешних систем.swap
) - параметры TBA.Из ответов на данные вопросы мы постараемся формулировать алгоритм торгового робота - цепочку операций, поддерживающую позицию в требуемых границах, алгоритм расчета которых так-же определим из ответов.