概述
在刚开始学solidity 智能合约的时候,我们大多数都是通过Remix 在线编辑器完成合约编辑部署和测试等流程的工作。毫无疑问,remix在调试的时候是十分的方便的。但是随着编写的合约越来越多,仅仅通过remix来部署就会有些吃力了,各种的参数传递,合约之间的部署的先后关系,以及合约文件的管理,都需要能够工程化的处理这些流程。
目前以及有一些比较成熟的开发,调试,部署等全流程的框架了,其中用的比较多是truffle和hardhat。 hardhat 相对truffle 更新功能也更完善,使用起来也很方便。
下面就记录了我自己使用hardhat的流程以及遇到的一些问题。
项目初始化
mkdir newFloder
cd newFloder
# 初始化项目
npm init
# 使用npm 包管理器安装 hardhat
npm install --save-dev hardhat
# 使用hardhat 初始化
npx hardhat
上述动作做的时候可能会让输入一些东西无非就是一些项目名,版本号之类的,之前按enter 默认就好了, 做完之后就得到一个初始化好的项目。
项目结构说明
contracts: 合约目录,这里存放的都是智能合约
node_modules: 这里存放的是一些依赖第三方的模块
scripts: 这里主要存放部署或者是合约调用的脚本
test: 测试脚本
hardhat.config.js : hardhat的配置文件
package.json: npm 初始化的生成,应该是npm的配置文件,我没改过这个,不怎么关心它
配置文件说明
hardhat的配置全都在 hardhat.config.js 这个文件里。
修改前的代码
require("@nomiclabs/hardhat-waffle");
// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create