Qu'est-ce que Ethers.js? Une plongée profonde dans la bibliothèque JavaScript d'Ethereum

Débutant3/18/2024, 8:47:39 AM
Ethereum est un protocole blockchain connu pour sa boîte à outils, ses contrats intelligents et son écosystème aligné sur le code, s'appuyant fortement sur ethers.js (une bibliothèque JavaScript) pour fournir la puissance nécessaire à son approche centrée sur les développeurs.

Si vous avez l'œil sur l'Éther (ETH) par rapport aux autres acteurs de la cryptographie, vous devriez prendre un moment pour comprendre Ethereum d'un point de vue plus technique. Un protocole de blockchain connu pour sa boîte à outils, ses contrats intelligents et son écosystème aligné sur le code, Ethereum repose fortement sur ethers.js - une bibliothèque Javascript - pour donner à son approche centrée sur les développeurs la puissance requise.

Bien que ethers.js ne soit pas la seule bibliothèque JavaScript native d'Ethereum, c'est la meilleure option pour les petites DApps. Dans ce guide, nous approfondissons les aspects de ethers.js, vous aidant à comprendre ce concept technique.

Dans ce guide :

  1. Décodage d'ethers.js
  2. Pourquoi ethers.js est-il important ?
  3. Toutes les versions d'Ethers.js expliquées
  4. Démarrer avec ethers.js
  5. Fonctionnalités principales
  6. Comment les publications cryptographiques peuvent tirer parti d'Ethers.js
  7. Applications du monde réel d'Ethers.js
  8. Considérations de sécurité
  9. Ethers.js : un outil polyvalent
  10. Questions fréquemment posées

Déballage de ethers.js

ethers.js est une bibliothèque JavaScript — un ensemble de code pré-écrit qui automatise plusieurs fonctions. L'utilisation de bibliothèques JavaScript pour le développement peut minimiser l'effort d'écriture de code. Le processus devient plus convivial, et pour les développeurs de DApp, ces bibliothèques aident à offrir des fonctionnalités blockchain de base sous forme de bundles.

Éthers.js et le cycle de développement: BeInCrypto

Voici le GitHubdépôtpour la bibliothèque.

Quels sont les bibliothèques JavaScript?

Avant de plonger plus profondément dans ethers.js, jetons un coup d'œil plus attentif aux bibliothèques JavaScript. Ces bibliothèques sont des ensembles de code JavaScript pré-écrits qui peuvent automatiser des tâches communes spécifiques. L'utilisation de bibliothèques comme ethers.js peut accélérer le processus de création de DApp et même accélérer d'autres interactions spécifiques à la blockchain.

Pourquoi avons-nous besoin de bibliothèques JavaScript dans Ethereum ?

Ethereum a évolué en une plateforme de développement de logiciels décentralisée. De contrats intelligentsàDeDes applications financières aux DApps, le codage est essentiel à l'écosystème Ethereum. C'est précisément pourquoi des bibliothèques JavaScript adaptées à Ethereum comme ethers.js existent. En utilisant ces bibliothèques, les développeurs peuvent se connecter au réseau, déployer et interagir avec des contrats intelligents, et gérer facilement chaîne de blocsdonnées.

Saviez-vous ? Ethers.js n'est pas la seule bibliothèque JavaScript Ethereum connue. Une autre importante est Web3.js, fondée par la Fondation Ethereum. Web3.js est réputé pour sa collection complète de documentation et est destiné aux DApps plus complexes.

Pourquoi ethers.js est-il important?

Comme mentionné précédemment, ethers.js est destiné aux développeurs travaillant avec la blockchain Ethereum. En ce qui concerne l'importance, cette bibliothèque développée par Richard Moore, commercialisée sous le nom de "Éthers", est utile pour les tâches suivantes :

  1. Simplification de plusieurs transactions Ethereum
  2. Offre un accès à une documentation complète et à des ressources
  3. Facilitant le développement de DApp


L'écosystème Ethers.js et les rôles qu'il peut assumer: BeInCrypto

Voici un exemple rapide de l'extrait de code utilisé pour obtenir le solde actuel d'un compte Ethereum. Lisons d'abord le code et comprenons comment ethers.js rend la vie plus facile :

const { ethers } = require(‘ethers’);

// Se connecter au réseau Ethereum

const fournisseur = nouveau ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Spécifiez l'adresse du compte

const accountAddress = ‘0xABC123…’;

// Récupérer et afficher le solde

provider.getBalance(adresseDuCompte).then((solde) => {

// Convertir le solde de Wei en Étherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Solde : ${balanceInEther} ETH`);

});

Dans cet exemple, vous pouvez clairement voir comment la commande — ethers.providers.JsonRpcProvider — invoque un point de terminaison Infura, et getBalance récupère le solde. Vous n'avez pas besoin de traiter directement avec le RPC JSON d'Ethereum ou l'appel de procédure à distance. Dans ce cas, vous pouvez penser à ethers.js comme un traducteur qui rend Ethereum plus facile et plus familier pour vous.

