Friendmex 开源项目教程
1. 项目的目录结构及介绍
Friendmex 项目的目录结构如下:
friendmex/
├── contracts/
│ ├── Friendmex.sol
│ ├── interfaces/
│ └── test/
├── scripts/
│ ├── deploy.js
│ └── test.js
├── hardhat.config.js
├── package.json
├── README.md
└── .gitignore
目录结构介绍
- contracts/: 存放智能合约的目录,包括主要的
Friendmex.sol
合约文件,以及相关的接口和测试文件。 - scripts/: 存放部署和测试脚本的目录,
deploy.js
用于部署合约,test.js
用于测试合约。 - hardhat.config.js: Hardhat 配置文件,用于配置项目的编译、部署和测试环境。
- package.json: 项目的依赖管理文件,列出了项目所需的 npm 包。
- README.md: 项目的说明文档,通常包含项目的简介、安装和使用说明。
- .gitignore: Git 忽略文件,指定哪些文件或目录不需要被 Git 跟踪。
2. 项目的启动文件介绍
项目的启动文件主要是 scripts/deploy.js
,该文件用于部署智能合约到区块链网络。
scripts/deploy.js
文件介绍
const hre = require("hardhat");
async function main() {
const Friendmex = await hre.ethers.getContractFactory("Friendmex");
const friendmex = await Friendmex.deploy();
await friendmex.deployed();
console.log("Friendmex deployed to:", friendmex.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
启动文件功能
- 导入 Hardhat 环境: 使用
require("hardhat")
导入 Hardhat 环境。 - 获取合约工厂: 通过
hre.ethers.getContractFactory("Friendmex")
获取合约工厂。 - 部署合约: 调用
deploy()
方法部署合约。 - 输出部署地址: 合约部署成功后,输出合约的部署地址。
3. 项目的配置文件介绍
项目的配置文件主要是 hardhat.config.js
,该文件用于配置 Hardhat 的编译、部署和测试环境。
hardhat.config.js
文件介绍
require("@nomiclabs/hardhat-waffle");
module.exports = {
solidity: "0.8.4",
networks: {
hardhat: {
chainId: 1337
},
// 可以在这里添加其他网络配置,如 mainnet, ropsten 等
},
paths: {
sources: "./contracts",
tests: "./test",
cache: "./cache",
artifacts: "./artifacts"
},
mocha: {
timeout: 20000
}
};
配置文件功能
- Solidity 版本: 指定 Solidity 编译器的版本为
0.8.4
。 - 网络配置: 配置了 Hardhat 的本地网络
hardhat
,并设置了chainId
为1337
。 - 路径配置: 指定了合约、测试、缓存和构建产物的路径。
- Mocha 配置: 设置了 Mocha 测试的超时时间为
20000
毫秒。
通过以上配置,可以确保项目在本地开发和测试环境中正常运行。