Viem ஐப் பயன்படுத்திப் பரிவர்த்தனைகளை அனுப்புதல்
இது viem (புதிய தாவலில் திறக்கும்) நிரலகத்தைப் பயன்படுத்தி எத்திரியம் பரிவர்த்தனைகளை அனுப்புவதற்கான தொடக்கநிலையாளர்களுக்கான வழிகாட்டியாகும். எத்திரியம் தொகுதிச்சங்கிலிக்கு ஒரு பரிவர்த்தனையை அனுப்ப மூன்று முக்கிய படிகள் உள்ளன: உருவாக்குதல், கையொப்பமிடுதல் மற்றும் ஒளிபரப்புதல். நாம் இந்த மூன்றையும் பார்ப்போம், உங்களுக்கு ஏதேனும் கேள்விகள் இருந்தால் அவற்றுக்குப் பதிலளிப்போம் என்று நம்புகிறோம்! இந்த வழிகாட்டியில், எத்திரியம் சங்கிலிக்கு நமது பரிவர்த்தனைகளை அனுப்ப Alchemy (புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்துவோம். நீங்கள் இங்கே ஒரு இலவச Alchemy கணக்கை உருவாக்கலாம் (புதிய தாவலில் திறக்கும்).
குறிப்பு: இந்த வழிகாட்டி உங்கள் பயன்பாட்டிற்கான பின்னணியில் (backend) உங்கள் பரிவர்த்தனைகளில் கையொப்பமிடுவதற்கானது. உங்கள் பரிவர்த்தனைகளில் கையொப்பமிடுவதை முன்னணியில் (frontend) ஒருங்கிணைக்க விரும்பினால், மெட்டாமேஸ்க் வழங்குநர் API (MetaMask provider API) (புதிய தாவலில் திறக்கும்) ஐப் பார்க்கவும்.
அடிப்படைகள்
பெரும்பாலான தொகுதிச்சங்கிலி உருவாக்குநர்கள் முதன்முதலில் தொடங்கும் போது, ஒரு பரிவர்த்தனையை எவ்வாறு அனுப்புவது (இது மிகவும் எளிமையானதாக இருக்க வேண்டும்) என்பது குறித்து நீங்கள் சில ஆராய்ச்சிகளைச் செய்திருக்கலாம், மேலும் பல வழிகாட்டிகளைக் கண்டிருக்கலாம், ஒவ்வொன்றும் வெவ்வேறு விஷயங்களைக் கூறி உங்களைச் சற்று குழப்பத்தில் ஆழ்த்தியிருக்கலாம். நீங்கள் அந்த நிலையில் இருந்தால், கவலைப்பட வேண்டாம்; நாமும் ஒரு கட்டத்தில் அப்படி இருந்தவர்கள்தான்! எனவே, தொடங்குவதற்கு முன், சில விஷயங்களைத் தெளிவுபடுத்துவோம்:
1. Alchemy உங்கள் தனிப்பட்ட திறவுகோல்களைச் சேமிப்பதில்லை
- இதன் பொருள் Alchemy உங்கள் சார்பாகப் பரிவர்த்தனைகளில் கையொப்பமிட்டு அனுப்ப முடியாது. இதற்குக் காரணம் பாதுகாப்பு நோக்கங்களாகும். Alchemy ஒருபோதும் உங்கள் தனிப்பட்ட திறவுகோலைப் பகிரும்படி கேட்காது, மேலும் நீங்கள் ஒருபோதும் உங்கள் தனிப்பட்ட திறவுகோலை ஹோஸ்ட் செய்யப்பட்ட கணுவுடன் (அல்லது வேறு யாருடனும்) பகிரக்கூடாது.
- Alchemy இன் முக்கிய API ஐப் பயன்படுத்தி நீங்கள் தொகுதிச்சங்கிலியிலிருந்து படிக்கலாம், ஆனால் அதில் எழுதுவதற்கு, Alchemy மூலம் அவற்றை அனுப்புவதற்கு முன் உங்கள் பரிவர்த்தனைகளில் கையொப்பமிட வேறு எதையாவது பயன்படுத்த வேண்டும் (வேறு எந்த கணு சேவைக்கும் இதுவே பொருந்தும்).
2. "கையொப்பமிடுபவர் (signer)" என்றால் என்ன?
- கையொப்பமிடுபவர்கள் உங்கள் தனிப்பட்ட திறவுகோலைப் பயன்படுத்தி உங்களுக்காகப் பரிவர்த்தனைகளில் கையொப்பமிடுவார்கள். இந்த வழிகாட்டியில் நமது பரிவர்த்தனையில் கையொப்பமிட viem (புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்துவோம், ஆனால் நீங்கள் வேறு எந்த Web3 நிரலகத்தையும் பயன்படுத்தலாம்.
- முன்னணியில், கையொப்பமிடுபவருக்கு ஒரு சிறந்த எடுத்துக்காட்டு மெட்டாமேஸ்க் (புதிய தாவலில் திறக்கும்) ஆகும், இது உங்கள் சார்பாகப் பரிவர்த்தனைகளில் கையொப்பமிட்டு அனுப்பும்.
3. எனது பரிவர்த்தனைகளில் நான் ஏன் கையொப்பமிட வேண்டும்?
- எத்திரியம் பிணையத்தில் ஒரு பரிவர்த்தனையை அனுப்ப விரும்பும் ஒவ்வொரு பயனரும், பரிவர்த்தனையின் தோற்றம் அது கூறுவது போலத்தான் என்பதைச் சரிபார்க்க, பரிவர்த்தனையில் (தங்கள் தனிப்பட்ட திறவுகோலைப் பயன்படுத்தி) கையொப்பமிட வேண்டும்.
- இந்தத் தனிப்பட்ட திறவுகோலைப் பாதுகாப்பது மிகவும் முக்கியமானது, ஏனெனில் அதற்கான அணுகலைக் கொண்டிருப்பது உங்கள் எத்திரியம் கணக்கின் மீது முழு கட்டுப்பாட்டையும் வழங்குகிறது, இது உங்கள் சார்பாகப் பரிவர்த்தனைகளைச் செய்ய உங்களை (அல்லது அணுகல் உள்ள எவரையும்) அனுமதிக்கிறது.
4. எனது தனிப்பட்ட திறவுகோலை நான் எவ்வாறு பாதுகாப்பது?
- உங்கள் தனிப்பட்ட திறவுகோலைப் பாதுகாக்கவும், பரிவர்த்தனைகளை அனுப்ப அதைப் பயன்படுத்தவும் பல வழிகள் உள்ளன. இந்த வழிகாட்டியில் நாம் ஒரு
.envகோப்பைப் பயன்படுத்துவோம். இருப்பினும், தனிப்பட்ட திறவுகோல்களைச் சேமிக்கும் தனி வழங்குநரைப் பயன்படுத்தலாம், விசைச் சேமிப்பகம் (keystore) கோப்பைப் பயன்படுத்தலாம் அல்லது பிற விருப்பங்களையும் பயன்படுத்தலாம்.
5. eth_sendTransaction மற்றும் eth_sendRawTransaction ஆகியவற்றுக்கு இடையேயான வேறுபாடு என்ன?
eth_sendTransaction மற்றும் eth_sendRawTransaction ஆகிய இரண்டும் எத்திரியம் பயன்பாட்டு நிரலாக்க இடைமுகம் (API) செயல்பாடுகளாகும், அவை எத்திரியம் பிணையத்திற்கு ஒரு பரிவர்த்தனையை ஒளிபரப்புகின்றன, இதனால் அது எதிர்காலத் தொகுதியில் சேர்க்கப்படும். பரிவர்த்தனைகளில் கையொப்பமிடுவதை அவை எவ்வாறு கையாளுகின்றன என்பதில் அவை வேறுபடுகின்றன.
eth_sendTransactionஎன்பது கையொப்பமிடப்படாத பரிவர்த்தனைகளை அனுப்பப் பயன்படுகிறது, அதாவது நீங்கள் அனுப்பும் கணு உங்கள் தனிப்பட்ட திறவுகோலை நிர்வகிக்க வேண்டும், இதனால் சங்கிலிக்கு ஒளிபரப்புவதற்கு முன்பு பரிவர்த்தனையில் கையொப்பமிட முடியும். Alchemy பயனரின் தனிப்பட்ட திறவுகோல்களை வைத்திருக்காததால், அவர்கள் இந்த முறையை ஆதரிப்பதில்லை.eth_sendRawTransaction(புதிய தாவலில் திறக்கும்) என்பது ஏற்கனவே கையொப்பமிடப்பட்ட பரிவர்த்தனைகளை ஒளிபரப்பப் பயன்படுகிறது. அதாவது, முதலில் உங்கள் தனிப்பட்ட திறவுகோலைக் கொண்டு பரிவர்த்தனையில் கையொப்பமிட வேண்டும் (viem இல், உள்ளூர் கணக்குடன் (local account) (புதிய தாவலில் திறக்கும்)signTransaction(புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்தி), பின்னர் முடிவைeth_sendRawTransactionக்கு அனுப்ப வேண்டும்.
viem ஐப் பயன்படுத்தும் போது, sendRawTransaction (புதிய தாவலில் திறக்கும்) செயல்பாட்டை அழைப்பதன் மூலம் eth_sendRawTransaction அணுகப்படுகிறது.
இந்த வழிகாட்டியில் நாம் இதையே பயன்படுத்துவோம்.
6. Web3 நிரலகம் என்றால் என்ன?
- Web3 நிரலகம் என்பது நிலையான ஜேசன்-ஆர்பிசி (JSON-RPC) அழைப்புகளைச் சுற்றியுள்ள ஒரு ரேப்பராகும் (wrapper), இது எத்திரியம் மேம்பாட்டில் பயன்படுத்த மிகவும் பொதுவானது.
- வெவ்வேறு மொழிகளுக்குப் பல Web3 நிரலகங்கள் உள்ளன. இந்த வழிகாட்டியில் நாம் viem (புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்துவோம், இது TypeScript இல் எழுதப்பட்டுள்ளது மற்றும் எந்தவொரு JavaScript திட்டத்திலும் வேலை செய்கிறது. Ethers.js (புதிய தாவலில் திறக்கும்) போன்ற பிற விருப்பங்களை இங்கே நீங்கள் பார்க்கலாம்.
சரி, இப்போது இந்தக் கேள்விகளில் சிலவற்றைத் தீர்த்துவிட்டோம், வழிகாட்டிக்குச் செல்வோம். Alchemy டிஸ்கார்ட்டில் (புதிய தாவலில் திறக்கும்) எப்போது வேண்டுமானாலும் கேள்விகளைக் கேட்கத் தயங்க வேண்டாம்!
7. பாதுகாப்பான, எரிவாயு உகந்ததாக்கப்பட்ட மற்றும் தனிப்பட்ட பரிவர்த்தனைகளை எவ்வாறு அனுப்புவது?
- Alchemy பரிவர்த்தனை வளங்களின் தொகுப்பைக் கொண்டுள்ளது (புதிய தாவலில் திறக்கும்). பரிவர்த்தனைகளை அனுப்பவும், பரிவர்த்தனைகள் நடப்பதற்கு முன்பே அவற்றை உருவகப்படுத்தவும், தனிப்பட்ட பரிவர்த்தனைகளை அனுப்பவும், மற்றும் எரிவாயு உகந்ததாக்கப்பட்ட பரிவர்த்தனைகளை அனுப்பவும் இவற்றைப் பயன்படுத்தலாம்.
- உங்கள் பரிவர்த்தனை மெம்பூலில் இருந்து எடுக்கப்பட்டு சங்கிலியில் சேர்க்கப்படும்போது எச்சரிக்கப்பட Alchemy வெப்ஹூக்குகளையும் (webhooks) (புதிய தாவலில் திறக்கும்) நீங்கள் பயன்படுத்தலாம்.
குறிப்பு: இந்த வழிகாட்டிக்கு ஒரு Alchemy கணக்கு, ஒரு எத்திரியம் முகவரி அல்லது மெட்டாமேஸ்க் பணப்பை, Node.js மற்றும் npm நிறுவப்பட்டிருக்க வேண்டும். இல்லையெனில், இந்தப் படிகளைப் பின்பற்றவும்:
- இலவச Alchemy கணக்கை உருவாக்கவும் (புதிய தாவலில் திறக்கும்)
- மெட்டாமேஸ்க் கணக்கை உருவாக்கவும் (புதிய தாவலில் திறக்கும்) (அல்லது எத்திரியம் முகவரியைப் பெறவும்)
- Node.js மற்றும் npm ஐ நிறுவவும் (புதிய தாவலில் திறக்கும்)
உங்கள் பரிவர்த்தனையை அனுப்புவதற்கான படிகள்
1. Sepolia சோதனை வலையமைப்பில் ஒரு Alchemy பயன்பாட்டை உருவாக்கவும்
உங்கள் Alchemy டாஷ்போர்டுக்குச் (புதிய தாவலில் திறக்கும்) சென்று, உங்கள் பிணையத்திற்கு Sepolia (அல்லது வேறு ஏதேனும் சோதனை வலையமைப்பை) தேர்ந்தெடுத்து, புதிய பயன்பாட்டை உருவாக்கவும்.
2. Sepolia பாசெட்டிலிருந்து ETH ஐக் கோரவும்
ETH ஐப் பெற Alchemy Sepolia பாசெட்டில் (புதிய தாவலில் திறக்கும்) உள்ள வழிமுறைகளைப் பின்பற்றவும் அல்லது பிற Sepolia பாசெட்டுகளில் ஒன்றைப் பயன்படுத்தவும். பாசெட்டுகள் சிறிய அளவுகளை வழங்குகின்றன (Alchemy பாசெட் ஒரு நாளைக்கு 0.1 ETH ஐ வழங்குகிறது), இது இந்த வழிகாட்டிக்குப் போதுமானது. உங்கள் Sepolia எத்திரியம் முகவரியை (மெட்டாமேஸ்க்கிலிருந்து) சேர்ப்பதை உறுதிசெய்து கொள்ளுங்கள், வேறு பிணையத்தை அல்ல. வழிமுறைகளைப் பின்பற்றிய பிறகு, உங்கள் பணப்பையில் ETH ஐப் பெற்றுள்ளீர்களா என்பதை இருமுறை சரிபார்க்கவும்.
3. புதிய திட்டக் கோப்பகத்தை உருவாக்கி, அதற்குள் cd செய்யவும்
கட்டளை வரியிலிருந்து (மேக் கணினிகளுக்கு டெர்மினல்) புதிய திட்டக் கோப்பகத்தை உருவாக்கி, அதற்குள் செல்லவும்:
mkdir sendtx-example
cd sendtx-example
4. viem ஐ (அல்லது ஏதேனும் Web3 நிரலகத்தை) நிறுவவும்
viem (புதிய தாவலில் திறக்கும்) ஐ நிறுவ உங்கள் திட்டக் கோப்பகத்தில் பின்வரும் கட்டளையை இயக்கவும்:
குறிப்பு, நீங்கள் Ethers.js நிரலகத்தைப் பயன்படுத்த விரும்பினால், இங்கே உள்ள வழிமுறைகளைப் பின்பற்றவும் (புதிய தாவலில் திறக்கும்).
npm init -y
npm install viem
5. dotenv ஐ நிறுவவும்
நமது API திறவுகோல் மற்றும் தனிப்பட்ட திறவுகோலைப் பாதுகாப்பாகச் சேமிக்க .env கோப்பைப் பயன்படுத்துவோம்.
npm install dotenv
6. .env கோப்பை உருவாக்கவும்
உங்கள் திட்டக் கோப்பகத்தில் ஒரு .env கோப்பை உருவாக்கி, பின்வருவனவற்றைச் சேர்க்கவும் ("your-api-url" மற்றும் "your-private-key" ஆகியவற்றை மாற்றவும்)
- உங்கள் Alchemy பயன்பாட்டு நிரலாக்க இடைமுகம் (API) URL ஐக் கண்டறிய, உங்கள் டாஷ்போர்டில் நீங்கள் இப்போது உருவாக்கிய பயன்பாட்டின் விவரங்கள் பக்கத்திற்குச் சென்று, மேல் வலது மூலையில் உள்ள "View Key" என்பதைக் கிளிக் செய்து, HTTP URL ஐப் பெறவும்.
- மெட்டாமேஸ்க்கைப் பயன்படுத்தி உங்கள் தனிப்பட்ட திறவுகோலைக் கண்டறிய, இந்த வழிகாட்டியைப் (புதிய தாவலில் திறக்கும்) பார்க்கவும். சோதனை வலையமைப்பு ETH ஐ மட்டுமே வைத்திருக்கும் கணக்கைப் பயன்படுத்தவும்.
API_URL="your-api-url"
PRIVATE_KEY="your-private-key"
.env ஐ கமிட் (commit) செய்ய வேண்டாம்! உங்கள் .env கோப்பை யாருடனும் பகிரவோ அல்லது வெளிப்படுத்தவோ வேண்டாம் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், ஏனெனில் அவ்வாறு செய்வதன் மூலம் உங்கள் ரகசியங்களை நீங்கள் சமரசம் செய்கிறீர்கள். நீங்கள் பதிப்புக் கட்டுப்பாட்டைப் (version control) பயன்படுத்தினால், உங்கள் .env ஐ ஒரு gitignore கோப்பில் சேர்க்கவும்.7. sendTx.js கோப்பை உருவாக்கவும்
சிறப்பு, இப்போது நமது முக்கியமான தரவு .env கோப்பில் பாதுகாக்கப்பட்டுள்ளதால், குறியீட்டை எழுதத் தொடங்குவோம். நமது பரிவர்த்தனை அனுப்பும் எடுத்துக்காட்டிற்கு, மெட்டாமேஸ்க்கில் உள்ள இரண்டாவது கணக்கு போன்ற நீங்கள் கட்டுப்படுத்தும் மற்றொரு முகவரிக்கு 0.001 ETH ஐ அனுப்புவோம்.
sendTx.js கோப்பை உருவாக்கவும், இங்குதான் நமது எடுத்துக்காட்டுப் பரிவர்த்தனையை உள்ளமைத்து அனுப்புவோம், மேலும் அதில் பின்வரும் குறியீட்டு வரிகளைச் சேர்க்கவும்:
require("dotenv").config({ quiet: true })
const { createPublicClient, createWalletClient, http, parseEther } = require("viem")
const { privateKeyToAccount } = require("viem/accounts")
const { sepolia } = require("viem/chains")
async function main() {
const { API_URL, PRIVATE_KEY } = process.env
const account = privateKeyToAccount(
PRIVATE_KEY.startsWith("0x") ? PRIVATE_KEY : `0x${PRIVATE_KEY}`
)
const publicClient = createPublicClient({
chain: sepolia,
transport: http(API_URL),
})
const walletClient = createWalletClient({
account,
chain: sepolia,
transport: http(API_URL),
})
const nonce = await publicClient.getTransactionCount({
address: account.address,
blockTag: "pending",
}) // நான்ஸ் 0 இலிருந்து எண்ணத் தொடங்குகிறது
const transaction = await walletClient.prepareTransactionRequest({
to: "0xYourSecondAddress", // TODO: நீங்கள் ETH அனுப்ப விரும்பும் முகவரியைக் கொண்டு மாற்றவும்
value: parseEther("0.001"), // 0.001 ETH
gas: 21000n,
nonce,
// செய்தியை அனுப்ப அல்லது திறன் ஒப்பந்தத்தை செயல்படுத்த விருப்பத்திற்குரிய தரவுப் புலம்
})
const signedTx = await walletClient.signTransaction(transaction)
try {
const hash = await walletClient.sendRawTransaction({
serializedTransaction: signedTx,
})
console.log("🎉 The hash of your transaction is:", hash)
const receipt = await publicClient.waitForTransactionReceipt({ hash })
console.log(`Transaction ${receipt.status} in block ${receipt.blockNumber}`)
} catch (error) {
console.log(
"❗Something went wrong while submitting your transaction:",
error.details ?? error.message
)
}
}
main()
நீங்கள் ETH ஐ அனுப்ப விரும்பும் முகவரியுடன் 0xYourSecondAddress ஐ மாற்றுவதை உறுதிப்படுத்திக் கொள்ளுங்கள். ஸ்கிரிப்ட் உங்கள் சொந்த (அனுப்பும்) முகவரியை PRIVATE_KEY இலிருந்து பெறுகிறது, எனவே நீங்கள் அதை உள்ளிடத் தேவையில்லை.
இப்போது, இந்தக் குறியீட்டை இயக்குவதற்கு முன், இங்குள்ள சில கூறுகளைப் பற்றிப் பேசுவோம்.
account:privateKeyToAccount(புதிய தாவலில் திறக்கும்) மூலம் உங்கள் தனிப்பட்ட திறவுகோலிலிருந்து உருவாக்கப்பட்ட உள்ளூர் கணக்கு. கையொப்பமிடுதல் உங்கள் கணினியில் நிகழ்கிறது, மேலும் தனிப்பட்ட திறவுகோல் ஒருபோதும் Alchemy க்கு அனுப்பப்படாது.publicClientமற்றும்walletClient: உங்கள் Alchemy URL க்கு ஜேசன்-ஆர்பிசி (JSON-RPC) கோரிக்கைகளை அனுப்பும் viem கிளையண்டுகள். பொது கிளையண்ட் சங்கிலியிலிருந்து படிக்கிறது, மேலும் பணப்பை கிளையண்ட் உங்கள் கணக்கிற்கான பரிவர்த்தனைகளைத் தயாரித்துக் கையொப்பமிடுகிறது.nonce: உங்கள் முகவரியிலிருந்து அனுப்பப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கையைக் கண்காணிக்க நான்ஸ் விவரக்குறிப்பு பயன்படுத்தப்படுகிறது. பாதுகாப்பு நோக்கங்களுக்காகவும், ரீப்ளே தாக்குதல்களைத் (replay attacks) தடுக்கவும் இது நமக்குத் தேவை. உங்கள் முகவரியிலிருந்து அனுப்பப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கையைப் பெற, getTransactionCount (புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்துகிறோம். viem உங்களுக்காக இதையும் நிரப்பும், ஆனால் அது எங்கிருந்து வருகிறது என்பதைக் காட்ட அதை வெளிப்படையாக இங்கே பெறுகிறோம்.transaction: பரிவர்த்தனைப் பொருளில் நாம் குறிப்பிட வேண்டிய சில அம்சங்கள் உள்ளன. தற்போதைய பிணைய நிலைமைகளின் அடிப்படையில்chainIdமற்றும் EIP-1559 கட்டணப் புலங்களானmaxFeePerGasமற்றும்maxPriorityFeePerGasஉட்பட மீதமுள்ளவற்றைprepareTransactionRequest(புதிய தாவலில் திறக்கும்) நமக்காக நிரப்புகிறது.to: இது நாம் ETH ஐ அனுப்ப விரும்பும் முகவரியாகும்.value: இது நாம் அனுப்ப விரும்பும் தொகையாகும், இது Wei இல் குறிப்பிடப்பட்டுள்ளது, இங்கு 10^18 Wei = 1 ETH.parseEther(புதிய தாவலில் திறக்கும்) நமக்காக ஒரு ETH தொகையை Wei ஆக மாற்றுகிறது. உங்கள் கணக்கிற்கு இதைவிடச் சற்று அதிகமாகத் தேவை, ஏனெனில் இது எரிவாயுவிற்கும் செலுத்துகிறது.gas: உங்கள் பரிவர்த்தனையுடன் சேர்க்க வேண்டிய சரியான எரிவாயு அளவைத் தீர்மானிக்கப் பல வழிகள் உள்ளன. சங்கிலிசார் செயல்பாட்டைப் பற்றி உங்களுக்குத் தெரிவிக்கக்கூடிய வெப்ஹூக்குகளை (webhooks) (புதிய தாவலில் திறக்கும்) Alchemy ஆதரிக்கிறது. முதன்மை வலைப்பின்னல் பரிவர்த்தனைகளுக்கு, சேர்க்க வேண்டிய சரியான எரிவாயு அளவைத் தீர்மானிக்கத் தற்போதைய எரிவாயு நிலைமைகளைச் சரிபார்ப்பது நல்ல நடைமுறையாகும். ஒரு சாதாரண முகவரிக்கு ஒரு சாதாரண ETH பரிமாற்றம் எப்போதும் சரியாக 21000 எரிவாயுவைப் பயன்படுத்துகிறது, இது எந்தவொரு பரிவர்த்தனைக்கும் குறைந்தபட்சமாகும், எனவே நாம் இங்கே 21000 ஐ வைக்கிறோம். நீங்கள்gasஐ விட்டுவிட்டால், viem உங்களுக்காக அதை மதிப்பிடுகிறது.nonce: மேலே உள்ள நான்ஸ் வரையறையைப் பார்க்கவும். நான்ஸ் பூஜ்ஜியத்திலிருந்து எண்ணத் தொடங்குகிறது.- [விருப்பத்திற்குரியது] data: உங்கள் பரிமாற்றத்துடன் கூடுதல் தகவல்களை அனுப்ப அல்லது திறன் ஒப்பந்தத்தை அழைக்கப் பயன்படுகிறது, இருப்புப் பரிமாற்றங்களுக்குத் தேவையில்லை, கீழே உள்ள குறிப்பைப் பார்க்கவும்.
signedTx: நமது பரிவர்த்தனைப் பொருளில் கையொப்பமிடsignTransactionமுறையைப் பயன்படுத்துவோம், இது நமதுPRIVATE_KEYஇலிருந்து உருவாக்கப்பட்ட கணக்குடன் உள்நாட்டில் கையொப்பமிடுகிறது.sendRawTransaction: நம்மிடம் கையொப்பமிடப்பட்ட பரிவர்த்தனை கிடைத்தவுடன்,eth_sendRawTransactionஐ அழைக்கும்sendRawTransactionஐப் பயன்படுத்தி அடுத்தடுத்த தொகுதியில் சேர்க்க அதை அனுப்பலாம்.waitForTransactionReceipt: பரிவர்த்தனை ஒரு தொகுதியில் சேர்க்கப்படும் வரை காத்திருந்து அதன் ரசீதை வழங்குகிறது.
தரவு (data) பற்றிய ஒரு குறிப்பு எத்திரியத்தில் அனுப்பக்கூடிய இரண்டு முக்கிய வகையான பரிவர்த்தனைகள் உள்ளன.
- இருப்புப் பரிமாற்றம்: ஒரு முகவரியிலிருந்து மற்றொரு முகவரிக்கு ETH ஐ அனுப்பவும். தரவுப் புலம் தேவையில்லை, இருப்பினும், உங்கள் பரிவர்த்தனையுடன் கூடுதல் தகவல்களை அனுப்ப விரும்பினால், அந்தத் தகவலை HEX வடிவத்தில் இந்தப் புலத்தில் சேர்க்கலாம்.
- எடுத்துக்காட்டாக, IPFS ஆவணத்தின் ஹாஷை எத்திரியம் சங்கிலியில் எழுத விரும்புகிறோம் என்று வைத்துக்கொள்வோம், அதற்கு மாற்றவியலாத நேரமுத்திரையை (timestamp) வழங்க. நமது தரவுப் புலம் viem இன்
toHex(புதிய தாவலில் திறக்கும்) ஐப் பயன்படுத்திdata: toHex("IPFS hash")போன்று இருக்க வேண்டும். இப்போது யார் வேண்டுமானாலும் சங்கிலியை வினவி அந்த ஆவணம் எப்போது சேர்க்கப்பட்டது என்பதைப் பார்க்கலாம்.
- எடுத்துக்காட்டாக, IPFS ஆவணத்தின் ஹாஷை எத்திரியம் சங்கிலியில் எழுத விரும்புகிறோம் என்று வைத்துக்கொள்வோம், அதற்கு மாற்றவியலாத நேரமுத்திரையை (timestamp) வழங்க. நமது தரவுப் புலம் viem இன்
- திறன் ஒப்பந்தப் பரிவர்த்தனை: சங்கிலியில் சில திறன் ஒப்பந்தக் குறியீட்டை இயக்கவும். இந்த வழக்கில், தரவுப் புலத்தில் நீங்கள் இயக்க விரும்பும் திறன் செயல்பாடு மற்றும் ஏதேனும் அளவுருக்கள் இருக்க வேண்டும்.
- ஒரு நடைமுறை எடுத்துக்காட்டிற்கு, ஹலோ வேர்ல்ட் திறன் ஒப்பந்த வழிகாட்டியைப் (Hello World Smart Contract tutorial) பார்க்கவும்.
8. node sendTx.js ஐப் பயன்படுத்திக் குறியீட்டை இயக்கவும்
உங்கள் டெர்மினல் அல்லது கட்டளை வரிக்குத் திரும்பிச் சென்று இயக்கவும்:
node sendTx.js
9. தொகுதி ஆராய்வியில் உங்கள் பரிவர்த்தனையைப் பார்க்கவும்
கணு பரிவர்த்தனையை ஏற்றுக்கொண்டவுடன் ஸ்கிரிப்ட் பரிவர்த்தனை ஹாஷை அச்சிடுகிறது, பின்னர் அது ஒரு தொகுதியில் சேர்க்கப்படும் வரை காத்திருந்து (பொதுவாகச் சில வினாடிகளுக்குள்) முடிவை அச்சிடுகிறது. விவரங்களைப் பார்க்க, Sepolia Etherscan (புதிய தாவலில் திறக்கும்) அல்லது Blockscout (புதிய தாவலில் திறக்கும்) போன்ற Sepolia தொகுதி ஆராய்வியில் ஹாஷை ஒட்டவும். அங்கு நீங்கள் பரிவர்த்தனை நிலுவையில் உள்ளதிலிருந்து சேர்க்கப்பட்ட நிலைக்குச் செல்வதைப் பார்க்கலாம், மேலும் தொகை, கட்டணம் மற்றும் அது எந்தத் தொகுதியில் சேர்க்கப்பட்டது என்பதைப் பார்க்கலாம்.
அதற்குப் பதிலாக insufficient funds பிழையை நீங்கள் கண்டால், உங்கள் கணக்கில் மதிப்பு மற்றும் எரிவாயுவை ஈடுகட்டப் போதுமான Sepolia ETH இல்லை என்று அர்த்தம். படி 2 க்குச் சென்று பாசெட்டிலிருந்து மேலும் கோரவும்.
யப்பீ! Alchemy ஐப் பயன்படுத்தி உங்கள் முதல் எத்திரியம் பரிவர்த்தனையை இப்போதுதான் அனுப்பியுள்ளீர்கள் 🎉
இந்த வழிகாட்டியைப் பற்றிய கருத்து மற்றும் பரிந்துரைகளுக்கு, Alchemy இன் டிஸ்கார்ட்டில் (புதிய தாவலில் திறக்கும்) Elan க்குச் செய்தி அனுப்பவும்!
முதலில் Alchemy ஆல் வெளியிடப்பட்டது.