Initiation Solidity
Creer et deploie ton premier contrat intelligent (Smart Contract) avec solidity.
Qu’est ce que solidity ?
Solidity est un langage de programmation permettant de mettre en œuvre des contrats intelligents. l'influence de C++, Python et JavaScript est visible.
Les contrats intelligents sont simplement des programmes stockés sur une blockchain qui s'exécutent lorsque des conditions prédéterminées sont remplies.
Un avantage de ces programmes est que vous pouvez vérifier qu'ils sont bien ce qu'ils sont et qu'ils font ce qu'ils prétendent faire. Cela permet de créer un écosystème autonome sans permission entre des parties prenantes non fiables et anonymes.
Etapes creation de smart contract :
- npm init -y
- npx hardhat
- npm install --save-dev chai ethereum-waffle @nomiclabs/hardhat-waffle ethers @nomiclabs/hardhat-ethers
- creer HelloWorld.sol
-
Spécification de la version du compilateur solidity avec pragma.
Comme nous utilisons Hardhat, nous devons vérifier que la version du compilateur Solidity dans le fichier hardhat.config.js est la même que celle que nous spécifions dans notre contrat intelligent.
Comme solidity ne supporte pas nativement les "console.log", nous devrions à nouveau utiliser les pouvoirs magiques de Hardhat. Hardhat permet d'utiliser "console.log" dans solidity.
Commençons maintenant à écrire le contrat intelligent Dans solidity, la syntaxe d'un smart contract est similaire aux classes des autreslangages de programmation
Nous utilisons le mot-clé contract ainsi que le nom du contrat pour définir un contrat.
La définition d'un contrat est similaire à la définition d'une classe dans d'autres langages de programmation comme JavaScript.
Tout code contenu dans le constructeur est exécuté une fois lorsque le contrat est déployé.
contract HelloWorld { constructor() { console.log("Hello, World"); } }
-
Package
ethereum-waffle : paquet waffle pour tester vos smart contracts.
@nomiclabs/hardhat-waffle: tester les smart contracts en utilisant waffle et hardhat.
chai = librairie de test
ethers est une bibliothèque pour l'implémentation complète de portefeuilles Ethereum.
@nomiclabs/hardhat-ethers est un plugin hardhat pour ethers.
Architecture
contracts est le dossier où sont stockés tous nos contrats intelligents. scripts est le dossier où tous les scripts tels que run.js et deploy.js sont stockés. test est le dossier où sont stockés tous nos tests chai.
Un contrat intelligent :
Demarrer un smart contract localement
Etapes :
- creer run.js dans script
- const helloWorldFactory = await hre.ethers.getContractFactory('HelloWorld') ;
- Déployons maintenant notre contrat intelligent compilé sur la blockchain locale.
const helloWorld = await hreContractFactory.deploy() ;
- await waveContract.deployed() ;
- fonction runMain pour detecter les erreurs de deploiement.
- npx hardhat run scripts/run.js dans le terminal
Le dossier artifact est similaire à un dossier build
Nous ne verrons le journal de la console qu'après que le contrat intelligent ait été officiellement déployé sur la blockchain locale, car le code à l'intérieur du constructeur ne s'exécute qu'une fois lorsque le contrat intelligent a été déployé.
Ajoutons un console.log au script d'exécution qui indique l'adresse du compte où notre contrat intelligent a été déployé.
Contrat intelligent + deploiement local
Voici le resultat final, vous venez de creer votre premier contrat intelligent avec un deploiement sur la blockchain local.
Felicitations !