Написать смарт-контракт на solidity для Ethereum
Требуется написать смарт-контракт и тесты (hardhat) для yield фарминга на основе uniswap v3 протокола.
Все происходит в рамках одного контракта WETH/USDC с комиссией 0.05%.
Пользователь может:
1. Внести депозит в контракт в 1 из двух токенов (или же в двух сразу одновременно), тем самым открыв позицию в пуле через uniswap v3 протокол (nonfungiblePositionManager)
2. Повысить ликвидность открытой позиции в 1 из двух токенов (или же в двух сразу одновременно).
3. Собрать комиссию, получив при этом деньги на свой кошелек.
4. Понизить ликвидность открытой позиции, получив при этом деньги на свой кошелек.
5. Закрыть позицию, получив при этом деньги на свой кошелек.
Все позиции должны открываться от лица смарт контракта (не пользователя), комиссии.
Уже есть код, который нужно пофиксить, чтобы он работал.
В отклик сразу присылайте краткое описание, как будет работать смарт контракт и время, за которое справитесь.
Скрипты и боты