Работа хуков также зависит от вышеупомянутого ERC820-контракта.

Работа хуков также зависит от вышеупомянутого ERC820-контракта. Например, если контракт токена написан таким образом, чтобы отклонять приём токенов с определённой функцией, он будет обращаться к ERC820-контракту, чтобы узнать, присутствует ли названная функция в передаваемом ему токене. Если передаваемый токен не включен в ERC820-контракт, транзакция будет отклонена. В этом случае отправителю придётся передавать свой токен с помощью модели ERC20, то есть используя две транзакции. Таким образом, ERC777 поддерживает всю функциональность ERC20, поэтому даже ограниченное распространение стандарта на начальных стадиях не препятствует его использованию. Обратная совместимость позволяет разработчикам переходить на новый стандарт с относительно низкой степенью риска.

Отлаженные операторы

Ещё одним серьёзным отличием ERC777 от ERC20 является возможность использования операторов. Как объясняется в EIP, «оператор – это адрес, которому разрешено переводить и сжигать токены от имени другого адреса». Оператор может быть установлен держателем токена и являться адресом контракта или обычным адресом. Он может быть отключен в любой момент.

Это позволяет реализовать ряд функций, включая автоматические платежи. В качестве примера Байлина назвал возможность регулярной оплаты подписок или передачи токенов с холодного кошелька на горячий.

ERC777 также позволяет задавать «операторов по умолчанию». Согласно EIP, «такие операторы устанавливаются для всех держателей токенов». Байлина пояснил, что операторы по умолчанию могут использоваться, например, для автоматического вычета стоимости газа, что упростит процесс отправки транзакции. Хотя оператор по умолчанию применяется ко всем пользователям в момент своего создания, держатель токена в любое время может отозвать авторизацию. Впрочем, не ясно, как пользователи, не подозревающие о наличии этой функции, будут узнавать об операторе, что поднимает вопрос о безопасности и этичности его использования.

https://github.com/jacquesd/ERC777

GitHub
jacquesd/ERC777
ERC777 - New Standard for Ethereum Token