MLPool Context
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 мета-пул имеем следующие инструменты: