اہم مواد پر جائیں

ethers.js کا استعمال کرتے ہوئے ٹوکن بھیجنا

ETHERS.JS
ERC-20
ٹوکنز
ابتدائی
Kim YongJun
6 اپریل، 2021
3 منٹ کی پڑھائی

ethers.js(5.0) کا استعمال کرتے ہوئے ٹوکن بھیجیں

اس ٹیوٹوریل میں آپ سیکھیں گے کہ کیسے

  • ethers.js امپورٹ کریں
  • ٹوکن منتقل کریں
  • نیٹ ورک ٹریفک کی صورتحال کے مطابق گیس کی قیمت مقرر کریں

شروع کرنے کے لیے

شروع کرنے کے لیے، ہمیں سب سے پہلے اپنے javascript میں ethers.js لائبریری امپورٹ کرنی ہوگی ethers.js(5.0) شامل کریں

انسٹال کرنا

1/home/ricmoo> npm install --save ethers

براؤزر میں ES6

1<script type="module">
2 import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
3 // Your code here...
4</script>

براؤزر میں ES3(UMD)

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

پیرامیٹرز

  1. contract_address: ٹوکن کنٹریکٹ کا پتہ (کنٹریکٹ ایڈریس کی ضرورت اس وقت ہوتی ہے جب آپ جو ٹوکن منتقل کرنا چاہتے ہیں وہ ether نہ ہو)
  2. send_token_amount: وہ رقم جو آپ وصول کنندہ کو بھیجنا چاہتے ہیں
  3. to_address: وصول کنندہ کا پتہ
  4. send_account: بھیجنے والے کا پتہ
  5. private_key: ٹرانزیکشن پر دستخط کرنے اور دراصل ٹوکن منتقل کرنے کے لیے بھیجنے والے کی نجی کلید

نوٹس

signTransaction(tx) کو ہٹا دیا گیا ہے کیونکہ sendTransaction() اسے اندرونی طور پر کرتا ہے۔

بھیجنے کے طریقہ کار

1۔ نیٹ ورک سے جڑیں (ٹیسٹ نیٹ)

پرووائڈر سیٹ کریں (Infura)

Ropsten ٹیسٹ نیٹ سے جڑیں

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

2۔ والیٹ بنائیں

1let wallet = new ethers.Wallet(private_key)

3۔ والیٹ کو نیٹ سے جوڑیں

1let walletSigner = wallet.connect(window.ethersProvider)

4. موجودہ گیس کی قیمت حاصل کریں

1window.ethersProvider.getGasPrice() // gasPrice

5. ٹرانزیکشن کی وضاحت کریں

نیچے بیان کردہ یہ متغیرات send_token() پر منحصر ہیں

ٹرانزیکشن پیرامیٹرز

  1. send_account: ٹوکن بھیجنے والے کا پتہ
  2. to_address: ٹوکن وصول کرنے والے کا پتہ
  3. send_token_amount: بھیجے جانے والے ٹوکنز کی مقدار
  4. gas_limit: گیس کی حد
  5. gas_price: گیس کی قیمت

استعمال کرنے کا طریقہ جاننے کے لیے نیچے دیکھیں

1const tx = {
2 from: send_account,
3 to: to_address,
4 value: ethers.utils.parseEther(send_token_amount),
5 nonce: window.ethersProvider.getTransactionCount(send_account, "latest"),
6 gasLimit: ethers.utils.hexlify(gas_limit), // 100000
7 gasPrice: gas_price,
8}

6. منتقل کریں

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

اسے کیسے استعمال کریں

1let private_key =
2 "41559d28e936dc92104ff30691519693fc753ffbee6251a611b9aa1878f12a4d"
3let send_token_amount = "1"
4let to_address = "0x4c10D2734Fb76D3236E522509181CC3Ba8DE0e80"
5let send_address = "0xda27a282B5B6c5229699891CfA6b900A716539E6"
6let gas_limit = "0x100000"
7let wallet = new ethers.Wallet(private_key)
8let walletSigner = wallet.connect(window.ethersProvider)
9let contract_address = ""
10window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")
11
12send_token(
13 contract_address,
14 send_token_amount,
15 to_address,
16 send_address,
17 private_key
18)
سب دکھائیں

کامیاب!

کامیابی سے مکمل ہوئی ٹرانزیکشن کی تصویر

send_token()

1function send_token(
2 contract_address,
3 send_token_amount,
4 to_address,
5 send_account,
6 private_key
7) {
8 let wallet = new ethers.Wallet(private_key)
9 let walletSigner = wallet.connect(window.ethersProvider)
10
11 window.ethersProvider.getGasPrice().then((currentGasPrice) => {
12 let gas_price = ethers.utils.hexlify(parseInt(currentGasPrice))
13 console.log(`gas_price: ${gas_price}`)
14
15 if (contract_address) {
16 // general token send
17 let contract = new ethers.Contract(
18 contract_address,
19 send_abi,
20 walletSigner
21 )
22
23 // How many tokens?
24 let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)
25 console.log(`numberOfTokens: ${numberOfTokens}`)
26
27 // Send tokens
28 contract.transfer(to_address, numberOfTokens).then((transferResult) => {
29 console.dir(transferResult)
30 alert("sent token")
31 })
32 } // ether send
33 else {
34 const tx = {
35 from: send_account,
36 to: to_address,
37 value: ethers.utils.parseEther(send_token_amount),
38 nonce: window.ethersProvider.getTransactionCount(
39 send_account,
40 "latest"
41 ),
42 gasLimit: ethers.utils.hexlify(gas_limit), // 100000
43 gasPrice: gas_price,
44 }
45 console.dir(tx)
46 try {
47 walletSigner.sendTransaction(tx).then((transaction) => {
48 console.dir(transaction)
49 alert("Send finished!")
50 })
51 } catch (error) {
52 alert("failed to send!!")
53 }
54 }
55 })
56}
سب دکھائیں

صفحہ کی آخری تازہ کاری: 4 دسمبر، 2023

کیا یہ ٹیوٹوریل کارآمد تھا؟