المرحلة 1: عقود روابط الدفع على EVM
الحالة: مخطط لها.
استبدال محافظ الإيداع المشتقة من HD بـ PaymentLinkFactory (CREATE2) + PaymentLinkReceiver (نسخة EIP-1167) + FeeSplitter على Base.
النطاق
- تنفيذ
PaymentLinkFactoryوPaymentLinkReceiverوFeeSplitterوتدقيقها. - عرض عنوان CREATE2 الحتمي للدافع قبل أي نشر.
- يطلق مُفهرِس حدث
Paidالـ webhooks القائمة دون تغيير. - علامة الميزة
useOnChainReceiverلكل chain id.
الكود المتأثر
- api/src/payments/wallet.service.ts: فرع EVM في
getOrCreateAddressForPaymentLink. - api/src/withdrawals/services/smart-account-wallet.service.ts: يُتجاوز
drainSmartAccountWalletللسلاسل المعلَّمة. - جديد:
api/src/payments/indexer/evm-paid-event.service.ts. - جديد:
contracts/evm/(Foundry).
الأثر على التشغيل / تجربة المستخدم
- واجهة الدافع دون تغيير. صيغة العنوان نفسها (عنوان CREATE2 قبل النشر).
- شكل webhooks التاجر دون تغيير؛ وتضيف الأحداث غير الاحتجازية علامة اختيارية
non_custodial: true. - تضيف لوحة التحكم شارة «غير احتجازي» لكل رابط.
القيود الحالية
- تعود الرموز ذات الرسوم عند التحويل إلى المسار القديم (بتحكم قائمة المسموح بها).
- تعود الرموز غير الموجودة في قائمة المسموح بها إلى المسار القديم.
- الاسترداد مقصور على EOA الـ keeper أو التوقيع المتعدد (كما هو اليوم).
منشور المدونة المرتبط
المرحلة 1: روابط دفع قائمة على العقود على EVM
قائمة التحقق من الحالة
- إنشاء هيكل مشروع Foundry
- تنفيذ العقود مع اختبارات fuzz والثوابت
- نجاح اختبارات fork لـ USDT / ERC-20 غير القياسية
- ربط علامة الميزة
useOnChainReceiver - إطلاق المُفهرِس
evm-paid-event.service.ts - اكتمال التدقيق ودمج الإصلاحات
- النشر على الشبكة الرئيسية لـ Base من التوقيع المتعدد Safe
- مجموعة canary سليمة لمدة 14 يومًا