При добавлении ликвидности в ивент, передаваемый amount идёт в полном наборе в наибольший из пулов (либо aboveEq, либо Below). Меньший пул дополняется суммой от amount, которая равна отношнениям меньшего пула к большему (в результате чего соотношение пулов остаётся константой - добавление ликвидности не меняет соотношение пулов). В UI сейчас отображается что передаваемый amount идёт в одинаковом размере в оба пула, это не корректно.
Необходимо добавить эту логику расчёта для меньшего из пулов, на примере со скрином должно быть:
Amount: 100 (всё правильно)
Higher: 13.50 + 100 = 113.50 (всё правильно)
Lower: 0.95 + 0.95/13.50*100 = 7.99 (сейчас показывает 100.95 и это не правильно)
проверка 7.99 / 113.50 == 0.95 / 13.50
Если нужно, я могу подготовить какой-нибудь хэлпер в SDK или как-то переформулировать формулу, если объяснение не достаточно понятно
То есть логика может быть, например, такой:
let maxPool = max(currentAboveEq, currentBelow)
let newAboveEq = curentAboveEq + curentAboveEq / maxPool * providedAmount
let newBelow = currentBelow + currentBelow / maxPool * providedAmount
Хочу добавить что формируемая транзакция правильная, то есть это просто ошибка отображения числа в UI (графически пулы правильно показаны что не меняются)
При добавлении ликвидности в ивент, передаваемый
amount
идёт в полном наборе в наибольший из пулов (либо aboveEq, либо Below). Меньший пул дополняется суммой отamount
, которая равна отношнениям меньшего пула к большему (в результате чего соотношение пулов остаётся константой - добавление ликвидности не меняет соотношение пулов). В UI сейчас отображается что передаваемыйamount
идёт в одинаковом размере в оба пула, это не корректно.Необходимо добавить эту логику расчёта для меньшего из пулов, на примере со скрином должно быть: Amount:
100
(всё правильно) Higher:13.50
+100
=113.50
(всё правильно) Lower:0.95
+0.95/13.50*100
=7.99
(сейчас показывает100.95
и это не правильно)проверка
7.99 / 113.50
==0.95 / 13.50
Если нужно, я могу подготовить какой-нибудь хэлпер в SDK или как-то переформулировать формулу, если объяснение не достаточно понятно
То есть логика может быть, например, такой: