Кальтер / Блог

Как проверить и отозвать allowance ERC-20 у смарт-контракта

Отличи отключение dapp от on-chain allowance, сверь сеть, токен и spender и проверь изменение отдельной транзакцией.

Материал подготовлен с помощью ИИ. Источники, учебные примеры и расчёты проверены редакцией перед публикацией.

Условная схема чтения и отзыва ERC-20 allowance; подтверждение операции проверяется в сети, а не по экрану кошелька.
Условная схема чтения и отзыва ERC-20 allowance; подтверждение операции проверяется в сети, а не по экрану кошелька.

Отключить dapp от кошелька — не то же самое, что отозвать разрешение ERC-20 spender тратить токены. Allowance хранится в контракте токена; чтобы изменить его, обычно нужна отдельная транзакция. Перед подтверждением важно проверить сеть, токен и адрес spender.

Различай соединение и allowance

Соединение с сайтом позволяет интерфейсу видеть адрес и запрашивать действия в кошельке. allowance(owner, spender) — on-chain значение, которое токен сообщает для конкретного владельца и spender. Отсоединение сайта не меняет это значение. Ethereum.org отдельно указывает, что разрешение может оставаться активным после disconnect; revoke — самостоятельная транзакция с сетевой комиссией (руководство по отзыву доступа).

Поле Что сверить Почему важно
Сеть выбранную chain в кошельке и обозревателе одинаковые адреса могут существовать в разных сетях
Token contract официальный адрес токена в этой сети тикер и логотип не уникальны
Spender точный контракт, которому выдано право это не обязательно адрес сайта или интерфейса
Allowance текущий лимит и единицы токена большие разрешения могут оставаться активными

Учебный пример без реальных адресов: кошелёк показывает для TOKEN-A spender 0x…ABCD и allowance 500 токенов. Отключение браузерного соединения не меняет 500. Если владелец решил отозвать именно это разрешение, он проверяет контракт и подписывает отдельную транзакцию на уменьшение/обнуление allowance через доверенный инструмент. Она может стоить gas; точный способ зависит от токена и интерфейса.

Проверь данные до подписи

Открой разрешения на выбранной сети вручную. Сопоставь токен, spender, сумму и адрес; не принимай название dapp за идентификатор контракта. Если используешь revoke-интерфейс, проверь домен и то, какое действие предлагает кошелёк. После подтверждения дождись включения транзакции и перечитай allowance в той же сети.

ИИ можно попросить разобрать обезличенные поля, не давать адреса в подпись:

Объясни разницу между disconnect и allowance.
По полям ниже перечисли сеть, token contract, spender и текущее значение.
Не называй spender безопасным по одному адресу и не предлагай подтверждать транзакцию.
Скажи, что нужно перепроверить в кошельке/эксплорере до отдельного revoke.

Отзыв не отменяет уже исполненный перевод и не гарантирует безопасность dapp. Не подписывай неизвестную транзакцию и не отправляй seed phrase. Для общей модели угроз кошелька смотри руководство по безопасности криптоопераций; здесь задача ограничена allowance одного токена.