Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يضيف هذا الإصدار مسار عدم قابلية التحويل المشروط لمجموعات المُصدِّرين المقيّدين بـ KYC المختارة. لا يقوم بتجميد كل مركز جديد، أو تجميد أصول المجموعة، أو منع مالكي المراكز من إدارة السيولة. يصبح PDA مجموعة CLMM سلطة التجميد لكل عملة NFT للمركز الجديد، لكن حساب رمز NFT يبقى غير مجمّد بشكل افتراضي. يقوم البرنامج بتجميده فقط عندما يستخدم المركز OpenPositionV2 أو OpenPositionWithToken22Nft وتحمل إحدى عملات الخزان الأساسية سلطة تجميد من قائمة المُصدِّرين المقيّدين المُشفّرة.

ملخص سريع للمدمجين

  • عملات NFT للمراكز الجديدة لها سلطة تجميد، لكنها غير مجمّدة بشكل افتراضي. يقوم OpenPosition و OpenPositionV2 و OpenPositionWithToken22Nft بتعيين pool_state للمركز كسلطة تجميد العملة. لا تزال سلطة العملة مُزالة بعد صك NFT الواحد.
  • التجميد يتطلب مسار V2 بالإضافة إلى تطابق المُصدِّر. يفحص OpenPositionV2 و OpenPositionWithToken22Nft قيم vault_0_mint.freeze_authority و vault_1_mint.freeze_authority. يتم تجميد حساب NFT الجديد فقط إذا طابقت إحدى القيم قائمة البرنامج. بدون تطابق، يبقى غير مجمّد وقابل للتحويل.
  • التجميد يعني الربط بالمالك. يرفض SPL Token نقل NFT وتغييرات مالك حساب الرمز برسالة الخطأ الأصلية AccountFrozen. تستمر عمليات زيادة/تقليل السيولة وجمع الرسوم/المكافآت في العمل عندما يوقّع مالك NFT.
  • الإغلاق يبقى متاحًا. يكتشف ClosePosition حساب NFT المجمّد، ويستخدم pool PDA لإذابته، ثم يحرق NFT ويغلق المركز بشكل ذري.
  • إغلاق مجمّد يتطلب حساب متبقي واحد. يجب على العميل إضافة personal_position.pool_id كأول حساب متبقي. عدم وجوده يُرجع AccountLack من CLMM؛ تمرير مجموعة خاطئة يُرجع NotApproved.
  • المراكز الموجودة لم تتأثر. لا يقوم التحديث بتغيير سلطات عملة NFT بأثر رجعي أو تجميد حسابات الرموز الموجودة.
  • لا توجد تغييرات في تخطيط حالة CLMM أو قائمة حسابات IDL المُعلنة. يبقى PoolState و PersonalPositionState وحجج التعليمات متوافقة على مستوى البايت. يتم نقل متطلبات مسار الإغلاق عبر remaining_accounts.

منطق التشغيل

يقيّم البرنامج عملات الخزان الاثنتين في وقت الفتح:
سلطة التجميد المفقودة لا تطابق. جانب واحد متطابق كافٍ. تحتوي القائمة الأولية على نفس سلطة المُصدِّر المستخدمة من قبل كشف أصول Superstate في CLMM. تعيش مفاتيح mainnet-beta و devnet الحالية في reference/program-addresses. يتم تشغيل الفحص في معالج المركز المفتوح المشترك فقط عندما يتم توفير حسابات عملة الخزان. هذا يعني:

تغييرات سلطة NFT للمركز

قبل هذا التحديث، لم تحتفظ عملة NFT للمركز الكلاسيكي SPL المُنشأة حديثًا بسلطة تجميد. بعد التحديث، تسمي كل عملة NFT للمركز الجديد مجموعتها كسلطة تجميد، بما في ذلك المراكز في المجموعات العادية. هذا الإعداد للسلطة وحده لا يقوم بتجميد حساب رمز NFT؛ تبقى المراكز العادية وغير المتطابقة غير مجمّدة. يؤدي استخدام pool PDA بدلاً من مفتاح إداري عام أو مفتاح المُصدِّر إلى تضييق السلطة على مجموعة واحدة. لا يمكن لطرف خارجي التوقيع كـ PDA، ولا يكشف CLMM عن تعليمة ذات غرض عام لتجميد أو إذابة حسابات مراكز عشوائية. يستخدم الكود الجديد السلطة في مكانين فقط:
  1. التجميد فورًا بعد الصك عندما يطابق فحص المُصدِّر الأساسي.
  2. الإذابة أثناء ClosePosition مباشرة قبل الحرق.

