Что сейчас в контракте
Новые значения
потолок на операцию
%
Выше этой потери своп ревертится. Ориентир: комиссия пула плюс 3–4% на расхождение цены.
предохранитель
%
Операция с такой потерей проходит, но контракт запирается до разморозки. Обязан быть строго меньше потолка.
лимит потерь за час
Накопленная потеря за час. Ноль запрещает свопы полностью — это fail-safe до настройки.
лимит потерь за сутки
Окна фиксированные, не скользящие: на стыке лимит может выбраться дважды подряд, закладывайте двукратный запас.
кап на своп, token0
Максимальный объём одной операции. Работает вместе с потолком: максимум за операцию = кап × потолок.
кап на своп, token1
пол, token0
Ниже этих балансов позиция не откроется. Свопы и выход не трогает — иначе перекос было бы нечем лечить. Ноль в обоих полях выключает проверку.
пол, token1
Кнопка на любой из двух строк шлёт одну и ту же транзакцию
setFloor:
контракт пишет оба пола сразу, поменять один, не тронув второй, он не умеет. Поэтому перед
нажатием проверяйте обе строки — в лог уходят оба значения, которые реально уедут в контракт.
guardian
Ключ наблюдателя: умеет только запереть контракт. Украсть им нельзя, поэтому держать на машине сторожа, отдельно от бот-серверов.
Отправка
Отправит капы, guard, пол и guardian (если поле заполнено). Кошелёк спросит подтверждение на каждую транзакцию — подписывать по одной иначе нельзя. Потом страница дождётся квитанций и сверит, что реально записалось в контракт.
Аварийные кнопки
Заморозка останавливает свопы и вход в позиции. Выход из позиции и вывод средств остаются доступны всегда. Заморозить может guardian, admin или owner; снять — только owner.
Смена владельца
новый owner
Передача идёт в два шага. Эта кнопка только записывает адрес в
pendingOwner — владельцем он станет, когда сам нажмёт «принять права»
со своего кошелька. До тех пор управление целиком остаётся у текущего owner, поэтому
опечатка в адресе контракт не отнимает. Адрес из одних нулей отменяет начатую передачу.
ждёт подтверждения
Нажимает НОВЫЙ владелец со своего кошелька — ровно тот адрес, что стоит
в
pendingOwner; любому другому контракт откажет. После принятия старый ключ
управление теряет: guard, полы, капы, guardian и разморозка станут ему недоступны.