Toujours incertain quant à la signification d'ethers.js ? Voici une rapide analogie.

Pensez à ethers.js comme une vieille carte de bibliothèque. Rappelez-vous que ces cartes avaient des catalogues, vous permettant de trouver le bon livre en localisant le rayon, puis le numéro de l'étagère? C'est ce que ethers.js vise à faire. Il simplifie et organise les capacités massives d'Ethereum, permettant aux développeurs de trouver exactement ce dont ils ont besoin.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Toutes les versions d'Ethers.js expliquées

Au fil des ans, plusieurs versions d'Ethers.js ont vu le jour, chacune introduisant une nouvelle fonctionnalité ou une correction de bogue. De plus, la numérotation suit la sémantique standard, comme v1.2.3, où le premier chiffre signifie le majeur et les deuxième et troisième chiffres indiquent les mineurs et les correctifs. Nous ne considérerons que les mises à niveau de version majeure pour le moment - des changements qui pourraient ne pas être rétrocompatibles.

  1. Version 1.x (Legacy): Il s'agissait de la version initiale, suivie de fonctionnalités liées à la signature de transactions, à la gestion de portefeuille, et plus encore.
  2. Version 2.x (Portefeuille Ethers): Axé sur les utilitaires et les fonctionnalités du portefeuille, y compris le stockage sécurisé de clés privées.
  3. Version 3.x (Fournisseur d'Éthers) : Introduit des abstractions pour se connecter aux nœuds Ethereum. Différents types de joueurs ont été pris en charge, y compris Infura, WebSockets, et plus encore.
  4. Version 4.x (contrat Ethers) : Les propriétés basées sur les contrats intelligents ont été étendues, avec plus d'utilités pour l'encodage et le décodage de données, les filtres d'événements, et plus encore.
  5. Version 5.x: Offre une architecture modulaire, un support amélioré pour ENS, une gestion complète des erreurs et plus encore.
  6. Version 6.x: Inclusion des fonctionnalités ES6, introduction de BigInt, accessibilité du surcharge, et plus encore.


Architecture et composants d'Ethers.js : BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Vous pouvez trouver plus de détails sur chaque version en consultant Ethers.js’documentation originale.

« Ethers.js brille par sa supériorité en matière d'interopérabilité blockchain, de prise en charge native de TypeScript et d'outils de débogage avancés. C'est une bibliothèque efficace qui s'intègre parfaitement dans des frameworks populaires comme React, Vue, Angular, etc. »

Redbelly Intern, Builder: X

Démarrer avec ethers.js

Avant de planifier d'exploiter le potentiel d'ethers.js, il est nécessaire de savoir à quelle étape du développement de DApp ou de contrat intelligent il est invoqué. Voici une rapide explication pour ceux qui ont besoin de connaître et de comprendre ces éléments à partir de zéro.

"Web3.js est convivial pour les débutants et plus concis que ethers.js.

D'autre part, Ethers.js offre plus d'options et est nouveau; il est un peu plus complexe que Web3.js.”

degenBRo, développeur blockchain et fondateur de Solidity Finance : comme indiqué à BeInCrypto

Pour commencer, vous devez d'abord ouvrir l'ordinateur et configurer l'environnement de développement. Cela inclut Node.js et l'environnement de développement intégré. Notez que JavaScript s'exécute généralement sur le navigateur, mais avec Node.js, il peut également s'exécuter sur l'ordinateur. C'est l'environnement d'exécution Node.js qui installe des bibliothèques Javascript comme ethers.js.

En ce qui concerne IDE, dont un développeur de logiciels a besoin pour tester, vous pouvez envisager VS Code, Sublime Text ou tout autre chose.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Installation de support ethers.js

La prochaine étape consiste à installer Ethers, la bibliothèque hébergeant ethers.js.

npm installer ethers

Ensuite, vous devez utiliser des Éthers pour vous connecter au Portefeuille Ethereum, car l'interaction avec la blockchain nécessitera cette étape pour valider les informations d'identification. Vous pouvez utiliser la bibliothèque Éthers installée à cet effet. Voici la commande d'exemple :

/Related

PLUS D'ARTICLES

FNB Ethereum Expliqué : Qu'est-ce que c'est et comment ça marche

14 mins 15 mars 2024 Il y a 3 jours

Comment être payé en Bitcoin (BTC) : Tout ce que vous devez savoir

25 mins 15 mars 2024 Il y a 2 jours

const { ethers } = require(‘ethers’);

// Connect to the MetaMaskportefeuille

const fournisseur = new ethers.providers.Web3Provider(window.ethereum);

Une fois terminé, vous pouvez utiliser l'IDE pour écrire le code de solidité et créer des contrats intelligents pour les DApps. Ethers.js sera utilisé pour déployer la même. Vous pouvez même tester la DApp ou le contrat localement, en utilisant des environnements comme Truffle et Hardhat. Ensuite, vous déployez les contrats sur le réseau Ethereum, pour lequel ethers.js est nécessaire.

const contrat = new ethers.ContractFactory(abi, bytecode, signataire);

const deployedContract = await contract.deploy();

Pour les non initiés, Abi, Bytecode, Signer sont des termes nécessaires pour un développement de contrat intelligent fluide. L'Abi ou l'interface binaire d'application est plus comme l'étiquette qui aide le réseau à reconnaître vos contrats intelligents. Le bytecode est la version compilée ou plutôt prête pour le réseau du contrat intelligent et le signataire est l'entité génératrice de signature.

Éthers.js pour le front-end

Une fois que le contrat intelligent est déployé, vous devez construire l'interface utilisateur ou l'interface utilisateur de la DApp. Pour ce faire, vous pouvez utiliser Angular ou React. Vous pouvez même intégrer Ethers.js dans l'interface utilisateur pour vous assurer qu'elle peut interagir avec les contrats intelligents Ethereum. Voici le code d'exemple pour la même chose :

const fournisseur = new ethers.providers.Web3Provider(window.ethereum);

const contrat = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

Après cela, vous devez tester le DApp sur un testnet, comme Rinkeby ou Ropsten. Une fois que vous êtes satisfait, vous pouvez lancer le DApp sur le mainnet. Remarquez combien de fois tout au long du processus vous devez interagir avec Éthers ou ethers.js.

Fonctionnalités de base

Ethers.js apparaît comme une bibliothèque Ethereum complète. Voici quelques-unes des offres exclusives qui peuvent faciliter la vie des développeurs :

Fournisseurs

Les fournisseurs Ethers.js agissent comme des ponts entre le réseau Ethereum et le DApp sur lequel vous travaillez. Cela implique de simplifier la requête de données de la blockchain et aide également à diffuser les transactions. Infura est l'un des fournisseurs qu'Ethers.js utilise.

Voici le code d'exemple pour le même :

const { ethers } = require(‘ethers’);

// Connectez-vous en utilisant Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Vérifiez le numéro de bloc actuel

provider.getBlockNumber().then((blockNumber) => {

console.log("Numéro de bloc actuel:", blockNumber);

});

Portefeuilles

Ethers.js vous permet de gérer des portefeuilles, vous permettant de créer de nouveaux comptes, d'importer des comptes existants, de gérer en toute sécurité les clés privées pour signer des transactions, et bien plus encore.

Contrats

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Ce composant de l'existence d'Ethers.js prend en charge l'instanciation d'objets. Cela facilite l'appel de fonctions de contrat spécifiques, plus proche des méthodes natives de Javascript.


Ethers.js et interaction avec les contrats intelligents : BeInCrypto

Intégration ENS

Ethers.js peut résoudre les noms ENS en leurs adresses Ethereum et vice versa. Cette fonctionnalité réduit le risque d'erreurs.

Voici un extrait de code d'exemple pour cela :

const { ethers } = require(‘ethers’);

const fournisseur = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} est résolu à ${address}`);

});

Outre les fonctionnalités mentionnées, Ethers.js propose également les aspects ou fonctionnalités suivants, aidant les développeurs à accéder directement à Ethereum :

  1. Signataires
  2. Utilitaires
  3. Écouteurs d'événements et filtres (destinés à activer des réponses en temps réel aux actions de la blockchain)
  4. Transactions
  5. Support multicall
  6. Prise en charge de TypeScript (destinée à améliorer la fiabilité du code et l'expérience globale des développeurs)

Quelques avantages de l'utilisation d'Ethers.js :

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Comment les publications cryptographiques peuvent tirer parti d'Ethers.js

Des publications médiatiques telles que BeInCrypto peuvent tirer parti d'Ethers.js pour créer des outils web3 avancés et ingénieux à partir de zéro. De cette manière, il devient possible d'utiliser des fonctionnalités alimentées par la blockchain ou, plutôt, par Ethereum pour améliorer l'utilisabilité. Voici les options que l'on peut envisager :

Flux de données

Les fonctionnalités d'Ethers.js peuvent être utilisées pour intégrer des flux de données cryptographiques en temps réel, tels que des statistiques réseau,Frais de gaz, et plus encore, pour maintenir les articles et les ressources toujours à jour. Voici un exemple de code pour récupérer le dernier numéro de bloc, disons pour Bitcoin, pour suivre en temps réel le halving.

const { ethers } = require('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Numéro de bloc actuel:”, blockNumber);// Intégrez ces données dans la plateforme de publication pour une diffusion de données en temps réel

});

Contenu interactif

Les publications peuvent créer des éléments de contenu interactif, permettant aux utilisateurs d'interagir directement avec des contrats intelligents, de participer à des sondages, ou même de jouer à de petits jeux si nécessaire.

Voici un extrait de code d'exemple pour récupérer un salut spécifique à l'étape d'un contrat intelligent :

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"function getGreeting() view returns (string)"

];

const contrat = nouveau ethers.Contract(contractAddress, contractABI, fournisseur);

fonction asynchrone afficherSalutation() {

const salutation = await contrat.getGreeting();document.getElementById(‘salutation’).innerText = salutation;

}

Ouvrez un compte sur KuCoin & obtenez un bonus garanti allant jusqu'à 700 USDT.

  1. Commencez votre parcours de trading de crypto avec KuCoin et prenez de l'avance !
  2. Tradez en toute confiance sur KuCoin ! Notre plateforme priorise votre sécurité, offrant une protection de premier ordre pour vos actifs numériques.
  3. Explorez le vaste monde des cryptomonnaies avec KuCoin!

Inscrivez-vous maintenant!

Un exemple concret de déploiement d'Ethers.js :

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Publication décentralisée

Les publications médiatiques peuvent également envisager la publication décentralisée, où un fragment d'un article est publié sur le réseau blockchain. Cela peut aider à résister à la censure et garantir l'intégrité du contenu.

Voici un exemple de code où le hachage de l'article est stocké en ligne comme preuve de publication :

const { ethers } = require('ethers');

const portefeuille = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, fournisseur);

const contentHash = ethers.utils.id("Contenu de l'article ici");

const tx = await wallet.sendTransaction({

à : ‘0xSomeStorageContractAddress’, données : contentHash // En supposant que le contrat accepte et stocke ces données

});

console.log("Hash de transaction (preuve de publication):", tx.hash);

Ce ne sont que quelques exemples d'utilisation pour les publications médiatiques. Mais il existe d'autres secteurs qui peuvent tirer parti de la puissance d'ethers.js. Ceux-ci incluent :

  1. Développeurs de la blockchain (prévu)
  2. Les analystes financiers travaillant avec DeFimétriques
  3. Développeurs de jeux
  4. Créateurs de contenu
  5. Les gestionnaires de la chaîne d'approvisionnement

Et plus.

Applications du monde réel d'Ethers.js

Outre son utilité dans DeFi, projets NFT et de jeux, il existe quelques DApps existants qui prennent en charge l'utilisation d'Éthers.js. Ceux-ci comprennent les éléments suivants:

  1. Uniswap: Ether.js interagit avec les contrats intelligents inhérents à Uniswap pour exécuter des transactions, ajouter de la liquidité, voire consulter les statistiques des pools. Dans ce cas, les développeurs de DApp prévoient de construire des outils qui interagissent avec Uniswap, tels que des robots de trading, des outils de gestion de portefeuille, et plus encore.
  2. Aave: Les développeurs de DApp et autres parties intéressées peuvent tirer parti des fonctionnalités d'Éther.js pour interagir avec des contrats intelligents spécifiques à Aave. De cette façon, ils peuvent préparer l'interface utilisateur pour emprunter des actifs, déposer des garanties et faire plus encore.

Démystifier quelques mythes sur Ethers.js :

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Considérations de sécurité

L'utilisation d'Ethers.js s'accompagne d'un ensemble assez complet de sécuritéconsidérations. Voici quelques-unes à suivre :

  1. Il est conseillé de ne pas coder en dur les clés privées à l'intérieur de la base de code de votre application.
  2. Chaque interaction avec un contrat intelligent doit être précédée de tests et d'audits approfondis des contrats.
  3. Chaque fois que vous interagissez avec des contrats intelligents, utilisez des modèles sûrs comme "call" pour des tâches en lecture seule.
  4. Pour optimiser l'utilisation d'ethers.js, vous pourriez envisager le regroupement des demandes. C'est là que vous pouvez regrouper, disons, les demandes en lecture seule pour minimiser le nombre d'appels réseau. Il va sans dire que ces techniques d'optimisation peuvent rendre l'application très évolutive et rentable.

Voici un exemple de comment ça fonctionne :

// Pseudocode pour regrouper les appels de contrat avec Ethers.js (exemple conceptuel)

const contrat = new ethers.Contract(adresse, abi, fournisseur);

const [valeur1, valeur2, valeur3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: un outil polyvalent

Sponsorisé

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Comme le montre ce guide, Ethers.js est un outil polyvalent. Bien que nous ayons jeté un coup d'œil rapide à ses capacités, la meilleure façon de comprendre complètement Ethers.js est de plonger plus profondément dans le monde des contrats intelligents, du JavaScript, des IDE, des DApps, et plus encore. De plus, rejoindre les communautés Ethereum et Ethers peut également être utile.

Questions fréquemment posées

Comment les développeurs peuvent-ils utiliser les événements Ethers.js ?

Quelles sont les principales utilités offertes par Ethers.js?

Quel est le lien entre Ethers.js et Web3.js ?

Clause de non-responsabilité:

  1. Cet article est repris de [ beincrypto], Tous les droits d'auteur appartiennent à l'auteur original [Ananda Banerjee]. Si des objections existent à cette réimpression, veuillez contacter le Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Avertissement de responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas des conseils en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.

Qu'est-ce que Ethers.js? Une plongée profonde dans la bibliothèque JavaScript d'Ethereum

Débutant3/18/2024, 8:47:39 AM
Ethereum est un protocole blockchain connu pour sa boîte à outils, ses contrats intelligents et son écosystème aligné sur le code, s'appuyant fortement sur ethers.js (une bibliothèque JavaScript) pour fournir la puissance nécessaire à son approche centrée sur les développeurs.

Si vous avez l'œil sur l'Éther (ETH) par rapport aux autres acteurs de la cryptographie, vous devriez prendre un moment pour comprendre Ethereum d'un point de vue plus technique. Un protocole de blockchain connu pour sa boîte à outils, ses contrats intelligents et son écosystème aligné sur le code, Ethereum repose fortement sur ethers.js - une bibliothèque Javascript - pour donner à son approche centrée sur les développeurs la puissance requise.

Bien que ethers.js ne soit pas la seule bibliothèque JavaScript native d'Ethereum, c'est la meilleure option pour les petites DApps. Dans ce guide, nous approfondissons les aspects de ethers.js, vous aidant à comprendre ce concept technique.

Dans ce guide :

  1. Décodage d'ethers.js
  2. Pourquoi ethers.js est-il important ?
  3. Toutes les versions d'Ethers.js expliquées
  4. Démarrer avec ethers.js
  5. Fonctionnalités principales
  6. Comment les publications cryptographiques peuvent tirer parti d'Ethers.js
  7. Applications du monde réel d'Ethers.js
  8. Considérations de sécurité
  9. Ethers.js : un outil polyvalent
  10. Questions fréquemment posées

Déballage de ethers.js

ethers.js est une bibliothèque JavaScript — un ensemble de code pré-écrit qui automatise plusieurs fonctions. L'utilisation de bibliothèques JavaScript pour le développement peut minimiser l'effort d'écriture de code. Le processus devient plus convivial, et pour les développeurs de DApp, ces bibliothèques aident à offrir des fonctionnalités blockchain de base sous forme de bundles.

Éthers.js et le cycle de développement: BeInCrypto

Voici le GitHubdépôtpour la bibliothèque.

Quels sont les bibliothèques JavaScript?

Avant de plonger plus profondément dans ethers.js, jetons un coup d'œil plus attentif aux bibliothèques JavaScript. Ces bibliothèques sont des ensembles de code JavaScript pré-écrits qui peuvent automatiser des tâches communes spécifiques. L'utilisation de bibliothèques comme ethers.js peut accélérer le processus de création de DApp et même accélérer d'autres interactions spécifiques à la blockchain.

Pourquoi avons-nous besoin de bibliothèques JavaScript dans Ethereum ?

Ethereum a évolué en une plateforme de développement de logiciels décentralisée. De contrats intelligentsàDeDes applications financières aux DApps, le codage est essentiel à l'écosystème Ethereum. C'est précisément pourquoi des bibliothèques JavaScript adaptées à Ethereum comme ethers.js existent. En utilisant ces bibliothèques, les développeurs peuvent se connecter au réseau, déployer et interagir avec des contrats intelligents, et gérer facilement chaîne de blocsdonnées.

Saviez-vous ? Ethers.js n'est pas la seule bibliothèque JavaScript Ethereum connue. Une autre importante est Web3.js, fondée par la Fondation Ethereum. Web3.js est réputé pour sa collection complète de documentation et est destiné aux DApps plus complexes.

Pourquoi ethers.js est-il important?

Comme mentionné précédemment, ethers.js est destiné aux développeurs travaillant avec la blockchain Ethereum. En ce qui concerne l'importance, cette bibliothèque développée par Richard Moore, commercialisée sous le nom de "Éthers", est utile pour les tâches suivantes :

  1. Simplification de plusieurs transactions Ethereum
  2. Offre un accès à une documentation complète et à des ressources
  3. Facilitant le développement de DApp


L'écosystème Ethers.js et les rôles qu'il peut assumer: BeInCrypto

Voici un exemple rapide de l'extrait de code utilisé pour obtenir le solde actuel d'un compte Ethereum. Lisons d'abord le code et comprenons comment ethers.js rend la vie plus facile :

const { ethers } = require(‘ethers’);

// Se connecter au réseau Ethereum

const fournisseur = nouveau ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Spécifiez l'adresse du compte

const accountAddress = ‘0xABC123…’;

// Récupérer et afficher le solde

provider.getBalance(adresseDuCompte).then((solde) => {

// Convertir le solde de Wei en Étherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Solde : ${balanceInEther} ETH`);

});

