This project showcases a Hardhat 3 project using mocha for tests and the ethers library for Ethereum interactions.
To learn more about Hardhat 3, please visit the Getting Started guide. To share your feedback, join our Hardhat 3 Telegram group or open an issue in our GitHub issue tracker.
This example project includes:
- A simple Hardhat configuration file.
- Foundry-compatible Solidity unit tests.
- TypeScript integration tests using
mochaand ethers.js - Examples demonstrating how to connect to different types of networks, including locally simulating OP mainnet.
To run all the tests in the project, execute the following command:
npx hardhat testYou can also selectively run the Solidity or mocha tests:
npx hardhat test solidity
npx hardhat test mochaThis project includes an example Ignition module to deploy the contract. You can deploy this module to a locally simulated chain or to Sepolia.
To run the deployment to a local chain:
npx hardhat ignition deploy ignition/modules/Counter.tsTo run the deployment to Sepolia, you need an account with funds to send the transaction. The provided Hardhat configuration includes a Configuration Variable called SEPOLIA_PRIVATE_KEY, which you can use to set the private key of the account you want to use.
You can set the SEPOLIA_PRIVATE_KEY variable using the hardhat-keystore plugin or by setting it as an environment variable.
To set the SEPOLIA_PRIVATE_KEY config variable using hardhat-keystore:
npx hardhat keystore set SEPOLIA_PRIVATE_KEYAfter setting the variable, you can run the deployment with the Sepolia network:
npx hardhat ignition deploy --network sepolia ignition/modules/Counter.ts