Skip to content
RugWard
☰ القائمة

RugWard Pay

عقد تقسيم الرسوم على Base (0.5%)

كيف تُقسَّم مدفوعات ETH وUSDC على Base على السلسلة بينك (99.5%) وبين RugWard (0.5%) داخل معاملة المشتري نفسها، وكيف تفحص العقد بنفسك.

في هذه الصفحة

ما هو#

على Base تمرّ مدفوعات ETH وUSDC عبر عقد صغير غير قابل للتعديل: عقد تقسيم RugWard Pay. في معاملة المشتري الواحدة يرسل 99.5% إلى عنوانك و0.5% إلى محفظة رسوم RugWard. تنتقل الأموال مباشرةً من المشتري إليك؛ ولا يحتفظ العقد بأي رصيد أبدًا.

الشبكةBase (معرّف الشبكة 8453)
عقد التقسيم0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab
محفظة الرسوم0xd3651425E1942f6b81dE2602093BbaEac466c666
الرسومFEE_BPS = 50 (0.5%)، مع التقريب إلى الأدنى
بصمة كود التشغيل0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d
الأصول التي تمرّ عبرهETH-8453 وUSDC-8453 فقط

Base وحدها تستخدم عقد تقسيم. على كل الشبكات الأخرى (Bitcoin وMonero وSolana وEthereum وArbitrum وBNB Chain وPolygon) تذهب المدفوعات مباشرةً إلى عنوانك دون تقسيم على السلسلة ودون رسوم RugWard (عرض الإطلاق). عملة USDT غير معروضة على Base.

لماذا عقد تقسيم#

تُقتطع الرسوم بشفافية، على السلسلة، لحظة الدفع، دون أن يحتفظ RugWard بأموالك أبدًا. يرى كلٌّ منك ومن المشتري التحويلين على BaseScan، ولا يستطيع أحد تغيير النسبة: فهي ثابتة في كود غير قابل للتعديل.

العقد#

RugWardPaySplitter (public interface)
uint256 public constant FEE_BPS = 50;        // 0.5 %
address public immutable feeWallet;          // 0xd3651425E1942f6b81dE2602093BbaEac466c666

event Paid(bytes32 indexed ref, address indexed merchant, address indexed token,
           address payer, uint256 amount, uint256 fee);   // token = 0x0 for ETH

function feeOf(uint256 amount) public pure returns (uint256);   // amount * 50 / 10000, rounded down
function payNative(address merchant, bytes32 ref) external payable;
function payToken(IERC20 token, address merchant, uint256 amount, bytes32 ref) external;
  • payNative: يرسل المشتري ETH؛ فيحوّل العقد value − fee إليك وfee إلى محفظة الرسوم في الاستدعاء نفسه.
  • payToken: بعد أن يوافق المشتري لعقد التقسيم على المبلغ الدقيق، ينقل amount − fee من المشتري إليك وfee إلى محفظة الرسوم عبر transferFrom. لا تبقى الرموز في العقد أبدًا.
  • يُطلَق الحدث Paid مع ref العشوائي (32 بايت) الخاص بالعرض؛ وبهذا الحدث يطابق RugWard الدفعة مع الفاتورة.
  • لا يوجد مالك، ولا دالة إدارية، ولا إيقاف مؤقت، ولا ترقية، ولا أي طريقة لسحب شيء: الدوال العامة الخمس أعلاه هي العقد كله. المدفوعات إلى العنوان الصفري أو إلى عقد التقسيم نفسه تُرفض.

ما تفعله صفحة الدفع#

الدفع على Base
تعرض صفحة Base الإجمالي، وحصتك 99.5%، والرسوم 0.5%، وعنوان عقد التقسيم
  1. يتضمن العرض ref عشوائيًا جديدًا وعنوانك وعنوان عقد التقسيم.
  2. قبل توقيع أي شيء يقرأ متصفح المشتري كود عقد التقسيم من Base ويقارن بصمته بالنسخة المراجَعة. عند عدم التطابق يتوقف.
  3. ETH: معاملة واحدة، payNative(merchant, ref). USDC: تطلب المحفظة مرتين: الموافقة على المبلغ الدقيق لعقد التقسيم، ثم payToken(USDC, merchant, amount, ref).
  4. لا يحتسب RugWard الدفعة إلا عندما يأتي حدث Paid من عقد التقسيم المسجَّل (مع إعادة فحص بصمة الكود على السلسلة، ونتيجة محفوظة 10 دقائق)، ويحمل ref هذا العرض وعنوانك والرمز الصحيح، وتساوي رسومه feeOf(amount) تمامًا. والمبلغ المحتسب هو ما وصل إليك.
  5. بعد 30 تأكيدًا تصبح الفاتورة paid.

نتائج مهمة:

  • التحويل العادي لـ ETH أو USDC إلى عنوانك لعرض على Base لا يُرصد تلقائيًا. إن فعل المشتري ذلك خطأً فالمال في محفظتك؛ سوِّ الأمر يدويًا (راجع المدفوعات غير المطابقة).
  • تُعدّ الفاتورة مدفوعة عندما يصلك 99.5% من المبلغ المسعَّر (ويدفع المشتري 100% كاملة).
  • إن كان عنوان الاستلام محفظة عقد ذكي، فيجب أن تقبل تحويلات ETH العادية (وتقبلها محفظة Safe أو الحساب الذكي العادي).
  • إن وافق المشتري على USDC ثم ترك الدفع، تبقى موافقة بذلك المبلغ الدقيق لعقد التقسيم. هي غير ضارة (لا يستطيع إنفاقها إلا المشتري نفسه عبر payToken، وللدفع لتاجر فقط)، ويمكنه إزالتها عبر Approvals.

افحصه بنفسك#

يستطيع أي شخص التحقق من النشر بأدوات عامة، مثل cast من Foundry:

Check the contract yourself (Foundry cast)
RPC=https://mainnet.base.org
SPLITTER=0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab

cast keccak $(cast code $SPLITTER --rpc-url $RPC)
# expected: 0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d

cast call $SPLITTER "feeWallet()(address)" --rpc-url $RPC
# 0xd3651425E1942f6b81dE2602093BbaEac466c666
cast call $SPLITTER "FEE_BPS()(uint256)" --rpc-url $RPC
# 50
cast call $SPLITTER "feeOf(uint256)(uint256)" 25000000 --rpc-url $RPC
# 125000  (0.125 USDC of a 25 USDC payment)

أو افتح العنوان على BaseScan واطّلع على أحداث Paid والتحويلات الداخلية.

جرّبه على Sepolia#

النسخة نفسها من العقد منشورة على Ethereum Sepolia على العنوان 0xbcb045fba82ce46ac073ac609cb227d20c450ce5 بالتقسيم نفسه 99.5% / 0.5%. تستخدمها الفواتير التجريبية في اللوحة مع ETH وUSDC تجريبيين مجانيين، فتشاهد المسار نفسه تمامًا قبل استلام أموال حقيقية.

حالة المراجعة#

خضع عقد التقسيم لمراجعة داخلية من RugWard وتغطيه اختبارات Foundry الخاصة بنا (اختبارات وحدات واختبارات عشوائية fuzz). ولم تراجعه شركة مستقلة. مصدره وسلوكه صغيران بما يكفي لقراءتهما في دقائق؛ والواجهة أعلاه كاملة.

آخر تحديث: 30 أكتوبر 2026