مرکزی مواد پر جائیں
Change page

جاوا اسکرپٹ API لائبریریاں

صفحہ کی آخری اپ ڈیٹ: ۲۵ فروری، ۲۰۲۶

کسی ویب ایپ کو ایتھیریم بلاک چین کے ساتھ تعامل کرنے (یعنی بلاک چین کا ڈیٹا پڑھنے اور/یا نیٹ ورک پر ٹرانزیکشنز بھیجنے) کے لیے، اسے ایک ایتھیریم نوڈ سے منسلک ہونا ضروری ہے۔

اس مقصد کے لیے، ہر ایتھیریم کلائنٹ JSON-RPC کی تخصیص (specification) کو نافذ کرتا ہے، لہذا طریقہ کار (methods) کا ایک یکساں مجموعہ موجود ہے جس پر ایپلیکیشنز انحصار کر سکتی ہیں۔

اگر آپ ایتھیریم نوڈ سے منسلک ہونے کے لیے جاوا اسکرپٹ کا استعمال کرنا چاہتے ہیں، تو وینیلا (vanilla) جاوا اسکرپٹ کا استعمال ممکن ہے لیکن ایکو سسٹم میں کئی سہولت بخش لائبریریاں موجود ہیں جو اسے بہت آسان بنا دیتی ہیں۔ ان لائبریریوں کے ساتھ، ڈیولپرز JSON-RPC درخواستوں کو (پس پردہ) شروع کرنے کے لیے بدیہی، ایک سطری طریقہ کار لکھ سکتے ہیں جو ایتھیریم کے ساتھ تعامل کرتے ہیں۔

براہ کرم نوٹ کریں کہ دی مرج (The Merge) کے بعد سے، ایک نوڈ چلانے کے لیے ایتھیریم سافٹ ویئر کے دو منسلک حصوں - ایک ایگزیکیوشن کلائنٹ اور ایک کنسینسس کلائنٹ - کی ضرورت ہوتی ہے۔ براہ کرم یقینی بنائیں کہ آپ کے نوڈ میں ایگزیکیوشن اور کنسینسس کلائنٹ دونوں شامل ہیں۔ اگر آپ کا نوڈ آپ کی مقامی مشین پر نہیں ہے (مثلاً، آپ کا نوڈ AWS انسٹینس پر چل رہا ہے) تو ٹیوٹوریل میں IP ایڈریسز کو اسی کے مطابق اپ ڈیٹ کریں۔ مزید معلومات کے لیے براہ کرم نوڈ چلانے پر ہمارا صفحہ دیکھیں۔

پیشگی شرائط

جاوا اسکرپٹ کو سمجھنے کے ساتھ ساتھ، ایتھیریم اسٹیک اور ایتھیریم کلائنٹس کو سمجھنا بھی مددگار ثابت ہو سکتا ہے۔

لائبریری کا استعمال کیوں کریں؟

یہ لائبریریاں براہ راست ایتھیریم نوڈ کے ساتھ تعامل کی زیادہ تر پیچیدگی کو دور کر دیتی ہیں۔ یہ یوٹیلیٹی فنکشنز بھی فراہم کرتی ہیں (مثلاً، ETH کو Gwei میں تبدیل کرنا) تاکہ ایک ڈیولپر کے طور پر آپ ایتھیریم کلائنٹس کی پیچیدگیوں سے نمٹنے میں کم وقت صرف کریں اور اپنی ایپلیکیشن کی منفرد فعالیت پر زیادہ توجہ مرکوز کر سکیں۔

لائبریری کی خصوصیات

ایتھیریم نوڈز سے جڑیں

پرووائیڈرز کا استعمال کرتے ہوئے، یہ لائبریریاں آپ کو ایتھیریم سے جڑنے اور اس کا ڈیٹا پڑھنے کی اجازت دیتی ہیں، چاہے وہ JSON-RPC، INFURA، Etherscan، Alchemy یا MetaMask کے ذریعے ہو۔

انتباہ: Web3.js کو ۴ مارچ ۲۰۲۵ کو آرکائیو کر دیا گیا تھا۔ اعلان پڑھیں (opens in a new tab)۔ نئے پروجیکٹس کے لیے متبادل لائبریریوں جیسے ethers.js (opens in a new tab) یا viem (opens in a new tab) کے استعمال پر غور کریں۔

Ethers کی مثال

// ایک BrowserProvider ایک معیاری Web3 پرووائیڈر کو ریپ (wrap) کرتا ہے، جو کہ
// وہ ہے جسے MetaMask ہر صفحے میں window.ethereum کے طور پر انجیکٹ (inject) کرتا ہے
const provider = new ethers.BrowserProvider(window.ethereum)

