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

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

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

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

معرّف البرنامج: انظر /ar/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.
ملاحظة حول إعادة الترقيم. تمت إعادة ترقيم enum 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 هو enum 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 أنهم بحاجة إلى تحديث معالجات الأخطاء الخاصة بهم. المصادر: