المرحلة 4: Solana (برامج Anchor)
الحالة: مخطط لها.
برنامجا Anchor payment_link وsubscription. PDA لكل رابط؛ وتفويض SPL للاشتراكات. تُهمل اشتقاق HD لـ SOL وخدمة تجميع SOL للروابط المعلَّمة.
النطاق
- مساحة عمل Anchor في
contracts/solana/تضم البرنامجين. - مُفهرِس يعتمد webhooks من Helius (أو تدفقات Triton) ويطلق أحداث الـ webhook القائمة.
- فرع SOL للـ keeper في
subscription-auto-charge.processor.ts. - تدقيق SOL (OtterSec أو Neodyme).
الكود المتأثر
- api/src/payments/wallet.service.ts: يصبح فرع SOL في
generateAddressForNetworkحسابًا للـ PDA. - api/src/withdrawals/services/solana-withdrawal-transfer.service.ts: يُتجاوز للروابط المعلَّمة.
- api/src/scheduler/processors/subscription-auto-charge.processor.ts: يُضاف فرع SOL للـ keeper.
- api/src/withdrawals/services/bridge/solana-relay-bridge-executor.service.ts: لا يزال مستخدمًا؛ وينتقل المُطلِق إلى أحداث البرنامج.
- جديد: مساحة عمل Anchor في
contracts/solana/.
الأثر على التشغيل / تجربة المستخدم
- تعرض روابط دفع SOL عنوان PDA؛ دون تغيير من منظور الدافع.
- تطلب اشتراكات SOL من الدافع توقيع
Approveواحدًا في SPL عند الإعداد. - الإلغاء عبر
spl-token revokeأو الواجهة القياسية للمحفظة.
القيود الحالية
- يُعالَج SOL المغلَّف مقابل SOL الأصلي لكل رابط عبر
expected_mint. - قد تؤخر قفزات رسوم الأولوية
charge()؛ وترفع إعادات المحاولة الأولوية. - لا يوجد مكافئ لـ Chainlink على Solana وقت الطرح؛ والتكرار الثانوي هو منطقة NestJS ثانية أو Clockwork (إن كان مقبولًا).
منشور المدونة المرتبط
المرحلة 4: Solana غير احتجازية مع PDAs في Anchor
قائمة التحقق من الحالة
- إنشاء هيكل مساحة عمل Anchor
- برنامج
payment_linkبكل التعليمات + الاختبارات - برنامج
subscriptionبكل التعليمات + الاختبارات - إطلاق مُفهرِس webhooks من Helius
- تفعيل فرع SOL للـ keeper
- استلام تقرير التدقيق
- النشر على الشبكة الرئيسية من التوقيع المتعدد Squads
- استقرار مجموعة canary لمدة 14 يومًا