Стандарт токенів ERC-777
Попередження
ERC-777 важко реалізувати належним чином через його вразливість до різних форм атак (opens in a new tab). Замість нього рекомендується використовувати ERC-20. Ця сторінка залишається як історичний архів.
Вступ?
ERC-777 — це стандарт взаємозамінних токенів, який покращує існуючий стандарт ERC-20.
Передумови
Щоб краще зрозуміти цю сторінку, ми рекомендуємо спочатку прочитати про ERC-20.
Які покращення пропонує ERC-777 порівняно з ERC-20?
ERC-777 забезпечує такі покращення порівняно з ERC-20.
Хуки
Хуки — це функції, описані в коді смарт-контракту. Хуки викликаються, коли токени надсилаються або отримуються через контракт. Це дозволяє смарт-контракту реагувати на вхідні або вихідні токени.
Хуки реєструються та виявляються за допомогою стандарту ERC-1820 (opens in a new tab).
Чому хуки — це чудово?
- Хуки дозволяють надсилати токени на контракт і сповіщати контракт однією транзакцією, на відміну від ERC-20 (opens in a new tab), який вимагає подвійного виклику (
approve/transferFrom) для досягнення цього. - Контракти, які не зареєстрували хуки, несумісні з ERC-777. Контракт-відправник перерве транзакцію, якщо контракт-отримувач не зареєстрував хук. Це запобігає випадковим переказам на смарт-контракти, що не підтримують ERC-777.
- Хуки можуть відхиляти транзакції.
Десяткові знаки
Стандарт також вирішує плутанину навколо decimals, спричинену в ERC-20. Ця ясність покращує досвід розробників.
Зворотна сумісність з ERC-20
З контрактами ERC-777 можна взаємодіяти так, ніби це контракти ERC-20.