Как учесть заблокированную ликвидность при первом mint пары Uniswap v2

Первый поставщик эталонной пары v2 получает меньше LP, чем начальное геометрическое среднее. Отдельный минимум навсегда выпускается на нулевой адрес.

Определите первую операцию ликвидности

Проверьте нулевое предложение LP до выпуска. Вычислите целочисленный квадратный корень произведения внесённых сырых сумм и вычтите MINIMUM_LIQUIDITY для доли поставщика.

first deposits = 10000 and 40000 raw units
sqrt(product) = 20000
provider LP = 20000 - 1000 = 19000

В примере поставщик получает 19 000, нулевой адрес — 1 000 минимальных единиц LP. Общее новое предложение равно 20 000. Для сверки предложения и балансов сохраните оба перевода.

Для последующих вкладов используйте другое правило

Позднейшие выпуски выбирают меньший пропорциональный вклад относительно резервов и предложения. Повторное применение начальной формулы занизит долю поставщика. Пример использует константу эталонной пары и минимальные единицы без пересчёта точности токенов. github.com UniswapV2Pair.sol