Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
مصدر الحقيقة. الجداول أدناه يتم إعادة إنشاؤها من ملف error.rs في كل برنامج من مستودعات Raydium العامة. عند ترقية برنامج وإضافة متغير جديد، أعد تشغيل الاستخراج (الرابط في أسفل كل جدول) وأضف إلى الجدول بدلاً من إعادة ترتيب — رموز أخطاء Anchor يتم تعيينها حسب ترتيب المصدر، وليس الاسم، لذا فإن إعادة الترتيب تكسر معالجة الأخطاء للمدمجين.

كيفية عمل رموز أخطاء Anchor

يعين Anchor لكل متغير في تعريف ErrorCode للبرنامج رمزًا رقميًا يبدأ من 6000. تعرض المعاملة الفاشلة:
  • رمز الخطأ الرقمي (مثل 0x1771 = 6001) في سجلات المعاملة.
  • اسم الخطأ (مثل InvalidOwner) من IDL.
  • سلسلة #[msg(...)] التي أصدرها Anchor في log_messages.
يجب على المدمجين المطابقة على الرمز الرقمي، وليس سلسلة الرسالة (يمكن إعادة صياغة السلسلة دون زيادة الإصدار).

أخطاء CPMM (AMM القياسي)

معرّف البرنامج: انظر reference/program-addresses. المصدر: raydium-cp-swap/programs/cp-swap/src/error.rs. مصدر إعادة الإنشاء: github.com/raydium-io/raydium-cp-swap — error.rs.

أخطاء CLMM

معرّف البرنامج: انظر reference/program-addresses. المصدر: raydium-clmm/programs/amm/src/error.rs.
ملاحظة حول إعادة الترقيم. تم إعادة ترقيم تعريف ErrorCode في CLMM في هذا الإصدار: تم حذف/إصلاح خمسة متغيرات قديمة (LOK، ZeroMintAmount، InvalidLiquidity، TransactionTooOld، InvalidRewardDesiredAmount) وعدة أخطاء إملائية (Liquitity، enought، emissiones)، وتمت إضافة أحد عشر متغيرًا جديدًا (6040–6050) بواسطة إصدار الأوامر المحدودة؛ 6051 (InvalidTickArrayBitmapExtensionAccount) جاء من تغيير منفصل لاحقًا. هذا جعل 52 متغيرًا، 6000–6051، وهو العدد الذي يبلغ عنه IDL على السلسلة للبرنامج المنتشر حاليًا. تضيف ترقية 2026-09-30 6052 دون تحويل أي شيء، لـ 53 في المجموع. لأن Anchor يرقم الأخطاء حسب ترتيب المصدر، فإن كل رمز في أو بعد 6000 قد تحول بالنسبة لبناءات ما قبل الإصدار. يحتاج العملاء الذين قاموا بترميز الرموز الرقمية مقابل إصدار سابق إلى إعادة تعيين.
مصدر إعادة الإنشاء: github.com/raydium-io/raydium-clmm — error.rs.

أخطاء AMM v4، Farm v3 / v5 / v6، LaunchLab

يتم توثيق هذه البرامج في فصولها الخاصة (انظر products/amm-v4/instructions، products/farm-staking/instructions، products/launchlab/instructions). لأن هذه البرامج تستخدم مزيجًا من سطوح أخطاء Anchor والـ Solana العادية، تعيش جداول الأخطاء الخاصة بها بجانب مرجع التعليمات بدلاً من هنا. الرموز أدناه محجوزة بواسطة تلك الفصول: تحافظ إصدارات LaunchLab الأخيرة على الرموز 6000–6021 دون تغيير. أزال إصدار 2026-08-17 أخطاء الوصول العام الشاملة للمنصة السابقة وعيّن 6022 لخطأ التحقق من حساب السماح؛ يضيف إصدار 2026-08-24 6023؛ يضيف إصدار 2026-08-31 6024–6030؛ يضيف إصدار 2026-09-09 6031: تم حذف المتغيرات القديمة PlatformGlobalAccessDenied (6022) و InvalidPlatformGlobalAccess (6023). لا تفك تشفير 6022 باستخدام IDL السابق، ولاحظ أن 6023 — التي أفرغتها ترقية 2026-08-17 — يتم إعادة استخدامها بواسطة إصدار 2026-08-24 لخطأ غير ذي صلة، لذا يجب عدم فك تشفيرها باستخدام IDL من أي إصدار سابق. يتم الاحتفاظ بـ 6020 عن قصد. يرقم Anchor المتغيرات حسب الموضع، لذا حذفه سيحول كل رمز بعده ويكسر كل عميل يفك تشفير 6021–6031.

AMM v4: AmmError ليس مرقمًا بأسلوب Anchor

يسبق AMM v4 Anchor. AmmError هو تعريف thiserror عادي مع FromPrimitive، محول عبر ProgramError::Custom(e as u32)، لذا تبدأ رموزه من 0، وليس 6000 — وكما هو الحال مع Anchor، يتم تعيينها حسب ترتيب المصدر. يضيف ترقية 2026-09 متغيرًا واحدًا: الرموز 0–59 لم تتغير، لذا لا شيء يتحول. في سجلات المعاملة يظهر هذا كـ custom program error: 0x3c. مصدر إعادة الإنشاء: github.com/raydium-io/raydium-amm — error.rs.

ربط أخطاء SDK بأخطاء البرنامج

يلف SDK TypeScript الرسمي أخطاء على السلسلة إلى SendTransactionError وللبرامج Anchor، AnchorError:
إذا كنت لا تستخدم عميل Anchor، حلل سجلات المعاملة:
النمط Error Number: (\d+) مستقر عبر إصدارات Anchor وآمن للمطابقة.

إعادة إنشاء هذه الجداول

عند ترقية برنامج وإضافة خطأ جديد، أعد الاستخراج من المصدر:
قم دائمًا بتحديث reference/changelog عند إضافة متغير جديد، حتى يعرف المدمجون الذين يرقون SDK أنهم بحاجة إلى تحديث معالجات الأخطاء الخاصة بهم. المصادر: