هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لافتة الإصدار. جميع الأمثلة تستهدف
@raydium-io/raydium-sdk-v2@0.2.42-alpha على Solana mainnet-beta، تم التحقق منها في 2026-04. يرسل SDK v3 / v5 / v6 داخليًا بناءً على مالك برنامج المزرعة؛ الأمثلة أدناه تفترض مزرعة v6. انظر reference/program-addresses للحصول على معرفات البرنامج الثلاثة.الإعداد
تعكس الأمثلة هنا الملفات فيraydium-sdk-V2-demo/src/farm. يتبع التمهيد config.ts.template من مستودع العرض التوضيحي:
جلب مزرعة حسب المعرّف
getFarmById FarmState خارج السلسلة، ويفك التشفير حسب إصدار البرنامج، ويوحد معدل الإصدار ذي النقطة الثابتة إلى Decimal عادي في الثانية.
حجز أرصدة LP
المصدر:src/farm/stake.ts
المطالبة فقط (الحصاد)
المصدر:src/farm/harvest.ts
harvestAllRewards قائمة — لواجهات المستخدم التي تعرض عرض المحفظة، ركّز النداء. يتم المطالبة بكل مزرعة في تعليمة منفصلة ضمن معاملة واحدة (خاضعة لحد حجم 1232 بايت؛ لأكثر من ~6 مزارع، قسّمها إلى معاملات متعددة).
للمزرعة الواحدة على v6، يمكنك أيضًا استخدام مسار Harvest الصريح:
amount: 0؛ يرسل SDK بشكل صحيح.
إلغاء الحجز
المصدر:src/farm/unstake.ts
إنشاء مزرعة v6
المصدر:src/farm/createAmmFarm.ts و editAmmFarm.ts
perSecondهو معدل الإصدار الصحيح في الثانية. يقوم SDK بحزمه في Q64.64 قبل الإرسال. للمعدل الكسري، قم بالقياس وضبط المدة.- يجب أن تكون الميزانية الكاملة (
perSecond × duration) موجودة في ATA المكافآت الخاصة بك —createينقلها إلى خزان المكافآت بشكل ذري. - يمكنك تحديد ما يصل إلى 5 مكافآت في استدعاء
createواحد. تنمو قائمة الحساب بـ(reward_mint, reward_vault, sender_ata, token_program)لكل تدفق إضافي؛ ابق على دراية بحد حجم المعاملة 1232 بايت. لـ 4+ مكافآت، أنشئ بـ 1–2 واستخدمAddRewardفي المعاملات اللاحقة.
زيادة تدفق مكافآت موجود
setRewards end_time وتحويل ميزانية الدلتا. لا يمكن للتعليمة تقصير تدفق، أو خفض per_second على تدفق مباشر، أو تغيير عملة المكافآت. لمبادلة العملات، انتظر end_time واستخدم AddReward على فتحة محررة (إن وجدت)، أو أنشئ مزرعة جديدة.
إعادة تشغيل تدفق منتهي
reward_state == 2 (انتهى) للفتحة المستهدفة. يجب أن يكون المتصل هو reward_sender للفتحة (v6) أو مالك المزرعة (v5).
Rust CPI
بخلاف AMM v4، يأتي برنامج المزرعة v6 مع صندوق Anchor (raydium_farm_v6) منشور جنبًا إلى جنب مع مصادر الواجهة الأمامية و SDK. رسم تخطيطي دقيق لـ Deposit:
remaining_accounts فتحات المكافآت النشطة للمزرعة 1-إلى-1 (أزواج من reward_vault_i، user_reward_ata_i بترتيب الفهرس). قد يؤدي حذف أو سوء ترتيب هذه إلى محاسبة صامتة خاطئة — سيحول البرنامج المبلغ الخاطئ.
الأخطاء الشائعة
- نسيان المطالبة قبل سحب الأموال. غير مؤذ —
Withdrawيسوي المكافآت المعلقة أولاً. لكن إذا عرضت واجهة المستخدم “المطالبة” بشكل منفصل عن “السحب”، قد يعتقد المستخدم أن هناك شيئًا آخر للمطالبة به بعدWithdraw. لا يوجد؛ تم دفع كل شيء تراكم حتى هذه النقطة. total_staked = 0أثناء الانبعاثات. يتم مصادرة الانبعاثات المتراكمة أثناء عدم حجز أي شيء (تقوم صيغة تحديثreward_per_shareبالقسمة على 0 والبرنامج يتخطى التحديث). بالنسبة للبرامج ذاتopen_timeالمجدول، شغّل “حصة بذرة” في open_time لتجنب هذا.- رسوم نقل Token-2022. على مزارع v6 مع عملات مكافآت Token-2022، تنطبق رسوم النقل عند الإصدار (الخزان → المستخدم). عامل هذا في عروض APR.
per_secondصغير على v5. معدل v5’su64يعني أن أيper_second < 1وحدة رمز في الثانية (على عملات بـ ≥9 علامات عشرية هذا غالبًا هو المعدل المطلوب) لا يمكن التعبير عنه — معدل التدفق يقرب إلى 0 والمزرعة لا تصدر شيئًا. استخدم v6.
أين تذهب بعد ذلك
products/farm-staking/instructions— مرجع التعليمات الأساسي.products/clmm/fees— قارن مع تدفقات المكافآت الأصلية لـ CLMM.user-flows/migrate-amm-v4-to-cpmm— غالبًا ما يقترن مع إطلاق مزرعة CPMM جديدة.
- Raydium SDK v2
- معرّف برنامج Farm v6 مضمّن في
raydium-io/raydium-sdk-V2تحتsrc/raydium/farm/.

