فاز ۴: سولانا (برنامههای Anchor)
وضعیت: برنامهریزیشده.
برنامههای Anchor با نام payment_link و subscription. یک PDA برای هر لینک؛ delegate در SPL برای اشتراکها. اشتقاق HD برای SOL و سرویس جمعآوری SOL را برای لینکهای علامتخورده منسوخ میکند.
محدوده
- workspace مربوط به Anchor در
contracts/solana/با هر دو برنامه. - ایندکسر وبهوک Helius (یا استریمهای Triton) که رویدادهای وبهوک موجود را منتشر میکند.
- شاخه 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: همچنان استفاده میشود؛ محرک به رویدادهای برنامه منتقل میشود.
- جدید: workspace مربوط به Anchor در
contracts/solana/.
اثر بر اجرا / تجربه کاربری
- لینکهای پرداخت SOL یک آدرس PDA نمایش میدهند؛ از دید پرداختکننده تغییری نیست.
- اشتراکهای SOL هنگام راهاندازی از پرداختکننده یک امضای
Approveدر SPL میخواهند. - لغو از طریق
spl-token revokeیا رابط استاندارد کیف پول انجام میشود.
محدودیتهای فعلی
- SOL پیچیدهشده (wrapped) در برابر SOL بومی برای هر لینک از طریق
expected_mintمدیریت میشود. - جهش کارمزد اولویت ممکن است
charge()را به تأخیر بیندازد؛ تلاشهای دوباره اولویت را بالا میبرند. - در زمان راهاندازی معادلی برای Chainlink روی سولانا وجود ندارد؛ افزونگی ثانویه یک منطقه دوم NestJS یا Clockwork (در صورت قابل قبول بودن) است.
پست وبلاگ مرتبط
فاز ۴: سولانای غیرامانی با PDAهای Anchor
چکلیست وضعیت
- workspace مربوط به Anchor ساخته شد
- برنامه
payment_linkبا همه دستورها + تستها - برنامه
subscriptionبا همه دستورها + تستها - ایندکسر وبهوک Helius منتشر شد
- شاخه SOL برای keeper فعال شد
- گزارش حسابرسی دریافت شد
- استقرار روی mainnet از مولتیسیگ Squads
- گروه canary به مدت ۱۴ روز پایدار