Passer au contenu principal
Change page

Norme de jeton ERC-777

Dernière modification: @MATsxm(opens in a new tab), 15 août 2023

Avertissement

ERC-777 est difficile à implémenter correctement, en raison de sa sensibilité à différentes formes d'attaque(opens in a new tab). Il est recommandé d'utiliser ERC-20 à la place. Cette page reste comme une archive historique.

Introduction ?

ERC-777 est un type de jeton fongible améliorant le standard ERC-20 existant.

Les prérequis

Pour mieux comprendre cette page, nous vous recommandons de lire en premier lieu la page ERC-20.

Quelles améliorations l'ERC-777 propose-t-elle par rapport à l'ERC-20 ?

L’ERC-777 apporte les améliorations suivantes par rapport à l’ERC-20 :

Crochets

Le crochet (hook) est une fonction décrite dans le code d'un contrat intelligent. Les crochets sont appelés lorsque des jetons sont envoyés ou reçus par le biais du contrat. Cela permet à un contrat intelligent de réagir aux jetons entrants ou sortants.

Les crochets sont enregistrés et accessibles en utilisant la norme ERC-1820(opens in a new tab).

Pourquoi les crochets sont-ils exceptionnels ?

  1. Les crochets permettent d'envoyer des jetons à un contrat et de notifier le contrat en une seule transaction, contrairement à ERC-20(opens in a new tab), qui nécessite un double appel (approve/transferFrom) pour y parvenir.
  2. Les contrats qui n'ont pas implémenté les crochets sont incompatibles avec l'ERC-777. Le contrat envoyé annulera la transaction lorsque le contrat de réception n'a pas implémenté de crochet. Cela empêche les transferts accidentels vers des contrats intelligents non ERC-777.
  3. Les crochets peuvent rejeter les transactions.

Décimales

La norme résout également la confusion relative aux décimales générées par ERC-20. Cette clarification améliore l'expérience développeurs.

Rétro-compatibilité avec ERC-20

Les contrats ERC-777 peuvent interagir comme s'il s'agissait de contrats ERC-20.

Complément d'information

EIP-777 : Norme de jeton(opens in a new tab)

Cet article vous a été utile ?