— введение
— Написание задач
— Написание скриптов Hardhat
— Выбор между задачами и скриптами
— хардхат учебники , хардхат 教程
— Контакт 联系方式
— введение
По своей сути Hardhat — это программа для выполнения задач, которая позволяет автоматизировать рабочий процесс разработки. Он поставляется с некоторыми встроенными задачами, такими как compile
и test
, но вы также можете добавить свои собственные задачи.
Это руководство покажет вам, как расширить функциональность Hardhat с помощью задач и скриптов. Предполагается, что вы инициализировали проект-образец. Если вы еще не сделали этого, пожалуйста, сначала прочитайте это руководство.
— Написание задач
Давайте напишем очень простую задачу, которая печатает список доступных счетов, и посмотрим, как она работает.
Скопируйте эту постановку задачи и вставьте ее в ваш конфигурационный файл hardhat:
task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
const accounts = await hre.ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
Теперь вы должны быть в состоянии запустить его:
npx hardhat accounts
Мы используем функцию task
для определения нашей новой задачи. Ее первый аргумент — это имя задачи, и именно его мы используем в командной строке для ее запуска. Второй аргумент — это описание задачи, которое выводится при использовании npx hardhat help
.
Третий аргумент — это асинхронная функция, которая выполняется при запуске задачи. Она получает два аргумента:
- Объект с аргументами для задачи. Мы еще не определили ни одного.
- Среда выполнения Hardhat Runtime Environment или HRE, которая содержит все функциональные возможности Hardhat и его плагинов. Вы также можете найти все ее свойства, внедренные в пространство имен
global
во время выполнения задачи.
Вы можете делать в этой функции все, что захотите. В данном случае мы используем ethers.getSigners()
, чтобы получить все настроенные учетные записи и вывести адреса каждой из них.
Вы можете добавлять параметры в свои задачи, и Hardhat будет обрабатывать их разбор и проверку за вас.
Вы также можете переопределить существующие задачи, что позволит вам изменить работу различных частей Hardhat.
Чтобы узнать больше о задачах, прочитайте это руководство.
— Написание сценариев Hardhat
Вы можете писать сценарии и запускать их с помощью Hardhat. Они могут использовать преимущества среды выполнения Hardhat Runtime Environment для доступа ко всем функциональным возможностям Hardhat, включая бегунок задач.
Вот сценарий, который делает то же самое, что и наша задача accounts
. Создайте файл accounts.js
с таким содержимым:
async function main() {
const accounts = await ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
}
main().catch((error) => {
console.error(error);
process.exit(1);
});
И запустите его с помощью встроенной задачи run
:
npx hardhat run accounts.js
Обратите внимание, что мы используем ethers
, не импортируя его. Это возможно потому, что все, что доступно в среде выполнения Hardhat, также глобально доступно в сценарии.
Чтобы узнать больше о скриптах, включая то, как запускать их без использования CLI Hardhat, пожалуйста, прочитайте это руководство.
— Выбор между задачами и сценариями
Выбор между задачами и скриптами остается за вами. Если вы сомневаетесь, какой из них использовать, вам может быть полезно следующее:
-
Если вы хотите автоматизировать рабочий процесс, не требующий параметров, то лучшим выбором будет сценарий.
-
Если автоматизируемый рабочий процесс требует некоторых параметров, подумайте о создании задачи Hardhat.
-
Если вам нужно получить доступ к среде выполнения Hardhat из другого инструмента, имеющего собственный CLI, например
jest
илиndb
, вам следует написать сценарий. Обязательно импортируйте среду выполнения Hardhat в явном виде, чтобы ее можно было запускать с помощью этого инструмента вместо CLI Hardhat. -
Если вы чувствуете, что обработка параметров в Hardhat не удовлетворяет вашим потребностям, вам следует написать сценарий. Просто импортируйте среду выполнения Hardhat в явном виде, используйте собственную логику разбора аргументов (например, с помощью
yargs
) и запустите его как отдельный сценарий Node.js.
— hardhat Tutorials , hardhat 教程
CN 中文 Github hardhat 教程 : github.com/565ee/hardhat_CN
CN 中文 CSDN hardhat 教程 : blog.csdn.net/wx468116118
EN 英文 Github hardhat Tutorials : github.com/565ee/hardhat_EN
— Контакт 联系方式
Домашняя страница : 565.ee
GitHub : github.com/565ee
Электронная почта : 565.eee@gmail.com
Facebook : facebook.com/565.ee
Twitter : twitter.com/565_eee
Telegram : t.me/ee_565