Ruka hadi kwenye maudhui makuu

Kutuma Tokeni Kutumia ethers.js

ETHERS.JS
ERC-20
TOKENI
Mwanzilishi
Kim YongJun
6 Aprili 2021
3 dakika za kusoma

Tuma Tokeni Kutumia ethers.js(5.0)

Katika Mafunzo Haya Utajifunza Jinsi Ya

  • Kuagiza ethers.js
  • Kuhamisha tokeni
  • Kuweka bei ya gesi kulingana na hali ya msongamano wa mtandao

Ili-Kuanza

Ili kuanza, lazima kwanza tuagize maktaba ya ethers.js kwenye JavaScript yetu Jumuisha ethers.js(5.0)

Kusakinisha

/home/ricmoo> npm install --save ethers

ES6 kwenye Kivinjari

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

ES3(UMD) kwenye Kivinjari

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

Vigezo

  1. contract_address: Anwani ya mkataba wa tokeni (anwani ya mkataba inahitajika wakati tokeni unayotaka kuhamisha sio Etha)
  2. send_token_amount: Kiasi unachotaka kutuma kwa mpokeaji
  3. to_address: Anwani ya mpokeaji
  4. send_account: Anwani ya mtumaji
  5. private_key: Ufunguo wa siri wa mtumaji ili kutia saini muamala na kuhamisha tokeni haswa

Ilani

signTransaction(tx) imeondolewa kwa sababu sendTransaction() inafanya hivyo kwa ndani.

Taratibu za Kutuma

1. Unganisha kwenye mtandao (mtandao wa majaribio)

Weka Mtoa Huduma (Infura)

Unganisha kwenye mtandao wa majaribio wa Ropsten

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

2. Unda mkoba

let wallet = new ethers.Wallet(private_key)

3. Unganisha Mkoba kwenye mtandao

let walletSigner = wallet.connect(window.ethersProvider)

4. Pata bei ya gesi ya sasa

window.ethersProvider.getGasPrice() // bei ya gesi

5. Fafanua Muamala

Vigezo hivi vilivyofafanuliwa hapa chini vinategemea send_token()

Vigezo vya muamala

  1. send_account: anwani ya mtumaji wa tokeni
  2. to_address: anwani ya mpokeaji wa tokeni
  3. send_token_amount: kiasi cha tokeni za kutuma
  4. gas_limit: kikomo cha gesi
  5. gas_price: bei ya gesi

Tazama hapa chini jinsi ya kutumia

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

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

Jinsi ya kuitumia

Imefaulu!

image of transaction done successfully

send_token()