Le standard ERC223

Le standard ERC223 est le standard Ethereum utilisé pour les tokens standards. Il a été proposé pour corriger les problèmes de l’ERC20. Son objectif est :

  • de permettre aux utilisateurs de pouvoir déposer plus facilement leur actif sur un smart contract
  • de prévenir l’envoie accidentel et la perte d’un token lors de son transfert
  • d’hamoniser la gestion des transactions de tokens avec le mode de transfert de l’Ether.

Cette norme a été proposée par Dexaran pour la première fois le 05 mars 2017 sur le github. Vous noterez que cette norme n’est pas présente dans la liste des EIPs (Ethereum Improvement Proposals).

Prérequis : Le standard ERC20

Les fonctions

Il reprend la plupart des fonctions d’ERC20. Les ajustements concernent les fonctions suivantes :

  • transfer avec 2 paramètres: est la fonction qui permet le transfert de compte à compte. Cette fonction est maintenue avec 2 paramètres pour permettre au smart contract d’être compatible avec un jeton ERC20. La fonction ‘tokenReceived’ doit être appelé chez le contract recevant le tranfert. Si cette fonction n’est pas implémentée dans le cas d’un contract, la transaction ne doit pas être faite puisque ça voudrait dire qu’on envoie un tokenERC223 sur un contrat de type ERC20. [obligatoire].
  • transfer avec 3 paramètres: cette fonction reprend le comportement de la même fonction ci-dessus. Par contre, il y a quelques différence mineures. Si l’adresse d’envoie est extérieure au réseau, la fonction ‘tokenReceived’ n’est pas exécutée. De la donnée peut être associé au token via le paramètre supplémentaire « byte _data ». Cette donnée sera présente à vie dans la blockchain, ce qui peut générer une surconsommation de gas. [obligatoire].
  • tokenReceived: est la fonction qui permet de se charger du transfert de token depuis le smart contract de token lorsque le détenteur du token envoie ces actifs. Un cas différenciant est fait quand c’est le smart contract qui réalise l’opération ou si c’est le propriétaire du compte qui inite l’action. [obligatoire].

Les événements

Ci-dessous l’évènement concerné par la norme ERC. Cet évènement est déclenché par la fonction transfer :

  • Transfer: il ya 2 fonctions du même nom. Une avec 3 paramètres pour préserver la compatibilité avec le token ERC20 et le un autre fonction avec 4 paramètres. Ces fonctions se déclenchent quand les tokens sont transférés.

Cette norme est moins connue et répandue que ERC20. Ceci peut s’expliquer par le fait qu’elle juste vue comme une optimisation de ERC20.

D’autres standards existent :

  • ERC20 : pour créer et gérer les tokens standards
  • ERC721 : pour l’implémentation des smarts contracts gérant les NFTs
  • ERC1155 : pour gérer les tokens standards et les NFTs

3 commentaires

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s