ADAMANT API JS Client v3.0.0
هذا إصدار رئيسي لمكتبة SDK تم تنسيقه مع ADAMANT Node v0.10.0. يُحدّث عميل HTTP وWebSocket وفقًا لواجهة برمجة التطبيقات الحالية للعقدة، ويُقدّم حدود حزم وحداتية مستقرة، ويحسّن سلوك إعادة المحاولة والانتقال الاحتياطي، ويضيف بيانات وصفية مُولَّدة بشكل حتمي، ويستبدل التوثيق القديم القائم على الويكي بموقع خاضع للتحكم بالمصدر باستخدام VitePress وTypeDoc.
دعم ADAMANT Node v0.10.0
يُعيد هذا الإصدار توليد كائنات نقل البيانات (DTOs) من مراجعة مُثبتة من adamant-schema، ويشمل ذلك الطوابع الزمنية بالميلي ثانية، وبيانات التحميل والحالة، والأعداد الرقمية، وحقول المعاملات غير المؤكدة القابلة للتجاهل. ويُضيف معايير استعلام حالية للحصول على المعاملات والدردشات مثل returnUnconfirmed، وincludeDirectTransfers، والبحث عن المفوّضين حسب العنوان، واستعلامات المعاملات متعددة الأنواع. تُدمج الآن عوامل تصفية استعلامات المعاملات باستخدام and المنطقية بشكل افتراضي، وتُحدّد عوامل تصفية المبالغ ضمن معاملات التحويل. تُضيف مكتبة SDK دعمًا اختياريًا لبناء المعاملات باستخدام timestampMs ووظيفة getEpochTimeMs؛ وبما أن timestampMs ليست جزءًا من البايتات الموقعة، فإن التجزئات (hashes) والمعرفات (IDs) والتوقيعات تبقى محفوظة. تم تحديث فحوصات الصحة لتعمل مع استجابة الحالة الموحّدة للعقدة، وتدعم تصفية الحد الأدنى لإصدار العقدة بشكل شامل.
الموثوقية وسلوك WebSocket
لم يعد العميل يعيد محاولة استجابات POST المرفوضة بشكل صريح، بل يُرجع الآن أخطاء HTTP منظمة وغير قابلة لإعادة المحاولة بدلًا من الدوران في حلقة. تظل إعادة المحاولة والانتقال الاحتياطي للعقد النشطة ساريتين للمتطلبات الآمنة وأعطال الشبكة التي لا تملك استجابة HTTP. تدعم اشتراكات WebSocket الآن عناوين متعددة، وأنواع معاملات متعددة، وأنواع أصول دردشة متعددة، مع معالجات سهلة للمعاملات والرسائل، واستدعاءات اتصال وإعادة اتصال، واتصالًا وفصلًا صريحين، وأخطاء اتصال مُصنّفة، وتنظيف المستمعين، ومعالجة إعادة الاتصال المحدودة.
مكتبة SDK وحزمة npm الوحداتية
يبقى الجذر الرئيسي للحزمة مركّزًا على ADM ويمنع تحميل تنفيذات خاصة بالعملات. تمت إضافة تصدير مسارات فرعية لـ ADM، وواجهات DTOs للواجهة البرمجية، والمعاملات، والبيانات الوصفية، ومساعدات BTC وETH وDASH وDOGE، مع الحفاظ على دعم كل من CommonJS وESM. تتم مزامنة البيانات الوصفية الحتمية للمحفظة من مراجعة مُثبتة من adamant-wallets. تم إزالة كود واعتمادات Lisk وKlayr، وتم توحيد دعم اشتقاق العملات الخارجية والتحقق من العناوين. يتطلب هذا الإصدار Node.js 22 أو أحدث، ويستخدم بيانات مساحة عمل pnpm، ويُحدّث TypeScript والاعتمادات، ويُضيف اختبارات حزمة للمستهلك.
إصلاحات واجهة برمجة التطبيقات المحفوظة منذ v2.4.0
يُصلح هذا الإصدار سلوك التصويت للمفوّضين وفحوصات الصحة. يسمح بحمولات نصية لرسائل الإشارة، ويتحقق من المبالغ فقط للأنواع التي تحمل مبالغ. تُمثّل معرفات المعاملات كسلسلة نصية، وتُصدّر أدوات التحقق.
التوثيق، والأتمتة، والصيانة
يتم توفير التوثيق من خلال موقع VitePress يحتوي على مرجع واجهة برمجة التطبيقات المُنشأ عبر TypeDoc وأدلة. يتضمن هذا الإصدار سير عمل للوثائق على GitHub Pages مع CNAME، وملفات README وCONTRIBUTING مُحدّثة، وفحوصات مزامنة حتمية للنظام الأساسي والبيانات الوصفية، وجهاز تشغيل Jest مخصص، واختبارات للحزمة للمستهلك، وتغطية موسّعة، واختبارات لحدود الوحدات. تم نقل إعدادات التنظيف (Linting) وTypeScript إلى سلسلة الأدوات الحالية، وإزالة الملفات القديمة.
تغييرات كسرية
اشتراكات WebSocket تستخدم الآن allDirections بشكل افتراضي. سابقًا، كان العميل يُرسل فقط المعاملات الواردة باستخدام عامل تصفية مُدمج recipientId === admAddress؛ أما الآن، فإنه يُطلق المعاملات الواردة والصادرة بشكل افتراضي. لاستعادة السلوك القديم، قم بتمرير direction: 'incoming' في خيارات عميل WebSocket. يتطلب الأمر Node.js 22 أو أحدث. يجب استيراد مساعدات العملات من مسارات صريحة مثل adamant-api/coins/btc، ولن تُصدّر بعد الآن من جذر الحزمة. تم إزالة دعم Lisk وKlayr. تستخدم عوامل تصفية استعلامات المعاملات الآن and المنطقية بشكل افتراضي، وتُطبّق عوامل تصفية المبالغ فقط على معاملات التحويل. يجب على المستهلكين مراجعة استخدام withoutDirectTransfers المُهمَل والانتقال إلى includeDirectTransfers.
تبقى تنسيقات البايتات للمعاملات، والتوقيعات، والمعرفات، ومعاني التوقيع دون تغيير. يغطي اختبار الحزمة المُعبأة (packaged-tarball) كلاً من المستهلكين CommonJS وESM.