Déployer votre premier contrat intelligent
Je suppose que vous êtes aussi enthousiaste que nous à l'idée de déployer et d'interagir avec votre premier contrat intelligent sur la blockchain Ethereum.
Ne vous inquiétez pas, comme il s'agit de notre premier contrat intelligent, nous le déploierons sur un réseau de test local afin que son déploiement et son utilisation ne vous coûtent rien et que vous puissiez l'utiliser autant que vous le souhaitez.
Rédiger notre contrat
La première étape consiste à visiter Remix (opens in a new tab) et à créer un nouveau fichier. Dans la partie supérieure gauche de l'interface Remix, ajoutez un nouveau fichier et saisissez le nom de fichier que vous souhaitez.
Dans le nouveau fichier, nous allons coller le code suivant.
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;34contract Counter {56 // Variable publique de type entier non signé pour conserver le nombre de comptages7 uint256 public count = 0;89 // Fonction qui incrémente notre compteur10 function increment() public {11 count += 1;12 }1314 // Accesseur non nécessaire pour obtenir la valeur du compteur15 function getCount() public view returns (uint256) {16 return count;17 }1819}Afficher toutSi vous êtes habitué à la programmation, vous pouvez facilement deviner ce que fait ce programme. Voici une explication ligne par ligne :
- Ligne 4 : nous définissons un contrat avec le nom
Counter. - Ligne 7 : notre contrat stocke un entier non signé nommé
countcommençant à 0. - Ligne 10 : la première fonction modifiera l'état du contrat et
increment()notre variablecount. - Ligne 15 : la seconde fonction est juste un accesseur (« getter ») pour pouvoir lire la valeur de la variable
counten dehors du contrat intelligent. Notez que, comme nous avons défini notre variablecountcomme publique, cela n'est pas nécessaire mais est montré à titre d'exemple.
C'est tout pour notre premier contrat intelligent simple. Comme vous le savez peut-être, cela ressemble à une classe de langages POO (programmation orientée objet) comme Java ou C++. Il est maintenant temps d'interagir avec notre contrat.
Déployer notre contrat
Maintenant que nous avons écrit notre tout premier contrat intelligent, nous allons le déployer sur la blockchain pour pouvoir interagir avec.
Déployer le contrat intelligent sur la blockchain consiste en fait simplement à envoyer une transaction contenant le code du contrat intelligent compilé sans spécifier de destinataires.
Nous allons d'abord compiler le contrat en cliquant sur l'icône de compilation sur le côté gauche :
Cliquez ensuite sur le bouton de compilation :
Vous pouvez choisir de sélectionner l'option « Auto compile » afin que le contrat soit toujours compilé lorsque vous sauvegardez le contenu dans l'éditeur de texte.
Ensuite, naviguez vers l'écran « déployer et exécuter les transactions » :
Une fois que vous êtes sur l'écran « déployer et exécuter les transactions », vérifiez bien que le nom de votre contrat apparaisse et cliquez sur Déployer. Comme vous pouvez le voir en haut de la page, l'environnement actuel est « JavaScript VM », ce qui signifie que nous allons déployer et interagir avec notre contrat intelligent sur une blockchain de test locale pour pouvoir tester plus rapidement et sans frais.
Une fois que vous avez cliqué sur le bouton « Déployer », vous verrez votre contrat apparaître en bas. Cliquez sur la flèche à gauche pour le développer afin de voir le contenu de notre contrat. Il s'agit de notre variable counter, de notre fonction increment() et de l'accesseur getCounter().
Si vous cliquez sur le bouton count ou getCount, le contenu de la variable count du contrat sera récupéré et affiché. Comme nous n'avons pas encore appelé la fonction increment, la valeur 0 devrait s'afficher.
Appelons maintenant la fonction increment en cliquant sur le bouton. Vous verrez les journaux des transactions effectuées apparaître en bas de la fenêtre. Vous verrez que les journaux sont différents lorsque vous appuyez sur le bouton pour récupérer les données, par opposition au bouton increment. C'est parce que la lecture des données sur la blockchain ne nécessite aucune transaction (écriture) ni aucun frais. En effet, seule la modification de l'état de la blockchain nécessite d'effectuer une transaction :
Après avoir appuyé sur le bouton increment qui génère une transaction pour appeler notre fonction increment(), si nous cliquons à nouveau sur les boutons count ou getCount, nous lirons l'état nouvellement mis à jour de notre contrat intelligent, avec la variable count supérieure à 0.
Dans le prochain tutoriel, nous verrons comment vous pouvez ajouter des événements à vos contrats intelligents. La journalisation des événements est un moyen pratique de déboguer votre contrat intelligent et de comprendre ce qui se passe lors de l'appel d'une fonction.
Dernière mise à jour de la page : 26 avril 2024







