Web3:在你的项目中如何使用Hardhat框架

目录

1.什么是Hardhat

编译合约

[假链开发环境(Hardhat Network)](#假链开发环境(Hardhat Network))

自动化测试

常用命令

2.如何使用Hardhat

给当前的项目导入Hardhat框架


全程需要挂着梯子。

1.什么是Hardhat

它是一套框架,Hardhat 就像是「智能合约的脚手架/工具箱」。你写合约 → 它帮你编译、测试、调试、部署,还给你一个本地的"假链"来试跑。

  • 官方定义:一个以太坊开发环境,专门做智能合约的"写、测、调、发"。
  • 技术上:基于 Node.js 的命令行工具(CLI),用 JS/TS 来写脚本和测试。

编译合约

Solidity 代码 → 编译成字节码 + ABI,方便后续部署和前端调用。

命令:npx hardhat compile

假链开发环境(Hardhat Network)

自带一个本地以太坊节点(Hardhat Network),你不用花钱上主网,也能:

部署合约、发交易、跑测试

命令:npx hardhat node

自动化测试

用 JS/TS 写测试脚本,可以断言合约的状态、余额、事件等。

支持常见测试框架(Mocha/Chai 等

命令:npx hardhat test

常用命令

  • npx hardhat compile:编译
  • npx hardhat test:跑测试
  • npx hardhat node:启动本地链
  • npx hardhat run scripts/deploy.js:运行部署脚本

2.如何使用Hardhat

  • 在项目中启动命令行

执行npm init -y (这里不再单独介绍如何安装node.js,以及nvm版本管理器的安装)

项目中出现package.json文件

给当前的项目导入Hardhat框架

最新版本是Hardhat 3,如果你想安装Hardhat 2,执行npm install hardhat@2.22.0 --save-dev,以此来安装v2版本的hardhat,--save-dev表示hardhat保存在开发环境中。

执行成功后,项目中多出了以下东西

那些警告不用管。

如图,导入的hardhat项目版本是v2.22,这样一来,我们的这个项目就是一个hardhat项目了,而且一个hardhat项目一定是基于npm项目的。

执行npx hardhat 初始化这个hardhat项目,注意,使用Hardhat v2.22时,node的版本要为20,使用nvm下载20版本的node.js

nvm install 20

nvm use 20

执行npx hardhat后,选择加入JavaScript,其他选项一路默认回车即可。至此,一个Hardhat项目完成了。


编译hardhat下contracts目录下所有合约

npx hardhat compile

编译合约后要部署合约

部署合约要写一个js脚本

npx hardhat run scripts/deployFundMe.js(这里的deployFundMe.js只是举例的脚本文件名)。

相关推荐
Rockbean1 天前
10分钟智能合约:进阶实战-7.2 Foundry开发环境
web3·智能合约·solidity
davidrevo3 天前
Solidity 学习总结:核心特性与实战指南
web3
Rockbean4 天前
10分钟智能合约:进阶实战-6.4 使合约拒绝服务
web3·智能合约·solidity
Rockbean4 天前
10分钟智能合约:进阶实战-6.3 重入攻击提取资金
web3·智能合约·solidity
木西6 天前
实战:基于 Solidity 0.8.27 与 OpenZeppelin V5 构建多链恶搞代币(以 SPX6900 为例)
web3·智能合约·solidity
Maimai1080811 天前
Web3 前端交易系统如何落地:从下单 UI 到 Operation 编码、签名与实时状态更新
前端·react.js·ui·架构·前端框架·web3
Maimai1080811 天前
Web3 前端实时通信如何落地:从 SSE 订阅到行情、订单与账户状态更新
前端·javascript·react.js·前端框架·web3·状态模式
用户8876654266311 天前
Web3 前端实时通信如何落地:从 SSE 订阅到行情、订单与账户状态更新
前端·react.js·web3
Rockbean11 天前
10分钟智能合约:进阶实战-4.3 Delegatecall漏洞
web3·智能合约·solidity
Man on the moon15 天前
Solidity 零基础入门:从语法到实战,快速掌握智能合约开发
web3·区块链·智能合约