Padrão de token ERC-777
Aviso
O ERC-777 é difícil de implementar corretamente, devido à sua suscetibilidade a diferentes formas de ataque (opens in a new tab). Recomenda-se usar o ERC-20 em vez disso. Esta página permanece como um arquivo histórico.
Introdução?
O ERC-777 é um padrão de token fungível que melhora o padrão ERC-20 existente.
Pré-requisitos
Para entender melhor esta página, recomendamos que você leia primeiro sobre o ERC-20.
Quais melhorias o ERC-777 propõe em relação ao ERC-20?
O ERC-777 fornece as seguintes melhorias em relação ao ERC-20.
Hooks
Hooks são uma função descrita no código de um contrato inteligente. Os hooks são chamados quando tokens são enviados ou recebidos por meio do contrato. Isso permite que um contrato inteligente reaja à entrada ou saída de tokens.
Os hooks são registrados e descobertos usando o padrão ERC-1820 (opens in a new tab).
Por que os hooks são ótimos?
- Os hooks permitem enviar tokens para um contrato e notificar o contrato em uma única transação, ao contrário do ERC-20 (opens in a new tab), que requer uma chamada dupla (
approve/transferFrom) para conseguir isso. - Contratos que não registraram hooks são incompatíveis com o ERC-777. O contrato remetente abortará a transação quando o contrato receptor não tiver registrado um hook. Isso evita transferências acidentais para contratos inteligentes não ERC-777.
- Os hooks podem rejeitar transações.
Decimais
O padrão também resolve a confusão em torno de decimals causada no ERC-20. Essa clareza melhora a experiência do desenvolvedor.
Retrocompatibilidade com o ERC-20
É possível interagir com contratos ERC-777 como se fossem contratos ERC-20.