تخطي إلى المحتوى الرئيسي

إرسال الرموز المميزة باستخدام ⁦ethers.js⁩

ETHERS.JS
ERC-20
رموز مميزة
مبتدئ
كيم يونغ جون
6 أبريل 2021
3 دقيقة للقراءة

إرسال رمز مميز باستخدام ethers.js(5.0)

في هذا البرنامج التعليمي ستتعلم كيفية

  • استيراد ethers.js
  • تحويل رمز مميز
  • تعيين سعر الغاز وفقًا لحالة حركة المرور في الشبكة

للبدء

للبدء، يجب علينا أولاً استيراد مكتبة ethers.js في كود JavaScript الخاص بنا تضمين ethers.js v5

التثبيت

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