Utilisation de Truffle avec la C-Chain d'Avalanche

Introduction

Truffle Suite est une boîte à outils pour lancer des applications décentralisées (dapps) sur l'EVM. Avec Truffle, vous pouvez écrire et compiler des contrats intelligents, créer des artefacts, exécuter des migrations et interagir avec les contrats déployés. Ce tutoriel illustre comment Truffle peut être utilisé avec la C-chain d'Avalanche, qui est une instance de l'EVM.

Conditions

Vous avez terminé l'exécution d'un nœud Avalanche et vous connaissez l'architecture d'Avalanche. Vous avez également effectué un swap cross-chain via le tutoriel Transférer AVAX entre la X-Chain et la C-Chain pour obtenir des fonds sur votre adresse C-Chain.

Dépendances

  • Avash est un outil permettant de gérer un réseau local Avalanche. C'est similaire à Ganache de Truffle.

  • NodeJS v8.9.4 ou plus tard

  • Truffle, que vous pouvez installer avec npm install -g truffle

Démarrez un réseau local Avalanche

Avash vous permet de lancer des déploiements de réseaux de test privés avec jusqu'à 15 nœuds AvalancheGo prêts à l'emploi. Avash prend en charge l'automatisation des tâches régulières via des scripts lua. Cela permet des tests rapides sur une grande variété de configurations. La première fois que vous utilisez avash, vous devrez installer et construire

Démarrez un réseau local Avalanche à cinq nœuds:

cd /path/to/avash
# build Avash if you haven't done so
go build
# start Avash
./avash
# start a five node staking network
runscript scripts/five_node_staking.lua

Un réseau Avalanche à cinq nœuds est en cours d'exécution sur votre machine. Lorsque vous souhaitez quitter Avash, exécutez exit, ais ne le faites pas maintenant et ne fermez pas cet onglet de terminal.

Créer un répertoire truffle et installer les dépendances

Ouvrez un nouvel onglet de terminal pour que nous puissions créer un répertoire truffle et installer d'autres dépendances.

Tout d'abord, accédez au répertoire dans lequel vous comptez créer votre répertoire de travail truffle:

Créez et entrez un nouveau répertoire truffle:

Utilisez npm pour installer web3, qui est une bibliothèque à travers laquelle nous pouvons parler à l'EVM:

Nous utiliserons web3 pour définir un fournisseur HTTP, c'est ainsi que web3 parlera à l'EVM. Enfin, créez un projet boilerplace Truffle:

Mettre à jour truffle-config.js

L'un des fichiers créés lors de l'exécution de truffle initest truffle-config.js. Ajoutez ce qui suit à truffle-config.js.

Notez que vous pouvez modifier le protocol, ip et port si vous souhaitez diriger les appels d'API vers un autre nœud AvalancheGo. Notez également que nous définissons gasPrice etgas sur les valeurs appropriées pour la C-Chain d'Avalanche.

Ajoutez Storage.sol

Dans le répertoire contracts ajouter un nouveau fichier appelé Storage.sol et ajoutez le bloc de code suivant:

Storage est un contrat intelligent Solidity qui nous permet d'écrire un numéro dans la blockchain via une fonction store puis de relire le numéro de la blockchain via une fonction retrieve.

Ajouter une nouvelle migration

Créez un nouveau fichier dans le répertoire migrations nommé 2_deploy_contracts.js, et ajoutez le bloc de code suivant. Cela gère le déploiement du contrat intelligent de Storage sur la blockchain.

Compiler des contrats avec Truffle

Chaque fois que vous modifiez Storage.sol vous devez lancer truffle compile.

Vous devriez voir:

Créer, financer et déverrouiller un compte sur la C-Chain

Lors du déploiement de contrats intelligents sur la C-Chain, truffle utilisera par défaut le premier compte disponible fourni par votre client C-Chain en tant from adresse utilisée lors des migrations.

Créer un compte

Truffle a une console très utile que nous pouvons utiliser pour interagir avec la blockchain et notre contrat. Ouvrez la console:

Ensuite, dans la console, créez le compte:

Cela renvoie:

Imprimez le compte:

Cela imprime le compte:

Déverrouillez votre compte:

Cela renvoie:

Financer votre compte

Suivez les étapes du didacticiel Transférer de l'AVAX entre la X-Chain et la C-Chain pour financer le compte nouvellement créé. Vous devrez envoyer au moins 135422040 nAVAX au compte pour couvrir le coût des déploiements de contrat.

Scripting la création de compte et leur financement

Cinque McFarlane-Blake membre de la communauté, a créé un script pratique qui automatise ce processus. Vous pouvez le trouver ici. Téléchargez-le en utilisant cette commande:

Vous pouvez exécuter le script avec:

Script créera un compte et financera son adresse C-Chain. Vous pouvez personnaliser le nombre de comptes et le montant d'AVAX déposé en éditant les variables maxAccounts et amount dans le script.

Exécuter les migrations

Désormais, tout est en place pour exécuter les migrations et déployer le contrat de Storage :

Vous devriez voir:

Si vous n'avez pas créé de compte sur la C-Chain, vous verrez cette erreur:

Si vous n'avez pas financé le compte, vous verrez cette erreur:

Si vous n'avez pas déverrouillé le compte, vous verrez cette erreur:

Interagir avec votre contrat

Maintenant le contrat Storagecontrat a été déployé. Écrivons un nombre dans la blockchain, puis relisons-le. Ouvrez à nouveau la console de truffle:

Obtenez une instance du contrat deStorage déployé:

Cela retourne:

Écrire un nombre dans la blockchain

Maintenant que vous avez une instance du contrat de Storageappelez sa méthode destore et transmettez un numéro à écrire dans la blockchain.

Si vous voyez cette erreur:

Alors réexécutez ceci:

Vous devriez voir quelque chose comme:

Lire un nombre de la blockchain

Pour lire le numéro de la blockchain, appelez la méthode de retrieve de l'instance de contrat deStorage

Cela devrait renvoyer:

Le résultat de l'appel à retrieve est BN (big number). Appelez sa méthode.toNumber pour voir la valeur:

Vous devriez voir le numéro que vous avez enregistré.

Résumé

Vous disposez désormais des outils nécessaires pour lancer un réseau local Avalanche, créer un projet truffe, ainsi que créer, compiler, déployer et interagir avec des contrats Solidity.

Mis à jour

Ce contenu vous a-t-il été utile ?