Padrão de token ERC-777
Última edição: @mauri.lustosa(opens in a new tab), 15 de agosto de 2023
Atenção
ERC-777 é difícil de implementar adequadamente, devido à sua suscetibilidade a diferentes formas de ataque(opens in a new tab). Recomenda-se usar ERC-20 em vez disso. Esta página permanece como um arquivo histórico.
Introdução
ERC-777 é um padrão de token fungível com o objetivo de aprimorar o padrão ERC-20 existente.
Pré-Requisitos
Para entender melhor essa página, recomendamos primeiramente uma leitura sobre ERC-20.
Quais as melhorias do ERC-777 em relação ao ERC-20?
O ERC-777 proporciona as seguintes melhorias em relação ao ERC-20.
Hooks
Os hooks são funções descritas no código de um contrato inteligente. Eles são invocados quando os tokens são enviados ou recebidos pelo contrato. Isso possibilita que o contrato inteligente reaja aos tokens recebidos ou enviados.
Os hooks são registrados e descobertos utilizando o padrão ERC-1820(opens in a new tab).
Porque os hooks são uma vantagem?
- Os hooks possibilitam o envio de tokens para um contrato e a notificação do contrato em apenas uma transação. O ERC-20(opens in a new tab), porém, necessita de duas chamadas (
approve
/transferFrom
) para fazer isso. - Contratos que não possuem hooks registrados são incompatíveis com o ERC-777. O contrato enviado irá abortar a transação quando o receptor não estiver com um hook registrado. Isso previne transferências acidentais para contratos inteligentes fora do padrão ERC-777.
- Hooks podem rejeitas transações.
Decimais
O padrão ERC-777 também soluciona a confusão referente a decimals
causada pelo ERC-20. Esta clareza melhora a experiência do desenvolvedor.
Retrocompatibilidade com o ERC-20
Contratos ERC-777 permitem interação como se fossem contratos ERC-20.