المهارات web3-testing
📦

web3-testing

آمن ⚙️ الأوامر الخارجية🌐 الوصول إلى الشبكة📁 الوصول إلى نظام الملفات🔑 متغيرات البيئة

اختبار العقود الذكية مع Hardhat وFoundry

متاح أيضًا من: wshobson

يحتاج مطورو العقود الذكية إلى أطر اختبار موثوقة لضمان أمان الكود وصحته. يوفر هذا الدليل أنماط اختبار شاملة باستخدام Hardhat وFoundry للاختبارات الوحدوية واختبارات التكامل وعكس الشبكة الرئيسية.

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "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 لعنوان الاختبار

التدقيق الأمني

آمن
v1 • 2/25/2026

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
الملفات التي تم فحصها
430
الأسطر التي تم تحليلها
5
النتائج
1
إجمالي عمليات التدقيق
مشكلات منخفضة المخاطر (1)
Documentation Contains Code Examples
Static analyzer flagged markdown code blocks as executable code. The SKILL.md file contains instructional code examples for Hardhat and Foundry testing frameworks, delimited by markdown backticks. These are documentation, not executable scripts.
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

اختبار بروتوكولات التمويل اللامركزي

اختبار عقود الصرف اللامركزي مع عكس الشبكة الرئيسية للتحقق من صحة عمليات المبادلة مع عقود الرموز الحقيقية قبل النشر.

تحقق من مجموعة NFT

التحقق من صحة منطق سك NFT ونقل وتوزيع الإتاوات مع اختبارات وحدوية شاملة وfuzzing للحالات الحدية.

التحضير لتدقيق العقد الذكي

إنشاء مجموعات اختبار شاملة بتغطية عالية قبل تقديم العقود للتدقيق الأمني المهني.

جرّب هذه الموجهات

إعداد اختبار وحدوي أساسي
إنشاء ملف اختبار Hardhat لعقد رمز ERC20 الخاص بي. تضمين اختبارات للنشر ووظيفة التحويل والتحقق من الرصيد. استخدام عقد Token.sol في المسار src/Token.sol.
اختبار Foundry Fuzzing
كتابة اختبار fuzzing باستخدام Foundry لعقد staking الخاص بي للتحقق من صحة حساب المكافآت عبر مبالغ فترات زمنية مختلفة. استخدام vm.assume لتعيين نطاقات إدخال صالحة.
اختبار تكامل عكس الشبكة الرئيسية
إعداد اختبار عكس الشبكة الرئيسية يتفاعل مع router Uniswap V2 ورمز DAI الحقيقي. اختبار مبادلة 1 ETH مقابل DAI والتحقق من أن المبلغ المستلم ضمن الانزلاق المتوقع.
مقارنة تحسين الغاز
إنشاء اختبار يقارن استخدام الغاز بين تطبيقين لنفس دالة العقد. نشر كلا الإصدارين وتنفيذ عمليات متطابقة والإبلاغ عن فرق الغاز مع التوصيات.

أفضل الممارسات

  • استخدام fixtures لإعداد حالة الاختبار وتكرار الكود بين الاختبارات
  • اختبار مسارات النجاح وحالات الفشل بما في ذلك شروط revert
  • تشغيل الاختبارات مع تمكين التغطية استهداف تغطية سطر تزيد عن 90 بالمائة

تجنب

  • اختبار المسارات السعيدة فقط دون التحقق من الحالات الحدية وأوضاع الفشل
  • كتابة مفاتيح خاصة أو عناوين RPC مباشرة في ملفات الاختبار بدلاً من استخدام متغيرات البيئة
  • تخطي اختبارات عكس الشبكة الرئيسية للعقود التي تتفاعل مع بروتوكولات DeFi الخارجية

الأسئلة المتكررة

ما هو الفرق بين Hardhat وFoundry للاختبار؟
يستخدم Hardhat JavaScript/TypeScript للاختبارات مع مكتبة تأكيد Chai. يستخدم Foundry Solidity للاختبارات مع تأكيدات مدمجة. Foundry أسرع ويدعم fuzzing الأصلي. Hardhat لديه نظام بيئي أكبر من الإضافات. استخدم Foundry للاختبارات الحرجة للأداء وHardhat لاختبارات JavaScript المعقدة.
كيف أختبر العقود التي تتفاعل مع بروتوكولات خارجية؟
استخدم عكس الشبكة الرئيسية لإنشاء نسخة محلية من حالة الشبكة الرئيسية. قم بتكوين عنوان URL RPC في hardhat.config.js أو foundry.toml. يمكن لاختباراتك بعد ذلك التفاعل مع العقود المنشورة حقيقية مثل Uniswap أو Aave أو Compound أثناء التشغيل على شبكتك المحلية.
ما معنى fuzzing في اختبار العقود الذكية؟
يولد Fuzzing تلقائياً مدخلات عشوائية لاختبار الدوال عبر قيم كثيرة. يدعم Foundry fuzzing الأصلي مع دوال testFuzz. يساعد في اكتشاف الحالات الحدية التي قد تفوتك مع حالات الاختبار اليدوية، مثلConditions أو مجموعات المدخلات غير المتوقعة.
كيف يمكنني اختبار دوال العقد المعتمدة على الوقت؟
استخدم أدوات وقت Hardhat لزيادة وقت البلوكتشين أو vm.warp من Foundry لتعيين طوابع زمنية محددة. يسمح هذا باختبار جداول vesting وtimelocks ومنطق آخر قائم على الوقت دون انتظار مرور وقت حقيقي.
هل عكس الشبكة الرئيسية آمن للاختبار؟
نعم، يعمل عكس الشبكة الرئيسية بالكامل محلياً. لا يتم إرسال أي معاملات إلى الشبكة الرئيسية. معاملات الاختبار الخاصة بك موجودة فقط في البيئة المحلية المعكوسة. ومع ذلك، لا تستخدم أبداً مفاتيح خاصة حقيقية بأموال كبيرة في الاختبار، حتى محلياً.
كيف أقيس تغطية الاختبار لعقودي الذكية؟
بالنسبة لـ Hardhat، قم بتشغيل npx hardhat coverage لتقرير HTML يوضح تغطية العبارات والفروع والدوال. بالنسبة لـ Foundry، استخدم forge coverage للمخرجات الطرفية أو forge coverage --report lcov لتقارير مفصلة. استهدف تغطية تزيد عن 90٪ قبل النشر.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md