Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
مصفوفة الدعم: CPMM يدعم Token-2022 بالكامل، بما في ذلك الرموز ذات رسوم النقل. CLMM يدعم Token-2022 مع رسوم النقل عبر حسابات
SwapV2 الصريحة. AMM v4 لا يدعم Token-2022 على الإطلاق. LaunchLab لا يدعم Token-2022 لرمز الأساس (ينشئ رموز SPL الكلاسيكية). Farm v6 يدعم Token-2022 على كل من رموز الرهن والمكافأة.ما هي رسوم النقل
Token-2022 هو برنامج SPL Token الثاني (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA → TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). من بين امتداداته، فإن امتداد transfer-fee يحتسب رسما من كل TransferChecked على رمز mint. تذهب الرسوم إلى مستقبل محدد من قبل سلطة mint ويمكن تحديثها من قبل السلطة (ضمن حدود معينة).
لدى mint مع رسوم النقل معاملتان ذات صلة:
transfer_fee_basis_points— المعدل (على سبيل المثال، 100 = 1%).maximum_fee— حد أقصى مطلق لكل نقل (بحيث لا يدفع الأشخاص الذين يملكون مبالغ ضخمة رسوما لا حد لها).
لماذا هذا مهم للمبادلات
تحتفظ أوعية المجموعة برصيد فعلي. عندما يستدعي المستخدم مبادلة Raydium:- يرسل المستخدم
amount_inإلى وعاء المجموعة. إذا كان in-mint يحتوي على رسوم نقل، فإن الوعاء يستقبلamount_in − fee_in، وليسamount_in. - تعمل رياضيات المبادلة على المبلغ الذي تلقته الوعاء.
- تُرسل المجموعة
amount_outإلى ATA المستخدم. إذا كان out-mint يحتوي على رسوم نقل، فإن المستخدم يستقبلamount_out − fee_out، وليسamount_out.
amount_in الخام، فإن فحص الثابتة يفشل لأن الوعاء حصل على أقل من ما يعتقده البرنامج. وبالعكس، إذا حسب amount_out دون طرح رسوم النقل الصادرة، فسيرى المستخدم نقصانا ويلوم البرنامج.
يتعامل Raydium CPMM و CLMM (عبر SwapV2) مع هذا من خلال:
- قبل المبادلة: حساب
in_after_fee = amount_in − transfer_fee_on(amount_in, in_mint)، واستخدامin_after_feeفي رياضيات المنحنى. - بعد المبادلة: حساب
out_gross = amount_out_from_curve، وإرسالout_grossإلى المستخدم عبرTransferCheckedوالذي سيقلله برنامج Token-2022 نفسه برسوم النقل.
minAmountOut للمستخدم مقابل out_gross (ما تُرسله المجموعة)، وليس مقابل ما يستقبله المستخدم. هذا كيف تتعامل كل منصة صرافة رئيسية على Solana مع Token-2022، وهذا مهم لأن:
- إذا فحصت المجموعة بعد الرسوم، فإن تحديث الرسوم بين الاقتباس والتنفيذ سيتسبب في عكس التجارة.
- فحص الرسوم المسبقة يضع الفشل على جودة الاقتباس نفسه، وليس على تغييرات الرسوم خارج النطاق للمستخدم.
حساب رسوم Token-2022
يكشف برنامج SPL Token-2022 عن مساعد حتمي. في Rust:@solana/spl-token):
صيغ المبادلة المعدلة (CPMM، المدخل الدقيق)
دعf_pool يكون معدل رسوم المجموعة، f_in معدل رسوم النقل في mint، max_in حده الأقصى، f_out معدل رسوم النقل خارج mint، max_out حده الأقصى.
amount_out_gross ≥ min_amount_out (وليس user_receives ≥ min_amount_out). يتم تعيين minAmountOut للمستخدم بواسطة SDK إلى expected_gross · (1 − slippage) — احتفظ بالحد على جانب “المُرسل”، وليس على جانب “المستقبل”.
الصيغ المعدلة (CPMM، المخرج الدقيق)
يقوم SDK بالتكرار لإيجادamount_in بحيث user_receives = amount_out_exact:
max_in / max_out الحساب غير خطي لأنه بمجرد تفعيل الحد الأقصى، تتوقف الرسوم عن النمو. يتعامل computeAmountIn / computeAmountOut في SDK مع هذا بالتكرار إذا كانت الصيغة الساذجة ستدفع النقل فوق الحد الأقصى.
حالات الحدود
الرسوم غير المتماثلة (جانب واحد له رسوم، الآخر لا)
شائع في الممارسة. الصيغ أعلاه تتعامل مع هذا بالفعل — إذا كان أحد الجانبينf_in = 0، فإن الشروط ذات الصلة تنهار. لا توجد حالة خاصة في البرنامج.
تحديثات الرسوم أثناء المبادلة
إذا تغيرت رسوم نقل mint بين وقت الاقتباس ووقت التنفيذ، فستكون المبادلة إما تنزل برسوم اقتصاد أسوأ قليلاً (يتحمل المستخدم الفرق ضمن تسامح الانزلاق) أو ستنعكس (ينخفض الناتج الإجمالي دونminAmountOut). حدود الانزلاق تمتص هذا؛ لا حماية إضافية مطلوبة.
حد الرسوم القصوى
بمجرد أن تكون التجارة كبيرة بما يكفي للوصول إلىmaximum_fee، فإن الرسوم تصل إلى التشبع ومزيد من النمو يكون صفرا. هذا يجعل المعدل الفعلي غير متناسب إلى الصفر للتجارات الكبيرة جداً، مما قد يسبب منحنيات أسعار غريبة على الأسواق غير السائلة بشكل عميق. يأخذ computeAmountOut في SDK في الاعتبار هذا.
امتداد عدم القابلية للنقل
تستخدم بعض رموز Token-2022 امتدادNonTransferable، الذي يرفض جميع استدعاءات Transfer باستثناء إلى وتحت سلطة mint. لا يمكن استخدام هذه الرموز في مجموعة Raydium على الإطلاق. CreatePool يرفضها عند الإنشاء.
رموز محمل الفائدة
يدعم Token-2022 أيضا امتدادInterestBearingConfig الذي يجعل الأرصدة تنمو بمرور الوقت. تقرأ مجموعات Raydium أرصدة الوعاء الخام (التي تتجاهل استحقاق الفائدة)، لذا على مجموعة برمز محمل الفائدة، يلتقط LPs الفائدة المستحقة كهدية خالصة كلما استردوا (نما رصيد الوعاء أسرع من تمثيل إمداد LP). يجب على المدمجين معاملة هذا كمشكلة غير ذات صلة لكن توثيقها لجانب LP.
خطاطيف النقل
يسمح امتدادTransferHook في Token-2022 بـ CPI تعسفي على كل نقل. تدعم CPMM من Raydium هذه — يعيد تعليم الحسابات المتعلقة بالخطاف — لكن إضافة عادية CU وتتطلب أن يتصرف الخطاف بشكل حسن. يدعم SwapV2 من CLMM أيضا الخطاطيف. لا يدعم AMM v4 Token-2022 على الإطلاق، لذا السؤال لا ينشأ.
مثال عملي
مجموعة CPMM،x = 1_000_000 USDY، y = 1_000_000 USDC، رسوم مجموعة 0.25%.
- USDY له رسوم نقل بنسبة 1%،
max_fee = 10_000(0.01 USDY مع 6 منازل عشرية). - USDC لا يحتوي على رسوم نقل.
amount_in = 1_000 USDY مقابل USDC (مدخل دقيق).
مؤشرات
/ar/products/cpmm/overview— دعم CPMM Token-2022./ar/products/clmm/instructions—SwapV2مقابلSwapلتوجيه Token-2022./ar/solana-fundamentals/spl-token-and-token-2022— نموذج امتداد Token-2022 العام.
- وثائق امتداد رسوم النقل في SPL Token-2022
- مصدر برنامج Raydium CPMM (
SwapBaseInput/SwapBaseOutputمعالجة Token-2022). - مصدر برنامج Raydium CLMM (
SwapV2).


