综述
Hardhat是以太坊智能合约的开发环境。它包含不同的组件用于编辑、编译、调试和部署智能合约和dApps。
这些组件协同合作,建立了一个完整的开发环境。
Hardhat Runner是使用Hardhat时需要进行交互的一个主要的组件。它是一个灵活的、可扩展的task runner,用于管理和自动执行开发智能合约和 dApp 所固有的重复性任务。
Hardhat Runner是围绕tasks和plugins进行设计的。每次通过命令行运行Hardhat时,都是运行一个taask,比如:npx hardhat compile就是运行一个内置的compile task。tasks可以调用其他的tasks,用于定义比较复杂的工作流。tasks可以被用户或plugins重载,用于进行工作流的自定义和扩展。
安装
Hardhat在使用前需要在项目中进行本地安装,这种方式可以保证环境是可以复制的,而且不会和其他的版本发生冲突。
为了安装Hardhat,首先需要创建一个npm项目(创建一个空目录,然后在目录中运行npm init)
当基础环境准备好后,运行以下命令进行Hardhat的安装:
npm install --save-dev hardhat
快速开始
创建项目
在项目目录中使用如下命令创建一个Hardhat项目:
npx hardhat
在创建项目的过程中,可以指定开发语言是javascript还是typescript。运行tasks
为了对有哪些可用的tasks又一个直观的认识,可以首先运行npx hardhat命令:在available tasks中的tasks,既包括内置的task也包括从已经安装的plugin带来的task。npx hardhat是查询可用task的起始点。编译智能合约
查看contracts目录,会看到一个Lock.sol文件。
为了编译这个合约,只需要在项目目录下运行npx hardhat compile命令即可。
测试智能合约
可以通过运行命令npx hardhat test来运行测试用例:
部署智能合约
可以使用hardhat脚本部署,在scripts文件夹中,可以找到一个脚本文件:
可以通过npx hardhat run命令运行这个脚本:
连接钱包或Dapp到hardhat网络上
缺省情况下,hardhat将在启动时启动一个新的 Hardhat Network 内存实例。还可以以独立方式运行Hardhat Network,以便外部客户端可以连接到它。这可以是钱包、Dapp前端或脚本。
为了以这种方式运行hardhat,可以使用命令:npx hardhat node
这个命令会向外暴露一个hardhat网络的json-rpc接口,可以使用这个接口来连接wallet或Dapp。
如果想让一个hardhat连接到这个node,比如在这个node上进行部署,需要使用--network localhost参数:
npx hardhat run scripts/deploy.js --network localhost






