Skip to content

Modernize dependency toolchain and prune vulnerable packages - #182

Open
mswilkison wants to merge 2 commits into
mainfrom
chore/dependency-toolchain-refresh
Open

Modernize dependency toolchain and prune vulnerable packages#182
mswilkison wants to merge 2 commits into
mainfrom
chore/dependency-toolchain-refresh

Conversation

@mswilkison

@mswilkison mswilkison commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • pin the development and CI runtime to Node 22 and Yarn 1.22.22
  • refresh the compatible Hardhat 2 / Ethers 5 toolchain and replace Waffle with Hardhat Chai Matchers
  • regenerate and prune the Yarn lockfile, removing unreachable legacy dependency trees
  • modernize CI actions, use frozen installs, restore the yarn format check disabled in 7dc7cb0, and add a new typecheck gate (TS had no prior type coverage)
  • update artifact-export and Tenderly integration paths for the refreshed toolchain

Security impact

  • no Solidity, deployment-script, or deployed-contract behavior changes
  • old and new toolchains produce identical creation/runtime bytecode and link references for all 34 deployable local artifacts
  • projected to close 103 of the current 160 Dependabot alerts after the default-branch refresh; remaining alerts are either Solidity-library work that needs a separate governance-aware change or constraints of the retained Hardhat 2 / Ethers 5 stack
  • a complete diff-scoped security review found no reportable patch-introduced findings; newly selected advisory-affected development packages have no reachable vulnerable entry point in this repository

The direct OpenZeppelin Solidity versions intentionally remain unchanged here. Updating them is not mechanical: newer Governor semantics require a separate design and test pass for StakerGovernor authorization behavior.

Validation

  • yarn install --frozen-lockfile
  • yarn format
  • forced Solidity compile (75 files)
  • full test suite (380 passing)
  • local deployment
  • yarn prepack
  • mainnet artifact-export prepublish lifecycle
  • npm publish --dry-run --network=hardhat
  • actionlint and git diff --check
  • lock graph integrity: 622/622 entries reachable, with no unresolved or orphan entries

- drop consumer-facing engines block; published tarball no longer hard-fails
  installs for Yarn-1 downstream consumers on Node 20/24 (P1)
- unify tsconfig lib across tsconfig.json/tsconfig.export.json so the
  typecheck CI gate is no more permissive than the ES5 publish compile (P2)
- add tsconfig.json/tsconfig.export.json to npm.yml's publish-trigger paths
  filter, since prepack now depends on them (P2)
- correct NODE_AUTH_TOKEN comment: it also covers npm-version-bump's
  registry read, not just the publish step (P2)
- gate hardhat-gas-reporter v2 behind an opt-in env var to avoid pulling
  its network-capable client stack into every default test run (P2)
- keep artifacts/ out of stale local publish state via the clean script (P3)
- correct Tenderly shim comment's inaccurate extender count (P3)
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.

2 participants