NFT 合约项目教程
1. 项目目录结构及介绍
nft-contracts/
├── contracts/
│ ├── ERC721CommunityBase.sol
│ ├── ERC721CommunityImplementation.sol
│ ├── experiments/
│ └── ...
├── lib/
├── scripts/
│ ├── generate_mnemonic.mjs
│ └── ...
├── test/
├── .env.example
├── .gitignore
├── .gitmodules
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── buildship.txt
├── foundry.toml
├── funding.json
├── hardhat.config.ts
├── package-lock.json
├── package.json
├── remappings.txt
└── tenderly.yaml
目录结构介绍
- contracts/: 存放智能合约文件,包括ERC721社区实现和基础合约,以及实验性合约。
- lib/: 存放项目依赖的库文件。
- scripts/: 存放脚本文件,例如生成助记词的脚本。
- test/: 存放测试文件,用于测试智能合约的功能。
- .env.example: 环境变量示例文件,用户可以复制并配置自己的环境变量。
- .gitignore: Git忽略文件配置。
- .gitmodules: Git子模块配置。
- CODE_OF_CONDUCT.md: 行为准则文件。
- CONTRIBUTING.md: 贡献指南文件。
- LICENSE: 项目许可证文件。
- README.md: 项目介绍和使用说明文件。
- buildship.txt: 项目相关信息文件。
- foundry.toml: Foundry配置文件。
- funding.json: 资金相关配置文件。
- hardhat.config.ts: Hardhat配置文件。
- package-lock.json: npm包锁定文件。
- package.json: npm包配置文件。
- remappings.txt: 重映射配置文件。
- tenderly.yaml: Tenderly配置文件。
2. 项目启动文件介绍
项目的启动文件主要依赖于Hardhat和Foundry等工具。以下是启动项目的关键步骤:
安装依赖
npm install
编译合约
npx hardhat compile
运行测试
npx hardhat test
部署合约
npx hardhat run scripts/deploy.js --network <network_name>
3. 项目配置文件介绍
hardhat.config.ts
这是Hardhat的主要配置文件,用于配置网络、编译器、插件等。
import { HardhatUserConfig } from "hardhat/config";
import "@nomiclabs/hardhat-waffle";
const config: HardhatUserConfig = {
solidity: "0.8.4",
networks: {
rinkeby: {
url: "https://rinkeby.infura.io/v3/YOUR_INFURA_PROJECT_ID",
accounts: ["YOUR_PRIVATE_KEY"],
},
},
};
export default config;
.env.example
这是一个环境变量示例文件,用户可以复制并配置自己的环境变量。
MNEMONIC="your mnemonic here"
INFURA_PROJECT_ID="your infura project id here"
PRIVATE_KEY="your private key here"
foundry.toml
Foundry的配置文件,用于配置Foundry的行为。
[default]
src = "contracts"
out = "out"
libs = ["lib"]
tenderly.yaml
Tenderly的配置文件,用于配置Tenderly的行为。
project: "your-project-name"
username: "your-username"
通过以上配置文件,用户可以自定义项目的编译、测试和部署行为,以适应不同的开发和生产环境。