КриптоЛампа.ПРОЯСНЯЕМ КРИПТОРЫНОКРедакция
Практическая инструкция

Почему approve и swap требуют двух подтверждений

Разбираем, чем разрешение на списание отличается от обмена, как проверить spender и лимит и почему успешный approve ещё не означает покупку токена.

Редакция КриптоЛампы · Обновлено · 2 мин чтения
Материал проверен

Сверены открытые первичные документы по механике и ограничениям. Кошелёк не подключался, действия в текущем интерфейсе и операции с реальными средствами не проверялись. Числа в примерах условные.

Два разных результата

При обмене ERC-20 токена контракту часто сначала нужно разрешение на списание, approve, а затем отдельное исполнение swap. Первая операция меняет allowance: сколько выбранный получатель разрешения, spender, вправе использовать. Вторая обменивает актив. Успешный approve сам по себе не покупает другой токен и не резервирует котировку.

Число окон кошелька зависит от приложения, ранее выданного разрешения и схемы подписи. Уже достаточный allowance может убрать отдельный approve. Подпись permit способна заменить транзакцию разрешения, но тоже требует проверки полномочий. Количество подтверждений не служит признаком безопасности.

Проверка первого запроса

До подтверждения запишите сеть, адрес исходного токена, spender и сумму разрешения. Сверяйте spender с актуальными адресами контрактов в документации сервиса. Название сайта в окне кошелька недостаточно: оно не объясняет, кому передаются права.

  • Уточните, разрешена конкретная сумма или практически неограниченное списание.
  • Сопоставьте единицы токена и его decimals, если кошелёк показывает сырые значения.
  • Остановитесь, если вместо ожидаемого токена запрошен доступ к другому активу.
  • Проверьте статус approve в обозревателе перед следующим действием.

Как читать второй запрос

После подтверждения разрешения получите свежую оценку обмена. Проверьте исходный и получаемый токены, минимум получения, адрес получателя и сетевой расход. Цена могла измениться за время ожидания approve. Сохранять старую сумму на экране и просто соглашаться со следующим окном не следует.

Условный пример: разрешение выдано на 40 токенов, но swap не был отправлен. Все 40 остаются в кошельке, а право spender сохраняется по правилам контракта. Если обмен завершился на 25, остаток разрешения нужно смотреть отдельно: поведение определяется реализацией токена и способом списания.

Если процесс оборвался

При закрытом окне, ошибке связи или failed у swap сначала восстановите цепочку событий по двум хешам. Не отправляйте новое разрешение автоматически. Достаточный allowance не устраняет ошибки маршрута, нехватку gas или ограничения самого токена. За исполненный approve и неудачный swap могут возникнуть отдельные сетевые расходы.

Отключение сайта в кошельке не отменяет существующее разрешение. Решение о сохранении или отзыве доступа принимают по конкретному spender; отзыв тоже может требовать транзакции. Полезный результат проверки — понять отдельно состояние разрешения, состояние обмена и оставшийся баланс, а не считать все окна одной покупкой.

Что прочитать дальше

Отключить сайт или отозвать approve: что действительно меняет доступ

Подпись сообщения и транзакция: что проверять в кошельке

СПРАВОЧНИК

Продолжить разбираться

ОТ ОСНОВЫ К СОБЫТИЯМ

Новости по теме