ERC-827
Кратко: ERC-827 — это предложенный стандарт токенов Ethereum, разработанный, чтобы преодолеть ограничения ERC-20, прежде всего в переводах активов и транзакциях…
ERC-827 — это предложенный стандарт токенов Ethereum, разработанный, чтобы преодолеть ограничения ERC-20, прежде всего в переводах активов и транзакциях одобрения (подтверждения). Он объединяет перевод или одобрение токенов с вызовом другого контракта в одной транзакции.
Почему это важно
В ERC-20 оплата смарт-контракта обычно занимает два шага. Сначала владелец разрешает контракту тратить свои токены, а затем вторая транзакция заставляет контракт списать токены и выполнить действие. ERC-827 добавил такие функции, как transferAndCall и approveAndCall, которые переводят или одобряют токены и сразу вызывают функцию принимающего контракта, передавая ей дополнительные данные. Это экономит одну транзакцию и упрощает процесс для пользователей. Однако исследователи безопасности указали, что возможность контракта токена совершать произвольные вызовы с данными, выбранными пользователем, может быть использована во вред, поскольку эти вызовы исходят от самого контракта токена. Поэтому ERC-827 не стал широко используемым стандартом, а более поздние решения подходили к объединению переводов с вызовами контрактов осторожнее.
Пример
Пользователь хочет зарегистрироваться в сервисе, который берёт оплату в токенах. С ERC-20 он подписывает одобрение, ждёт его подтверждения, а затем подписывает вторую транзакцию для регистрации. С ERC-827 одна транзакция approveAndCall одновременно одобряет платёж и запускает функцию регистрации.