По возможности разрешайте только входную сумму, нужную для swap. После торговли откройте доверенный checker разрешений в той же сети, найдите allowance роутера, отправьте revoke-транзакцию и убедитесь, что значение стало нулевым.
Практический порядок#
- Проверьте токен и spender-контракт. Сверьте сеть, полный адрес токена и адрес роутера по официальной документации. Знакомое имя контракта или логотип в кошельке не являются доказательством.
- Выберите точную сумму или ограниченный по времени Permit. Точное разрешение требует нового approve при следующей сделке, зато ограничивает потенциальное списание. Учитывайте стоимость газа, размер баланса и частоту использования.
- До swap подтвердите approve в блокчейне. Дождитесь включения транзакции в блок и проверьте фактический allowance через обозреватель или надёжный checker. Не считайте подпись в кошельке подтверждением исполнения.
- Завершите обмен и проверьте выходной токен. Сверьте его контракт, полученное количество и minimum received. Если swap отменился, разрешение может всё равно остаться активным.
- Отзовите старое разрешение и дождитесь подтверждения. Revoke — это отдельная ончейн-транзакция, требующая нативного газа. После подтверждения повторно прочитайте allowance: он должен быть нулевым или равным осознанно оставленному лимиту.
Что действительно важно#
Approve уполномочивает роутер, а swap использует токены в пределах этого права. Безлимитный allowance сохраняется даже при нулевом балансе.
Если позже на адрес поступят новые токены того же контракта, ранее одобренный spender снова сможет использовать их. Риск поэтому оценивают не только по текущему балансу, но и по будущему использованию кошелька, возможности обновления роутера и доверии к протоколу.
Универсальное правило#
Для часто используемого проверенного роутера повторные approve увеличивают газ. Решайте по сумме под риском и частоте, а не только удобству.
Permit не всегда безопаснее обычного approve: это подпись с параметрами spender, суммы, nonce и срока действия. Проверьте каждый параметр. Неограниченный Permit или подпись на неизвестном домене может предоставить столь же широкие права, а некоторые подписи используют через фишинговые интерфейсы без отдельной транзакции пользователя.
Ошибки#
- Разрешить похожий роутер. Название не подтверждает контракт.
- Отзывать в другой сети. Состояние каждой сети независимо.
- Отключиться вместо revoke. Локальное соединение не меняет allowance.
- Открыть фальшивую ссылку revoke после инцидента. Проверяйте инструмент самостоятельно.
Доказательства#
| Контрольная точка | Доказательство | Условие остановки |
|---|---|---|
| Проверить token и spender | Адреса из документации | Роутер только похож по названию |
| Ограничить сумму | Allowance в обозревателе | Выбрана другая сеть |
| Подтвердить approve | Хеш транзакции | Выполнено лишь disconnect |
Запишите swap, gas и итоговые allowances.
Сохраните хеши approve, swap и revoke. Сопоставьте адрес spender во всех трёх шагах; отзыв разрешения другому контракту не устраняет исходный риск. Если checker показывает несколько разрешений одному протоколу, разберите их по сети и токену, а не отзывайте вслепую через неизвестный сайт.
Часто задаваемые вопросы#
Возвращает ли revoke потраченные токены?
Нет. Он лишь запрещает дальнейшее использование allowance.
Почему approve и swap раздельны?
ERC-20 требует заранее уполномочить spender перевести входные токены.
Можно ли отозвать Permit-подпись?
Некоторые аннулируются nonce или allowance-механизмом; реализация различается.
Связанные руководства#
Источники#
- Поддержка Uniswap: обмены и устранение неполадок
- Ethereum.org: газ и комиссии
- MetaMask: транзакции и газ
Предупреждение о риске: Неверный approve может открыть токены для списания; проверяйте spender и сеть.
Редакционный стандарт
Материал носит образовательный характер и основан на источниках. Меры безопасности, правила бирж и правовые требования могут меняться — проверяйте важные шаги по официальным данным.