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<script2 src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"3 type="application/javascript"4></script>پیرامیٹرز
contract_address: ٹوکن کانٹریکٹ ایڈریس (جب آپ جو ٹوکن ٹرانسفر کرنا چاہتے ہیں وہ ایتھر نہ ہو تو کانٹریکٹ ایڈریس کی ضرورت ہوتی ہے)send_token_amount: وہ رقم جو آپ وصول کنندہ کو بھیجنا چاہتے ہیںto_address: وصول کنندہ کا ایڈریسsend_account: بھیجنے والے کا ایڈریس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() پر منحصر ہیں
ٹرانزیکشن کے پیرامیٹرز
send_account: ٹوکن بھیجنے والے کا ایڈریسto_address: ٹوکن وصول کنندہ کا ایڈریسsend_token_amount: بھیجے جانے والے ٹوکنز کی مقدارgas_limit: گیس کی حد (gas limit)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), // 1000007 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_key18)کامیابی!
send_token()
1function send_token(2 contract_address,3 send_token_amount,4 to_address,5 send_account,6 private_key7) {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 walletSigner21 )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), // 10000043 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}صفحہ کی آخری اپ ڈیٹ: ۳ مارچ، ۲۰۲۶
