يوضح هذا المشروع حالة استخدام Hardhat المتقدمة، حيث يدمج الأدوات الأخرى المستخدمة بشكل شائع إلى جانب Hardhat في النظام البيئي.
يأتي المشروع مع نموذج عقد، واختبار لهذا العقد، ونموذج نصي ينشر هذا العقد، ومثال لتنفيذ المهمة، والذي يسرد ببساطة الحسابات المتاحة. كما يأتي أيضًا مع مجموعة متنوعة من الأدوات الأخرى، التي تم تكوينها مسبقًا للعمل مع رمز المشروع.
حاول تشغيل بعض المهام التالية:
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx hardhat coverage
npx hardhat run scripts/deploy.ts
TS_NODE_FILES=true npx ts-node scripts/deploy.ts
npx eslint ' **/*.{js,ts} '
npx eslint ' **/*.{js,ts} ' --fix
npx prettier ' **/*.{json,sol,md} ' --check
npx prettier ' **/*.{json,sol,md} ' --write
npx solhint ' contracts/**/*.sol '
npx solhint ' contracts/**/*.sol ' --fix
لتجربة التحقق من Etherscan، تحتاج أولاً إلى نشر عقد على شبكة Ethereum التي تدعمها Etherscan، مثل Ropsten.
في هذا المشروع، انسخ الملف .env.example إلى ملف اسمه .env، ثم قم بتحريره لملء التفاصيل. أدخل مفتاح Etherscan API الخاص بك، وعنوان URL لعقدة Ropsten (على سبيل المثال من Alchemy)، والمفتاح الخاص للحساب الذي سيرسل معاملة النشر. مع وجود ملف .env صالح، قم أولاً بنشر عقدك:
hardhat run --network ropsten scripts/sample-script.ts
ثم انسخ عنوان النشر والصقه ليحل محل DEPLOYED_CONTRACT_ADDRESS
في هذا الأمر:
npx hardhat verify --network ropsten DEPLOYED_CONTRACT_ADDRESS " Hello, Hardhat! "
لتشغيل الاختبارات والبرامج النصية بشكل أسرع، فكر في تخطي التحقق من نوع العقدة ts عن طريق تعيين متغير البيئة TS_NODE_TRANSPILE_ONLY
على 1
في بيئة هاردهات. لمزيد من التفاصيل راجع الوثائق.