Перейти до основного вмісту

Надсилання токенів за допомогою ethers.js

ETHERS.JS
ERC-20
токени
Для початківців
Кім Йон Джун
6 квітня 2021 р.
3 хвилин на читання

Надсилання токенів за допомогою ethers.js(5.0)

У цьому посібнику ви дізнаєтеся, як

  • Імпортувати ethers.js
  • Переказувати токени
  • Встановлювати ціну газу відповідно до завантаженості мережі

З чого почати

Щоб почати, ми повинні спочатку імпортувати бібліотеку ethers.js у наш JavaScript Підключення ethers.js(5.0)

Встановлення

/home/ricmoo> npm install --save ethers

ES6 у браузері

<script type="module">
  import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
  // Ваш код тут...
</script>

ES3(UMD) у браузері

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

Параметри

  1. contract_address: Адреса контракту токена (адреса контракту потрібна, коли токен, який ви хочете переказати, не є етером)
  2. send_token_amount: Сума, яку ви хочете надіслати одержувачу
  3. to_address: Адреса одержувача
  4. send_account: Адреса відправника
  5. private_key: Приватний ключ відправника для підписання транзакції та фактичного переказу токенів

Примітка

signTransaction(tx) видалено, оскільки sendTransaction() робить це внутрішньо.

Процедура надсилання

1. Підключення до мережі (тестова мережа)

Налаштування провайдера (Infura)

Підключення до тестової мережі Ропстен

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

2. Створення гаманця

let wallet = new ethers.Wallet(private_key)

3. Підключення гаманця до мережі

let walletSigner = wallet.connect(window.ethersProvider)

4. Отримання поточної ціни газу

window.ethersProvider.getGasPrice() // ціна газу

5. Визначення транзакції

Ці змінні, визначені нижче, залежать від send_token()

Параметри транзакції

  1. send_account: адреса відправника токена
  2. to_address: адреса одержувача токена
  3. send_token_amount: кількість токенів для надсилання
  4. gas_limit: ліміт газу
  5. gas_price: ціна газу

Дивіться нижче, як це використовувати

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. Переказ

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

Як це використовувати

Успіх!

image of transaction done successfully

send_token()