هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
إدخال سجل تغييرات التوثيق. للاطلاع على فهرس جميع التحديثات، انظر
reference/changelog. للحصول على الخط الزمني التاريخي للبروتوكول نفسه، انظر introduction/history-and-milestones.ملخص سريع للمدمجين
- الأوامر المحدودة أصبحت الآن بدائل CLMM من الدرجة الأولى. يمكن لمزودي السيولة فتح أمر بتجزئة واحدة على مجموعة تدعمها؛ يتم ملء الأمر بنظام FIFO عندما يعبر المبادل التجزئة، ويمكن لحارس خارج السلسلة (
limit_order_admin) تسوية المخرجات المملوءة دون أن يكون المالك متصلاً. سبع طرق SDK جديدة (openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,closeLimitOrder,closeAllLimitOrder,settleAllLimitOrder) وثلاث نقاط نهاية Temp API جديدة تحت/limit-order/(الأوامر النشطة، السجل لكل مستخدم، سجل الأحداث لكل PDA) تغطي التدفق الكامل. - الرسم الأحادي الاتجاه (
CollectFeeOn) يسمح للمجموعة بجمع رسوم المبادلة من جانب الإدخال (الإرث، الوضع0)، أو دائماً منtoken_0(الوضع1)، أو دائماً منtoken_1(الوضع2). مفيد عندما يكون أحد جانبي الزوج هو رمز المحاسبة الأساسي. - الرسم الديناميكي يسمح للمجموعة بالاختيار في رسم إضافي يتتبع التقلبات يرتفع مع حركة التجزئة السريعة ويتحلل بمرور الوقت، معايرة بواسطة
DynamicFeeConfigلكل طبقة وDynamicFeeInfoلكل مجموعة. نقطة النهاية الجديدة/main/clmm-dynamic-configتعرض قائمة الطبقات. - تعليمة جديدة،
CreateCustomizablePool، تعرض جميع الأزرار الثلاثة عند إنشاء المجموعة. يستمرCreatePoolالكلاسيكي في العمل للمجموعات الافتراضية بدون أوامر محدودة. - تغيير كسر الفهرس: تم إيقاف عدادات الحجم لكل اتجاه (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) وعدادات الرسوم مدى الحياة (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) علىPoolStateإلى الحشو لإفساح المجال لـfee_onوdynamic_fee_info. يجب على الفهارس التي تقرأ هذه الحقول مباشرة الترحيل إلى حلقةObservationعلى السلسلة أو الواجهة البرمجية.
لماذا هذا مهم (للمتداولين وموفري السيولة والمدمجين)
- المتداولون يحصلون على عروض أسعار أضيق على الأزواج طويلة الذيل والمدفوعة بالأحداث: الرسم الديناميكي يسمح للمجموعة بامتصاص رسوم التقلبات من المتخذ دون أن يضطر موفرو السيولة إلى توسيع النطاقات بنشاط، وسلالم الأوامر المحدودة تعمق السيولة على السلسلة بأسعار محددة دون الالتزام برأس مال على نطاق واسع.
- موفرو السيولة يحصلون على استراتيجية ثالثة إلى جانب النطاقات المركزة والمراكز على النطاق الكامل: وقف أوامر بسعر دقيق، احصل على ملء عند زيارة السعر، تسوية في رمز الاقتباس. لا يلزم إعادة توازن نشطة للجزء المملوء.
- المدمجون يمكنهم نمذجة مجموعات الرسوم الديناميكية بشكل حتمي — الخوارزمية والمعاملات موجودة بالكامل على السلسلة، وطبقات المعايرة قابلة للاستعلام، ومسار المبادلة لم يتغير في الشكل (فقط الرسم لكل خطوة يختلف).
ما تغير في البرنامج
حسابات جديدة
DynamicFeeConfig— سجل معايرة لكل طبقة (فترة التصفية، فترة الاضمحلال، عامل الاختزال، التحكم في الرسم الديناميكي، أقصى مراكم التقلبات). تم إنشاؤه بواسطةCreateDynamicFeeConfig(المسؤول)، المشار إليه بواسطةCreateCustomizablePoolعند تفعيل الرسم الديناميكي.LimitOrderState— حساب لكل أمر (بذور PDA:[owner, limit_order_nonce, order_nonce]) يحتفظ بالمجموعة والتجزئة والجانب ومبلغ الإدخال ونسبة غير المملوءة ومرحلة مجموعة FIFO والقيود المحاسبية. دورة الحياة ضمنية (filled_amountمقابلtotal_amount، بالإضافة إلى وجود الحساب):Open → Filled → Settled → Closed.LimitOrderNonce— عداد متزايد بشكل رتيب لكل (المالك، nonce_index) يحصل على بذور PDA للأمر المحدود. يسمحnonce_index: u8للمالك نفسه بتقسيم الأوامر إلى ما يصل إلى 256 تدفق nonce مستقل.
إعادة تشكيل PoolState
| مجموعة الحقول | التخطيط القديم | التخطيط الجديد |
|---|---|---|
| عدادات الحجم لكل اتجاه | swap_in_amount_token_0, swap_out_amount_token_0, swap_in_amount_token_1, swap_out_amount_token_1 | مطوية في padding5: [u128; 4] |
| عدادات الرسوم مدى الحياة | total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1 | مطوية في padding6: [u64; 4] |
| الرسم الأحادي الاتجاه | — | fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only) |
| الرسم الديناميكي | — | dynamic_fee_info: DynamicFeeInfo (مضمن) |
PoolState إلى حلقة Observation أو الواجهة البرمجية. لم يتم تصفير العدادات المتقاعدة على المجموعات الموجودة (فهي تحتفظ بأي شيء حدث أن تحمله آخر مرة)، لذا فإن إعادة قراءتها بعد الترقية ستعيد بيانات قديمة.
إضافات TickState (لا يوجد تغيير كسر)
تمت إضافة أربعة حقول جديدة في نهاية TickState، مما يحل محل بعض الحشو الخاص به:
order_phase: u64— عداد يميز مجموعات الأوامر المحدودة في هذه التجزئة.orders_amount: u64— إجمالي الإدخال الملتزم به من قبل جميع الأوامر المفتوحة في هذه التجزئة (ليس كلها غير مملوء بالكامل).part_filled_orders_remaining: u64— الإدخال الذي لا يزال غير مملوء في المجموعة التي يتم استهلاكها حالياً بواسطة المبادلات.unfilled_ratio_x64: u128— نسبة Q64.64 المستخدمة لحساب حصة الملء لكل أمر.
تعليمات جديدة
CreateDynamicFeeConfig(المسؤول) — إنشاء طبقةDynamicFeeConfigمعايرة. السلطة: نفس multisig الخزانة مثلCreateAmmConfig.UpdateDynamicFeeConfig(المسؤول) — تحديث معاملات طبقة موجودة.CreateCustomizablePool— نقطة دخول إنشاء المجموعة التي تعرضcollect_fee_onوenable_dynamic_feeوdynamic_fee_config. موجودة جنباً إلى جنب معCreatePool؛ نوصي بـCreateCustomizablePoolلأي مجموعة جديدة تحتاج إلى الأزرار الجديدة.OpenLimitOrder— فتح أمر محدود بتجزئة واحدة. يرفعLimitOrderNonce، يخصصLimitOrderState، يضع الأمر في مجموعة FIFO في التجزئة.IncreaseLimitOrder/DecreaseLimitOrder— اضبط الجزء غير المملوء من الأمر. يعود على أمر مملوء بالكامل معInvalidOrderPhase.SettleLimitOrder— اكسح المخرجات المملوءة إلى ATA المالك. يمكن للمتصل أن يكون المالك أو حارسlimit_order_adminللمجموعة.CloseLimitOrder— أغلق أمراً مسوى بالكامل لاسترجاع الإيجار.
تغييرات سلوك SwapV2
مسار المبادلة نفسه لم يتغير في الشكل، لكن ثلاثة أشياء تحدث الآن على طول الطريق:
- الرسم الديناميكي (عند التفعيل): يتم تحديث
DynamicFeeInfoللمجموعة في كل خطوة (الاضمحلال → التراكم → الحد)، ويتم إضافة الرسم الناتج على رأس الرسم الأساسي لتلك الخطوة. - مطابقة الأوامر المحدودة (عندما تعبر الخطوة تجزئة مهيأة بها أوامر مفتوحة): يتم استهلاك جزء من إدخال المبادلة بنظام FIFO لملء المجموعة في تلك التجزئة، مع تحديث
unfilled_ratio_x64بشكل ذري. - توجيه الرسم الأحادي الاتجاه (عند
fee_on != 0): يتم أخذ الرسم منtoken_0أوtoken_1بغض النظر عن اتجاه المبادلة، بدلاً من أخذه دائماً من جانب الإدخال.
أكواد الأخطاء الجديدة
تم إعادة ترقيم تعدادErrorCode في هذا الإصدار: تمت إزالة خمسة متغيرات قديمة (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount)، وتمت إضافة أحد عشر متغيراً جديداً. لأن Anchor ترقم الأخطاء حسب ترتيب التعداد من 6000، كل رمز خطأ في أو بعد المواضع المحذوفة قد تحول — العملاء الذين قاموا بترميز الأكواد الرقمية بشكل ثابت يحتاجون إلى إعادة تعيين.
الأكواد الجديدة هي:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
ما تغير في SDK (@raydium-io/raydium-sdk-v2)
- طرق جديدة على
raydium.clmm:createCustomizablePool,openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,settleAllLimitOrder,closeLimitOrder,closeAllLimitOrder. - مساعدات REST جديدة على
raydium.api:getClmmDynamicConfigs,getClmmLimitOrderConfigs. - أنواع جديدة: تعداد
CollectFeeOn،DynamicFeeConfig،DynamicFeeInfo،LimitOrderState،LimitOrderConfig. - إعادة تنظيم داخلية: تم نقل
utils/إلىlibraries/. برميل الحزمة لم يتغير؛ فقط الواردات العميقة تحت@raydium-io/raydium-sdk-v2/utils/...تحتاج إلى التحديث إلى…/libraries/....
products/clmm/code-demos.
ما تغير في الواجهات البرمجية
api-v3— نقطتا نهاية جديدتان تحت/main/:GET /main/clmm-dynamic-config— قائمة طبقاتDynamicFeeConfig.GET /main/clmm-limit-order-config— تكوين الأوامر المحدودة لكل مجموعة.
temp-api-v1— ثلاث نقاط نهاية جديدة تحت/limit-order/:GET /limit-order/order/list?wallet=…— الأوامر المتوقفة حالياً للمحفظة (مفتوحة وممتلئة جزئياً، تُقدم من ذاكرة التخزين المؤقت Redis للفهرس؛ نفس الحمولة تغطي كلا المرحلتين عبرtotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— الأوامر المحدودة التاريخية للمحفظة. مرشحات اختيارية:poolId,mint1,mint2,hideCancel. مرقمة بالمؤشر عبرnextPageId/size(الحد الأقصى 100).GET /limit-order/history/event/list-by-pda?pda=…— سجل الأحداث لكل PDA (open/increase/decrease/settle/close) لواحد أو أكثر من PDAs الأوامر المحدودة المفصولة بفواصل. مرقمة بالمؤشر عبرnextPageId/size(الحد الأقصى 100).
سطح السلطة
limit_order_admin هو حارس تشغيلي خارج السلسلة، وليس multisig. يمكنه فقط استدعاء SettleLimitOrder وCloseLimitOrder على الأوامر الموجودة، وناتج التسوية يهبط دائماً في ATA المالك. لا يمكنه تغيير حقول المجموعة أو فتح أو تعديل الأوامر أو التوقيع على أي شيء آخر. انظر مفاتيح المسؤول و multisig → CLMM.
الصفحات المحدثة
products/clmm/overview— قسم “ما الجديد” وموجهات الخطوات التالية المحدثة.products/clmm/accounts— ثلاثة حسابات جديدة، إعادة تشكيلPoolStateمع تحذير الترحيل، إضافاتTickState، مساعدات PDA جديدة.products/clmm/instructions— سبع تعليمات جديدة، ملحق سلوكSwapV2، مصفوفة تغيير الحالة المحدثة.products/clmm/fees— قسم الرسم الأحادي الاتجاه، قسم الرسم الديناميكي مع جدول المعاملات.products/clmm/math— كود زائف لمطابقة الأوامر المحدودة، اشتقاق الرسم الديناميكي.products/clmm/code-demos— عرض توضيحي لـcreateCustomizablePool، عرض توضيحي كامل للأوامر المحدودة، مزالق جديدة.algorithms/clmm-math— مرجع متقاطع لمطابقة الأوامر المحدودة والرسم الديناميكي في حلقة المبادلة متعددة التجزئة.sdk-api/typescript-sdk— قسم إضافات وحدة CLMM، ملاحظة ترحيلutils/→libraries/.api-reference/openapi/api-v3.yaml— نقطتا نهاية جديدتان مع مخططات الاستجابة.api-reference/openapi/temp-api-v1.yaml— ثلاث نقاط نهاية أوامر محدودة جديدة (/limit-order/order/list,/limit-order/history/order/list-by-user,/limit-order/history/event/list-by-pda) مع مخططات الطلب والاستجابة الخاصة بها.api-reference/api-v3/overview— ملاحظة على نقاط نهاية تكوين CLMM الجديدة.api-reference/temp-api-v1/overview— ملاحظة على نقاط النهاية الجديدة للأوامر النشطة والسجل حسب المستخدم والحدث حسب PDA.reference/error-codes— أحد عشر رمز خطأ CLMM جديد (6040–6050) بالإضافة إلى خمسة أكواد قديمة محذوفة؛ الأكواد الرقمية بعد نقاط الإزالة قد تحولت.security/admin-and-multisig— صفDynamicFeeConfigadmin جديد وصف حارسlimit_order_admin، مع شارح السلطة المحدودة.
- مصدر
raydium-clmm. - مصدر
@raydium-io/raydium-sdk-v2. - مصدر
api-v3وtemp-api-v1.

