- 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
- 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
│ ├── ERC1155.sol
│ ├── ERC20.sol
│ └── ERC721.sol
├── deploy
│ ├── DeployERC1155.ts
│ ├── DeployERC20.ts
│ └── DeployERC721.ts
├── deployments
├── hardhat.config.ts
├── tasks
│ ├── erc1155
│ ├── erc20
│ ├── erc721
│ └── utils
└── test
├── BasicERC1155.ts
├── BasicERC20.ts
└── BasicERC721.ts
- Hardhat Network (localhost)
- Rootstock Mainnet
- Rootstock Testnet
We recommend installing hh autocomplete
so you can use hh
shorthand globally.
npm i -g hardhat-shorthand
https://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 install
npm run compile
Create .env
file and add your environment variables. You can use .env.example
as a template.
Make sure you include 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 rskTestnet --tags 721
hh erc721-mint \
--contract <ContractAddress>\
--recipient <RecipientAddress>\
--network rskTestnet
npm run test
npm run coverage
npm run format:check
npm run format:write
npm run lint:check
npm run lint:fix
npm run sol:format:check
npm run sol:format:write
npm run solhint