Tutoriel Solidity 2023 : Gestion des événements

0

Introduction

Dans ce tutoriel, nous allons explorer la gestion des événements en Solidity, un langage de programmation orienté contrats pour la blockchain Ethereum. Les événements permettent de surveiller et réagir aux modifications effectuées dans les contrats intelligents. Ils sont très utiles pour informer les utilisateurs et les applications externes de l’état du contrat.

Nous utiliserons l’éditeur de code en ligne Remix pour nos exemples. Vous pouvez y accéder via l’URL suivante : https://remix.ethereum.org/

À quoi servent les événements ?

Les événements sont des mécanismes qui permettent aux contrats intelligents de signaler qu’un changement d’état a eu lieu. Ils sont essentiellement utilisés pour les raisons suivantes :

  1. Communication avec les applications externes : Les événements permettent aux applications externes de s’abonner et d’être informées des modifications apportées au contrat intelligent. Cela facilite la communication entre les contrats intelligents et les applications décentralisées (dApps).
  2. Traçabilité des transactions : Les événements sont enregistrés dans la blockchain avec les transactions qui les ont déclenchés. Cela permet de retrouver facilement l’historique des actions et des modifications apportées au contrat.
  3. Réduction des coûts de stockage : Les événements ne sont pas stockés dans le stockage permanent du contrat (state storage), mais dans les logs de la blockchain. Émettre un événement coûte moins de gaz que de stocker une valeur dans le contrat.

Étape 1: Déclaration des événements

Pour commencer, déclarons un événement dans notre contrat. Un événement est déclaré avec le mot-clé event. Voici un exemple simple :

pragma solidity ^0.8.0;

contract ExempleEvenements {
    event NouveauMessage(string message);
}


Dans cet exemple, nous avons déclaré un événement appelé NouveauMessage qui prend une chaîne de caractères en argument.

Étape 2: Émission d’événements

Pour émettre un événement, nous utilisons le mot-clé emit. Ajoutons une fonction qui émet notre événement NouveauMessage :





pragma solidity ^0.8.0;

contract ExempleEvenements {
    event NouveauMessage(string message);

    function envoyerMessage(string memory _message) public {
        emit NouveauMessage(_message);
    }
}

La fonction envoyerMessage prend une chaîne de caractères en argument et émet un événement NouveauMessage avec cette chaîne.

Étape 3: Utilisation des événements dans Remix

Copiez et collez le code ci-dessus dans Remix. Déployez le contrat et utilisez la fonction envoyerMessage. Vous verrez que l’événement est émis dans la section « logs » de Remix.

Voici comment lire les logs :

  1. Cliquez sur le bouton « deploy & run transactions » en haut à droite de la fenêtre Remix.
  2. Sous « Deployed Contracts », cliquez sur la flèche à côté du nom de votre contrat.
  3. Cliquez sur la fonction « envoyerMessage » et entrez un

message, par exemple « Bonjour ». 4. Cliquez sur le bouton bleu « transact » pour exécuter la fonction.

  1. Dans la section « logs », vous verrez l’événement NouveauMessage avec le message que vous avez envoyé.

Conclusion

Vous avez maintenant une meilleure compréhension de la gestion des événements en Solidity et de la manière d’interagir avec ces événements dans Remix. Les événements sont essentiels pour la communication entre les contrats intelligents et les applications externes, et ils sont un outil précieux pour le développement de contrats intelligents sur la blockchain Ethereum. Les événements permettent de créer des applications décentralisées réactives, d’améliorer la traçabilité des transactions et de réduire les coûts de stockage des données sur la blockchain.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.