Skip to content

Upgrade Slither CI to 0.11.6 - #188

Open
mswilkison wants to merge 2 commits into
chore/dependency-toolchain-refreshfrom
codex/187-slither-upgrade
Open

mswilkison wants to merge 2 commits into
chore/dependency-toolchain-refreshfrom
codex/187-slither-upgrade

Conversation

@mswilkison

@mswilkison mswilkison commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Closes #187.

Upgrade CI from Slither 0.8.0 to 0.11.6, with crytic-compile 0.4.2 and solc-select 1.2.0 pinned in requirements-slither.txt. The job uses Python 3.13, checks Python dependency consistency, and logs the resolved toolchain. The README includes local setup and an upgrade procedure. The documented .venv-slither/ is excluded from both Git and Prettier, so formatting commands skip installed Python dependencies.

This PR is stacked on #182 (chore/dependency-toolchain-refresh, base 14843ac). Merge #182 first, then retarget this PR to main. It uses that PR's Node 22 / Hardhat 2 / Ethers 5 toolchain.

Slither completes with the OpenZeppelin upgrades plugin enabled, resolving the historical crash that blocked #96. All Solidity edits are comments: remove 13 obsolete suppressions and document four narrowly scoped suppressions. The internal SafeTUpgradeable.safeTransferFrom adapter's two callers pass msg.sender; the three unindexed-event notices retain the existing event ABI and log encoding. Existing detector/path exclusions and the default failure policy are preserved.

Validation:

  • Fresh yarn install --frozen-lockfile and python -m pip check pass.
  • slither . performs a clean compilation and finishes with 0 findings across 84 contracts and 95 detectors.
  • yarn build, yarn test (380 passing), and yarn format (including type checking) pass.
  • All 25 repository-owned deployable artifacts retain identical ABIs, link references, and creation/runtime bytecode excluding compiler metadata. Solidity remains at 0.8.9.
  • Isolated gate checks confirm an unsuppressed informational finding exits 255 and invalid Solidity exits 1.
  • actionlint 1.7.12 and git diff --check pass.
  • The optional unused-ignore audit now reports only the existing dependency directive in node_modules/@thesis/solidity-contracts/contracts/token/ERC20WithPermit.sol (reported twice); repository-owned directives are clean.

Local runtime: Python 3.13.7, Node 22.23.1, Yarn 1.22.22. CI used Python 3.13.15 and confirmed 0 Slither findings, compilation of 75 Solidity files, and 380 passing tests.

GitHub Actions passed on 20a20d5: Solidity build/tests, Slither, and deployment dry run, formatting and type checks, and documentation preview.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade Slither CI from 0.8.0 to a current stable release

1 participant