تخطي إلى المحتوى الرئيسي
Change page

مكتبات ⁦API⁩ لـ ⁦JavaScript⁩

لكي يتفاعل تطبيق ويب مع سلسلة الكتل لإيثيريوم (أي قراءة بيانات سلسلة الكتل و/أو إرسال معاملات إلى الشبكة)، يجب أن يتصل بعقدة إيثيريوم.

لهذا الغرض، ينفذ كل عميل إيثيريوم مواصفات JSON-RPC، لذلك هناك مجموعة موحدة من الطرق التي يمكن للتطبيقات الاعتماد عليها.

إذا كنت ترغب في استخدام JavaScript للاتصال بعقدة إيثيريوم، فمن الممكن استخدام JavaScript الأساسية ولكن توجد العديد من المكتبات المريحة داخل النظام البيئي التي تجعل هذا أسهل بكثير. باستخدام هذه المكتبات، يمكن للمطورين كتابة طرق بديهية من سطر واحد لتهيئة طلبات JSON-RPC (داخليًا) التي تتفاعل مع إيثيريوم.

يرجى ملاحظة أنه منذ الدمج، يلزم وجود قطعتين متصلتين من برامج إيثيريوم - عميل التنفيذ وعميل إجماع - لتشغيل عقدة. يرجى التأكد من أن عقدتك تتضمن كلاً من عميل التنفيذ وعميل الإجماع. إذا لم تكن عقدتك على جهازك المحلي (على سبيل المثال، تعمل عقدتك على مثيل AWS)، فقم بتحديث عناوين IP في البرنامج التعليمي وفقًا لذلك. لمزيد من المعلومات، يرجى الاطلاع على صفحتنا حول تشغيل عقدة.

المتطلبات الأساسية

بالإضافة إلى فهم JavaScript، قد يكون من المفيد فهم حزمة إيثيريوم وعملاء إيثيريوم.

لماذا تستخدم مكتبة؟

تعمل هذه المكتبات على تجريد الكثير من تعقيدات التفاعل المباشر مع عقدة إيثيريوم. كما أنها توفر وظائف مساعدة (على سبيل المثال، تحويل ETH إلى Gwei) بحيث يمكنك كمطور قضاء وقت أقل في التعامل مع تعقيدات عملاء إيثيريوم ومزيد من الوقت في التركيز على الوظائف الفريدة لتطبيقك.

ميزات المكتبة

الاتصال بعقد إيثيريوم

باستخدام المزودين، تتيح لك هذه المكتبات الاتصال بإيثيريوم وقراءة بياناته، سواء كان ذلك عبر JSON-RPC أو 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

بمجرد الإعداد، ستتمكن من الاستعلام من سلسلة الكتل عن:

  • أرقام الكتل
  • تقديرات الغاز
  • أحداث العقد الذكي
  • معرف الشبكة
  • والمزيد...

وظائف المحفظة

تمنحك هذه المكتبات وظائف لإنشاء محافظ وإدارة المفاتيح وتوقيع المعاملات.

إليك مثال من Ethers

اقرأ المستندات الكاملة (opens in a new tab)

بمجرد الإعداد ستتمكن من:

  • إنشاء حسابات
  • إرسال معاملات
  • توقيع معاملات
  • والمزيد...

التفاعل مع وظائف العقد الذكي

تتيح مكتبات عميل JavaScript لتطبيقك استدعاء وظائف العقد الذكي من خلال قراءة واجهة التطبيق الثنائية (ABI) لعقد مجمع.

تشرح ABI بشكل أساسي وظائف العقد بتنسيق JSON وتسمح لك باستخدامها ككائن JavaScript عادي.

لذا فإن عقد Solidity التالي:

سينتج عنه JSON التالي:

هذا يعني أنه يمكنك:

  • إرسال معاملة إلى العقد الذكي وتنفيذ طريقته
  • الاستدعاء لتقدير الغاز الذي سيستغرقه تنفيذ الطريقة عند تنفيذها في جهاز إيثيريوم الظاهري (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 لإيثيريوم.

Ethers.js - تنفيذ كامل لمحفظة إيثيريوم وأدوات مساعدة في JavaScript وTypeScript.

The Graph - بروتوكول لفهرسة بيانات إيثيريوم وIPFS والاستعلام عنها باستخدام GraphQL.

Alchemy SDK - غلاف حول Ethers.js مع واجهات برمجة تطبيقات محسنة.

Viem - واجهة TypeScript لإيثيريوم.

Codex - واجهة برمجة تطبيقات لبيانات سلسلة الكتل المثرية في الوقت الفعلي عبر عشرات السلاسل.

Drift - مكتبة وصفية لـ TypeScript مع تخزين مؤقت مدمج، وخطافات، ونماذج اختبار وهمية.

قراءة إضافية

هل تعرف موردًا مجتمعيًا ساعدك؟ قم بتعديل هذه الصفحة وأضفه!

برامج تعليمية: واجهات برمجة تطبيقات JavaScript وWebSockets على إيثيريوم

  • استخدام WebSockets – كيفية استخدام WebSockets مع Alchemy للاشتراك في أحداث إيثيريوم وإجراء طلبات JSON-RPC في الوقت الفعلي.