4 min de lecture
Aperçu
En matière de programmation, rares sont ceux qui n’ont jamais utilisé ou entendu parler de JavaScript. Créé à l’origine pour les scripts côté client, JavaScript est aujourd’hui devenu un langage complet, à la fois orienté objet et procédural, largement utilisé pour les applications client et serveur. La syntaxe de JavaScript s'inspire de celle de Java et de C++, et repose sur la spécification ECMAScript. Avec plus de 1 444 231 bibliothèques (et ce chiffre ne cesse d'augmenter), JavaScript est aujourd'hui utilisé pratiquement partout, notamment pour créer des dApps (applications décentralisées) sur Ethereum. Dans ce guide, nous allons voir comment créer une adresse Ethereum en JavaScript à l'aide d'Ethers.js.
Prérequis
- Node.js est installé sur votre système.
- Un éditeur de texte
- Terminal, également appelé « ligne de commande »
Qu'est-ce qu'une adresse Ethereum ?
Lorsque vous vous connectez à une plateforme sur Internet, vous devez vous authentifier à l’aide d’une combinaison d’identifiants. Considérez votre adresse Ethereum comme votre nom d’utilisateur et la clé privée correspondante comme votre mot de passe. Alors que votre adresse Ethereum est publique et peut être partagée, la clé privée doit toujours rester secrète. Cette combinaison vous permet d’interagir avec la blockchain Ethereum. Une adresse Ethereum correspond à votre identité sur la blockchain ; elle se présente sous la forme suivante : « 0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE ». Il est indispensable de disposer d’une adresse Ethereum valide pour :
- Recevoir/envoyer des Ethereum
- Signature/Envoi de transactions
- Connexion aux applications décentralisées
Comment une adresse Ethereum est générée :
On commence par générer une clé privée aléatoire de 64 caractères (hexadécimaux) (256 bits / 32 octets). Par exemple :
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
Une clé publique de 128 caractères (hexadécimaux) (64 octets) est ensuite dérivée de la clé privée générée à l'aide de l'algorithme de signature numérique à courbe elliptique (ECDSA). Par exemple :
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
La fonction de hachage Keccak-256 est ensuite appliquée à la clé publique (128 caractères / 64 octets) afin d'obtenir une chaîne de hachage de 64 caractères (32 octets). Les 40 derniers caractères / 20 derniers octets de cette chaîne, préfixés par 0x, constituent l'adresse Ethereum finale. Par exemple :
0xd5e099c71b797516c10ed0f0d895f429c2781142
Remarque: dans la notation binaire, « 0x » indique que le nombre ou la chaîne de caractères est exprimé en hexadécimal.
Qu'est-ce qu'Ethers.js ?
Ethers.js est une alternative légère à Web3.js, qui est aujourd'hui la bibliothèque Ethereum la plus couramment utilisée. Certains considèrent qu'Ethers.js est plus stable et comporte moins de bogues que d'autres bibliothèques ; elle dispose en outre d'une documentation très complète. Cette bibliothèque est également très accessible aux débutants. Ethers.js est très bien entretenue et de nombreux développeurs débutants la préfèrent à Web3.js.
Pour en savoir plus sur Ethers.js et découvrir comment se connecter au réseau Ethereum avec Ethers.js, cliquez ici.
Générer une adresse Ethereum en JavaScript
Notre première étape consistera à vérifier si Node.js est installé sur le système. Pour cela, copiez-collez la commande suivante dans votre terminal/cmd :
$ node -v
Si NodeJS n'est pas installé, vous pouvez télécharger la version LTS depuis le site officiel.
Si Node.js est correctement installé, ajoutons la bibliothèque Ethers.js (version 6) à l'aide de npm (Node Package Manager, qui fait partie de Node.js).
$ npm i ethers
Le problème le plus courant à cette étape est une erreur interne liée à `node-gyp`. Vous pouvez suivre les instructions d'installation de node-gyp disponibles ici.
Remarque: si vous rencontrez le problème lié à node-gyp, vous devrez vous assurer que la version de Python que vous utilisez correspond à l'une des versions compatibles répertoriées dans les instructions ci-dessus.
Un autre problème courant est lié à un cache obsolète ; videz votre cache npm en saisissant la commande suivante :
$ npm cache clean
Si l'installation d'Ethers.js s'est déroulée sans problème, passons à la création d'une adresse Ethereum.
Créez un fichier nommé address.js, qui contiendra un petit script permettant de générer une clé privée aléatoire et une adresse Ethereum à partir de cette clé. Copiez-collez le code suivant dans votre fichier address.js :
var éthers = require('ethers');
var crypto = require('crypto');
var id = crypto.randomBytes(32).toString('hex');
var clé_privée = "0x"+id;
console.log("ENREGISTRER MAIS NE PAS PARTAGER CECI :", clé_privée);
var wallet = new ethers.Portefeuille(clé privée);
console.log("Adresse : " + wallet.adresse);
Explication du code ci-dessus
Lignes 1-2 : Importation de la bibliothèque « ethers » et du module « crypto » fournis avec Node.js
Ligne 4 : Génération d'une chaîne hexadécimale aléatoire de 32 octets à l'aide de l'objet « crypto » et stockage de celle-ci dans la variable « id ».
Ligne 4 : Ajout du préfixe « 0x » à la chaîne de caractères contenue dans « id » et enregistrement de la nouvelle chaîne dans une variable nommée « privateKey ».
Ligne 6 : Affichage de notre clé privée accompagné d'un avertissement.
Ligne 8 : Création d'un nouveau portefeuille à l'aide de la clé privée et enregistrement de celle-ci dans la variable « wallet ».
Ligne 9 : Affichage de l'adresse du portefeuille nouvellement créé, accompagnée du message « Adresse : »
Enregistrez et exécutez votre script pour générer une nouvelle adresse Ethereum.
$ node address
Si votre code s'exécute correctement, le résultat ressemblera à la capture d'écran ci-dessous. La première ligne contient la clé privée, et la deuxième ligne contient votre nouvelle adresse Ethereum.
Conclusion
Votre adresse Ethereum correspond à votre identité sur le réseau Ethereum. Elle est indispensable pour interagir avec le réseau et effectuer des transactions. Pour poursuivre votre apprentissage d’Ethers.js, consultez ce guide intitulé « Comment envoyer une transaction Ethereum à l’aide d’Ethers.js ». Vous trouverez plus d’informations sur Ethers.js dans sa documentation officielle. Comme vous l'avez vu, la génération d'une nouvelle adresse Ethereum s'effectue rapidement grâce à JavaScript et aux bibliothèques les plus récentes. Le développement d'applications décentralisées (dApps) sur la blockchain Ethereum s'appuie sur une multitude d'outils qui sont continuellement mis à jour et améliorés par la communauté Ethereum, en pleine expansion. Ne manquez pas les autres guides faciles à suivre proposés par Quicknode, votre fournisseur de nœuds Ethereum abordables et ultra-rapides. Découvrez comment vous lancer avec Quicknode et configurer votre propre point de terminaison Ethereum en quelques minutes.
Abonnez-vous à notre newsletter pour découvrir d'autres articles et guides sur Ethereum. Si vous avez des commentaires, n'hésitez pas à nous contacter sur Twitter. Vous pouvez également discuter avec nous sur notre serveur Discord, où vous rencontrerez certains des développeurs les plus géniaux qui soient :)
