У меня давно в списке проектов на реализацию была записана идея — better uni UI. Отложил её в долгий ящик, т.к. в пулах на евм было нечего фармить. Но вот, пошла бычка в бск и я решил попробовать вооружиться курсором и LLM-ками 😠.
По сути реализация проста:
🟢 Нам надо выкладывать в бины ликвидность не равными частями, а по убыванию или возрастанию
🟢 Сделать для этого сайтик
Поскольку я понимаю, как работает uni v3, описать задачу и детали реализации любой ллмке было довольно легко. За 2 часа (сколько бл.. 💀) сделал все необходимое для этого:
🔵Алгоритм для распределения ликвы
🔵Примитивы для взаимодействия с панкейком.
Как мне кажется, без ллм это была бы основная задача, которая бы съела бОльшую часть времени.
В качестве задачи со звездочой я модифицировал распределение ликвы, сделанное метеорой:
=== Exponent Test | exponent=-1 | binsDown=5, binsUp=5 ===
EXPO pattern (up):
|||| 4
||| 3
|| 2
| 1
| 1
|| 2
||| 3
|||| 4
"Ускоренная" экспонента:
|||||||||||||||| 16
||||||||| 9
|||| 4
| 1
| 1
|||| 4
||||||||| 9
|||||||||||||||| 16
"Замедленная" экспонента:
|| 2
|| 2
| 1
| 1
| 1
| 1
|| 2
|| 2
В метеоре доступен только первый вариант — линейный рост от бина к бину, я же добавил возможность экспоненциального. Мне очень часто это этого не хватало.
Однако, с фронтом всё оказалось не так просто... Сам я раньше не делал веб и никогда этим не интересовался. Объяснить задание словами иишке было трудно. Приходилось рисовать в пейнте/делать скриншоты/ссылаться на известные сайты.
Поменяв 10 раз модель и наругавшись, я добился мега тупого варианта со скрина #1 (1ый слайдер не работает, буквально неактивен, ликву двигают 2 других слайдера, скорость настраивает ещё один), где даже ликва рисовалась неверно.
Спустя ещё день я всё привел к варианту #2. В целом, задача выполнена, но прям мега отвратительно. Пользоваться этой фигней мог бы только я сам))
Перейдя к тестам, я понял, что в UNI v3 нужно иметь 1 позицию = 1 бин, чтобы реализовать задуманное. На больших ренжах это делает транзакцию в разы/десятки раз дороже, такую транзакцию трудно собирать (ллм плохо справилась и транзы часто фейлились). К тому же, никак кроме моего сайта следить за позицией было бы нельзя.
По итогу эксперимента понял, что результата добился, но причесывать фронтенд и заниматься отладкой я не хочу. Это займет гораздо больше времени, а взаимодействие с в3 пулами, как на метеоре, всё равно окажется сложным и неудобным.
На самом деле, было интересно попробовать сделать что-то вообще не трогая код. Максимум что я фиксил — неверные импорты. Удивительно, насколько быстро ллм справилась со сложной частью, но застряла на фронте. Скорее всего, я полный нубас, поэтому не смог сделать нормально.
В целом, концепт рабочий и интересный, но требует более детальной проработки (Жаль только евм сезон длится не больше недели).
Мистер соуджу? Мистер ibsial передаёт вам привет 😈

