هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
CreatePool / CreateCustomizablePool لم تتغير.
ملخص سريع للمدمجين
- معرفات المجموعات يمكن أن تكون غير قانونية الآن، خلف بوابة صلاحيات. تاريخيًا كان هناك عنوان CLMM واحد بالضبط لكل
(amm_config, token_mint_0, token_mint_1)— بذور PDA ثبتتها. تعليمة جديدة،CreatePermissionedPool، تطويseed_index: u16من جانب العميل غير صفري في بذور PDA للمجموعة، لذا يمكن لمشغل مدرج في القائمة البيضاء إنشاء عدة مجموعات لنفس الزوج ورسم الرسوم، كل واحدة في عنوانها الخاص. لأن عناوين المجموعات التعسفية هي قدرة مميزة، يجب على الدافع أن يحملPermissionPDA منحها المسؤول. تعليمتان إداريتان،CreatePermissionPdaوClosePermissionPda، تدير تلك المنح. OpenLimitOrderيتحقق الآن من الجانب الناتج. التعليمة تأخذ ثلاثة حسابات إضافية —output_token_account,output_vault,output_vault_mint— وترفض الأمر معNotApprovedإذا كان حساب الإدخال أو الإخراج للمالك مجمدًا. هذا يضمن أن الملء النهائي يمكن تسليمه، وهو مهم لـ Token-2022 mints الافتراضية المجمدة (الرموز المرخصة). يجب على العملاء المبنيين مقابل قائمة الحسابات أحادية الجانب القديمة إضافة الحسابات الثلاثة الناتجة.
ما تغير في البرنامج
تعليمة جديدة: CreatePermissionedPool
نفس الشكل والمعاملات مثل CreateCustomizablePool (تأخذ نفس CreateCustomizableParams، لذا الرسوم أحادية الجانب والاختيار الديناميكي للرسوم متاحان)، بالإضافة إلى:
- معامل
seed_index: u16، والذي يجب أن يكون غير صفري. يتم إلحاقه (little-endian) ببذور PDA للمجموعة:["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]. - حساب
permission: PDA["permission", payer]. Anchor يرفض الاستدعاء إذا لم يكن موجودًا أو لم يكن مملوكًا للبرنامج — وجوده وحده هو التفويض. - حساب
pool_creatorمسجل كـpool_state.owner، والذي قد يختلف عنpayerالذي يدفع الرسوم.
seed_index = 0 يبقى محجوزًا للمجموعات القديمة: بالنسبة لتلك المجموعات، مكون البذرة ينهار إلى فارغ، مما يعيد إنتاج عنوان البذور الأربع الكلاسيكي، لذا لا يتغير عنوان مجموعة موجودة.
انظر Instructions → CreatePermissionedPool.
حساب جديد: Permission
حساب قدرة وجوده هو المنحة. يخزن فقط authority التي تم إنشاؤه لها (بالإضافة إلى الحشو). بذور PDA: ["permission", authority]. يمنح الحق في استدعاء CreatePermissionedPool وليس شيء آخر — لا يمكنه نقل الأموال أو تغيير الرسوم أو تغيير أي مجموعة. انظر Accounts → Permission.
تعليمات إدارية جديدة: CreatePermissionPda / ClosePermissionPda
CreatePermissionPdaتهيئPermissionPDA لـpermission_authorityمعينة.ClosePermissionPdaتغلقها وتسترد الإيجار للمتصل، مما يلغي المنحة. المجموعات المنشأة بالفعل تحت تلك المنحة لن تتأثر.
admin للبرنامج أو مفتاح permission_pda_admin مخصص (ثابت مختلف على mainnet مقابل devnet). انظر Admin keys and multisig → CLMM.
PoolState: حقل seed_index
تم نحت بايتين من منطقة حشو موجودة (padding: [u8; 6] → seed_index: [u8; 2] + padding: [u8; 4]) مباشرة بعد fee_on. حجم الحساب الإجمالي لم يتغير، ولا يلزم ترحيل الفهرس. بالنسبة للمجموعات المنشأة عبر CreatePool / CreateCustomizablePool، seed_index هو [0, 0]؛ بالنسبة للمجموعات المرخصة، يحمل الفهرس المختار من قبل المنشئ وهو مطلوب لإعادة اشتقاق عنوان المجموعة خارج السلسلة.
OpenLimitOrder: حسابات الجانب الناتج وحماية الحساب المجمد
قائمة حساب OpenLimitOrder تكتسب output_token_account, output_vault, و output_vault_mint. يتم استخدامها فقط للتحقق — لا يتم خصم أي إخراج عند الفتح. المعالج الآن يتطلب أن لا حساب الإدخال ولا حساب الإخراج مجمد، مما يعيد NotApproved بخلاف ذلك (نفس الكود الذي تم إرجاعه بالفعل عندما تكون المجموعة بها swap أو limit-order معطل). هذا يغلق فجوة حيث يمكن فتح أمر ضد حساب رمز قد لا يتمكن أبدًا من استقبال الملء (على سبيل المثال، حساب لم يتم إذابته بعد لـ Token-2022 mint افتراضي مجمد).
انظر Instructions → OpenLimitOrder.
رموز الخطأ
لا توجد رموز خطأ جديدة.6000 NotApproved الموجود يغطي الآن بالإضافة إلى ذلك حساب الإدخال/الإخراج المجمد وحالات swap/limit-order-disabled على OpenLimitOrder، وحالة “الموقع ليس admin ولا permission_pda_admin” على تعليمات الصلاحيات. جدول رموز الخطأ والترقيم بخلاف ذلك لم يتغيروا من إصدار 2026-05-18. انظر Error codes → CLMM.
ملاحظات الترحيل
- قراءة عناوين المجموعات: لا تفترض مجموعة واحدة لكل
(config, mint0, mint1). قد يكون لدى الزوج الآن مجموعة قانونية بالإضافة إلى مجموعة أو أكثر مرخصة في عناوين مشتقة منseed_index. عدّد المجموعات من API / الفهرس بدلاً من اشتقاق PDA واحد، وخزّنseed_indexعندما تحتاج إلى إعادة اشتقاق مجموعة مرخصة. - وضع أوامر الحد: أضف الحسابات الثلاثة على الجانب الناتج إلى معاملة
OpenLimitOrderالخاصة بك، وعرض رسالة واضحة عند إرجاعNotApprovedلحساب مجمد. - لا توجد فاصلة حجم الحساب أو التخطيط:
PoolStateبنفس الحجم؛ بايتات الحشو المتقاعدة تحمل الآنseed_index.
الصفحات المحدثة
products/clmm/overview— ملاحظة “ما الجديد” حول المجموعات المتعددة المرخصة وحماية أوامر الحد.products/clmm/instructions— قسمCreatePermissionedPoolجديد،CreatePermissionPda/ClosePermissionPdaفي جدول التعليمات وملاحظة البوابة الإدارية، وقائمة حسابOpenLimitOrderالمحدثة / الشروط المسبقة / الأخطاء.products/clmm/accounts—Permissionفي الجرد وقسمه الخاص، حقلPoolState.seed_index، مساعدات اشتقاق PDA (derivePermissionedPool,derivePermission)، ومرجع دورة الحياة السريع.security/admin-and-multisig— صفpermission_pda_adminجديد وشارح نطاق الصلاحيات في جدول أدوار CLMM.reference/error-codes— وصفNotApprovedالموسع.
- مصدر
raydium-clmm(create_permissioned_pool.rs,admin/create_permission_pda.rs,admin/close_permission_pda.rs,states/permission.rs,states/pool.rs,limit_order/open_limit_order.rs,lib.rs).

