Přejít na hlavní obsah

Odesílání tokenů pomocí ethers.js

ETHERS.JS
ERC-20
tokeny
Začátečník
Kim YongJun
6. dubna 2021
2 minut čtení

Odesílání tokenů pomocí ethers.js(5.0)

V tomto tutoriálu se naučíte, jak

  • Importovat ethers.js
  • Převést token
  • Nastavit cenu plynu podle vytížení sítě

Jak začít

Abychom mohli začít, musíme nejprve importovat knihovnu ethers.js do našeho JavaScriptu. Zahrnutí ethers.js(5.0)

Instalace

/home/ricmoo> npm install --save ethers

ES6 v prohlížeči

<script type="module">
  import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
  // Váš kód zde...
</script>

ES3(UMD) v prohlížeči

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

Parametry

  1. contract_address: Adresa kontraktu tokenu (adresa kontraktu je nutná, pokud token, který chcete převést, není ether)
  2. send_token_amount: Částka, kterou chcete odeslat příjemci
  3. to_address: Adresa příjemce
  4. send_account: Adresa odesílatele
  5. private_key: Soukromý klíč odesílatele k podepsání transakce a samotnému převodu tokenů

Upozornění

signTransaction(tx) je odstraněno, protože sendTransaction() to provádí interně.

Postup odesílání

1. Připojení k síti (testnet)

Nastavení poskytovatele (Infura)

Připojení k testnetu Ropsten

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

2. Vytvoření peněženky

let wallet = new ethers.Wallet(private_key)

3. Připojení peněženky k síti

let walletSigner = wallet.connect(window.ethersProvider)

4. Získání aktuální ceny plynu

window.ethersProvider.getGasPrice() // gasPrice

5. Definování transakce

Níže definované proměnné závisí na send_token()

Parametry transakce

  1. send_account: adresa odesílatele tokenu
  2. to_address: adresa příjemce tokenu
  3. send_token_amount: množství tokenů k odeslání
  4. gas_limit: limit plynu
  5. gas_price: cena plynu

Níže naleznete návod k použití

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. Převod

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

Jak to použít

Úspěch!

image of transaction done successfully

send_token()