प्रमुख मजकुराकडे जा

ethers.js वापरून टोकन पाठवणे

ETHERS.JS
ERC-20
टोकन्स
नवशिक्या
Kim YongJun
६ एप्रिल, २०२१
2 मिनिट वाचन

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: व्यवहारावर स्वाक्षरी करण्यासाठी आणि प्रत्यक्षात टोकन हस्तांतरित करण्यासाठी प्रेषकाची खाजगी की

सूचना

signTransaction(tx) काढून टाकले आहे कारण sendTransaction() ते आंतरिकरित्या करते.

पाठवण्याची प्रक्रिया

१. नेटवर्कशी कनेक्ट करा (टेस्टनेट)

प्रदाता सेट करा (Infura)

Ropsten टेस्टनेटशी कनेक्ट करा

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

२. वॉलेट तयार करा

1let wallet = new ethers.Wallet(private_key)

३. वॉलेट नेटशी कनेक्ट करा

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

४. सध्याची गॅस किंमत मिळवा

1window.ethersProvider.getGasPrice() // gasPrice

५. व्यवहार परिभाषित करा

खाली परिभाषित केलेले हे व्हेरिएबल्स 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("पाठवणे पूर्ण झाले!")
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("टोकन पाठवले")
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("पाठवणे पूर्ण झाले!")
50 })
51 } catch (error) {
52 alert("पाठवण्यात अयशस्वी!!")
53 }
54 }
55 })
56}
सर्व दाखवा

पृष्ठ अखेरचे अद्यतन: ४ डिसेंबर, २०२३

हे मार्गदर्शन उपयुक्त होते का?