Passer au contenu principal

Envoyer des jetons avec ethers.js

ETHERS.JS
ERC-20
JETONS
Débutant
Kim YongJun
6 avril 2021
3 minutes de lecture

Envoyer un jeton avec ethers.js(5.0)

Dans ce tutoriel, vous apprendrez à

  • Importer ethers.js
  • Transférer un jeton
  • Définir le prix du gaz en fonction de l'état du trafic sur le réseau

Pour commencer

Pour commencer, nous devons d'abord importer la bibliothèque ethers.js dans notre JavaScript. Inclure ethers.js(5.0)

Installation

/home/ricmoo> npm install --save ethers

ES6 dans le navigateur

<script type="module">
  import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
  // Votre code ici...
</script>

ES3(UMD) dans le navigateur

<script
  src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"
  type="application/javascript"
></script>

Paramètres

  1. contract_address : Adresse du contrat du jeton (l'adresse du contrat est nécessaire lorsque le jeton que vous souhaitez transférer n'est pas de l'ether)
  2. send_token_amount : Le montant que vous souhaitez envoyer au destinataire
  3. to_address : L'adresse du destinataire
  4. send_account : L'adresse de l'expéditeur
  5. private_key : Clé privée de l'expéditeur pour signer la transaction et transférer réellement les jetons

Remarque

signTransaction(tx) est supprimé car sendTransaction() le fait en interne.

Procédures d'envoi

1. Se connecter au réseau (réseau de test)

Définir le fournisseur (Infura)

Se connecter au réseau de test Ropsten

window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")

2. Créer un portefeuille

let wallet = new ethers.Wallet(private_key)

3. Connecter le portefeuille au réseau

let walletSigner = wallet.connect(window.ethersProvider)

4. Obtenir le prix du gaz actuel

window.ethersProvider.getGasPrice() // gasPrice

5. Définir la transaction

Ces variables définies ci-dessous dépendent de send_token()

Paramètres de la transaction

  1. send_account : adresse de l'expéditeur du jeton
  2. to_address : adresse du destinataire du jeton
  3. send_token_amount : la quantité de jetons à envoyer
  4. gas_limit : limite de gaz
  5. gas_price : prix du gaz

Voir ci-dessous pour savoir comment l'utiliser

const tx = {
  from: send_account,
  to: to_address,
  value: ethers.utils.parseEther(send_token_amount),
  nonce: window.ethersProvider.getTransactionCount(send_account, "latest"),
  gasLimit: ethers.utils.hexlify(gas_limit), // 100000
  gasPrice: gas_price,
}

6. Transfert

walletSigner.sendTransaction(tx).then((transaction) => {
  console.dir(transaction)
  alert("Send finished!")
})

Comment l'utiliser

Succès !

image of transaction done successfully

send_token()