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!!")
}
}
})
}
