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

⁦JavaScript API⁩ لائبریریاں

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

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

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

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

پیشگی شرائط

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

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

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

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

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

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

انتباہ: Web3.js کو March 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 کی مثال

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

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

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

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

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

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

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

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

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

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

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

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

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

Web3.js - ایتھیریم JavaScript API۔

Ethers.js - JavaScript اور TypeScript میں مکمل ایتھیریم والیٹ کا نفاذ اور یوٹیلیٹیز۔

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

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

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

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

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

مزید مطالعہ

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

ٹیوٹوریلز: ایتھیریم پر JavaScript APIs اور WebSockets

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