مرکزی مواد پر جائیں

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

ETHERS.JS
ERC-20
ٹوکنز
ابتدائی
کم یونگ جون
۶ اپریل، ۲۰۲۱
3 منٹ کی پڑھائی

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

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

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

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

شروع کرنے کے لیے، ہمیں سب سے پہلے 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 // آپ کا کوڈ یہاں...
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: ٹوکن کانٹریکٹ ایڈریس (جب آپ جو ٹوکن ٹرانسفر کرنا چاہتے ہیں وہ ایتھر نہ ہو تو کانٹریکٹ ایڈریس کی ضرورت ہوتی ہے)
  2. send_token_amount: وہ رقم جو آپ وصول کنندہ کو بھیجنا چاہتے ہیں
  3. to_address: وصول کنندہ کا ایڈریس
  4. send_account: بھیجنے والے کا ایڈریس
  5. private_key: ٹرانزیکشن پر دستخط کرنے اور اصل میں ٹوکنز ٹرانسفر کرنے کے لیے بھیجنے والے کی پرائیویٹ کی (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() // گیس کی قیمت

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

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

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

  1. send_account: ٹوکن بھیجنے والے کا ایڈریس
  2. to_address: ٹوکن وصول کنندہ کا ایڈریس
  3. send_token_amount: بھیجے جانے والے ٹوکنز کی مقدار
  4. gas_limit: گیس کی حد (gas limit)
  5. gas_price: گیس کی قیمت (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 // عام ٹوکن بھیجیں
17 let contract = new ethers.Contract(
18 contract_address,
19 send_abi,
20 walletSigner
21 )
22
23 // کتنے ٹوکن؟
24 let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)
25 console.log(`numberOfTokens: ${numberOfTokens}`)
26
27 // ٹوکن بھیجیں
28 contract.transfer(to_address, numberOfTokens).then((transferResult) => {
29 console.dir(transferResult)
30 alert("sent token")
31 })
32 } // ایتھر بھیجیں
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}

صفحہ کی آخری اپ ڈیٹ: ۳ مارچ، ۲۰۲۶

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