A BoilerPlate Template Project To Start Solidity Development With Hardhat and Typescript. All you have to do is create a new repository from the template and start coding your smart contracts.
- Typechain plugin enabled (typescript type bindings for smart contracts)
- hardhat-deploy plugin enabled
- Testing environment configured and operational, with test coverage
- Prettier and eslint configured for project files and solidity smart contract
- Solhint configured for enforcing best practices
- Github actions workflows prepared for CI/CD
- Prepared Smart Contract Examples, Tests, Deployments and Tasks for Common ERC Standards (ERC20, ERC721, ERC1155)
Check the Hardhat documentation for more information.
https://hardhat.org/getting-started/
.
├── contracts
│ ├── BasicERC1155.sol
│ ├── BasicERC20.sol
│ └── BasicERC721.sol
├── deploy
│ ├── Deploy_BasicERC1155.ts
│ ├── Deploy_BasicERC20.ts
│ └── Deploy_BasicERC721.ts
├── deployments
├── hardhat.config.ts
├── tasks
│ ├── erc1155
│ ├── erc20
│ ├── erc721
│ └── utils
└── test
├── BasicERC1155.ts
├── BasicERC20.ts
└── BasicERC721.ts
- Hardhat Network (localhost)
- Ethereum Mainnet
- Ethereum Sepolia Testnet
- Polygon Mainnet
- Polygon Mumbai Testnet
Feel free to add more networks in hardhat.config.ts file.
We recommend installing hh autocomplete so you can use hh shorthand globally.
npm i -g hardhat-shorthandhttps://hardhat.org/guides/shorthand.html
hh compile- to compile smart contract and generate typechain ts bindingshh test- to run testshh deploy- to deploy to local network (see options for more)hh node- to run a localhost nodehh help- to see all available commandshh TABTAB- to use autocomplete
npm installnpm run compileCreate .env file and add your environment variables. You can use .env.example as a template.
If you are going to use public network, make sure you include the right RPC provider for that network.
Make sure you include either MNEMONIC or PRIVATE_KEY in your .env file.
This is an example flow to deploy an ERC721 token to a public network and interact with it.
hh deploy --network sepolia --tags BasicERC721hh --network sepolia etherscan-verifyhh erc721-mint \
--contract 0x77337983A7D1699FaF51a5f43b9907fB7B614097 \
--recipient 0x73faDd7E476a9Bc2dA6D1512A528366A3E50c3cF \
--network sepolianpm run testnpm run coveragenpm run format:check
npm run format:writenpm run lint:check
npm run lint:fixnpm run sol:format:check
npm run sol:format:writenpm run solhint