الانتقال إلى المحتوى الرئيسي
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يغطي هذا الإدخال ترقية برنامج CPMM مجدولة لـ 2026-10-30. تم التحقق منها مقابل فرع feat/initialize-v2 من raydium-cp-swap (head 40cbd81) قبل النشر. تأكد من البرنامج المنشور قبل الاعتماد على التعليمة الجديدة.
لكل مجموعة CPMM علم enable_creator_fee وجانب creator_fee_on، وكلاهما ثابت عند الإنشاء. حتى الآن، لم يكن بإمكان المنشئ تعيينهما إلا عبر InitializeWithPermission، التي تتطلب Permission PDA يصدره المسؤول. كانت Initialize العامة تخزّن الرسوم دائمًا كمعطّلة. عمليًا، كانت تخرجات LaunchLab والتدفقات المقيّدة الأخرى وحدها قادرة على إنشاء مجموعة تفرض رسوم المنشئ. يضيف هذا الإصدار InitializeV2. إنها Initialize مع معامل إضافي واحد، creator_fee_on: Option<CreatorFeeOn>، ويمكن لأي شخص استدعاؤها. رياضيات المجموعة والمبادلة والسيولة وجمع الرسوم وحصة البروتوكول من رسوم المنشئ لم تُمس.

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

  • تعليمة جديدة: InitializeV2. بدون إذن. المعاملات هي init_amount_0 و init_amount_1 و open_time و creator_fee_on: Option<CreatorFeeOn>. المميز [67, 153, 175, 39, 218, 16, 38, 32].
  • Some(side) يفعّل رسوم المنشئ على ذلك الجانب؛ None يتركها معطّلة. يخزّن None بالضبط ما تخزّنه Initialize.
  • نفس حسابات Initialize، ناقص rent. أول 19 حسابًا متطابقة وبنفس الترتيب. انظر قائمة الحسابات.
  • المنشئ هو الموقّع. pool_state.pool_creator هو creator الموقّع. على عكس InitializeWithPermission، لا يمكن تعيين المستفيد إلى عنوان آخر.
  • يختار المنشئ التفعيل/التعطيل والجانب، لا المعدل. تفرض المجموعة AmmConfig.creator_fee_rate الخاص بفئة رسومها. القيمة الافتراضية لهذا المعدل 0، لذا لا تراكم المجموعة المفعّلة على مثل هذه الفئة شيئًا.
  • لم يتغير أي شيء موجود. تحتفظ Initialize و InitializeWithPermission بمميزاتها وحساباتها ومعاملاتها وسلوكها. لم يتغير تخطيط الحساب أو رمز الخطأ.
  • حدّث IDL الخاص بك للحصول على التعليمة الجديدة. العملاء الذين لا يستدعونها لا يحتاجون إلى أي تغيير.

ما تغير في البرنامج

تعليمة جديدة: InitializeV2

تنفّذ InitializeV2 نفس كود الإنشاء الذي تنفّذه Initialize. فهي:
  • تقبل إما PDA المجموعة القانوني أو مفتاحًا عشوائيًا موقّعًا كـ pool_state؛
  • تطبّق نفس فحوصات قائمة امتدادات Token-2022 المسموح بها و SupportMintAssociated، عبر remaining_accounts؛
  • ترفض الإنشاء عندما يكون amm_config.disable_create_pool مُعيّنًا؛
  • ترفع open_time إلى block_timestamp + 1 عندما لا يكون في المستقبل؛
  • تقفل 100 وحدة أساسية من LP وتصك الباقي للمنشئ؛
  • تفرض amm_config.create_pool_fee.
الفرق الوحيد هو ما تكتبه في PoolState الجديد: بايت الوسم أو المتغير غير الصالح يفشل في إلغاء تسلسل المعاملات في Anchor. لا يوجد رمز خطأ جديد.

مقارنة مسارات الإنشاء الثلاثة

إعادة هيكلة داخلية

تتشارك المعالجات الثلاثة الآن روتين initialize_pool واحدًا. لا تغيّر إعادة الهيكلة حسابات أو معاملات أو فحوصات أو القيم المخزّنة لـ Initialize أو InitializeWithPermission. تتحقق الاختبارات الجديدة أيضًا من أن Initialize العادية على نفس الإعدادات لا تزال تخزّن رسوم المنشئ كمعطّلة.

