This commit adds a new pre-commit script called "pre-commit-solc-sync" to the githooks directory. The script is responsible for extracting the solc version from the "foundry.toml" file and updating the ".vscode/settings.json" file with the extracted version. If the "solidity.compileUsingRemoteVersion" key already exists in the settings file, the script updates the version. Otherwise, it modifies the last key, adds the new key, and closes the JSON object. Finally, the updated settings file is added to the commit.
The purpose of this change is to automate the synchronization of the solc version used for Solidity compilation in the project everywhere else its also need to be configured configured.
See https://github.com/juanfranblanco/vscode-solidity/issues/463
This introduces a new `pnpm release` command in our template which makes
use of `commit-and-tag-version`, that will generate changelogs based on
our project's commit histories.
This adds a new command to package.json `verify` which can be run via
`pnpm verify`.
The command runs the certora CLI with a config file which has to be
adjusted for every individual project.
The commit also adds a dedicated task to our github actions, which
ensures, verification is done in every PR as well.
To allow deployment to different chains but using the same deployment
scripts, this commit introduces a basic `DeploymentConfig` which can be
extended as necessary in each project.
There's a few things that should be considered:
- `activeNetworkConfig` will be initialized via the constructor, at
which point it is know what `block.chainid` is
- To add new configuration settings, extend `NetworkConfig`
- To add a new config for a different chain, extend the `if/else` block
in the constructor so that it creates a `NetworkConfig` for the chain
in question
This is an initial take on adjusting the foundry-template to the Vac's
smart contract unit's needs. In a nutshell what this does is:
1. Update README to not refer to upstream repo where not necessary
2. Removes PRBergTest library from dependencies
3. Removes `FUNDING.qml`
4. Adjust CI actions
There are more things to be done and decided on in follow-up commits.
* use solhint-community fork
We're trying to keep solhint afloat with a fork, and done some work on
it so far, mainly the no-unused-imports rule.
Any feedback is appreciated, hope this helps ✨
see announcement:
https://blog.capu.tech/announcing-solhint-community.html
* docs: update README
---------
Co-authored-by: Paul Razvan Berg <paul.razvan.berg@gmail.com>