Chuyển đến nội dung chính

Gửi Token bằng ethers.js

ETHERS.JS
ERC-20
TOKEN
Người mới bắt đầu
Kim YongJun
6 tháng 4, 2021
3 số phút đọc

Gửi Token bằng ethers.js(5.0)

Trong Hướng dẫn này, bạn sẽ học cách

  • Nhập ethers.js
  • Chuyển token
  • Đặt giá gas theo tình hình lưu lượng truy cập của mạng

Để Bắt đầu

Để bắt đầu, trước tiên chúng ta phải nhập thư viện ethers.js vào javascript của mình Bao gồm ethers.js(5.0)

Cài đặt

/home/ricmoo> npm install --save ethers

ES6 trong trình duyệt

<script type="module">
  import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
  // Mã của bạn ở đây...
</script>

ES3(UMD) trong trình duyệt

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

Các tham số

  1. contract_address: Địa chỉ hợp đồng token (cần địa chỉ hợp đồng khi token bạn muốn chuyển không phải là ether)
  2. send_token_amount: Số tiền bạn muốn gửi cho người nhận
  3. to_address: Địa chỉ của người nhận
  4. send_account: Địa chỉ của người gửi
  5. private_key: Khóa riêng tư của người gửi để ký giao dịch và thực sự chuyển token

Lưu ý

signTransaction(tx) bị xóa vì sendTransaction() thực hiện điều đó trong nội bộ.

Thủ tục gửi

1. Kết nối với mạng (mạng thử nghiệm)

Thiết lập nhà cung cấp (Infura)

Kết nối với mạng thử nghiệm Ropsten

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

2. Tạo ví

let wallet = new ethers.Wallet(private_key)

3. Kết nối Ví với mạng

let walletSigner = wallet.connect(window.ethersProvider)

4. Lấy giá gas hiện tại

window.ethersProvider.getGasPrice() // gasPrice

5. Xác định Giao dịch

Các biến được định nghĩa dưới đây phụ thuộc vào send_token()

Các tham số giao dịch

  1. send_account: địa chỉ của người gửi token
  2. to_address: địa chỉ của người nhận token
  3. send_token_amount: số lượng token cần gửi
  4. gas_limit: giới hạn gas
  5. gas_price: giá gas

Xem bên dưới để biết cách sử dụng

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. Chuyển

walletSigner.sendTransaction(tx).then((transaction) => {
  console.dir(transaction)
  alert("Gửi xong!")
})

Cách sử dụng

Thành công!

hình ảnh giao dịch được thực hiện thành công

send_token()

Cập nhật trang lần cuối: 3 tháng 3, 2026

Hướng dẫn này có hữu ích không?