هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
دعم مستوى البرنامج
تعيش فحوصات قائمة السماح في:
- CPMM:
is_supported_mintفيraydium-cp-swap/programs/cp-swap/src/utils/token.rs:178، يُستدعى منInitialize. - CLMM:
is_supported_mintفيraydium-clmm/programs/amm/src/util/token.rs:280، يُستدعى منCreatePool. - LaunchLab:
initialize_with_token_2022فيraydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs(المصدر غير متاح للعموم).
تجميد NFT موضع CLMM للمُصدرين المقيدين
تبقى حسابات NFT الموضع غير مجمدة بشكل افتراضي. يجمد CLMM واحداً فقط عندما يستخدم الموضع مسار V2 مفتوح و يطابق freeze_authority الحالي لعملة الخزان الواحدة على الأقل قائمة المُصدرين المقيدين المشفرة. تحتوي القائمة الأولية على نفس السلطة المستخدمة بواسطة مسار كشف Superstate أدناه. تعيين PDA المجمع كـ freeze authority لعملة NFT الموضع ليس بحد ذاته تجميداً. هذه قاعدة حفظ الموضع، وليست قائمة سماح إنشاء مجمع أخرى:- يمكن أن يكون المجمع موجوداً بالفعل ويبقى قابلاً للمبادلة.
- تستخدم عملة NFT الموضع PDA مجمع CLMM كـ freeze authority الخاص بها؛ لا يتحكم المُصدر الأساسي في NFT الموضع.
OpenPositionV2يغطي NFTs موضع SPL الكلاسيكي على أصول مجمع Token-2022.OpenPositionWithToken22Nftيغطي NFTs موضع Token-2022.OpenPositionV1 لا يفتش عملات الخزان ولا يمكنه خدمة أصول Token-2022 المقيدة المستهدفة بالقائمة المرسلة.- المواضع الموجودة لم تتغير.
ClosePosition يذيب ويحرق بشكل ذري عندما يمرر العميل المجمع كأول حساب متبقي. انظر products/clmm/ticks-and-positions.
قائمة سماح امتدادات CPMM و CLMM
بعد اختصار قائمة البيضاء الثابتة (المغطاة أدناه)، يكرر البرنامج امتدادات العملة ويرفض العملة إذا كانت تحمل أي امتداد بخلاف هذه الخمسة:
أي شيء ليس في هذه القائمة —
TransferHook، NonTransferable، ConfidentialTransferMint، PermanentDelegate، MintCloseAuthority، DefaultAccountState، GroupPointer، GroupMemberPointer، MemberPointer، Pausable، إلخ. — يسبب is_supported_mint في إرجاع false وانعكاس إنشاء المجمع.
الأسطر ذات الصلة (CPMM، نفس الشكل في CLMM):
cp-swap/src/utils/token.rs:190–200
مسارات التجاوز
يمكن قبول عملة Token-2022 التي لا تناسب قائمة السماح من خلال أحد ثلاثة تجاوزات صريحة. يتم محاولتها بالترتيب، قبل تشغيل تكرار الامتداد.1. قائمة العملات البيضاء الثابتة
مصفوفة ثابتةMINT_WHITELIST من سلاسل base58 مشفرة في كل برنامج. إذا طابق عنوان العملة، تُرجع الدالة true فوراً ولا يتم إجراء فحص الامتداد.
هذه العناوين مدمجة في البرنامج؛ تحديث القائمة يتطلب ترقية برنامج من خلال multisig الترقية 3/4.
2. سجل لكل عملة — CLMM فقط
يستشير CLMM بالإضافة إلى ذلك PDASupportMintAssociated في البذرة [b"support_mint", mint]. إذا كان هذا PDA موجوداً للعملة، يتم قبولها بغض النظر عن مجموعة الامتدادات الخاصة بها.
يتم إنشاء PDA بواسطة CreateSupportMintAssociated (admin/create_support_mint_associated.rs). التعليمات مقيدة بموقعين:
crate::admin::ID— سلطة إدارة Raydium القياسية.crate::create_support_mint_associated_owner::ID— سلطة مخصصة لهذا الغرض:RayVyjyJQz9vAi126A4sGexKnSU1XeZaHTRcM1mZMPY(mainnet)،rayf3nEbb3bnfN6RDGFpqPbjc5uUa3tRUzu6UVYrRx5(devnet).
3. كشف Superstate — CLMM فقط
لدى CLMM مسار ثالث محدد لأصول Superstate المرمزة، التي تستخدم امتدادScaledUiConfig الذي لا يمكن لإصدار spl-token-2022 المرتبط ببرنامج CLMM فك تغليفه. بدلاً من ترقية الاعتماد، يكتشف CLMM رموز Superstate من خلال شكل سلطتها:
raydium-clmm/programs/amm/src/util/token.rs:485
تمر عملة بهذا الفرع إذا كانت جميع الأربعة صحيحة:
- برنامجها المالك هو برنامج Token-2022.
- freeze_authority الخاص بها يساوي
superstate_allowlist::ID. انظرreference/program-addressesللقيم على mainnet-beta و devnet. - امتداد
DefaultAccountStateالخاص بها مضبوط علىFrozen. - المفوض الدائم الخاص بها هو أيضاً
superstate_allowlist::ID.
ما لا تتنازل عنه التجاوزات
تتخطى التجاوزات قائمة سماح الامتدادات، لكن البرنامج لا يزال يفرض:- العملة مملوكة إما لـ
TokenأوToken-2022. يتم رفض برنامج رمز مخصص في المنبع. - يتم إنشاء أوعية المجمع مع امتدادات ATA الصحيحة لمجمعات Token-2022 (
ImmutableOwner، إلخ). - جميع التحويلات تمر عبر
transfer_checked— تهبط العملات التي تحمل رسوم المبلغ الصحيح في الخزان.
TransferHook لاحقاً لا تكتسب فحص وقت المبادلة؛ سيعمل الخطاف على كل تحويل ويمكن أن يعطل المبادلات. لذلك فإن إدراج العملات في القائمة البيضاء هو إجراء عالي الثقة.
دلالات “محظور”
عندما تُرجعis_supported_mint false، ينعكس إنشاء المجمع مع ErrorCode::NotSupportMint (CPMM) / ErrorCode::NotSupportMint (CLMM). انظر reference/error-codes للأكواد الرقمية.
لا يمكن للمجمعات الموجودة أن تفشل هذا الفحص بأثر رجعي — تعمل البوابة فقط عند الإنشاء. امتدادات العملة غير قابلة للتغيير للفئات التي ترفضها Raydium (لا يمكن إضافة transfer hook أو non-transferable أو confidential transfer بعد الإنشاء)، لذا فإن الفحص الثابت كافٍ.
لماذا يتم استبعاد كل امتداد
- TransferHook — يستدعي برنامج مخصص على كل تحويل، مع استهلاك CU عشوائي، شروط فشل عشوائية، والقدرة على إعادة الدخول إلى البرنامج الاستدعاء. لا يوجد صندوق رمل آمن. تحتفظ بعض DEXes بقوائم سماح الخطاف؛ Raydium لا تفعل.
- NonTransferable —
Transferيفشل دائماً. لا يمكن للمجمع أن يأخذ الحفظ. - ConfidentialTransfer — مبالغ التحويل مشفرة؛ لا يمكن للمنحنى تسعير المبادلة.
- PermanentDelegate — يمكن لحامل المفوض مسح أي حساب رمز، بما في ذلك خزان المجمع. مسموح به فقط عبر قائمة البيضاء الثابتة للمُصدرين الموثوقين (مثل العملات المستقرة المنظمة).
- MintCloseAuthority — يمكن إغلاق العملة؛ تصبح المجمعات الموجودة غير قابلة للاستخدام. محظور بشكل افتراضي.
- DefaultAccountState (Frozen) — ستهبط ATAs المجمع في حالة
Frozenوتتطلب إذابة لكل حساب. مسموح به فقط عبر كشف Superstate، الذي يفترض أن المُصدر يذيب الحسابات المؤسسية عند التسجيل. - مؤشرات المجموعة/العضو — ليست ضارة بنشاط، لكن لم تتم مراجعتها. محظور بشكل افتراضي للحفاظ على السطح ضيقاً.
محاسبة رسم التحويل
بالنسبة للعملات التي تحملTransferFeeConfig، تنقل كل مبادلة وإيداع وسحب أقل من المبلغ الاسمي. تعرض SDK كلا نصفي الحساب:
amountIn + token2022FeeInكـ “أنت ترسل”amountOut - token2022FeeOutكـ “أنت تستقبل”feeAmountكرسم المجمع (LP + بروتوكول)، وهو منفصل عن رسم تحويل Token-2022
amountIn → amountOut تقلل من التكاليف.
حد maximumFee
يتم تحديد رسوم تحويل Token-2022 لكل تحويل. بالنسبة لعملة بنسبة 1% مع حد 10,000 رمز، يدفع تحويل 100,000,000 رمز فقط 10,000 في الرسم. تطبق SDK computeSwapAmount الحد؛ يجب على المتصلين المباشرين للبرنامج تكراره.
انتقال الحقبة
يمكن لسلطة العملة جدولة تغيير معدل الرسم الذي يتم تفعيله في الحقبة التالية. أثناء نافذة الانتقال، تعيش تكوينان (older، newer) على العملة في نفس الوقت وTransferChecked يختار حسب الحقبة الحالية. يمرر كل من CPMM SwapV2 و CLMM SwapV2 حساب العملة الكامل في accounts، لذا يقرأ البرنامج التكوين الصحيح دون بحث إضافي.
إذا اقتبست أكثر من حقبة واحدة مقدماً عبر Trade API أو SDK، قد تختلف الرسوم المنفذة عن الرسوم المقتبسة — محدودة بـ maximum_fee_basis_points للتكوين الأقدم.
الفائدة والمبلغ المقياس
يحتفظ المجمع بالمبلغ الأساسي؛ “مبلغ الواجهة الرسومية” هو المبلغ الأساسي مضروباً في عامل قياس يعتمد على الوقت أو يحدده الإدارة. تعمل رياضيات المبادلة على المبلغ الأساسي:pool.token0Vault.amount كمبلغ أساسي.
تعريف “مجمع Token-2022”
المجمع هو مجمع Token-2022 إذا كانت أي من العملتين لديهاprogramId == TokenzQdB.... تعرض API هذا:
programId للتوزيع، وhasTransferFee لعرض تحذير الواجهة الرسومية.
مساعدات SDK
أخطاء التكامل الشائعة
- التحقق المسبق من معرف البرنامج فقط. يمكن أن تكون العملة Token-2022 و غير مدعومة. امشِ قائمة الامتدادات مقابل قائمة السماح (وقائمة البيضاء الثابتة) قبل السماح بإنشاء المجمع.
- الثقة في اقتباس SDK عندما لا تُقبل العملة على الإطلاق. لا ترفض API الاقتباس — إنشاء المجمع هو ما ينعكس. أكد دلالات
is_supported_mintخارج السلسلة قبل عرض إنشاء المجمع في واجهتك الرسومية. - الاقتباس بدون خصم رسم التحويل. عملة بنسبة 1% رسم تحويل على كلا جانبي مجمع CPMM بنسبة 0.25% لها رسم فعلي حول 2.25%، وليس 0.25%. استخدم اقتباس SDK أو اقتباس Trade API — لا تحسب الرسم يدوياً من مستوى رسم المجمع وحده.
- استدعاء تعليمات
Swapالقديمة على مجمع Token-2022.Swapسابق لـ Token-2022. استخدمSwapV2كلما كانت أي من العملتين Token-2022. - إدراج عملات Token-2022 الجديدة تلقائياً. يجب على المحافظ والمجمعات التحقق من
TransferHookوNonTransferableقبل عرض عملة للمستخدمين؛ كلاهما معادٍ لـ Raydium.
العمل المستقبلي
عناصر خارطة الطريق للنظام البيئي Solana والبروتوكول التي ستغير هذه المصفوفة:- برامج transfer-hook مدرجة في قائمة السماح على مستوى Solana (اتفاقية النظام البيئي تتطور).
- AMMs متوافقة مع confidential-transfer (مرحلة البحث).
- سجل CPMM لكل عملة أوسع (التكافؤ مع CLMM).
- ترقية الاعتماد بحيث يعمل فك تشفير
ScaledUiConfigفي CLMM دون استدلال Superstate.
المؤشرات
algorithms/token-2022-transfer-fees— رياضيات الرسم في المبادلات.products/cpmm/instructions—SwapV2،Initialize.products/clmm/instructions—SwapV2،CreatePool،CreateSupportMintAssociated.reference/error-codes— أكوادNotSupportMintالرقمية لكل برنامج.
raydium-cp-swap/programs/cp-swap/src/utils/token.rs—MINT_WHITELIST،is_supported_mint.raydium-clmm/programs/amm/src/util/token.rs—MINT_WHITELIST،superstate_allowlist،is_superstate_token،is_supported_mint.raydium-clmm/programs/amm/src/instructions/admin/create_support_mint_associated.rs— تعليمات سجل لكل عملة.raydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs— إنشاء عملة أساسية Token-2022 في LaunchLab.