// MetaMask پلگ ان ٹرانزیکشنز کو سائن کرنے کی بھی اجازت دیتا ہے تاکہ
// ایتھر (ether) بھیجا جا سکے اور بلاک چین کے اندر اسٹیٹ (state) تبدیل کرنے کے لیے ادائیگی کی جا سکے۔
// اس کے لیے، ہمیں اکاؤنٹ سائنر (signer) کی ضرورت ہے...
const signer = provider.getSigner()

Web3js کی مثال

ایک بار سیٹ اپ ہونے کے بعد آپ بلاک چین سے درج ذیل کے لیے استفسار (query) کر سکیں گے:

  • بلاک نمبرز
  • گیس کے تخمینے
  • اسمارٹ کانٹریکٹ ایونٹس
  • نیٹ ورک آئی ڈی
  • اور مزید...

والیٹ کی فعالیت

یہ لائبریریاں آپ کو والیٹس بنانے، کیز (keys) کا نظم کرنے اور ٹرانزیکشنز پر دستخط کرنے کی فعالیت فراہم کرتی ہیں۔

یہاں Ethers کی ایک مثال ہے

مکمل دستاویزات پڑھیں (opens in a new tab)

ایک بار سیٹ اپ ہونے کے بعد آپ اس قابل ہو جائیں گے:

  • اکاؤنٹس بنائیں
  • ٹرانزیکشنز بھیجیں
  • ٹرانزیکشنز پر دستخط کریں
  • اور مزید...

اسمارٹ کانٹریکٹ فنکشنز کے ساتھ تعامل کریں

جاوا اسکرپٹ کلائنٹ لائبریریاں آپ کی ایپلیکیشن کو مرتب شدہ (compiled) کانٹریکٹ کے ایپلیکیشن بائنری انٹرفیس (ABI) کو پڑھ کر اسمارٹ کانٹریکٹ فنکشنز کو کال کرنے کی اجازت دیتی ہیں۔

ABI بنیادی طور پر JSON فارمیٹ میں کانٹریکٹ کے فنکشنز کی وضاحت کرتا ہے اور آپ کو اسے ایک عام جاوا اسکرپٹ آبجیکٹ کی طرح استعمال کرنے کی اجازت دیتا ہے۔

لہذا درج ذیل Solidity کانٹریکٹ:

کا نتیجہ درج ذیل JSON کی صورت میں نکلے گا:

اس کا مطلب ہے کہ آپ کر سکتے ہیں:

  • اسمارٹ کانٹریکٹ کو ٹرانزیکشن بھیجیں اور اس کا طریقہ کار (method) نافذ کریں
  • EVM میں نافذ ہونے پر کسی طریقہ کار کے نفاذ میں لگنے والی گیس کا تخمینہ لگانے کے لیے کال کریں
  • کانٹریکٹ ڈیپلائے کریں
  • اور مزید...

یوٹیلیٹی فنکشنز

یوٹیلیٹی فنکشنز آپ کو کارآمد شارٹ کٹس دیتے ہیں جو ایتھیریم کے ساتھ تعمیر کو قدرے آسان بناتے ہیں۔

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 کے بجائے ایتھر (ether) میں ویلیوز دیکھنا پسند کرتے ہیں
ethers.utils.formatEther(balance)
// '2.337132817842795605'

دستیاب لائبریریاں

Web3.js - ایتھیریم جاوا اسکرپٹ API۔

Ethers.js - جاوا اسکرپٹ اور ٹائپ اسکرپٹ میں مکمل ایتھیریم والیٹ کا نفاذ اور یوٹیلیٹیز۔

The Graph - ایتھیریم اور IPFS ڈیٹا کو انڈیکس کرنے اور GraphQL کا استعمال کرتے ہوئے اس سے استفسار کرنے کا ایک پروٹوکول۔

Alchemy SDK - بہتر APIs کے ساتھ Ethers.js کے گرد ریپر (Wrapper)۔

viem - ایتھیریم کے لیے ٹائپ اسکرپٹ انٹرفیس۔

Codex - درجنوں چینز پر ریئل ٹائم، افزودہ بلاک چین ڈیٹا API۔

Drift - بلٹ ان کیشنگ، ہکس، اور ٹیسٹ موکس کے ساتھ ٹائپ اسکرپٹ میٹا لائبریری۔

مزید مطالعہ

کسی ایسے کمیونٹی وسیلے کے بارے میں جانتے ہیں جس نے آپ کی مدد کی ہو؟ اس صفحے میں ترمیم کریں اور اسے شامل کریں!

ٹیوٹوریلز: ایتھیریم پر جاوا اسکرپٹ APIs اور WebSockets

  • WebSockets کا استعمال – ایتھیریم ایونٹس کو سبسکرائب کرنے اور ریئل ٹائم JSON-RPC درخواستیں کرنے کے لیے Alchemy کے ساتھ WebSockets کا استعمال کیسے کریں۔

کیا یہ مضمون مددگار تھا؟