Hardhat-Deploy 项目教程
hardhat-deployhardhat deployment plugin项目地址:https://gitcode.com/gh_mirrors/ha/hardhat-deploy
1. 项目的目录结构及介绍
Hardhat-Deploy 是一个用于 Hardhat 的部署插件,它帮助开发者更方便地管理和部署智能合约。项目的目录结构通常如下:
hardhat-deploy/
├── README.md
├── package.json
├── hardhat.config.js
├── deploy/
│ ├── 01_deploy_contract1.js
│ ├── 02_deploy_contract2.js
│ └── ...
├── contracts/
│ ├── Contract1.sol
│ ├── Contract2.sol
│ └── ...
├── deployments/
│ ├── rinkeby/
│ │ ├── Contract1.json
│ │ ├── Contract2.json
│ │ └── chainId
│ └── mainnet/
│ ├── Contract1.json
│ ├── Contract2.json
│ └── chainId
└── test/
├── Contract1.test.js
├── Contract2.test.js
└── ...
目录结构介绍
README.md
: 项目说明文档。package.json
: 项目依赖和脚本配置。hardhat.config.js
: Hardhat 配置文件。deploy/
: 存放部署脚本的目录。contracts/
: 存放智能合约源文件的目录。deployments/
: 存放部署信息的目录,按网络划分。test/
: 存放测试脚本的目录。
2. 项目的启动文件介绍
Hardhat-Deploy 的启动文件主要是 hardhat.config.js
,它包含了项目的配置信息和插件的加载。以下是一个简单的 hardhat.config.js
示例:
require('@nomiclabs/hardhat-waffle');
require('hardhat-deploy');
module.exports = {
solidity: '0.8.4',
networks: {
rinkeby: {
url: 'https://rinkeby.infura.io/v3/YOUR_INFURA_PROJECT_ID',
accounts: ['YOUR_PRIVATE_KEY'],
},
},
namedAccounts: {
deployer: {
default: 0, // 默认使用第一个账户
},
},
};
启动文件介绍
require('@nomiclabs/hardhat-waffle')
: 引入 Hardhat Waffle 插件,用于测试和部署。require('hardhat-deploy')
: 引入 Hardhat-Deploy 插件。module.exports
: 导出配置对象,包含 Solidity 版本、网络配置和命名账户配置。
3. 项目的配置文件介绍
Hardhat-Deploy 的配置文件主要是 hardhat.config.js
,它包含了项目的各种配置选项。以下是一些重要的配置选项:
网络配置
networks: {
rinkeby: {
url: 'https://rinkeby.infura.io/v3/YOUR_INFURA_PROJECT_ID',
accounts: ['YOUR_PRIVATE_KEY'],
},
mainnet: {
url: 'https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID',
accounts: ['YOUR_PRIVATE_KEY'],
},
},
命名账户配置
namedAccounts: {
deployer: {
default: 0, // 默认使用第一个账户
},
},
路径配置
paths: {
sources: './contracts',
tests: './test',
cache: './cache',
artifacts: './artifacts',
deployments: './deployments',
},
确定性部署配置
deterministicDeployment: (network) => {
return {
factory: '0x...', // 部署工厂地址
deployer: '0x...', // 部署者地址
funding: '1 ether', // 部署资金
};
},
通过这些配置选项,开发者可以灵活地配置 Hardhat-Deploy 插件,以适应不同的部署需求。
hardhat-deployhardhat deployment plugin项目地址:https://gitcode.com/gh_mirrors/ha/hardhat-deploy