1) Chaîne Latérale EVM De Preuve De Concept
Avis de non-responsabilité
En utilisant le testnet de sidechain EVM de preuve de concept (POC), vous comprenez que la sidechain est en cours de développement et que l’utilisation du testnet de sidechain POC EVM est entièrement à vos risques et périls.
Vous reconnaissez et acceptez également d’avoir une compréhension adéquate des risques associés à l’utilisation du réseau de test de la chaîne latérale POC EVM et que toutes les informations et tous les documents publiés, distribués ou autrement mis à disposition sur Cardano Docs sont fournis à des fins d’utilisation et de test non commerciales et personnelles. fins uniquement. Cela inclut les jetons de devise de test qui n’ont aucune valeur économique et sont fournis uniquement à des fins de test sur le réseau de test de la chaîne latérale POC EVM.
Le réseau de test de la chaîne latérale POC EVM est disponible sur une base « TEL QUEL » et « TEL QUE DISPONIBLE », sans aucune déclaration ni garantie d’aucune sorte. Tous les termes implicites sont exclus dans toute la mesure permise par la loi. Aucune partie impliquée ou ayant contribué au développement du réseau de test de la chaîne latérale POC EVM, y compris l’un de ses affiliés, administrateurs, employés, sous-traitants, prestataires de services ou agents (les parties impliquées) n’accepte aucune responsabilité envers vous ou tout tiers. en ce qui concerne tout matériel ou information accessible via le réseau de test sidechain POC EVM.
Vous reconnaissez et acceptez que les parties impliquées ne sont pas responsables des dommages causés à vos systèmes informatiques, de la perte de données ou de toute autre perte ou dommage résultant (directement ou indirectement) de l’utilisation du réseau de test sidechain POC EVM.
De plus, l’utilisation de tout outil logiciel ou produit tiers (tels que MetaMask, Truffle, etc.) se fait à votre propre discrétion et étant entendu que vous serez soumis à leurs conditions et licences. Les parties impliquées ne sont pas responsables du contenu ou de l’exactitude de toute ressource tierce ou de toute perte ou dommage de quelque nature que ce soit résultant de l’utilisation ou de toute défaillance des produits ou services fournis par ou par un tiers.
Détails du réseau
L’environnement testnet sidechain EVM de preuve de concept se compose de deux réseaux :
- Réseau de test de sidechain EVM (sidechain, SC)
- Un réseau de test Cardano dédié (chaîne principale, MN)
Réseaux
Utilitaires réseau
Chaîne latérale EVM
Réseau de test Cardano dédié
Notifications réseau
Les annonces de nouvelles versions, les perturbations du réseau et d’autres mises à jour seront annoncées dans la #ask-sidechains
chaîne du Discord des communautés techniques IO.
Créer et financer des comptes
Conditions préalables:
- Possibilité de faire une requête HTTP.
Comment approvisionner votre compte de chaîne principal avec des jetons ada de test
Dans ce didacticiel, vous apprendrez à réclamer des jetons ada de test sur le testnet de la chaîne principale (pour payer les frais de transaction de la chaîne principale).
Remarque : il s’agit d’un réseau de test Cardano dédié, distinct des environnements de test de prévisualisation et de pré-production.
Génération de clés
Pour générer des clés pour le testnet Cardano, vous avez besoin du cardano-cli
fichier binaire . Ouvrez un shell et exécutez les commandes suivantes :
Définir le nom du réseau réseau = – testnet - magie = 7 cardano - clé d’adresse cli - gen \ – vérification - fichier clé - paiement . vkey \ – paiement du fichier clé de signature . clé cardano - construction d’adresse cli \ – paiement - vérification - fichier clé - paiement . vkey \ – paiement hors dossier . adresse \ $réseau export MC_ADDR = $ ( chat paiement . addr )
Ces étapes sont basées sur ce tutoriel de création de clés et d’adresses .
Demander un test ada à l’aide de l’application Web : https://faucet.cardano.evmtestnet.iohkdev.io/basic-faucet
Comment approvisionner votre compte sidechain avec le test SC_token
Créez un compte sidechain en utilisant un portefeuille Web3 compatible connecté au réseau de test sidechain EVM (ex : MetaMask).
Demander un test SC_Token
à l’aide de l’application Web : https://faucet.sidechain.evmtestnet.iohkdev.io/
Travailler avec MetaMask
L’équipe a testé la compatibilité de MetaMask avec la sidechain à l’aide des navigateurs Web Google Chrome et Brave.
Installer MetaMask
Utilisez ce lien pour installer MetaMask en tant qu’extension de navigateur ou application mobile : https://metamask.io/ .
Créer ou importer un compte
Choisissez l’option pour créer un compte.
Sauvegardez la phrase de départ de votre portefeuille et stockez-la dans un endroit sûr.
Ajouter un ou plusieurs réseaux sidechain Cardano EVM dans les paramètres
Paramètres > Réseaux > Ajouter un réseau > Entrez les paramètres suivants et enregistrez.
- Nom de réseau :
EVM sidechain Testnet
- Nouvelle URL RPC : https://faucet.sidechain.evmtestnet.iohkdev.io/
- Identifiant de la chaîne :
78
- Symbole monétaire :
SC_Token
- URL de l’explorateur de blocs : https://explorer.sidechain.evmtestnet.iohkdev.io/
Vous pouvez maintenant sélectionner le réseau sidechain Cardano EVM à partir de MetaMask.
Problèmes connus
- Si le réseau sidechain a été ajouté correctement, mais que MetaMask n’envoie pas de transactions, ne met pas à jour le solde ou n’interagit tout simplement pas avec la chaîne, essayez de réinitialiser votre compte MetaMask .
- L’équipe a testé la compatibilité de MetaMask avec la sidechain à l’aide des navigateurs Web Google Chrome et Brave. Pour éviter les problèmes de compatibilité des navigateurs, utilisez les mêmes navigateurs.
2) Déployer Des Contrats Intelligents
Configurer l’environnement de développement
Le testnet sidechain EVM est compatible EVM avec la plupart des logiciels Ethereum pour développer et déployer des contrats intelligents, notamment :
Remixer
Ce didacticiel vous montrera comment déployer un contrat intelligent Solidity sur le testnet sidechain EVM à l’aide de Remix. Remix est un IDE en ligne pour développer et déployer des contrats intelligents Solidity.
Conditions préalables
Dans ce didacticiel, vous utiliserez MetaMask comme portefeuille et fournisseur Web3. Si vous ne l’avez pas déjà fait, créez ou importez un compte avec MetaMask et approvisionnez votre portefeuille avec des jetons testnet en utilisant le faucet .
Étape 1 - Configurer Remix
- Visitez l’ IDE Remix . Le côté gauche a un menu [1] et un explorateur de fichiers typique [2] . Les plugins
Solidity Compiler
[3] etDeploy and run transactions
[4] doivent être actifs par défaut.
Si les plugins de compilation et de déploiement de Solidity ne sont pas activés, vous pouvez les rechercher et les activer à l’aide du gestionnaire de plugins [5] situé en bas à gauche de l’écran.
Ouvrez MetaMask et revérifiez que le testnet sidechain est le réseau sélectionné. Cela garantira que Remix se connecte au bon réseau lorsque vous configurez votre environnement à l’étape suivante.
- Dans Remix, sélectionnez le
Deploy and run transactions
plugin. Puisque vous utilisez MetaMask comme fournisseur Web3, sélectionnez “Fournisseur injecté” dans les paramètres d’environnement.
Étape 2 - Le contrat intelligent
Avec Remix configuré sur le testnet sidechain, vous pouvez passer au développement et au déploiement de votre contrat intelligent.
- Dans l’explorateur de fichiers Remix, créez un
erc20.sol
fichier dans lecontracts/
répertoire et saisissez les instructions Solidity suivantes :
// Identifiant de licence SPDX : SANS LICENCE pragma solidité ^ 0,8 .4 ; importer “https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol” ; importer “https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol” ; /** * @title {Jeton Mintable ERC20} / contract MintableERC20 est ERC20 ( “Mintable Token” , “MT” ) , Ownable { /* * @dev Voir la fonction (ERC20 - _mint) pour plus de détails. * */ function mint ( adresse à , montant uint256 ) external payable onlyOwner ( ) { _mint ( à , montant ) ; } }
Ce contrat intelligent décrit un jeton ERC20 monnayable utilisant les bibliothèques de contrats OpenZeppelin ERC20.
Étape 3 - Compiler et déployer
- À l’aide du
Solidity compiler
plugin [1] , sélectionnez ‘compiler’ le contrat intelligent [2] .
Lorsque le contrat est compilé, vous pouvez afficher l’ABI du contrat, le bytecode et d’autres informations situées dans “Détails de la compilation” [3] .
- Ensuite, sélectionnez le
Deploy and run transactions
plug-in> sélectionnez “Déployer” [1] et confirmez toutes les invites MetaMask pour signer la transaction. Si le déploiement réussit, la console Remix doit renvoyer une coche verte avec des détails extensibles [2] . Le panneau “Contrats déployés” contiendra l’adresse du contrat et générera une interface de contrat pour tester les fonctions [3] .
Pour vérifier que le contrat intelligent a été déployé sur le testnet sidechain, vous pouvez :
- Recherchez le hachage de la transaction ou l’adresse du contrat sur l’ explorateur de testnet sidechain EVM .
- Ouvrez MetaMask et voyez si la transaction de déploiement du contrat a été signée avec succès.
- Vérifiez les journaux Remix pour les détails du déploiement.
Casque
Ce didacticiel vous montrera comment déployer un contrat intelligent Solidity sur le réseau de test sidechain EVM à l’aide de Hardhat. Hardhat est un environnement de développement populaire pour les logiciels Ethereum.
Conditions préalables
Hardhat est utilisé dans les projets NPM locaux, vous aurez donc besoin de NPM 7 ou version ultérieure.
- Installez Node.js version 15 ou ultérieure à l’aide de NVM :
$ nvm install 15 – lts $ nvm alias par défaut 15
- Vérifiez les versions de nœud et de NPM :
$ nœud - v v15 . 14.0 $ npm - v 7.7 .6
Étape 01 - Créer un projet Hardhat
Ce didacticiel créera un nouveau projet NPM et l’initialisera npx hardhat
pour amorcer un exemple de projet JavaScript et le configurera pour le déployer sur le réseau de test sidechain.
- Créez un nouveau projet :
$ mkdir Casque / casque $ cd /
- Initialisez un nouveau projet NPM et installez Hardhat localement :
$npm init $ npm install – save - casque de développement
Pour créer l’exemple de projet JavaScript, exécutez-le npx hardhat
dans votre dossier de projet et sélectionnez Créer un projet JavaScript .
casque $npx 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 8888888888 8888b . 888d888 . d88888 88888b . 8888 b . 888888 888 888 “88b 888P” d88 " 888 888 " 88b "88b 888 888 888 . d888888 888 888 888 888 888 . d888888 888 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b . 888 888 "Y888888 888 " Y88888 888 888 "Y888888 " Y888 Bienvenue dans Hardhat v2 . 9.9
? Que veux -tu faire ? … ❯ Créer un projet JavaScript Créer un projet TypeScript Créez un casque vide . configuration . js Arrêter
Tâches en cours d’exécution
Pour afficher toutes les options et commandes avec votre projet Hardhat, exécutez simplement npx hardhat
:
casque $npx Casque version 2.12 .2 Utilisation : casque [ GLOBAL OPTIONS ] < TASK > [ TASK OPTIONS ] OPTIONS GLOBALES : – config Un fichier de configuration Hardhat – emoji Utiliser les emoji dans les messages – flamegraph Générer un flamegraph de vos tâches Hardhat --help Affiche ce message , ou l’ aide d’une tâche si son nom est fourni – max - memory La quantité maximale de mémoire que Hardhat peut utiliser – network Le réseau auquel se connecter --show - stack - traces Afficher les traces de la pile ( toujours activé sur les serveurs CI ) – tsconfig Un fichier de configuration TypeScript – typecheck Activer le type TypeScript - vérification de vos scripts / tests – verbose Active la journalisation détaillée de Hardhat – version Affiche la version du casque TÂCHES DISPONIBLES : check Vérifiez tout ce dont vous avez besoin clean Efface le cache et supprime tous les artefacts compile Compile l’ensemble du projet , en construisant tous les artefacts console Ouvre une console Hardhat couverture Génère un rapport de couverture de code pour les tests flatten Aplatit et imprime les contrats et leurs dépendances gaz - reporter : merge help Imprime ce message node Démarre un serveur JSON - RPC au - dessus du réseau Hardhat run Exécute un script défini par l’utilisateur après la compilation du projet test Exécute des tests de moka typechain Génère des typages Typechain pour les contrats compilés vérifier Vérifie le contrat sur Etherscan Pour obtenir de l’aide pour une tâche spécifique, exécutez : npx hardhat help [ task ]
Si vous avez besoin d’informations supplémentaires sur l’utilisation de Hardhat, consultez la documentation officielle de Hardhat .
Étape 02 - Configurer le casque
Notre exemple de projet JavaScript contient un hardhat.config.js
fichier. Le networks
champ de configuration est un objet facultatif dans lequel les noms de réseau correspondent à leur configuration et nous pouvons définir siaccounts
nous voulons signer les transactions. Par exemple:
require ( “@nomicfoundation/hardhat-toolbox” ) ; /** @type import(‘hardhat/config’).HardhatUserConfig */ const Private_Key = “INSERT_PRIV_KEY” module . exportations = { réseaux : { evm - sidechain : { URL : https://faucet.sidechain.evmtestnet.iohkdev.io/
, comptes : [ 0x ${ Private_Key }
] } , } , solidité : “0.8.17” , } ;
Étape 03 - Compiler et déployer
- Pour compiler les fichiers Solidity dans le
contracts/
répertoire de votre projet Hardhat exécuteznpx hardhat compile
:
Compilation du casque $ npx
Le déploiement avec Hardhat utilise des scripts de déploiement situés dans scripts/
.
- Pour déployer avec Hardhat, exécutez le script de déploiement avec
evm-sidechain
comme option réseau.
$ npx hardhat exécuter des scripts / déployer . js - réseau evm - sidechain Greeter déployé sur : 0x95E1C8F6C00d8cB518faBA33c8Ae814fc12E3090
Hourra ! Vous avez déployé votre contrat intelligent sur le testnet sidechain EVM et pouvez rechercher votre déploiement sur l’ explorateur testnet .
Truffe
Ce didacticiel vous montrera comment déployer un contrat intelligent Solidity sur le réseau de test sidechain EVM à l’aide de Truffle. Truffle est un cadre de développement populaire pour les applications basées sur EVM.
Conditions préalables
Installez les dépendances suivantes :
- Node.js version LTS.
- Suite Truffe
Vérifiez que Node.js et NPM sont installés :
$ nœud – version $ npm – version
Installez Truffle et vérifiez s’il a installé :
$ installation npm - g truffe $ version truffe
Étape 1 - Configurer la truffe
Vous devez créer un projet Truffle avant de configurer Truffle pour le déployer sur le testnet sidechain EVM. Cette démonstration utilisera la React Truffle Box .
- Créez un nouveau répertoire de projet pour votre projet Truffle et déballez la React Truffle Box :
$ mkdir React - Truffe $ cd React - Truffe $ truffe unbox réagir
- Configurez Truffle pour utiliser le testnet sidechain EVM en ajoutant ce qui suit dans
React-Truffle/truffle/truffle-config.js
> Ligne 45. Supprimez le commentaire sur la ligne 25. - Remplacez
YOUR_SEED_PHRASE
par votre phrase mnémotechnique.
Étape - Migration de la truffe
À ce stade, vous avez défini le testnet de la chaîne latérale EVM et votre compte testnet pour signer les déploiements de contrats intelligents. Vous êtes maintenant prêt à déployer !
- Au sein du
truffle/
répertoire de notre projet, exécuteztruffle migrate
en passantevm-sidechain
pour le--network
paramètre :
$ truffle migrate - réseau evm - sidechain
Lors de l’exécution truffle migrate
, Truffle renverra le hachage de la transaction et l’adresse du contrat qui peuvent être recherchés sur l’ explorateur de testnet sidechain EVM .
Utiliser l’explorateur de blocs pour vérifier un contrat
Qu’est-ce que la vérification ?
La vérification d’un contrat intelligent fait deux choses :
- Il vous assure que la copie d’un contrat intelligent sur la blockchain correspond à votre code source
- Il met le code source de votre contrat intelligent à la disposition de tous les autres utilisateurs du même explorateur de blockchain.
Grâce à la vérification, vous offrez transparence et réassurance aux utilisateurs de votre contrat intelligent.
Note
Dans la version initiale de la boîte à outils Cardano sidechains, la fonctionnalité de vérification de contrat dans l’explorateur de blocs testnet sidechain EVM est obsolète. La fonctionnalité sera restaurée dans une version ultérieure et cette clause de non-responsabilité sera supprimée lorsque cela sera fait.
Conditions préalables
Vous devez avoir accès au code source du contrat avant de commencer. Cela peut prendre la forme d’un code source aplati, d’une entrée standard JSON ou d’une source Vyper.
Il existe plusieurs produits accessibles au public pour aplatir le code source ; c’est-à-dire d’incorporer tous les fichiers inclus dans un seul fichier.
Accéder à l’explorateur de blocs
Depuis n’importe quel navigateur pris en charge, accédez à l’URL https://explorer.sidechain.evmtestnet.iohkdev.io/ .
L’écran principal affiche la tête actuelle de la chaîne.
Écran principal de l’explorateur de blocs
Dans l’image ci-dessus de l’explorateur de blocs, notez le hachage de l’appel de transaction supérieur.
Écran de détail
En cliquant sur le hash d’une transaction, vous verrez ses détails :
Vous pouvez voir le statut de la transaction (succès ou échec) et le contrat intelligent pour lequel elle a été exécutée (si la transaction est un appel de contrat intelligent).
Page contrat
Cliquez sur l’adresse du contrat (libellé soit To: [Contract 0x.... created]
ou Interacted With 0x...
)
Onglet Code
Sur cette page, après avoir fait défiler vers le bas, vous pouvez voir des onglets, l’un d’eux étant “Code”. Cliquer dessus affichera le code connu s’il existe, ou les octets bruts du contrat si la source n’est pas connue.
Vérification d’un contrat
Dans la première ligne de l’onglet code, il y a un lien pour vérifier le contrat.
Vous pouvez choisir de vérifier à l’aide de l’une des méthodes suivantes :
- Via le code source aplati
- Via l’entrée standard JSON
- Contrat Vyper
D’autres méthodes de vérification peuvent être ajoutées ultérieurement.
Les deux images suivantes montrent le formulaire de vérification du contrat :
Une fois les formulaires remplis et soumis, vous verrez les résultats de la vérification, par exemple :
Désormais, le contrat intelligent peut être inspecté par tout autre utilisateur de l’explorateur de blocs.
Ressources de solidité
Solidity est un langage de programmation à accolades de type statique conçu pour développer des contrats intelligents qui s’exécutent sur Ethereum. Parce que sa syntaxe est similaire à ECMAScript, il sera familier à de nombreux développeurs. Il existe des différences importantes, notamment :
- La solidité est compilée plutôt qu’interprétée
- C’est un langage à typage statique
- Il a des types de retour variadiques.
La page d’accueil
Son domicile est Soliditylang.org . C’est le point de départ si vous êtes nouveau dans la langue ; si vous êtes expérimenté, vous connaissez sans doute déjà le site.
Cours d’éducation
La plupart des fournisseurs de formation en ligne, dont Udemy , Tutorials Point et O’Reilly, proposent des cours.
IO Global n’offre ni ne cautionne aucun cours.
Soutien
Il existe de nombreuses questions et réponses sur Stack Overflow avec la balise solidity
.