Template for creating new smart contract projects.
This project is meant to be used as a templated during the creation of new Github repositories (will show in the Create a new repository > Configuration > Start with a template selector).
It will contain some useful configuration files and scripts, that can be used also with existing projects (manually copied).
forge buildforge testforge fmtforge snapshotforge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>The following operations need to be performed after this repository has been created.
- In GitHub repo settings:
- Add a new ruleset called "Protected branches" and include the following changes:
- Enforcement status: active
- Target branches: Include default branch
- Require linear history
- Require a pull request before merging
- Required approvals: 1
- Allowed merge methods: Squash
- Block force pushes
- In General → Features → Pull requests:
- Select "Pull request title and description" in "Default commit message" option
- Unckeck "Allow merge commits" option
- Check "Allow auto-merge" option
- Add a new ruleset called "Protected branches" and include the following changes:
- Run
forge installto install the dependencies. This will create a newfoundry.lockfile which you should commit to the project - Make sure you use the latest version of Solidity by updating the
solcversion infoundry.toml - Once all entries in this list are checked, delete this section from the readme