Hardhat's configuration file hardhat.config.js (or .ts) is the core configuration file of the project, mainly containing the following configuration items:
Basic Configuration:
- Solidity Compiler Configuration
javascriptsolidity: { version: "0.8.19", settings: { optimizer: { enabled: true, runs: 200 } } }
- Network Configuration
javascriptnetworks: { hardhat: { chainId: 31337 }, sepolia: { url: process.env.SEPOLIA_RPC_URL, accounts: [process.env.PRIVATE_KEY] }, mainnet: { url: process.env.MAINNET_RPC_URL, accounts: [process.env.PRIVATE_KEY] } }
- Path Configuration
javascriptpaths: { sources: "./contracts", tests: "./test", cache: "./cache", artifacts: "./artifacts" }
Advanced Configuration:
- Plugin Configuration
javascriptrequire("@nomicfoundation/hardhat-toolbox"); require("@nomiclabs/hardhat-etherscan");
- Etherscan Verification Configuration
javascriptetherscan: { apiKey: process.env.ETHERSCAN_API_KEY }
- Gas Reporter Configuration
javascriptgasReporter: { enabled: true, currency: "USD" }
Best Practices:
- Use environment variables to store sensitive information
- Configure different networks for different environments (development, testing, production)
- Enable compiler optimization to reduce gas consumption
- Use TypeScript configuration files for type safety
- Reasonably set the optimizer runs parameter