Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
مصدر الحقيقة. الجداول أدناه مُعاد توليدها من ملف
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.
| الرمز | المتغير | سلسلة #[msg] | السبب الشائع | رسالة UX الموصى بها |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | المُستدعي ليس الجهة المُخوَّلة للتحكم في هذه التعليمة الإدارية. | ”هذا الإجراء مخصص لمسؤول الـ pool فقط.” |
| 6001 | InvalidOwner | Input account owner is not the program address | الحساب الممرَّر مملوك لبرنامج خاطئ (في الغالب برنامج token خاطئ أو PDA لبرنامج مختلف). | ”خطأ داخلي: عدم تطابق مالك الحساب — أعِد التحميل وحاول مجددًا.” |
| 6002 | EmptySupply | Input token account empty | رصيد حساب LP أو token يساوي صفرًا في خطوة تستلزم قيمة موجبة. | ”لا يوجد شيء للسحب.” |
| 6003 | InvalidInput | InvalidInput | وسيطة خاطئة بشكل عام (مبلغ خارج النطاق، علامة خاطئة). | ”إدخال غير صالح — تحقق من المبالغ وحاول مجددًا.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | حساب LP mint الممرَّر لا يطابق pool_state.lp_mint. | ”خطأ داخلي: LP mint خاطئ — أعِد تحميل بيانات الـ pool.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | السعر المُنفَّذ أسوأ من minAmountOut / maxAmountIn الذي حدده المستخدم. | ”تجاوز السعر حدود تحمل الـ slippage. ارفع قيمة الـ slippage أو أعِد المحاولة.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | تقريب رياضيات الإيداع / السحب أحد الجانبين إلى صفر (الحجم صغير جدًا). | ”المبلغ أدنى من الحد الأدنى لهذا الـ pool.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (grammar in source) | صادف الـ pool امتدادًا في Token-2022 لا يستطيع التعامل معه بأمان (مثلاً TransferHook أو DefaultAccountState=Frozen). | ”هذا الـ token يحتوي على امتداد غير مدعوم في CPMM من Raydium.” |
| 6008 | InvalidVault | invaild vault (typo in source) | حساب vault الممرَّر لا يطابق المُسجَّل في pool_state. | ”خطأ داخلي: vault خاطئ — أعِد التحميل وحاول مجددًا.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (grammar in source) | عند تهيئة الـ pool، كان إجمالي LP المحسوب أقل من كمية القفل الدائم. | ”السيولة الأولية صغيرة جدًا. زِد مبلغ الإيداع.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | المبلغ الفعلي بعد التحويل لـ mint بميزة رسوم Token-2022 لم يطابق التوقع المُحسَب مسبقًا. | ”تغيرت رسوم تحويل الـ token أثناء المعاملة. أعِد المحاولة.” |
| 6011 | MathOverflow | Math overflow | حدث تجاوز في عملية حسابية وسيطة للـ swap أو الإيداع أو الرسوم. | ”المبلغ كبير جدًا لهذا الـ pool.” |
| 6012 | InsufficientVault | Insufficient vault | رصيد vault الـ pool أقل مما يلزم لتغطية الإخراج المطلوب. | ”السيولة في الـ pool غير كافية لهذا الحجم.” |
| 6013 | InvalidFeeModel | Invalid fee model | قام المسؤول بضبط مجموعة معاملات AmmConfig مرفوضة على السلسلة. | غير مطلوب — مسار إداري فقط. |
| 6014 | NoFeeCollect | Fee is zero | استُدعيت collect_protocol_fee / collect_fund_fee ولا توجد رسوم قابلة للتحصيل. | غير مطلوب — مسار إداري؛ يُتجاهل في الأدوات. |
أخطاء CLMM
معرف البرنامج: انظر reference/program-addresses. المصدر:raydium-clmm/programs/amm/src/error.rs.
| الرمز | المتغير | سلسلة #[msg] | السبب الشائع | رسالة UX الموصى بها |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | المُستدعي ليس المسؤول المُهيَّأ لهذه التعليمة. | ”هذا الإجراء مخصص لمسؤول الـ pool فقط.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | مرَّر المسؤول قيمة param غير معروفة إلى update_amm_config. | غير مطلوب — مسار إداري فقط. |
| 6002 | AccountLack | Account lack | حساب متبقٍّ مطلوب غائب عن المعاملة (عادةً tick-array أو امتداد oracle). | ”خطأ داخلي: حساب مفقود — أعِد تحميل بيانات الـ pool.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | محاولة إغلاق مركز لا يزال يحتوي على سيولة أو رسوم أو مكافآت غير محصَّلة. | ”اسحب كل السيولة واستلم الرسوم والمكافآت قبل إغلاق المركز.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower أو tick_upper خارج النطاق [-443636, 443636]. | ”نطاق السعر خارج حدود هذا الـ pool.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | ”يجب أن يكون السعر الأدنى أقل من السعر الأعلى.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | تجاوز سفلي في tick الأدنى. | ”السعر الأدنى منخفض جدًا.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | تجاوز علوي في tick الأعلى. | ”السعر الأعلى مرتفع جدًا.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | الـ tick المُرسَل ليس مضاعفًا لـ tick_spacing الخاص بالـ pool. | ”اضبط السعر على أقرب تدرج صالح.” |
| 6009 | InvalidTickArray | Invalid tick array account | PDA خاطئ لفتحة tick-array. | ”خطأ داخلي: tick array خاطئ — أعِد تحميل بيانات الـ pool.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | خطأ بمقدار واحد في فهرسة tick-array. | ”خطأ داخلي: خطأ في حدود tick-array.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | sqrt_price_limit الممرَّر من المُستدعي خارج النطاق الصالح. | ”حد السعر خارج النطاق.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | انجرف سعر sqrt الحالي للـ pool خارج النطاق أثناء الـ swap. | ”أعِد محاولة الـ swap.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | انتهاك ثابت داخلي عند تقليص السيولة. | ”خطأ داخلي: خطأ في محاسبة السيولة.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | انتهاك ثابت داخلي عند زيادة السيولة. | ”خطأ داخلي: خطأ في محاسبة السيولة.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | استدعاء increase-liquidity مع كون amount_0_max وamount_1_max كليهما صفرًا. | ”قدِّم token واحدًا على الأقل.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | السيولة في المركز غير كافية لتلبية طلب السحب. | ”مبلغ السحب يتجاوز سيولة المركز.” |
| 6017 | PriceSlippageCheck | Price slippage check | فشل سعر التنفيذ في اختبار الـ slippage الخاص بالمُستدعي. | ”تجاوز السعر حدود تحمل الـ slippage. ارفع قيمة الـ slippage أو أعِد المحاولة.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: المبلغ المُخرَج أقل من other_amount_threshold. | ”تجاوز الـ slippage — لم يُستوفَ الحد الأدنى للإخراج.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: المبلغ المُدخَل يتجاوز other_amount_threshold. | ”تجاوز الـ slippage — تم تجاوز الحد الأقصى للإدخال.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | amount بقيمة صفر في تعليمة swap. | ”أدخل مبلغًا أكبر من الصفر.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | حساب input-vault في الـ swap لا يطابق vault المسجَّل في الـ pool. | ”خطأ داخلي: input vault خاطئ — أعِد تحميل بيانات الـ pool.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | تقريب رياضيات الـ swap إلى الصفر، وعادةً لكميات ضئيلة جدًا. | ”المبلغ صغير جدًا للمبادلة في هذا الـ pool.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | حسابات tick-array المتبقية غير كافية لنطاق الـ swap. | ”خطأ داخلي: tick-arrays غير كافية — أعِد تحميل بيانات الـ pool.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | حساب tick-array الأول الممرَّر لا يغطي الـ tick الحالي. | ”خطأ داخلي: أول tick array خاطئ — أعِد تحميل بيانات الـ pool.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index خارج النطاق [0, 2]. | غير مطلوب — مسار إداري. |
| 6026 | FullRewardInfo | The init reward token reach to the max | الـ pool وصل بالفعل للحد الأقصى (3) من mints المكافآت المُهيَّأة. | غير مطلوب — مسار إداري. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | mint المكافأة مكرر مع واحد موجود مسبقًا. | غير مطلوب — مسار إداري. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | قبل الفتحة 2، يجب أن يساوي mint المكافأة أحد vault mints الخاصة بالـ pool. | غير مطلوب — مسار إداري. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | وقت بدء/انتهاء الإصدار أو معدل الثانية خاطئ. | غير مطلوب — مسار إداري. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | عدد الحسابات المتبقية الممرَّرة إلى CollectReward خاطئ. | ”خطأ داخلي: عدد حسابات خاطئ — أعِد التحميل وحاول مجددًا.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | فترة إصدار المكافأة غير صالحة (end <= start، مدة صفرية). | غير مطلوب — مسار إداري. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | حاول المسؤول تعديل الإصدارات خارج نافذة 72 ساعة حول حدود الدورة. | غير مطلوب — مسار إداري. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | فتحة المكافأة مُشار إليها دون تهيئة. | غير مطلوب — مسار إداري. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | صادف CLMM امتدادًا في Token-2022 لا يستطيع التعامل معه. | ”هذا الـ token يحتوي على امتداد غير مدعوم في CLMM من Raydium.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | تجاوز الـ swap نطاق tick غير مغطى بالخريطة الأساسية؛ مطلوب حساب خريطة امتداد. | ”خطأ داخلي: امتداد tick-array مفقود — أعِد تحميل بيانات الـ pool.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | لا توجد سيولة كافية في اتجاه الـ swap. | ”السيولة غير كافية لهذا الحجم من الـ swap.” |
| 6037 | MaxTokenOverflow | Max token overflow | تجاوز مبلغ الإدخال/الإخراج حد u64. | ”المبلغ كبير جدًا لهذا الـ pool.” |
| 6038 | CalculateOverflow | Calculate overflow | تجاوز في حسابات الرسوم أو السيولة. | ”المبلغ كبير جدًا لهذا الـ pool.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | المبلغ الملاحَظ لرسوم تحويل Token-2022 لم يطابق المتوقع. | ”تغيرت رسوم تحويل الـ token أثناء المعاملة. أعِد المحاولة.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | استُدعيت IncreaseLimitOrder / DecreaseLimitOrder على أمر لا تبقى منه جزء غير مُنفَّذ. | ”هذا الأمر المحدود مُنفَّذ بالكامل — سوِّيه لاستلام الإخراج.” |
| 6041 | InvalidOrderPhase | Invalid order phase | تعديل أمر لا تتطابق مرحلة cohort FIFO فيه مع المرحلة الحالية للـ tick. | ”لا يمكن تنفيذ هذا الإجراء في الحالة الراهنة للأمر.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | حجم الأمر أدنى من الحد الأدنى للـ pool (أو يساوي صفرًا) عند الفتح أو الزيادة أو التقليص. | ”حجم الأمر أقل من الحد الأدنى للـ pool.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | وصل عداد order_phase لـ cohort في الـ tick للتشبع؛ لا يمكن فتح أوامر إضافية عند هذا الـ tick حتى تُسوَّى cohorts الحالية وتُحدَّث. | ”عدد كبير جدًا من الأوامر النشطة عند هذا السعر؛ جرب tick مجاورًا أو انتظر حتى تُسوَّى الأوامر.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | رُفضت CreateDynamicFeeConfig / UpdateDynamicFeeConfig؛ أو فعَّل CreateCustomizablePool الرسوم الديناميكية بدون إعداد صالح. | غير مطلوب في المسار الإداري؛ “إعداد الرسوم الديناميكية غير صالح” في مسار المستخدم. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | مرَّر CreateCustomizablePool قيمة collect_fee_on خارج {0, 1, 2}. | ”خطأ داخلي: وضع رسوم غير صالح.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | استُدعي CreateCustomizablePool (أو مسار آخر يقبل sqrt price أولية مخصصة) مع sqrt_price_x64 == 0. | ”يجب أن يكون السعر الأولي أكبر من الصفر.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | استُدعي مسار توفير السيولة مع liquidity == 0 ودون مبلغ تعويضي. | ”يجب أن تكون قيمة السيولة أكبر من الصفر.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | احتسب مسار فتح المركز بالمبلغ liquidity == 0 ولم يُزوِّد المُستدعي base_flag لتحديد الجانب الأساسي. | ”قدِّم قيمة سيولة غير صفرية أو حدِّد أيُّ token هو الأساسي.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | استُدعي مسار Token-2022 دون حساب mint للإدخال/الإخراج اللازم للتحقق من الامتدادات ورسوم التحويل. | ”خطأ داخلي: حساب mint مفقود — أعِد تحميل بيانات الـ pool.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | نفس الحالة السابقة لحساب برنامج SPL-Token-2022. | ”خطأ داخلي: برنامج Token-2022 مفقود — أعِد التحميل وحاول مجددًا.” |
ملاحظة حول إعادة الترقيم. أُعيد ترقيم تعدادمصدر إعادة التوليد: github.com/raydium-io/raydium-clmm — error.rs.ErrorCodeفي CLMM في هذا الإصدار: جرى حذف/إصلاح خمسة متغيرات قديمة (LOK،ZeroMintAmount،InvalidLiquidity،TransactionTooOld،InvalidRewardDesiredAmount) وعدة أخطاء إملائية (Liquitity،enought،emissiones)، وأُضيفت أحد عشر متغيرًا جديدًا في النهاية. ونظرًا لأن Anchor يرقّم الأخطاء وفق ترتيب المصدر، فقد انزاحت كل رموز6000فما فوق مقارنةً بإصدارات ما قبل الإطلاق. يحتاج العملاء الذين شفّروا الرموز الرقمية يدويًا بناءً على نسخة سابقة إلى تحديث خريطة الرموز.
أخطاء AMM v4 وFarm v3 / v5 / v6 وLaunchLab
هذه البرامج موثَّقة في فصولها المخصصة (انظرproducts/amm-v4/instructions، وproducts/farm-staking/instructions، وproducts/launchlab/instructions). نظرًا لاستخدام هذه البرامج مزيجًا من Anchor وأسطح أخطاء Solana العادية، توجد جداول أخطائها بجوار مرجع التعليمات لا هنا. الرموز أدناه محجوزة لتلك الفصول:
| البرنامج | نطاق الرموز (Anchor فقط) | المرجع |
|---|---|---|
| AMM v4 | رموز u32 مخصصة، ليست على طريقة Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | رموز u32 مخصصة | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
تعيين أخطاء SDK إلى أخطاء البرنامج
يُغلِّف TypeScript SDK الرسمي أخطاء السلسلة فيSendTransactionError، وبالنسبة لبرامج Anchor في AnchorError:
Error Number: (\d+) ثابت عبر إصدارات Anchor ويمكن الاعتماد عليه للمطابقة.
إعادة توليد هذه الجداول
عند ترقية برنامج وإضافة خطأ جديد، أعِد الاستخراج من المصدر:reference/changelog عند إضافة متغير جديد، حتى يعلم المُدمِجون الذين يُحدِّثون SDK بضرورة تحديث معالجات الأخطاء لديهم.
المصادر:


