Hardhat 是一个用于编译、部署、测试和调试智能合约和Dapp的开发环境。
它可以帮助开发人员管理和自动化构建智能合约和 dApp 过程中固有的重复性任务,并围绕此工作流程轻松引入更多功能。
Hardhat 内置了 Hardhat Network,这是一个专为开发而设计的本地以太坊网络节点,类似于 Ganache geth --dev等。它允许您部署合约、运行、测试和调试代码。
Hardhat比Truffle等传统智能合约开发环境更好用,最新主流web3项目都纷纷采用了Hardhat。
mkdir my-project
cd my-project
npm init --yes
或
yarn init --yes
npm install --save-dev hardhat
或
yarn add --dev hardhat
npx hardhat
或
yarn hardhat
$ yarn hardhat
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
Welcome to Hardhat v2.0.8
? What do you want to do? …
❯ Create a sample project
Create an advanced sample project
Create an advanced sample project that uses TypeScript
Create an empty hardhat.config.js
Quit
选择Create a sample project 回车生成demo项目
中间会提示你会执行下面命令,回车就行
npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers
会生成hardhat.config.js配置文件、test/sample-test.js、contracts/Greeter.sol
默认情况下,Hardhat 将始终在启动时启动 Hardhat Network 的内存实例。也可以以独立方式运行 Hardhat Network,以便外部客户端可以连接到它,比如小狐狸插件或dapp页面。
在新命令行终端执行下面命令,yarn的情况把npx改成yarn就行
$ npx hardhat node
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
启动后会生成内置的默认账户地址和私钥,注意只能本地测试用,不要给该地址转主网的必
这将公开一个 JSON-RPC 接口。要使用它,请将您的钱包或应用程序连接到http://127.0.0.1:8545
注意:本地节点的默认chainId 默认值:31337,小狐狸插件或dapp页面需要调整chainId配置
如果你想将 Hardhat 连接到这个节点,你只需要使用 --network localhost
打开一个新的终端执行下面命令,在localhost网络中部署智能合约,yarn的情况把npx改成yarn就行
npx hardhat run scripts/sample-script.js --network localhost
至此,成功创建了Hardhat项目,并在本地节点部署了合约,后面可以自行创建前端页面模块来调用合约
下面是hardhat官方模板项目,包括智能合约模板和DApp模板,提供了react页面调用合约的模块