Незалежний путівник · Крипто

Від’єднання dApp ≠ відклик дозволу ERC‑20: як перевірити й відкликати доступ

Практичний посібник для користувачів самоопіки Ethereum ERC‑20: чому від’єднання гаманця не видаляє он‑чейн дозволи й як їх перевірити та відкликати.

Редакційна ілюстрація до матеріалу: Від’єднання dApp ≠ відклик дозволу ERC‑20: як перевірити й відкликати доступ

Чому це важливо

Від’єднання гаманця лише завершує браузерну сесію; щоб змінити ERC‑20 allowance потрібно надіслати транзакцію в блокчейн (зазвичай approve(spender, 0)) і дочекатися підтвердження.

Чому від’єднання dApp не видаляє ERC‑20 дозволи

Від’єднання лише припиняє сесію у браузері та забирає у сайту інтерфейсний доступ до вашої адреси. Якщо раніше ви підписали транзакцію approve(), вона оновила стан контракту токена на блокчейні — і цей стан залишається, поки не надішлють нову транзакцію.

У контракті ERC‑20 дозволи зберігаються в mapping owner → spender → uint256. Зміна цього значення вимагає on‑chain транзакції; жодна кнопка «Disconnect» у сайті чи гаманці не змінює цей запис.

  • «Від’єднати» — означає лише припинити сесію й UI‑доступ.
  • Щоб змінити allowance потрібно надіслати нову транзакцію approve(...) у блокчейн.

Як знайти мережу, контракт токена, адрес spender та поточний allowance

Переконайтеся, що у вашому гаманці обрана правильна мережа (наприклад, Ethereum Mainnet). Перевірка дозволів на іншій мережі може показати інший стан або не показати нічого.

Вставте тільки вашу публічну адресу в Etherscan Token Approval Checker або Revoke.cash. Інструмент покаже контракт токена, адресу спендера, мітку та суму дозволу. Якщо ім’я спендера підозріле, відкрийте його адресу в Etherscan для перевірки коду та транзакцій.

  • Переконайтеся в правильності мережі в гаманці.
  • Вставляйте лише публічну адресу у перевіряючий інструмент.
  • Перевіряйте адресу спендера на Etherscan для додаткових підказок.

Як надіслати транзакцію відкликання і заплатити за газ

Щоб відкликати дозвіл, зазвичай викликають approve(spender, 0) у контракті токена. Гаманці та сервіси формують ABI‑закодовану транзакцію автоматично; вам потрібно підтвердити запит у гаманці та оплатити газ.

Газ оплачується нативною монетою мережі (ETH для Ethereum). Гаманці показують приблизну ціну та ліміт газу; дочекайтеся, поки транзакція підтвердиться на блокчейні.

  • Дія: approve(spender, 0) — гаманці згенерують calldata.
  • Оплата газу в нативній монеті; перевірте оцінку в гаманці.
  • Не вважайте зміну завершеною, поки транзакція не підтвердиться.

Підтвердження результату та обмеження

Після підтвердження транзакції перевірте значення allowance через Etherscan Read Contract або оновіть сторінку Revoke.cash — значення в контракті є остаточним джерелом істини.

Відклик не поверне кошти, які вже були списані за попереднім дозволом, і не відновить скомпрометовану seed‑фразу. Якщо ключі були скомпрометовані, перемістіть кошти в новий гаманець.

  • Підтверджуйте allowance через Read Contract або approval checker.
  • Відклик блокує майбутні transferFrom() за межами нового ліміту, але не скасовує минулі трансфери.
  • За витоку seed‑фрази — створіть новий гаманець і перелийте кошти.

Що перевірити

  • Перевірте мережу в гаманці (наприклад, Ethereum Mainnet).
  • Відкрийте Etherscan Token Approval Checker або Revoke.cash і вставте публічну адресу.
  • Знайдіть контракт токена, адресу спендера та поточний allowance; перевірте адресу спендера в Etherscan.
  • Виберіть «Revoke» (встановити 0) або зменшіть ліміт, підтвердіть транзакцію у гаманці й оплатіть газ.
  • Почекайте підтвердження транзакції та перевірте, що allowance(owner, spender) дорівнює 0.
  • Якщо була витік seed‑фрази, перемістіть активи в новий гаманець — відкликання не рятує від компрометації ключа.

Джерела

Перевірено: . Зовнішні джерела відкриваються в новій вкладці.

  1. How to revoke smart contract access to your crypto fundsethereum.org
  2. How to revoke smart contract allowances / token approvalsMetaMask Support
  3. Token Approval Checker / Token Approval documentationEtherscan
  4. Token approval checker — learn approvalsRevoke.cash
← Інші матеріали