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 v5

In diesem Tutorial lernen Sie Folgendes:

  • ethers.js importieren
  • Token übertragen
  • 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 v5 einbinden

Installation

/home/ricmoo> npm install --save ethers@5

ES6 im Browser

<script type="module">
  import { ethers } from "https://cdn.jsdelivr.net/npm/ethers@5.7.2/dist/ethers.esm.min.js"
  // Dein Code hier...
</script>

ES3(UMD) im Browser

<script
  src="https://cdn.jsdelivr.net/npm/ethers@5.7.2/dist/ethers.umd.min.js"
  type="application/javascript"
></script>

Parameter

  1. contract_address: Token-Vertragsadresse (die Vertragsadresse wird benötigt, wenn der zu übertragende Token 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 übertragen

Hinweis

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

Sendevorgang

1. Mit dem Netzwerk verbinden (Testnetz)

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

Die 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()