ما يجب أن يعرفه المنشئون

  • تحقق من فئة الرسوم أولًا. معدل رسوم المنشئ ينتمي إلى AmmConfig، لا إلى المجموعة. اختر فئة يكون creator_fee_rate فيها هو ما تريد فرضه. المعدلات مدرجة في products/cpmm/fees.
  • الاختيار دائم. لا توجد تعليمة تغيّر enable_creator_fee أو creator_fee_on بعد الإنشاء. لتغييره، يجب عليك إنشاء مجموعة جديدة.
  • يدفعها المتداولون فوق رسوم التداول. رسوم المنشئ معدل منفصل يُضاف إلى المبادلة. لا تقلل حصص LP أو البروتوكول أو الصندوق، لكنها تجعل التداول مقابل المجموعة أغلى من مجموعة على نفس الفئة مع تعطيل الرسوم.
  • الجمع لم يتغير. استخدم CollectCreatorFee أو CollectCreatorFeePermissionless. تُطبَّق حصة البروتوكول من إصدار 2026-09-19، ولا يمكنك إلغاء الاشتراك فيها عند الإنشاء.

ملاحظات الترحيل

  • منشئو المجموعات. انتقل من Initialize إلى InitializeV2 فقط إذا كنت تريد تفعيل رسوم المنشئ. مرّر Some(side) واحذف حساب rent. تستمر Initialize في العمل.
  • مستخدمو SDK. تبني raydium.cpmm.createPool في @raydium-io/raydium-sdk-v2@0.2.64-alpha التعليمة Initialize. إلى أن يصدر إصدار يتضمن منشئًا لـ InitializeV2، رمّزها من IDL المحدَّث.
  • المفهرسون والموجّهات. توقّع المزيد من المجموعات ذات enable_creator_fee = true، أنشأتها محافظ عادية بدلًا من LaunchLab. احسب الأسعار من enable_creator_fee و creator_fee_on الخاصين بكل مجموعة، وليس أبدًا من مسار الإنشاء أو الفئة وحدها. فكّ ترميز التعليمة الجديدة إذا كنت تتتبع إنشاء المجموعات من التعليمات. التتبع من حسابات PoolState لا يحتاج إلى أي تغيير.
  • واجهات المستخدم. اعرض ما إذا كانت المجموعة تفرض رسوم منشئ وبأي معدل، إذ يمكن الآن أن تختلف مجموعتان على نفس الفئة.
  • LaunchLab والتدفقات المقيّدة بإذن الأخرى. لا تغيير. تظل InitializeWithPermission هي المسار عندما يجب أن يختلف الدافع عن المنشئ المسجَّل.

ما لم يتغير

  • كل تخطيطات الحسابات، بما في ذلك PoolState و AmmConfig.
  • Initialize و InitializeWithPermission: المميزات والحسابات والمعاملات والقيم المخزّنة.
  • Permission و CreatePermissionPda و ClosePermissionPda.
  • رياضيات المبادلة والإيداع والسحب، وفرض رسوم المنشئ، وحصة البروتوكول من رسوم المنشئ.
  • رموز الخطأ. 6000–6015 لم تتغير؛ لم يُلحَق شيء.
  • معرّف البرنامج.

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

  • products/cpmm/instructions: لافتة الترقية؛ صفوف الملخص ومصفوفة تغيّر الحالة؛ قسم InitializeV2 جديد بالمعاملات والترميز وقائمة الحسابات؛ يشير الشرط اللاحق لـ Initialize الآن إلى InitializeV2.
  • products/cpmm/fees: يسرد قسم “رسوم المنشئ” مسارات الإنشاء الثلاثة ويشير إلى أن تفعيل الرسوم لا يحدد معدلها.
  • products/cpmm/accounts: ملاحظات poolState ومعرّف المجموعة؛ ملاحظات حقلي creator_fee_on / enable_creator_fee؛ ملاحظة Permission؛ صف دورة حياة الحساب.
  • products/cpmm/overview: تنبيه “ما الجديد” وبند “رسوم يمكن التنبؤ بها”.
  • products/cpmm/code-demos: ملاحظة بأن createPool تبني Initialize وكيفية الوصول إلى InitializeV2.
  • protocol-overview/shared-infrastructure: لم تعد رسوم المنشئ مقتصرة على مجموعات LaunchLab المتخرجة.
  • reference/token-2022-support: مسارات إنشاء مجموعات CPMM.
تم التحقق مقابل: فرع raydium-cp-swap feat/initialize-v2 (40cbd81): programs/cp-swap/src/lib.rs، instructions/initialize_v2.rs، instructions/initialize.rs، instructions/initialize_with_permission.rs، instructions/mod.rs، states/pool.rs، و tests/initialize_v2.test.ts.