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.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
هذه الصفحة هي مرجع التعليمات الموثوق به لبرنامج AMM Routing. للحصول على أمثلة برمجية، اطّلع على
products/routing/code-demos. لمعاني الأخطاء، اطّلع على reference/error-codes.ملخص التعليمات
| العلامة | المميز | الدقيق | المتغير |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | الإدخال | قديم |
| 1 | SwapBaseOutWithUserAccount | الإخراج | قديم |
| 5 | CreateSyncNative | — | أداة |
| 6 | CloseTokenAccount | — | أداة |
| 8 | SwapBaseIn | الإدخال | حالي |
| 9 | SwapBaseOut | الإخراج | حالي |
- الدقيق: أي مبلغ يتم تحديده من قبل المتصل (الإدخال = إدخال دقيق
amount_in؛ الإخراج = إخراج دقيقamount_out). - المتغير: التعليمات القديمة تتطلب طابور
limit_pricesغير فارغ حتى لو لم يكن هناك أي قفزة CLMM في المسار. التعليمات الحالية (8 / 9) تتعامل مع طابورlimit_pricesالفارغ كـ “بدون فحوصات”، وهو المسار الموصى به للكود الجديد.
SwapBaseIn) أو العلامة 9 (SwapBaseOut) ما لم تكن لديك سبب محدد لاستدعاء متغير قديم.
تعليمات المبادلة الحالية (موصى بها)
هذه هي نقاط الدخول التي يجب أن يستخدمها الكود الجديد. بنية الوسيط هي نفسها متغيرات النمط القديم لكنlimit_prices قد يكون فارغًا.
SwapBaseIn (العلامة 8)
مبادلة متعددة القفزات بإدخال دقيق. يحدد المتصل amount_in؛ يقوم الموجّه بالتنفيذ قفزة تلو الأخرى ويتحقق من أن المبلغ النهائي يصل إلى minimum_amount_out أو يتجاوزه.
الوسيطات
- المتصل يوقّع باستخدام
user_input_ata. user_input_ata.amount >= amount_in.- كل ATA وسيط للمستخدم موجود ويملكه المتصل.
- إذا كانت أي قفزة هي CLMM وكنت تريد فرض سعر محدود، قدّم إدخالة واحدة
limit_pricesلكل قفزة CLMM.
- رصيد
user_input_ataانخفض بمقدارamount_in. - رصيد
user_output_ataزاد بمقدار ≥minimum_amount_out. - كل ATA وسيط يُترك بدون تغيير صافي (المسار يستهلك ما أنتجته القفزة السابقة).
ExceededSlippage— الإخراج النهائي <minimum_amount_out.InvalidInput— مسار فارغ أو حسابات سيئة التشكيل أوpool_programغير مدعوم.SqrtPriceX64— سعر قفزة CLMM تحرك خارج حدlimit_pricesالمُوفّر (فقط عند عدم كونlimit_pricesفارغًا).
SwapBaseOut (العلامة 9)
مبادلة متعددة القفزات بإخراج دقيق. يحدد المتصل amount_out؛ يتحقق الموجّه من أن الإدخال الفعلي لا يتجاوز maximum_amount_in.
الوسيطات
- المتصل يوقّع باستخدام
user_input_ata؛ الرصيد>= maximum_amount_in(الحالة الأسوأ). - كل ATA وسيط و ATA الإخراج موجود.
user_input_ataانخفض بالمبلغ الفعلي المطلوب (≤maximum_amount_in).user_output_ataزاد بمقدارamount_outبالضبط.
ExceededSlippage— الإدخال المطلوب يتجاوزmaximum_amount_in.InvalidInputوSqrtPriceX64— كما هو الحال بالنسبة للعلامة 8.
تعليمات المبادلة القديمة
هذه المتغيرات الأقدم لا تزال قابلة للاستدعاء في البرنامج المباشر وموثّقة هنا للتمام. فضّل العلامة 8 / العلامة 9 للكود الجديد؛ كلا المتغيرين القديمين أدناه يتطلبان طابورlimit_prices غير فارغ حتى عندما لا تكون هناك قفزة CLMM، مما يجعلهما محرجين في الاستخدام.
SwapBaseInWithUserAccount (العلامة 0)
مبادلة متعددة القفزات بإدخال دقيق، متطابقة في الشكل مع العلامة 8 لكن مع متطلب limit_prices أكثر صرامة.
الوسيطات
SwapBaseIn (العلامة 8). جميع الفتحات الوسيطة يجب أن تكون ATAs يملكها المتصل.
الشروط المسبقة
- المتصل يوقّع باستخدام
user_input_ata. user_input_ata.amount >= amount_in.- جميع ATAs الوسيطة للمستخدم موجودة ويملكها المتصل.
limit_pricesغير فارغ (إدخال واحد لكل قفزة CLMM؛ ملء بقيم نائبة إذا لم تكن هناك قفزة CLMM).
- رصيد
user_input_ataانخفض بمقدارamount_in. - رصيد
user_output_ataزاد بمقدار ≥minimum_amount_out.
ExceededSlippage.InvalidInput—limit_pricesالفارغ مرفوض في هذا المتغير القديم.SqrtPriceX64.
SwapBaseOutWithUserAccount (العلامة 1)
مبادلة بإخراج دقيق، نظير قديم لـ SwapBaseOut (العلامة 9).
الوسيطات
- المتصل يوقّع باستخدام
user_input_ata. user_input_ata.amount >= maximum_amount_in.- جميع ATAs الوسيطة للمستخدم موجودة ويملكها المتصل.
limit_pricesغير فارغ.
user_input_ataانخفض بالمبلغ الفعلي المطلوب (≤maximum_amount_in).user_output_ataزاد بمقدارamount_outبالضبط.
ExceededSlippage.InvalidInput.SqrtPriceX64.
تعليمات الأدوات
CreateSyncNative (العلامة 5)
إنشاء (إذا كان مفقودًا) ومزامنة ATA wSOL في خطوة واحدة. مفيد عند تغليف SOL بشكل مضمّن جنبًا إلى جنب مع المبادلة.
الوسيطات
- ينشئ
user_wsol_ataإذا لم يكن موجودًا بعد. - ينقل
amountلامبورتات من رصيد SOL الأصلي للموقّع إلى ATA. - يستدعي
SyncNativeعلى ATA بحيث يعكس رصيد الرمز المميز اللامبورتات الجديدة.
InvalidOwner— مالكuser_wsol_ataليس الموقّع.
CloseTokenAccount (العلامة 6)
إغلاق حساب رمز مميز وإرجاع إيجاره إلى محفظة الوجهة. يترافق مع CreateSyncNative: بعد مبادلة ساق wSOL، استدعِ CloseTokenAccount لاسترجاع الإيجار الذي كان يدعم ATA wSOL.
الوسيطات — لا توجد.
الحسابات
- يغلق
token_account_to_close. - ينقل رصيد لامبورتات معفي الإيجار (~0.00203928 SOL على الشبكة الرئيسية لحساب SPL Token عادي) إلى
destination_for_rent. - يجب أن يكون رصيد حساب الرمز صفرًا.
InvalidOwner— المتصل ليس مالك ATA.- رصيد حساب الرمز غير صفري.
ما يلي
products/routing/code-demos— بناء كل من هذه التعليمات في TypeScript.products/routing/accounts— مفاتيح التوزيع حسب كل AMM وتخطيط الحسابات لكل قفزة.reference/error-codes— قائمةRouteErrorالكاملة.


