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只是举例的脚本文件名)。

相关推荐
limit00751 天前
三维 WebGIS 工具选型:加载、样式、分析、交付,一套界面能做完什么
android·前端·web3·安卓·webgl
木西1 天前
dAppOS 意图执行网络核心技术剖析:从智能账户、生息资产金库到 OMS 乐观质押仲裁的 Solidity 0.8.28 实现
web3·智能合约·solidity
limit00752 天前
公开 WMTS / XYZ 瓦片接入 Cesium:6 类常见问题与排查顺序
chrome·低代码·arcgis·web3·旅游
limit00753 天前
三维模型悬空与切片偏移的排查顺序
低代码·3d·arcgis·web3·安卓·webgl
磐链科技6 天前
元链科技:随着区块链技术持续发展,Web3逐渐成为数字资产管理、去中心化应用和数字经济创新的重要技术方向
科技·web3·区块链
磐链科技6 天前
Web3区块链开发需要哪些核心技术?解析分布式网络、数字钱包与跨链交互方案
分布式·web3·区块链
木西8 天前
Web3+AI 社交工程解析|MetYa 去中心化身份与 DePIN 算力方案
web3·智能合约·solidity
重明链迹实验室9 天前
重明链迹丨每周区块链安全要闻(1012-1018)
安全·web3·区块链
十二同学啊12 天前
反洗钱体系详解:KYC、风险评级、交易监控与可疑交易报告
web3·区块链·智能合约
商业白皮书15 天前
Web3 品牌曝光渠道指南:项目方如何挑选适配媒体资源
web3·媒体