ethers.js वापरून टोकन पाठवणे
ETHERS.JS
ERC-20
टोकन्स
नवशिक्या
किम योंग-जुन
6 एप्रिल, 2021
3 मिनिटांचे वाचन
ethers.js(5.0) वापरून टोकन पाठवा
या ट्युटोरियलमध्ये तुम्ही काय शिकाल
- ethers.js इम्पोर्ट करणे
- टोकन हस्तांतरण करणे
- नेटवर्क ट्रॅफिकच्या परिस्थितीनुसार गॅसची किंमत सेट करणे
सुरुवात करण्यासाठी
सुरुवात करण्यासाठी, आपण प्रथम आपल्या JavaScript मध्ये ethers.js लायब्ररी इम्पोर्ट केली पाहिजे ethers.js(5.0) समाविष्ट करा
इन्स्टॉल करणे
/home/ricmoo> npm install --save ethers
ब्राउझरमध्ये ES6
<script type="module">
import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"
// तुमचा कोड येथे...
</script>
ब्राउझरमध्ये ES3(UMD)
<script
src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"
type="application/javascript"
></script>
पॅरामीटर्स
contract_address: टोकन कॉन्ट्रॅक्ट पत्ता (जेव्हा तुम्हाला हस्तांतरण करायचे असलेले टोकन इथर नसते तेव्हा कॉन्ट्रॅक्ट पत्ता आवश्यक असतो)send_token_amount: तुम्हाला प्राप्तकर्त्याला पाठवायची असलेली रक्कमto_address: प्राप्तकर्त्याचा पत्ताsend_account: प्रेषकाचा पत्ताprivate_key: व्यवहारावर स्वाक्षरी करण्यासाठी आणि प्रत्यक्षात टोकन हस्तांतरण करण्यासाठी प्रेषकाची खाजगी की
सूचना
signTransaction(tx) काढून टाकले आहे कारण sendTransaction() ते अंतर्गतपणे करते.
पाठवण्याच्या प्रक्रिया
1. नेटवर्कशी कनेक्ट करा (टेस्टनेट)
प्रोव्हायडर सेट करा (Infura)
रॉप्स्टन् टेस्टनेटशी कनेक्ट करा
window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")
2. वॉलेट तयार करा
let wallet = new ethers.Wallet(private_key)
3. वॉलेट नेटवर्कशी कनेक्ट करा
let walletSigner = wallet.connect(window.ethersProvider)
4. सध्याची गॅसची किंमत मिळवा
window.ethersProvider.getGasPrice() // गॅसची किंमत
5. व्यवहार परिभाषित करा
खाली परिभाषित केलेले हे व्हेरिएबल्स send_token() वर अवलंबून आहेत
व्यवहार पॅरामीटर्स
send_account: टोकन प्रेषकाचा पत्ताto_address: टोकन प्राप्तकर्त्याचा पत्ताsend_token_amount: पाठवायच्या टोकन्सची रक्कमgas_limit: गॅस मर्यादाgas_price: गॅसची किंमत
const tx = {
from: send_account,
to: to_address,
value: ethers.utils.parseEther(send_token_amount),
nonce: window.ethersProvider.getTransactionCount(send_account, "latest"),
gasLimit: ethers.utils.hexlify(gas_limit), // 100000
gasPrice: gas_price,
}
6. हस्तांतरण
walletSigner.sendTransaction(tx).then((transaction) => {
console.dir(transaction)
alert("Send finished!")
})
ते कसे वापरावे
let private_key =
"41559d28e936dc92104ff30691519693fc753ffbee6251a611b9aa1878f12a4d"
let send_token_amount = "1"
let to_address = "0x4c10D2734Fb76D3236E522509181CC3Ba8DE0e80"
let send_address = "0xda27a282B5B6c5229699891CfA6b900A716539E6"
let gas_limit = "0x100000"
let wallet = new ethers.Wallet(private_key)
let walletSigner = wallet.connect(window.ethersProvider)
let contract_address = ""
window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")
send_token(
contract_address,
send_token_amount,
to_address,
send_address,
private_key
)
यश!
send_token()
function send_token(
contract_address,
send_token_amount,
to_address,
send_account,
private_key
) {
let wallet = new ethers.Wallet(private_key)
let walletSigner = wallet.connect(window.ethersProvider)
window.ethersProvider.getGasPrice().then((currentGasPrice) => {
let gas_price = ethers.utils.hexlify(parseInt(currentGasPrice))
console.log(`gas_price: ${gas_price}`)
if (contract_address) {
// सामान्य टोकन पाठवणे
let contract = new ethers.Contract(
contract_address,
send_abi,
walletSigner
)
// किती टोकन?
let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)
console.log(`numberOfTokens: ${numberOfTokens}`)
// टोकन पाठवा
contract.transfer(to_address, numberOfTokens).then((transferResult) => {
console.dir(transferResult)
alert("sent token")
})
} // इथर पाठवणे
else {
const tx = {
from: send_account,
to: to_address,
value: ethers.utils.parseEther(send_token_amount),
nonce: window.ethersProvider.getTransactionCount(
send_account,
"latest"
),
gasLimit: ethers.utils.hexlify(gas_limit), // 100000
gasPrice: gas_price,
}
console.dir(tx)
try {
walletSigner.sendTransaction(tx).then((transaction) => {
console.dir(transaction)
alert("Send finished!")
})
} catch (error) {
alert("failed to send!!")
}
}
})
}
