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 على السلسلة للبرنامج المنشور. ولأن 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 أنهم بحاجة إلى تحديث معالجات الأخطاء الخاصة بهم. المصادر: