মূল কন্টেন্টে যান
Change page

জাভাস্ক্রিপ্ট এপিআই লাইব্রেরি

একটি ওয়েব অ্যাপকে ইথিরিয়াম ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করতে (অর্থাৎ, ব্লকচেইন ডেটা পড়তে এবং/অথবা নেটওয়ার্ক-এ লেনদেন পাঠাতে), এটিকে অবশ্যই একটি ইথিরিয়াম নোড-এর সাথে সংযুক্ত হতে হবে।

এই উদ্দেশ্যে, প্রতিটি ইথিরিয়াম ক্লায়েন্ট JSON-RPC স্পেসিফিকেশন প্রয়োগ করে, তাই অ্যাপ্লিকেশনগুলি নির্ভর করতে পারে এমন একটি অভিন্ন পদ্ধতির সেট রয়েছে।

আপনি যদি একটি ইথিরিয়াম নোড-এর সাথে সংযোগ করতে জাভাস্ক্রিপ্ট ব্যবহার করতে চান, তবে ভ্যানিলা জাভাস্ক্রিপ্ট ব্যবহার করা সম্ভব কিন্তু ইকোসিস্টেমের মধ্যে বেশ কয়েকটি সুবিধাজনক লাইব্রেরি রয়েছে যা এটিকে আরও সহজ করে তোলে। এই লাইব্রেরিগুলির সাহায্যে, ডেভেলপাররা ইথিরিয়ামের সাথে ইন্টারঅ্যাক্ট করে এমন JSON-RPC রিকোয়েস্ট (আড়ালে) শুরু করার জন্য সহজ, এক-লাইনের পদ্ধতি লিখতে পারেন।

অনুগ্রহ করে মনে রাখবেন যে The Merge-এর পর থেকে, একটি নোড চালানোর জন্য ইথিরিয়াম সফ্টওয়্যারের দুটি সংযুক্ত অংশ - একটি এক্সিকিউশন ক্লায়েন্ট এবং একটি কনসেন্সাস ক্লায়েন্ট - প্রয়োজন। অনুগ্রহ করে নিশ্চিত করুন যে আপনার নোড-এ একটি এক্সিকিউশন এবং কনসেন্সাস ক্লায়েন্ট উভয়ই অন্তর্ভুক্ত রয়েছে। যদি আপনার নোড আপনার লোকাল মেশিনে না থাকে (যেমন, আপনার নোড একটি AWS ইনস্ট্যান্সে চলছে) তবে টিউটোরিয়ালে আইপি (IP) ঠিকানাগুলি সেই অনুযায়ী আপডেট করুন। আরও তথ্যের জন্য অনুগ্রহ করে একটি নোড চালানো সম্পর্কিত আমাদের পৃষ্ঠাটি দেখুন।

পূর্বশর্ত

জাভাস্ক্রিপ্ট বোঝার পাশাপাশি, ইথিরিয়াম স্ট্যাক এবং ইথিরিয়াম ক্লায়েন্ট বোঝা সহায়ক হতে পারে।

কেন একটি লাইব্রেরি ব্যবহার করবেন?

এই লাইব্রেরিগুলি সরাসরি একটি ইথিরিয়াম নোড-এর সাথে ইন্টারঅ্যাক্ট করার বেশিরভাগ জটিলতা দূর করে। এগুলি ইউটিলিটি ফাংশনও প্রদান করে (যেমন, ETH কে Gwei-তে রূপান্তর করা) যাতে একজন ডেভেলপার হিসেবে আপনি ইথিরিয়াম ক্লায়েন্ট-এর জটিলতাগুলি মোকাবেলা করতে কম সময় ব্যয় করতে পারেন এবং আপনার অ্যাপ্লিকেশনের অনন্য কার্যকারিতার উপর বেশি সময় ফোকাস করতে পারেন।

লাইব্রেরির বৈশিষ্ট্য

ইথিরিয়াম নোড-এর সাথে সংযোগ করুন

প্রোভাইডার ব্যবহার করে, এই লাইব্রেরিগুলি আপনাকে ইথিরিয়ামের সাথে সংযোগ করতে এবং এর ডেটা পড়তে দেয়, তা JSON-RPC, INFURA, Etherscan, Alchemy বা MetaMask-এর মাধ্যমেই হোক না কেন।

সতর্কতা: Web3.js 4 মার্চ, 2025-এ আর্কাইভ করা হয়েছিল। ঘোষণাটি পড়ুন (opens in a new tab)। নতুন প্রজেক্টের জন্য ethers.js (opens in a new tab) বা viem (opens in a new tab)-এর মতো বিকল্প লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।

Ethers উদাহরণ

// একটি BrowserProvider একটি স্ট্যান্ডার্ড Web3 প্রোভাইডারকে র‍্যাপ করে, যা
// মেটামাস্ক প্রতিটি পেজে window.ethereum হিসেবে ইনজেক্ট করে
const provider = new ethers.BrowserProvider(window.ethereum)

// মেটামাস্ক প্লাগইন ট্রানজ্যাকশন সাইন করারও অনুমতি দেয় যাতে
// ইথার পাঠানো যায় এবং ব্লকচেইনের মধ্যে স্টেট পরিবর্তন করার জন্য পে করা যায়।
// এর জন্য, আমাদের অ্যাকাউন্ট সাইনার প্রয়োজন...
const signer = provider.getSigner()

Web3js উদাহরণ

একবার সেট আপ হয়ে গেলে আপনি ব্লকচেইন-এ নিম্নলিখিত বিষয়গুলির জন্য কোয়েরি করতে পারবেন:

  • ব্লক নম্বর
  • গ্যাস অনুমান
  • স্মার্ট কন্ট্রাক্ট ইভেন্ট
  • নেটওয়ার্ক আইডি
  • এবং আরও অনেক কিছু...

ওয়ালেট কার্যকারিতা

এই লাইব্রেরিগুলি আপনাকে ওয়ালেট তৈরি করতে, কী (keys) পরিচালনা করতে এবং লেনদেন সাইন করতে কার্যকারিতা দেয়।

এখানে Ethers থেকে একটি উদাহরণ দেওয়া হলো

সম্পূর্ণ ডক্স পড়ুন (opens in a new tab)

একবার সেট আপ হয়ে গেলে আপনি সক্ষম হবেন:

  • একাউন্ট তৈরি করতে
  • লেনদেন পাঠাতে
  • লেনদেন সাইন করতে
  • এবং আরও অনেক কিছু...

স্মার্ট কন্ট্রাক্ট ফাংশনগুলির সাথে ইন্টারঅ্যাক্ট করুন

জাভাস্ক্রিপ্ট ক্লায়েন্ট লাইব্রেরিগুলি আপনার অ্যাপ্লিকেশনকে একটি সংকলিত চুক্তির অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) পড়ে স্মার্ট কন্ট্রাক্ট ফাংশন কল করার অনুমতি দেয়।

ABI মূলত JSON ফর্ম্যাটে চুক্তির ফাংশনগুলি ব্যাখ্যা করে এবং আপনাকে এটিকে একটি সাধারণ জাভাস্ক্রিপ্ট অবজেক্টের মতো ব্যবহার করতে দেয়।

সুতরাং নিম্নলিখিত Solidity চুক্তিটি:

নিম্নলিখিত JSON-এর ফলাফল হবে:

এর মানে আপনি পারেন:

  • স্মার্ট কন্ট্রাক্ট-এ একটি লেনদেন পাঠাতে এবং এর পদ্ধতি কার্যকর করতে
  • ইথিরিয়াম ভার্চুয়াল মেশিন-এ কার্যকর করার সময় একটি পদ্ধতি কার্যকর করতে কত গ্যাস লাগবে তা অনুমান করতে কল করতে
  • একটি চুক্তি স্থাপন (Deploy) করতে
  • এবং আরও অনেক কিছু...

ইউটিলিটি ফাংশন

ইউটিলিটি ফাংশনগুলি আপনাকে সুবিধাজনক শর্টকাট দেয় যা ইথিরিয়ামের সাথে তৈরি করাকে কিছুটা সহজ করে তোলে।

ডিফল্টরূপে ETH মানগুলি Wei-তে থাকে। 1 ETH = 1,000,000,000,000,000,000 WEI – এর মানে আপনি অনেক সংখ্যার সাথে কাজ করছেন! web3.utils.toWei আপনার জন্য ইথারকে Wei-তে রূপান্তর করে।

এবং ethers-এ এটি দেখতে এইরকম:

// একটি অ্যাকাউন্টের ব্যালেন্স পান (অ্যাড্রেস বা ENS নাম দ্বারা)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// প্রায়শই আপনাকে ব্যবহারকারীর জন্য আউটপুট ফরম্যাট করতে হবে
// যারা (wei-এর পরিবর্তে) ইথারে ভ্যালু দেখতে পছন্দ করে
ethers.utils.formatEther(balance)
// '2.337132817842795605'

উপলব্ধ লাইব্রেরি

Web3.js - ইথিরিয়াম জাভাস্ক্রিপ্ট এপিআই (API)।

Ethers.js - জাভাস্ক্রিপ্ট এবং টাইপস্ক্রিপ্টে সম্পূর্ণ ইথিরিয়াম ওয়ালেট বাস্তবায়ন এবং ইউটিলিটি।

The Graph - ইথিরিয়াম এবং IPFS ডেটা ইনডেক্স করার এবং GraphQL ব্যবহার করে এটি কোয়েরি করার জন্য একটি প্রটোকল।

Alchemy SDK - উন্নত এপিআই (API) সহ Ethers.js-এর চারপাশে র‍্যাপার।

viem - ইথিরিয়ামের জন্য টাইপস্ক্রিপ্ট ইন্টারফেস।

Codex - কয়েক ডজন চেইন জুড়ে রিয়েল-টাইম, সমৃদ্ধ ব্লকচেইন ডেটা এপিআই (API)।

Drift - বিল্ট-ইন ক্যাশিং, হুক এবং টেস্ট মক সহ টাইপস্ক্রিপ্ট মেটা-লাইব্রেরি।

আরও পড়ুন

আপনাকে সাহায্য করেছে এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!

টিউটোরিয়াল: ইথিরিয়ামে জাভাস্ক্রিপ্ট এপিআই (API) এবং ওয়েবসকেট (WebSockets)

  • ওয়েবসকেট (WebSockets) ব্যবহার করা – ইথিরিয়াম ইভেন্টগুলিতে সাবস্ক্রাইব করতে এবং রিয়েল-টাইম JSON-RPC রিকোয়েস্ট করতে Alchemy-এর সাথে ওয়েবসকেট কীভাবে ব্যবহার করবেন।

পেজ সর্বশেষ আপডেট করা হয়েছে: 25 ফেব্রুয়ারী, 2026

এই নিবন্ধটি কি সহায়ক ছিল?