Dans cet exemple, vous pouvez clairement voir comment la commande — ethers.providers.JsonRpcProvider — invoque un point de terminaison Infura, et getBalance récupère le solde. Vous n'avez pas besoin de traiter directement avec le RPC JSON d'Ethereum ou l'appel de procédure à distance. Dans ce cas, vous pouvez penser à ethers.js comme un traducteur qui rend Ethereum plus facile et plus familier pour vous.

Toujours incertain quant à la signification d'ethers.js ? Voici une rapide analogie.

Pensez à ethers.js comme une vieille carte de bibliothèque. Rappelez-vous que ces cartes avaient des catalogues, vous permettant de trouver le bon livre en localisant le rayon, puis le numéro de l'étagère? C'est ce que ethers.js vise à faire. Il simplifie et organise les capacités massives d'Ethereum, permettant aux développeurs de trouver exactement ce dont ils ont besoin.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Toutes les versions d'Ethers.js expliquées

Au fil des ans, plusieurs versions d'Ethers.js ont vu le jour, chacune introduisant une nouvelle fonctionnalité ou une correction de bogue. De plus, la numérotation suit la sémantique standard, comme v1.2.3, où le premier chiffre signifie le majeur et les deuxième et troisième chiffres indiquent les mineurs et les correctifs. Nous ne considérerons que les mises à niveau de version majeure pour le moment - des changements qui pourraient ne pas être rétrocompatibles.

  1. Version 1.x (Legacy): Il s'agissait de la version initiale, suivie de fonctionnalités liées à la signature de transactions, à la gestion de portefeuille, et plus encore.
  2. Version 2.x (Portefeuille Ethers): Axé sur les utilitaires et les fonctionnalités du portefeuille, y compris le stockage sécurisé de clés privées.
  3. Version 3.x (Fournisseur d'Éthers) : Introduit des abstractions pour se connecter aux nœuds Ethereum. Différents types de joueurs ont été pris en charge, y compris Infura, WebSockets, et plus encore.
  4. Version 4.x (contrat Ethers) : Les propriétés basées sur les contrats intelligents ont été étendues, avec plus d'utilités pour l'encodage et le décodage de données, les filtres d'événements, et plus encore.
  5. Version 5.x: Offre une architecture modulaire, un support amélioré pour ENS, une gestion complète des erreurs et plus encore.
  6. Version 6.x: Inclusion des fonctionnalités ES6, introduction de BigInt, accessibilité du surcharge, et plus encore.


Architecture et composants d'Ethers.js : BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Vous pouvez trouver plus de détails sur chaque version en consultant Ethers.js’documentation originale.

« Ethers.js brille par sa supériorité en matière d'interopérabilité blockchain, de prise en charge native de TypeScript et d'outils de débogage avancés. C'est une bibliothèque efficace qui s'intègre parfaitement dans des frameworks populaires comme React, Vue, Angular, etc. »

Redbelly Intern, Builder: X

Démarrer avec ethers.js

Avant de planifier d'exploiter le potentiel d'ethers.js, il est nécessaire de savoir à quelle étape du développement de DApp ou de contrat intelligent il est invoqué. Voici une rapide explication pour ceux qui ont besoin de connaître et de comprendre ces éléments à partir de zéro.

"Web3.js est convivial pour les débutants et plus concis que ethers.js.

D'autre part, Ethers.js offre plus d'options et est nouveau; il est un peu plus complexe que Web3.js.”

degenBRo, développeur blockchain et fondateur de Solidity Finance : comme indiqué à BeInCrypto

Pour commencer, vous devez d'abord ouvrir l'ordinateur et configurer l'environnement de développement. Cela inclut Node.js et l'environnement de développement intégré. Notez que JavaScript s'exécute généralement sur le navigateur, mais avec Node.js, il peut également s'exécuter sur l'ordinateur. C'est l'environnement d'exécution Node.js qui installe des bibliothèques Javascript comme ethers.js.

En ce qui concerne IDE, dont un développeur de logiciels a besoin pour tester, vous pouvez envisager VS Code, Sublime Text ou tout autre chose.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Installation de support ethers.js

La prochaine étape consiste à installer Ethers, la bibliothèque hébergeant ethers.js.

npm installer ethers

Ensuite, vous devez utiliser des Éthers pour vous connecter au Portefeuille Ethereum, car l'interaction avec la blockchain nécessitera cette étape pour valider les informations d'identification. Vous pouvez utiliser la bibliothèque Éthers installée à cet effet. Voici la commande d'exemple :

/Related

PLUS D'ARTICLES

FNB Ethereum Expliqué : Qu'est-ce que c'est et comment ça marche

14 mins 15 mars 2024 Il y a 3 jours

Comment être payé en Bitcoin (BTC) : Tout ce que vous devez savoir

25 mins 15 mars 2024 Il y a 2 jours

const { ethers } = require(‘ethers’);

// Connect to the MetaMaskportefeuille

const fournisseur = new ethers.providers.Web3Provider(window.ethereum);

Une fois terminé, vous pouvez utiliser l'IDE pour écrire le code de solidité et créer des contrats intelligents pour les DApps. Ethers.js sera utilisé pour déployer la même. Vous pouvez même tester la DApp ou le contrat localement, en utilisant des environnements comme Truffle et Hardhat. Ensuite, vous déployez les contrats sur le réseau Ethereum, pour lequel ethers.js est nécessaire.

const contrat = new ethers.ContractFactory(abi, bytecode, signataire);

const deployedContract = await contract.deploy();

Pour les non initiés, Abi, Bytecode, Signer sont des termes nécessaires pour un développement de contrat intelligent fluide. L'Abi ou l'interface binaire d'application est plus comme l'étiquette qui aide le réseau à reconnaître vos contrats intelligents. Le bytecode est la version compilée ou plutôt prête pour le réseau du contrat intelligent et le signataire est l'entité génératrice de signature.

Éthers.js pour le front-end

Une fois que le contrat intelligent est déployé, vous devez construire l'interface utilisateur ou l'interface utilisateur de la DApp. Pour ce faire, vous pouvez utiliser Angular ou React. Vous pouvez même intégrer Ethers.js dans l'interface utilisateur pour vous assurer qu'elle peut interagir avec les contrats intelligents Ethereum. Voici le code d'exemple pour la même chose :

const fournisseur = new ethers.providers.Web3Provider(window.ethereum);

const contrat = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

Après cela, vous devez tester le DApp sur un testnet, comme Rinkeby ou Ropsten. Une fois que vous êtes satisfait, vous pouvez lancer le DApp sur le mainnet. Remarquez combien de fois tout au long du processus vous devez interagir avec Éthers ou ethers.js.

Fonctionnalités de base

Ethers.js apparaît comme une bibliothèque Ethereum complète. Voici quelques-unes des offres exclusives qui peuvent faciliter la vie des développeurs :

Fournisseurs

Les fournisseurs Ethers.js agissent comme des ponts entre le réseau Ethereum et le DApp sur lequel vous travaillez. Cela implique de simplifier la requête de données de la blockchain et aide également à diffuser les transactions. Infura est l'un des fournisseurs qu'Ethers.js utilise.

Voici le code d'exemple pour le même :

const { ethers } = require(‘ethers’);

// Connectez-vous en utilisant Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Vérifiez le numéro de bloc actuel

provider.getBlockNumber().then((blockNumber) => {

console.log("Numéro de bloc actuel:", blockNumber);

});

Portefeuilles

Ethers.js vous permet de gérer des portefeuilles, vous permettant de créer de nouveaux comptes, d'importer des comptes existants, de gérer en toute sécurité les clés privées pour signer des transactions, et bien plus encore.

Contrats

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Ce composant de l'existence d'Ethers.js prend en charge l'instanciation d'objets. Cela facilite l'appel de fonctions de contrat spécifiques, plus proche des méthodes natives de Javascript.


Ethers.js et interaction avec les contrats intelligents : BeInCrypto

Intégration ENS

Ethers.js peut résoudre les noms ENS en leurs adresses Ethereum et vice versa. Cette fonctionnalité réduit le risque d'erreurs.

Voici un extrait de code d'exemple pour cela :

const { ethers } = require(‘ethers’);

const fournisseur = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} est résolu à ${address}`);

});

Outre les fonctionnalités mentionnées, Ethers.js propose également les aspects ou fonctionnalités suivants, aidant les développeurs à accéder directement à Ethereum :

  1. Signataires
  2. Utilitaires
  3. Écouteurs d'événements et filtres (destinés à activer des réponses en temps réel aux actions de la blockchain)
  4. Transactions
  5. Support multicall
  6. Prise en charge de TypeScript (destinée à améliorer la fiabilité du code et l'expérience globale des développeurs)

Quelques avantages de l'utilisation d'Ethers.js :

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Comment les publications cryptographiques peuvent tirer parti d'Ethers.js

Des publications médiatiques telles que BeInCrypto peuvent tirer parti d'Ethers.js pour créer des outils web3 avancés et ingénieux à partir de zéro. De cette manière, il devient possible d'utiliser des fonctionnalités alimentées par la blockchain ou, plutôt, par Ethereum pour améliorer l'utilisabilité. Voici les options que l'on peut envisager :

Flux de données

Les fonctionnalités d'Ethers.js peuvent être utilisées pour intégrer des flux de données cryptographiques en temps réel, tels que des statistiques réseau,Frais de gaz, et plus encore, pour maintenir les articles et les ressources toujours à jour. Voici un exemple de code pour récupérer le dernier numéro de bloc, disons pour Bitcoin, pour suivre en temps réel le halving.

const { ethers } = require('ethers');

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Numéro de bloc actuel:”, blockNumber);// Intégrez ces données dans la plateforme de publication pour une diffusion de données en temps réel

});

Contenu interactif

Les publications peuvent créer des éléments de contenu interactif, permettant aux utilisateurs d'interagir directement avec des contrats intelligents, de participer à des sondages, ou même de jouer à de petits jeux si nécessaire.

Voici un extrait de code d'exemple pour récupérer un salut spécifique à l'étape d'un contrat intelligent :

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"function getGreeting() view returns (string)"

];

const contrat = nouveau ethers.Contract(contractAddress, contractABI, fournisseur);

fonction asynchrone afficherSalutation() {

const salutation = await contrat.getGreeting();document.getElementById(‘salutation’).innerText = salutation;

}

Ouvrez un compte sur KuCoin & obtenez un bonus garanti allant jusqu'à 700 USDT.

  1. Commencez votre parcours de trading de crypto avec KuCoin et prenez de l'avance !
  2. Tradez en toute confiance sur KuCoin ! Notre plateforme priorise votre sécurité, offrant une protection de premier ordre pour vos actifs numériques.
  3. Explorez le vaste monde des cryptomonnaies avec KuCoin!

Inscrivez-vous maintenant!

Un exemple concret de déploiement d'Ethers.js :

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Publication décentralisée

Les publications médiatiques peuvent également envisager la publication décentralisée, où un fragment d'un article est publié sur le réseau blockchain. Cela peut aider à résister à la censure et garantir l'intégrité du contenu.

Voici un exemple de code où le hachage de l'article est stocké en ligne comme preuve de publication :

const { ethers } = require('ethers');

const portefeuille = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, fournisseur);

const contentHash = ethers.utils.id("Contenu de l'article ici");

const tx = await wallet.sendTransaction({

à : ‘0xSomeStorageContractAddress’, données : contentHash // En supposant que le contrat accepte et stocke ces données

});

console.log("Hash de transaction (preuve de publication):", tx.hash);

Ce ne sont que quelques exemples d'utilisation pour les publications médiatiques. Mais il existe d'autres secteurs qui peuvent tirer parti de la puissance d'ethers.js. Ceux-ci incluent :

  1. Développeurs de la blockchain (prévu)
  2. Les analystes financiers travaillant avec DeFimétriques
  3. Développeurs de jeux
  4. Créateurs de contenu
  5. Les gestionnaires de la chaîne d'approvisionnement

Et plus.

Applications du monde réel d'Ethers.js

Outre son utilité dans DeFi, projets NFT et de jeux, il existe quelques DApps existants qui prennent en charge l'utilisation d'Éthers.js. Ceux-ci comprennent les éléments suivants:

  1. Uniswap: Ether.js interagit avec les contrats intelligents inhérents à Uniswap pour exécuter des transactions, ajouter de la liquidité, voire consulter les statistiques des pools. Dans ce cas, les développeurs de DApp prévoient de construire des outils qui interagissent avec Uniswap, tels que des robots de trading, des outils de gestion de portefeuille, et plus encore.
  2. Aave: Les développeurs de DApp et autres parties intéressées peuvent tirer parti des fonctionnalités d'Éther.js pour interagir avec des contrats intelligents spécifiques à Aave. De cette façon, ils peuvent préparer l'interface utilisateur pour emprunter des actifs, déposer des garanties et faire plus encore.

Démystifier quelques mythes sur Ethers.js :

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Considérations de sécurité

L'utilisation d'Ethers.js s'accompagne d'un ensemble assez complet de sécuritéconsidérations. Voici quelques-unes à suivre :

  1. Il est conseillé de ne pas coder en dur les clés privées à l'intérieur de la base de code de votre application.
  2. Chaque interaction avec un contrat intelligent doit être précédée de tests et d'audits approfondis des contrats.
  3. Chaque fois que vous interagissez avec des contrats intelligents, utilisez des modèles sûrs comme "call" pour des tâches en lecture seule.
  4. Pour optimiser l'utilisation d'ethers.js, vous pourriez envisager le regroupement des demandes. C'est là que vous pouvez regrouper, disons, les demandes en lecture seule pour minimiser le nombre d'appels réseau. Il va sans dire que ces techniques d'optimisation peuvent rendre l'application très évolutive et rentable.

Voici un exemple de comment ça fonctionne :

// Pseudocode pour regrouper les appels de contrat avec Ethers.js (exemple conceptuel)

const contrat = new ethers.Contract(adresse, abi, fournisseur);

const [valeur1, valeur2, valeur3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: un outil polyvalent

Sponsorisé

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Comme le montre ce guide, Ethers.js est un outil polyvalent. Bien que nous ayons jeté un coup d'œil rapide à ses capacités, la meilleure façon de comprendre complètement Ethers.js est de plonger plus profondément dans le monde des contrats intelligents, du JavaScript, des IDE, des DApps, et plus encore. De plus, rejoindre les communautés Ethereum et Ethers peut également être utile.

Questions fréquemment posées

Comment les développeurs peuvent-ils utiliser les événements Ethers.js ?

Quelles sont les principales utilités offertes par Ethers.js?

Quel est le lien entre Ethers.js et Web3.js ?

Clause de non-responsabilité:

  1. Cet article est repris de [ beincrypto], Tous les droits d'auteur appartiennent à l'auteur original [Ananda Banerjee]. Si des objections existent à cette réimpression, veuillez contacter le Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Avertissement de responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas des conseils en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!