Java教程

智能合约HardHat框架环境的搭建

本文主要是介绍智能合约HardHat框架环境的搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.首先创建一个npm项目

PS C:\Users\lcds\blockchainprojects> mkdir hardhatcontract

PS C:\Users\lcds\blockchainprojects> cd .\hardhatcontract\

2.运行  npm init -y   初始化项目
PS C:\Users\lcds\blockchainprojects\hardhatcontract> npm init -y
Wrote to C:\Users\lcds\blockchainprojects\hardhatcontract\package.json:

{
  "name": "hardhatcontract",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

3.运行  npm i hardhat   安装项目依赖

PS C:\Users\lcds\blockchainprojects\hardhatcontract> npm i hardhat

4.运行   npx hardhat 

PS C:\Users\lcds\blockchainprojects\hardhatcontract> npx 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.15.0

√ What do you want to do? · Create a TypeScript project
√ Hardhat project root: · C:\Users\lcds\blockchainprojects\hardhatcontract
√ Do you want to add a .gitignore? (Y/n) · y
× Help us improve Hardhat with anonymous crash reports & basic usage data? (Y/n) · y

You need to install these dependencies to run the sample project:
  npm install --save-dev "hardhat@^2.15.0" "@nomicfoundation/hardhat-toolbox@^3.0.0"

Project created

See the README.md file for some example tasks you can run

Give Hardhat a star on Github if you're enjoying it!

     https://github.com/NomicFoundation/hardhat

 

  5.它会自动创建一个项目模板或者创建一个hardhat配置文件,

这里会出现三个选项,第一个是创建一个JavaScript项目,第二个是创建一个TypeScript项目,第三个是创建一个空的配置文件,我这里选择第二个,再之后就是项目的根目录,可以选择默认的路径,再之后是否生成.gitignore,我们选择y,再之后它会为我们是否安装这个项目的所有依赖,我们继续选择y,等安装依赖完成后,项目中会出现三个文件夹和一个配置文件,我们分别来看一下这几个文件的作用:

PS C:\Users\lcds\blockchainprojects\hardhatcontract> dir


    目录: C:\Users\lcds\blockchainprojects\hardhatcontract


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2023/6/17      8:35                contracts
d-----         2023/6/17      8:34                node_modules
d-----         2023/6/17      8:35                scripts
d-----         2023/6/17      8:35                test
-a----         2023/6/17      8:35            101 .gitignore
-a----         2023/6/17      8:34            181 hardhat.config.ts
-a----         2023/6/17      8:34         140706 package-lock.json
-a----         2023/6/17      8:34            279 package.json
-a----         2023/6/17      8:34            352 README.md
-a----         2023/6/17      8:34            232 tsconfig.json

6.第一个文件是hardht.config.ts 配置文件,它里面有一个配置对象,这个配置对象可以设置solidity的版本,区块链网络,和ohai测试库的相关配置。

第一个文件夹是contracts 用来放置智能合约文件默认生成的 lock.sol文件,该文件就是一个智能合约文件;

第二个文件夹是scripts 是用来放置一些脚本文件,默认只有一个deploy.ts文件,deploy.ts里面是一些用TypeScript编写的部署脚本;

第三个文件夹是test 用来放置合约的测试文件,测试文件好像比智能合约文件大很多,原因就是智能合约必须经过全面,严格的测试保证没有漏洞才可以在主网上部署,因为智能合约一经部署就很难修改了

7.Hardhat命令一很多,有12个子命令 分别是:check clean compile console coverage  flatton help node run  test  typechain verify   下面介绍几个最常用的命令:

7.1   第一个是help 在使用此命令之前,需要安装如下三条命令

1) npm install --save-dev typescript

2) npm install --save-dev ts-node

3) npm install @nomicfoundation/hardhat-toolbox

help命令的作用是把hardhat所有的命令参数展示出来,在命令行运行  npx hardhat help

7.2  第二个命令是compile

它是智能合约的编译命令,在命令行运行 

npx hardhat compile

首次使用它,它会在本地下载一个编译器到本地,然后将contracts目录下的合约进行编译,然后把合约进行部署,编译完成后会生成三个文件夹。

第一个文件夹是 artifacts 其中将放置编译信息和ABI,主要是用来给外部使用,让外部可以来与智能合约进行交互,比如前端等;

第二个文件夹是cache,它会存放编译的缓存信息,比如会记录合约的内容哈希和最后修改时间,这样可以在下次编译时不再编译哪些没有变化的合约;

第三个文件夹是typechain-types 它是合约所对应的TypeScript类型文件,如果你是用TypeScript,那么它非常用用,因为我们没有学习solidity,所以这里的很多概念,我们一带而过,等后面学习智能合约时再一点点讲解。

7.3  第三个命令是clean 它可以帮助我们清理掉编译出来的文件,在命令行运行 npx haedhat clean

7.4  第四个命令是typechain 它可以帮我们生成对应的TypeScript类型文件,如果没有artifacts目录的话,也会一并生成

7.5  第五个命令是 test  在命令行运行  npx  hardhat  test 会运行所有的单元测试,hardhat使用测试框架摩卡【ohai】测试代码和普通的JavaScript单元测试没有上面区别。

7.6 第六个命令是 coverage 它的作用是运行单元测试,并同时生成单元测试覆盖率报告 运行 npx hardhat coverage

7.7  第七个命令是 run 它可以运行scripts目录下的脚本,比如将我们的合约部署到指定的网络中,在命令行运行   npx hardhat run scripts/deploy.ts        它会运行我们的scripts/deploy.ts,并在控制台打印合约部署后的地址

7.8   第八个命令是 node 在命令行运行  npx hardhat node   它可以帮助我们在本地启动一个区块链网络,并提供一个服务节点,服务节点默认的 JSON-RPC 地址是http://127.0.0.1:8545 同时它还会在控制台输出20个以太坊钱包地址和私钥。每个账户会包含10000个ETH用于测试,剩下的四个命令现在并不是很好理解,我们在后面适当的时候和给大家介绍,请一定要将开发环境搭建好,并尝试一下流程中介绍到的hardhat命令。

 

这篇关于智能合约HardHat框架环境的搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!