web3-testing
اختبار العقود الذكية مع Hardhat وFoundry
متاح أيضًا من: wshobson
يحتاج مطورو العقود الذكية إلى أطر اختبار موثوقة لضمان أمان الكود وصحته. يوفر هذا الدليل أنماط اختبار شاملة باستخدام Hardhat وFoundry للاختبارات الوحدوية واختبارات التكامل وعكس الشبكة الرئيسية.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "web3-testing". إنشاء اختبار Foundry لعقد vault يتعامل مع الودائع والسحوبات
النتيجة المتوقعة:
- تم إنشاء VaultTest.sol بـ 8 دوال اختبار
- الاختبارات تشمل: testInitialBalance وtestDeposit وtestWithdraw وtestFailWithdrawMoreThanDeposit وtestFuzzDepositAmount وtestMultipleUsers وtestVaultBalanceTracking وtestEmergencyWithdraw
- التغطية: تغطية 95٪ من العبارات عبر دوال vault
- تقرير الغاز: متوسط تكلفة الإيداع 45000 غاز،、平均 withdrawal costs 38000 gas
استخدام "web3-testing". إعداد عكس الشبكة الرئيسية لاختبار بروتوكول الإقراض الخاص بي مقابل Aave
النتيجة المتوقعة:
- تم تكوين hardhat.config.js مع إعدادات عكس الشبكة الرئيسية
- تم إنشاء اختبار تكامل يتصل بـ Aave V2 lending pool على العنوان 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9
- التحقق من صحة الاقتراض مقابل الضمان بمعدلات الشبكة الرئيسية الحالية
- كتلة الشبكة الرئيسية المعكوسة: 19500000، رصيد ETH وهمي: 100 ETH لعنوان الاختبار
التدقيق الأمني
آمنStatic analysis flagged 63 patterns across 430 lines, but all findings are false positives. The SKILL.md file is documentation containing code examples in markdown blocks, not executable code. Flagged patterns include standard Hardhat configuration (process.env usage), Solidity import syntax, and blockchain RPC endpoints - all legitimate web3 development practices. No malicious intent detected.
مشكلات منخفضة المخاطر (1)
عوامل الخطر
⚙️ الأوامر الخارجية (22)
🌐 الوصول إلى الشبكة (3)
📁 الوصول إلى نظام الملفات (1)
🔑 متغيرات البيئة (6)
درجة الجودة
ماذا يمكنك بناءه
اختبار بروتوكولات التمويل اللامركزي
اختبار عقود الصرف اللامركزي مع عكس الشبكة الرئيسية للتحقق من صحة عمليات المبادلة مع عقود الرموز الحقيقية قبل النشر.
تحقق من مجموعة NFT
التحقق من صحة منطق سك NFT ونقل وتوزيع الإتاوات مع اختبارات وحدوية شاملة وfuzzing للحالات الحدية.
التحضير لتدقيق العقد الذكي
إنشاء مجموعات اختبار شاملة بتغطية عالية قبل تقديم العقود للتدقيق الأمني المهني.
جرّب هذه الموجهات
إنشاء ملف اختبار Hardhat لعقد رمز ERC20 الخاص بي. تضمين اختبارات للنشر ووظيفة التحويل والتحقق من الرصيد. استخدام عقد Token.sol في المسار src/Token.sol.
كتابة اختبار fuzzing باستخدام Foundry لعقد staking الخاص بي للتحقق من صحة حساب المكافآت عبر مبالغ فترات زمنية مختلفة. استخدام vm.assume لتعيين نطاقات إدخال صالحة.
إعداد اختبار عكس الشبكة الرئيسية يتفاعل مع router Uniswap V2 ورمز DAI الحقيقي. اختبار مبادلة 1 ETH مقابل DAI والتحقق من أن المبلغ المستلم ضمن الانزلاق المتوقع.
إنشاء اختبار يقارن استخدام الغاز بين تطبيقين لنفس دالة العقد. نشر كلا الإصدارين وتنفيذ عمليات متطابقة والإبلاغ عن فرق الغاز مع التوصيات.
أفضل الممارسات
- استخدام fixtures لإعداد حالة الاختبار وتكرار الكود بين الاختبارات
- اختبار مسارات النجاح وحالات الفشل بما في ذلك شروط revert
- تشغيل الاختبارات مع تمكين التغطية استهداف تغطية سطر تزيد عن 90 بالمائة
تجنب
- اختبار المسارات السعيدة فقط دون التحقق من الحالات الحدية وأوضاع الفشل
- كتابة مفاتيح خاصة أو عناوين RPC مباشرة في ملفات الاختبار بدلاً من استخدام متغيرات البيئة
- تخطي اختبارات عكس الشبكة الرئيسية للعقود التي تتفاعل مع بروتوكولات DeFi الخارجية