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<script2 src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"3 type="application/javascript"4></script>پیرامیٹرز
contract_address: ٹوکن کنٹریکٹ کا پتہ (کنٹریکٹ ایڈریس کی ضرورت اس وقت ہوتی ہے جب آپ جو ٹوکن منتقل کرنا چاہتے ہیں وہ ether نہ ہو)send_token_amount: وہ رقم جو آپ وصول کنندہ کو بھیجنا چاہتے ہیںto_address: وصول کنندہ کا پتہsend_account: بھیجنے والے کا پتہ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() // gasPrice5. ٹرانزیکشن کی وضاحت کریں
نیچے بیان کردہ یہ متغیرات send_token() پر منحصر ہیں
ٹرانزیکشن پیرامیٹرز
send_account: ٹوکن بھیجنے والے کا پتہto_address: ٹوکن وصول کرنے والے کا پتہsend_token_amount: بھیجے جانے والے ٹوکنز کی مقدارgas_limit: گیس کی حد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")1112send_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)1011 window.ethersProvider.getGasPrice().then((currentGasPrice) => {12 let gas_price = ethers.utils.hexlify(parseInt(currentGasPrice))13 console.log(`gas_price: ${gas_price}`)1415 if (contract_address) {16 // general token send17 let contract = new ethers.Contract(18 contract_address,19 send_abi,20 walletSigner21 )2223 // How many tokens?24 let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)25 console.log(`numberOfTokens: ${numberOfTokens}`)2627 // Send tokens28 contract.transfer(to_address, numberOfTokens).then((transferResult) => {29 console.dir(transferResult)30 alert("sent token")31 })32 } // ether send33 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}سب دکھائیںصفحہ کی آخری تازہ کاری: 4 دسمبر، 2023