هجرة ClosePosition

الحسابات الستة المُعلنة لا تتغير. لـ NFT مجمّد، أضف المجموعة كأول حساب متبقي:
يتحقق المعالج من المفتاح قبل تحميل PoolState، ويشتق بذور توقيع المجموعة، ويقوم بـ:
تعمل جميع الخطوات في تعليمة Solana واحدة وبالتالي تُلتزم أو تُرجع معًا. تمرير المجموعة في كل إغلاق آمن: يتجاهل المعالج الحسابات المتبقية عندما لا يكون حساب NFT مجمّدًا.
فاصل عميل مشروط. يمكن لعميل أقدم فتح مركز بنجاح بعد الترقية لأن تخطيطات حساب V2 المفتوحة لم تتغير. إذا تم تجميد هذا المركز، قد يفشل نفس العميل لاحقًا في إغلاقه لأن منشئ ClosePosition الخاص به يحذف حساب المجموعة المتبقي. حدّث منشئ الإغلاق قبل السماح للمستخدمين بفتح مراكز في المجموعات المتأثرة.

مصفوفة التوافقية

لا يتم إدخال متغيرات خطأ مخصصة جديدة في CLMM أو تحولات رقمية. يرفض الخطأ الأصلي AccountFrozen من SPL Token محاولات النقل أو تغيير المالك.

الصفحات المُحدّثة

  • products/clmm/overview — ملخص الإصدار وتحذير عدم القابلية للتحويل المقيّد.
  • products/clmm/ticks-and-positions — نموذج السلطة والمشغل وقدرات المالك وتحذير هجرة الإغلاق.
  • products/clmm/accounts — عملة NFT للمركز وسلوك دورة الحياة.
  • products/clmm/instructions — شروط ما بعد الفتح ومسار حساب ClosePosition المتبقي المجمّد.
  • products/clmm/code-demos — مثال Anchor مباشر للإغلاق وتحذير SDK المثبّت.
  • user-flows/add-remove-liquidity — سلوك المركز المقيّد الموجه للمستخدم.
  • user-flows/burn-and-earn — لا يمكن للمراكز المجمّدة النقل إلى قفل escrow.
  • security/oracle-and-token-risks / security/attack-vectors — حدود المُصدِّر وخطر النقل.
  • reference/token-2022-support — التمييز بين قائمة السماح بالمجموعة وحضانة المركز.
  • reference/error-codes — أسباب AccountLack و NotApproved الموسّعة.
  • reference/program-addresses — مفاتيح تطابق سلطة المُصدِّر المقيّد.
  • reference/fee-comparison / reference/glossary — استثناءات القابلية للتحويل.
تم التحقق منه 2026-08-13 مقابل:
  • فرع CLMM قبل الإصدار feat/position-nft-freeze في ecb157760776f83f97507fa78c6e32cfb30d92a9.
  • الالتزامات 2e95310 (تجميد NFT للمُصدِّر المقيّد) و ecb1577 (سلطة التجميد ذات النطاق المجموعة)، مقارنة مع master في 51fdba2.
  • مصادر البرنامج تحت instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rs و util/token.rs.
  • position-nft-freeze.test.ts، تغطي القابلية للتحويل العادية ورفض النقل/تغيير المالك المجمّد وتدفقات الإذابة قبل الإغلاق V2 و Token-2022.
يغطي هذا التحقق فرع المصدر قبل الإصدار، وليس نشر mainnet-beta أو إصدار SDK منشور. تأكد من البرنامج المنشور وقائمة السلطة المقيّدة الإنتاجية ومنشئ SDK للإغلاق قبل تفعيل التدفق.