Zum Hauptinhalt springen

Senden von Token mit ethers.js

ETHERS.JS
ERC-20
Token
Anfänger
Kim YongJun
6. April 2021
3 Minuten Lesezeit

Token senden mit ethers.js(5.0)

In diesem Tutorial lernen Sie Folgendes:

  • ethers.js importieren
  • Token transferieren
  • Den Gaspreis entsprechend der Netzwerkauslastung festlegen

Erste Schritte

Um zu beginnen, müssen wir zunächst die ethers.js-Bibliothek in unser JavaScript importieren ethers.js(5.0) einbinden

Installation

/home/ricmoo> npm install --save ethers

ES6 im Browser

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

ES3(UMD) im Browser

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

Parameter

  1. contract_address: Token-Vertragsadresse (die Vertragsadresse wird benötigt, wenn der Token, den Sie transferieren möchten, nicht Ether ist)
  2. send_token_amount: Der Betrag, den Sie an den Empfänger senden möchten
  3. to_address: Die Adresse des Empfängers
  4. send_account: Die Adresse des Senders
  5. private_key: Privater Schlüssel des Senders, um die Transaktion zu signieren und die Token tatsächlich zu transferieren

Hinweis

signTransaction(tx) wurde entfernt, da sendTransaction() dies intern erledigt.

Sendevorgang

1. Mit dem Netzwerk (Testnetz) verbinden

Provider festlegen (Infura)

Mit dem Ropsten-Testnetz verbinden

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

2. Wallet erstellen

let wallet = new ethers.Wallet(private_key)

3. Wallet mit dem Netzwerk verbinden

let walletSigner = wallet.connect(window.ethersProvider)

4. Aktuellen Gaspreis abrufen

window.ethersProvider.getGasPrice() // Gaspreis

5. Transaktion definieren

Diese unten definierten Variablen sind abhängig von send_token()

Transaktionsparameter

  1. send_account: Adresse des Token-Senders
  2. to_address: Adresse des Token-Empfängers
  3. send_token_amount: Die Menge der zu sendenden Token
  4. gas_limit: Gaslimit
  5. gas_price: Gaspreis

Siehe unten für die Verwendung

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. Transfer

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

Verwendung

Erfolg!

image of transaction done successfully

send_token()