https://github.com/looksrare/solidity-template
Template for Solidity smart contracts with Forge and Hardhat
https://github.com/looksrare/solidity-template
Last synced: 5 months ago
JSON representation
Template for Solidity smart contracts with Forge and Hardhat
- Host: GitHub
- URL: https://github.com/looksrare/solidity-template
- Owner: LooksRare
- License: mit
- Created: 2022-03-27T07:12:13.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-21T07:25:04.000Z (8 months ago)
- Last Synced: 2024-12-15T13:04:10.314Z (6 months ago)
- Language: Solidity
- Homepage:
- Size: 2.11 MB
- Stars: 22
- Watchers: 4
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Solidity template
This is a template for GitHub repos with Solidity smart contracts using Forge and Hardhat. This template is used by the LooksRare team for Solidity-based repos. Feel free to use or get inspired to build your own templates!
## Getting Started
Set an dotenv file with:
```
FOUNDRY_INVARIANT_FAIL_ON_REVERT=true
```then
```
yarn install --ignore-scripts
forge install foundry-rs/forge-std
forge install dapphub/ds-test
forge install gelatodigital/vrf-contracts
FOUNDRY_PROFILE=local forge test
```## About this repo
### Structure
It is a hybrid [Hardhat](https://hardhat.org/) repo that also requires [Foundry](https://book.getfoundry.sh/index.html) to run Solidity tests powered by the [ds-test library](https://github.com/dapphub/ds-test/).
> To install Foundry, please follow the instructions [here](https://book.getfoundry.sh/getting-started/installation.html).
### Run tests
- TypeScript tests are included in the `typescript` folder in the `test` folder at the root of the repo.
- Solidity tests are included in the `foundry` folder in the `test` folder at the root of the repo.### Example of Foundry/Forge commands
```shell
forge build
forge test
forge test -vv
forge tree
```### Example of Hardhat commands
```shell
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx hardhat coverage
npx hardhat run scripts/deploy.ts
TS_NODE_FILES=true npx ts-node scripts/deploy.ts
npx eslint '**/*.{js,ts}'
npx eslint '**/*.{js,ts}' --fix
npx prettier '**/*.{json,sol,md}' --check
npx prettier '**/*.{json,sol,md}' --write
npx solhint 'contracts/**/*.sol'
npx solhint 'contracts/**/*.sol' --fix
```