Viem ব্যবহার করে ট্রানজ্যাকশন পাঠানো
এটি viem (নতুন ট্যাবে খোলে) লাইব্রেরি ব্যবহার করে ইথেরিয়াম ট্রানজ্যাকশন পাঠানোর জন্য একটি শিক্ষানবিস-বান্ধব গাইড। ইথেরিয়াম ব্লকচেইনে একটি ট্রানজ্যাকশন পাঠানোর জন্য তিনটি প্রধান ধাপ রয়েছে: তৈরি করা, স্বাক্ষরকরণ এবং সম্প্রচার করা। আমরা এই তিনটি ধাপ নিয়েই আলোচনা করব, আশা করি আপনার যেকোনো প্রশ্নের উত্তর দিতে পারব! এই টিউটোরিয়ালে, আমরা ইথেরিয়াম চেইনে আমাদের ট্রানজ্যাকশন পাঠাতে Alchemy (নতুন ট্যাবে খোলে) ব্যবহার করব। আপনি এখানে একটি বিনামূল্যের Alchemy অ্যাকাউন্ট তৈরি করতে পারেন (নতুন ট্যাবে খোলে)।
নোট: এই গাইডটি আপনার অ্যাপের ব্যাকএন্ডে আপনার ট্রানজ্যাকশন স্বাক্ষরকরণের জন্য। আপনি যদি ফ্রন্টএন্ডে আপনার ট্রানজ্যাকশন স্বাক্ষরকরণ ইন্টিগ্রেট করতে চান, তবে মেটামাস্ক প্রোভাইডার এপিআই (API) (নতুন ট্যাবে খোলে) দেখুন।
বেসিক বিষয়গুলো
বেশিরভাগ ব্লকচেইন ডেভেলপারদের মতো যখন তারা প্রথম শুরু করে, আপনি হয়তো কীভাবে একটি ট্রানজ্যাকশন পাঠাতে হয় (যা বেশ সহজ হওয়া উচিত) তা নিয়ে কিছু গবেষণা করেছেন এবং প্রচুর গাইডের সম্মুখীন হয়েছেন, যার প্রতিটি ভিন্ন ভিন্ন কথা বলছে এবং আপনাকে কিছুটা অভিভূত ও বিভ্রান্ত করে তুলেছে। আপনি যদি সেই পরিস্থিতিতে থাকেন, তবে চিন্তা করবেন না; আমরা সবাই কোনো না কোনো সময় সেখানে ছিলাম! তাই, শুরু করার আগে, আসুন কয়েকটি বিষয় পরিষ্কার করে নিই:
1. Alchemy আপনার প্রাইভেট কী সংরক্ষণ করে না
- এর মানে হলো Alchemy আপনার পক্ষে ট্রানজ্যাকশন স্বাক্ষরকরণ এবং পাঠাতে পারে না। এর কারণ হলো নিরাপত্তার উদ্দেশ্য। Alchemy কখনোই আপনাকে আপনার প্রাইভেট কী শেয়ার করতে বলবে না, এবং আপনার কখনোই কোনো হোস্টেড নোড (বা সেই ক্ষেত্রে অন্য কারো) সাথে আপনার প্রাইভেট কী শেয়ার করা উচিত নয়।
- আপনি Alchemy-এর কোর API ব্যবহার করে ব্লকচেইন থেকে পড়তে পারেন, কিন্তু এতে লিখতে হলে Alchemy-এর মাধ্যমে পাঠানোর আগে আপনার ট্রানজ্যাকশন স্বাক্ষরকরণের জন্য অন্য কিছু ব্যবহার করতে হবে (এটি অন্য যেকোনো নোড সার্ভিসের ক্ষেত্রেও একই)।
2. "Signer" কী?
- Signer-রা আপনার প্রাইভেট কী ব্যবহার করে আপনার জন্য ট্রানজ্যাকশন স্বাক্ষরকরণ করবে। এই টিউটোরিয়ালে আমরা আমাদের ট্রানজ্যাকশন স্বাক্ষরকরণ করতে viem (নতুন ট্যাবে খোলে) ব্যবহার করব, তবে আপনি অন্য যেকোনো Web3 লাইব্রেরিও ব্যবহার করতে পারেন।
- ফ্রন্টএন্ডে, একটি signer-এর ভালো উদাহরণ হতে পারে মেটামাস্ক (নতুন ট্যাবে খোলে), যা আপনার পক্ষে ট্রানজ্যাকশন স্বাক্ষরকরণ করবে এবং পাঠাবে।
3. কেন আমার ট্রানজ্যাকশন স্বাক্ষরকরণ করতে হবে?
- ইথেরিয়াম নেটওয়ার্কে ট্রানজ্যাকশন পাঠাতে চাওয়া প্রত্যেক ব্যবহারকারীকে অবশ্যই ট্রানজ্যাকশনটি স্বাক্ষরকরণ করতে হবে (তাদের প্রাইভেট কী ব্যবহার করে), যাতে ট্রানজ্যাকশনের উৎসটি যা দাবি করছে তা যাচাই করা যায়।
- এই প্রাইভেট কী সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ, কারণ এতে অ্যাক্সেস থাকলে আপনার ইথেরিয়াম অ্যাকাউন্টের ওপর সম্পূর্ণ নিয়ন্ত্রণ পাওয়া যায়, যা আপনাকে (বা অ্যাক্সেস থাকা যে কাউকে) আপনার পক্ষে ট্রানজ্যাকশন করার অনুমতি দেয়।
4. আমি কীভাবে আমার প্রাইভেট কী সুরক্ষিত রাখব?
- আপনার প্রাইভেট কী সুরক্ষিত রাখার এবং ট্রানজ্যাকশন পাঠানোর জন্য এটি ব্যবহার করার অনেক উপায় রয়েছে। এই টিউটোরিয়ালে আমরা একটি
.envফাইল ব্যবহার করব। তবে, আপনি প্রাইভেট কী সংরক্ষণ করে এমন একটি আলাদা প্রোভাইডার ব্যবহার করতে পারেন, একটি কীস্টোর ফাইল ব্যবহার করতে পারেন, বা অন্যান্য বিকল্পও ব্যবহার করতে পারেন।
5. eth_sendTransaction এবং eth_sendRawTransaction-এর মধ্যে পার্থক্য কী?
eth_sendTransaction এবং eth_sendRawTransaction উভয়ই ইথেরিয়াম অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) ফাংশন যা ইথেরিয়াম নেটওয়ার্কে একটি ট্রানজ্যাকশন সম্প্রচার করে যাতে এটি ভবিষ্যতের কোনো ব্লকে যুক্ত হতে পারে। ট্রানজ্যাকশন স্বাক্ষরকরণ পরিচালনার ক্ষেত্রে এদের মধ্যে পার্থক্য রয়েছে।
eth_sendTransactionস্বাক্ষরবিহীন ট্রানজ্যাকশন পাঠানোর জন্য ব্যবহৃত হয়, যার মানে হলো আপনি যে নোডে পাঠাচ্ছেন তাকে অবশ্যই আপনার প্রাইভেট কী পরিচালনা করতে হবে যাতে এটি চেইনে সম্প্রচার করার আগে ট্রানজ্যাকশনটি স্বাক্ষরকরণ করতে পারে। যেহেতু Alchemy ব্যবহারকারীর প্রাইভেট কী সংরক্ষণ করে না, তাই তারা এই পদ্ধতিটি সমর্থন করে না।eth_sendRawTransaction(নতুন ট্যাবে খোলে) এমন ট্রানজ্যাকশন সম্প্রচার করতে ব্যবহৃত হয় যা ইতিমধ্যে স্বাক্ষরকরণ করা হয়েছে। এর মানে হলো আপনাকে প্রথমে আপনার প্রাইভেট কী দিয়ে ট্রানজ্যাকশনটি স্বাক্ষরকরণ করতে হবে (viem-এ, একটি লোকাল অ্যাকাউন্ট (নতুন ট্যাবে খোলে) দিয়েsignTransaction(নতুন ট্যাবে খোলে) ব্যবহার করে), তারপর ফলাফলটিeth_sendRawTransaction-এ পাস করতে হবে।
viem ব্যবহার করার সময়, sendRawTransaction (নতুন ট্যাবে খোলে) ফাংশন কল করে eth_sendRawTransaction অ্যাক্সেস করা হয়।
এই টিউটোরিয়ালে আমরা এটিই ব্যবহার করব।
6. Web3 লাইব্রেরি কী?
- একটি Web3 লাইব্রেরি হলো স্ট্যান্ডার্ড জেসন-আরপিসি কলগুলোর চারপাশে একটি র্যাপার যা ইথেরিয়াম ডেভেলপমেন্টে ব্যবহার করা বেশ সাধারণ।
- বিভিন্ন ভাষার জন্য অনেক Web3 লাইব্রেরি রয়েছে। এই টিউটোরিয়ালে আমরা viem (নতুন ট্যাবে খোলে) ব্যবহার করব, যা TypeScript-এ লেখা এবং যেকোনো JavaScript প্রজেক্টে কাজ করে। আপনি এখানে অন্যান্য বিকল্পগুলো দেখতে পারেন যেমন Ethers.js (নতুন ট্যাবে খোলে)।
ঠিক আছে, এখন যেহেতু আমরা এই কয়েকটি প্রশ্নের উত্তর পেয়ে গেছি, চলুন টিউটোরিয়ালে এগিয়ে যাই। Alchemy ডিসকর্ডে (নতুন ট্যাবে খোলে) যেকোনো সময় প্রশ্ন করতে দ্বিধা করবেন না!
7. কীভাবে সুরক্ষিত, গ্যাস-অপ্টিমাইজড এবং প্রাইভেট ট্রানজ্যাকশন পাঠাবেন?
- Alchemy-এর ট্রানজ্যাকশন রিসোর্সের একটি সেট রয়েছে (নতুন ট্যাবে খোলে)। আপনি এগুলো ব্যবহার করে ট্রানজ্যাকশন পাঠাতে, ট্রানজ্যাকশন ঘটার আগে সিমুলেট করতে, প্রাইভেট ট্রানজ্যাকশন পাঠাতে এবং গ্যাস-অপ্টিমাইজড ট্রানজ্যাকশন পাঠাতে পারেন।
- আপনার ট্রানজ্যাকশন মেমপুল থেকে টেনে নিয়ে চেইনে যুক্ত করার সময় সতর্ক হতে আপনি Alchemy ওয়েবহুক (নতুন ট্যাবে খোলে) ব্যবহার করতে পারেন।
নোট: এই গাইডের জন্য একটি 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 কমিট করবেন না! অনুগ্রহ করে নিশ্চিত করুন যে আপনি কখনোই আপনার .env ফাইলটি কারও সাথে শেয়ার বা প্রকাশ করবেন না, কারণ এমনটি করলে আপনি আপনার গোপনীয়তার সাথে আপস করছেন। আপনি যদি ভার্সন কন্ট্রোল ব্যবহার করেন, তবে আপনার .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: viem ক্লায়েন্ট যা আপনার Alchemy URL-এ জেসন-আরপিসি রিকোয়েস্ট পাঠায়। পাবলিক ক্লায়েন্ট চেইন থেকে পড়ে এবং ওয়ালেট ক্লায়েন্ট আপনার অ্যাকাউন্টের জন্য ট্রানজ্যাকশন প্রস্তুত করে এবং স্বাক্ষরকরণ করে।nonce: আপনার ঠিকানা থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যার ট্র্যাক রাখতে নন্স স্পেসিফিকেশন ব্যবহার করা হয়। নিরাপত্তার উদ্দেশ্যে এবং রিপ্লে অ্যাটাক প্রতিরোধ করতে আমাদের এটি প্রয়োজন। আপনার ঠিকানা থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যা পেতে আমরা getTransactionCount (নতুন ট্যাবে খোলে) ব্যবহার করি। viem আপনার জন্য এটি পূরণ করে দিতে পারে, তবে এটি কোথা থেকে আসে তা দেখানোর জন্য আমরা এটি এখানে স্পষ্টভাবে ফেচ করছি।transaction: ট্রানজ্যাকশন অবজেক্টের কয়েকটি দিক রয়েছে যা আমাদের নির্দিষ্ট করতে হবে। বর্তমান নেটওয়ার্ক অবস্থার ওপর ভিত্তি করেprepareTransactionRequest(নতুন ট্যাবে খোলে) আমাদের জন্য বাকি অংশ পূরণ করে, যার মধ্যে রয়েছেchainIdএবং EIP-1559 ফি ফিল্ডmaxFeePerGasওmaxPriorityFeePerGasto: এটি সেই ঠিকানা যেখানে আমরা ETH পাঠাতে চাই।value: এটি সেই পরিমাণ যা আমরা পাঠাতে চাই, যা Wei-তে নির্দিষ্ট করা হয় যেখানে 10^18 Wei = 1 ETH।parseEther(নতুন ট্যাবে খোলে) আমাদের জন্য একটি ETH পরিমাণকে Wei-তে রূপান্তর করে। আপনার অ্যাকাউন্টে এর চেয়ে একটু বেশি প্রয়োজন, কারণ এটি গ্যাসের জন্যও অর্থ প্রদান করেgas: আপনার ট্রানজ্যাকশনের সাথে অন্তর্ভুক্ত করার জন্য সঠিক পরিমাণ গ্যাস নির্ধারণ করার অনেক উপায় রয়েছে। Alchemy ওয়েবহুক (নতুন ট্যাবে খোলে) সমর্থন করে যা আপনাকে অনচেইন কার্যকলাপ সম্পর্কে অবহিত করতে পারে। মেইননেট ট্রানজ্যাকশনের জন্য, অন্তর্ভুক্ত করার সঠিক পরিমাণ গ্যাস নির্ধারণ করতে বর্তমান গ্যাস পরিস্থিতি পরীক্ষা করা একটি ভালো অভ্যাস। একটি সাধারণ ঠিকানায় সাধারণ ETH হস্তান্তরে সর্বদা ঠিক 21000 গ্যাস ব্যবহৃত হয়, যা যেকোনো ট্রানজ্যাকশনের জন্য সর্বনিম্ন, তাই আমরা এখানে 21000 রেখেছি। আপনি যদিgasবাদ দেন, তবে viem আপনার জন্য এটি অনুমান করে নেবে।nonce: উপরের নন্স সংজ্ঞা দেখুন। নন্স শূন্য থেকে গণনা শুরু করে।- [ঐচ্ছিক] data: আপনার হস্তান্তরের সাথে অতিরিক্ত তথ্য পাঠানোর জন্য বা একটি স্মার্ট কন্ট্রাক্ট কল করার জন্য ব্যবহৃত হয়, ব্যালেন্স হস্তান্তরের জন্য প্রয়োজনীয় নয়, নিচের নোটটি দেখুন।
signedTx: আমাদের ট্রানজ্যাকশন অবজেক্ট স্বাক্ষরকরণ করতে আমরাsignTransactionমেথড ব্যবহার করব, যা আমাদেরPRIVATE_KEYথেকে তৈরি অ্যাকাউন্ট দিয়ে এটি স্থানীয়ভাবে স্বাক্ষরকরণ করেsendRawTransaction: একবার আমাদের কাছে একটি স্বাক্ষরিত ট্রানজ্যাকশন থাকলে, আমরাsendRawTransactionব্যবহার করে পরবর্তী ব্লকে অন্তর্ভুক্ত করার জন্য এটি পাঠাতে পারি, যাeth_sendRawTransactionকল করেwaitForTransactionReceipt: ট্রানজ্যাকশনটি একটি ব্লকে অন্তর্ভুক্ত হওয়া পর্যন্ত অপেক্ষা করে এবং এর রসিদ প্রদান করে
ডেটা সম্পর্কিত একটি নোট ইথেরিয়ামে পাঠানো যেতে পারে এমন দুটি প্রধান ধরনের ট্রানজ্যাকশন রয়েছে।
- ব্যালেন্স হস্তান্তর: এক ঠিকানা থেকে অন্য ঠিকানায় ETH পাঠান। কোনো ডেটা ফিল্ডের প্রয়োজন নেই, তবে, আপনি যদি আপনার ট্রানজ্যাকশনের পাশাপাশি অতিরিক্ত তথ্য পাঠাতে চান, তবে আপনি এই ফিল্ডে HEX ফর্ম্যাটে সেই তথ্য অন্তর্ভুক্ত করতে পারেন।
- উদাহরণস্বরূপ, ধরুন আমরা একটি IPFS ডকুমেন্টের হ্যাশ ইথেরিয়াম চেইনে লিখতে চাই যাতে এটিকে একটি অপরিবর্তনীয় টাইমস্ট্যাম্প দেওয়া যায়। তখন আমাদের ডেটা ফিল্ডটি viem-এর
toHex(নতুন ট্যাবে খোলে) ব্যবহার করেdata: toHex("IPFS hash")-এর মতো হওয়া উচিত। এবং এখন যে কেউ চেইনে কোয়েরি করতে পারে এবং দেখতে পারে কখন সেই ডকুমেন্টটি যোগ করা হয়েছিল।
- উদাহরণস্বরূপ, ধরুন আমরা একটি IPFS ডকুমেন্টের হ্যাশ ইথেরিয়াম চেইনে লিখতে চাই যাতে এটিকে একটি অপরিবর্তনীয় টাইমস্ট্যাম্প দেওয়া যায়। তখন আমাদের ডেটা ফিল্ডটি viem-এর
- স্মার্ট কন্ট্রাক্ট ট্রানজ্যাকশন: চেইনে কিছু স্মার্ট কন্ট্রাক্ট কোড এক্সিকিউট করুন। এই ক্ষেত্রে, ডেটা ফিল্ডে যেকোনো প্যারামিটারের পাশাপাশি আপনি যে স্মার্ট ফাংশনটি এক্সিকিউট করতে চান তা থাকা উচিত।
- একটি ব্যবহারিক উদাহরণের জন্য, হ্যালো ওয়ার্ল্ড স্মার্ট কন্ট্রাক্ট টিউটোরিয়াল দেখুন।
8. node sendTx.js ব্যবহার করে কোডটি রান করুন
আপনার টার্মিনাল বা কমান্ড লাইনে ফিরে যান এবং রান করুন:
node sendTx.js
9. একটি ব্লক এক্সপ্লোরারে আপনার ট্রানজ্যাকশন দেখুন
নোড ট্রানজ্যাকশনটি গ্রহণ করার সাথে সাথেই স্ক্রিপ্টটি ট্রানজ্যাকশন হ্যাশ প্রিন্ট করে, তারপর এটি একটি ব্লকে অন্তর্ভুক্ত হওয়া পর্যন্ত অপেক্ষা করে (সাধারণত কয়েক সেকেন্ডের মধ্যে) এবং ফলাফল প্রিন্ট করে। বিস্তারিত দেখতে, হ্যাশটি একটি Sepolia ব্লক এক্সপ্লোরারে পেস্ট করুন যেমন Sepolia Etherscan (নতুন ট্যাবে খোলে) বা Blockscout (নতুন ট্যাবে খোলে)। সেখানে আপনি ট্রানজ্যাকশনটিকে পেন্ডিং থেকে অন্তর্ভুক্ত হওয়া পর্যন্ত দেখতে পারেন এবং এর পরিমাণ, ফি এবং এটি কোন ব্লকে যুক্ত হয়েছে তা দেখতে পারেন।
এর পরিবর্তে আপনি যদি একটি insufficient funds ত্রুটি দেখতে পান, তবে আপনার অ্যাকাউন্টে ভ্যালু এবং গ্যাস কভার করার জন্য পর্যাপ্ত Sepolia ETH নেই। ধাপ 2-এ ফিরে যান এবং একটি ফসেট থেকে আরও অনুরোধ করুন।
ইয়িপ্পি! আপনি এইমাত্র Alchemy ব্যবহার করে আপনার প্রথম ইথেরিয়াম ট্রানজ্যাকশন পাঠিয়েছেন 🎉
এই গাইড সম্পর্কে মতামত এবং পরামর্শের জন্য, অনুগ্রহ করে Alchemy-এর ডিসকর্ডে (নতুন ট্যাবে খোলে) Elan-কে মেসেজ করুন!
মূলত Alchemy দ্বারা প্রকাশিত।