Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ docs/

# Dotenv file
.env

# Local development dependencies
dev/node_modules/
dev/.venv/
8 changes: 8 additions & 0 deletions .solhint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "solhint:recommended",
"rules": {
"compiler-version": ["error", "^0.8"],
Comment thread
fedgiac marked this conversation as resolved.
"import-path-check": "off",
"use-natspec": "warn"
}
}
1 change: 1 addition & 0 deletions .solhintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lib/
56 changes: 42 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ This project is meant to be used as a templated during the creation of new Githu

It will contain some useful configuration files and scripts, that can be used also with existing projects (manually copied).


## Usage

### Build
Expand All @@ -27,6 +26,35 @@ forge test
forge fmt
```

### Local tooling
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find the section a bit stange.

We have Build, Test, Format, so if you add solint makes sense in a section called Lint

Local tooling is also cast


Solhint and Slither are pinned as local development dependencies under `dev/`.
Install them with:

```shell
npm install --prefix dev
python -m venv dev/.venv
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to change for Mac users, but just so you know, we need to use python3

dev/.venv/bin/pip install -r dev/requirements.txt
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no such a file dev/requirements.txt

```

Use the local binaries when running these tools:

```shell
dev/node_modules/.bin/solhint --version
dev/.venv/bin/slither --version
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible you are mixing things from another PR?
This PR is about solhint, but here you are stuff from slither, even though it explicitly says its out of scope

```

### Solhint

Solhint uses the pinned local binary:

```shell
dev/node_modules/.bin/solhint --max-warnings 0 '**/*.sol'
```

The root config applies to all Solidity files.
The `script/` and `test/` folders have a small override config for their own style.

### Gas Snapshots

```shell
Expand All @@ -44,18 +72,18 @@ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --priva
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:
- 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
- [ ] Run `forge install` to install the dependencies. This will create a new `foundry.lock` file which you should commit to the project
- [ ] Make sure you use the [latest version of Solidity](https://github.com/argotorg/solidity/releases) by updating the `solc` version in `foundry.toml`
- [ ] Once all entries in this list are checked, delete this section from the readme
- [ ] Once all entries in this list are checked, delete this section from the readme
Loading
Loading