You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Modernize the lint and format toolchain (eslint, prettier, solhint) #4214
Both packages are several majors behind on everything that lints or formats:
Package
random-beacon
ecdsa
Current
eslint
^7.32.0
^7.32.0
10.8.0 — long past EOL
prettier
^2.4.1
^2.5.1
3.9.6
solhint
^3.3.6
^3.3.6
6.2.3
prettier-plugin-solidity
^1.0.0-beta.18
^1.0.0-beta.19
2.3.1 — four-year-old beta
Probably three PRs rather than one, since the costs differ:
eslint 7 → 10 crosses the flat-config break at 9, and @thesis-co/eslint-config (a git tarball) has to come along. This is the real work.
prettier 2 → 3 reformats both trees. Best as its own commit containing nothing else, so review is git diff --stat. Note prettier 3 changed the default trailingComma to "all".
solhint 3 → 6 plus solhint-config-keep, also a git tarball.
Both packages currently pass lint with 0 errors and a pile of warnings (18 + 13 in random-beacon, 103 + 9 in ecdsa). Worth deciding whether to fix or formally accept those while in here.
Closing PR: #4304, with prerequisite PRs #4302 (ESLint 10 flat configs) and #4303 (Prettier 3 plus a separate formatting-only commit). The Git-pinned shared lint configs are replaced with explicit local policy. All lint/format checks pass; existing warnings remain deliberately non-blocking, with the error rules preserved. Fresh TypeChain generation succeeds, all 159 compiled contract ABIs/runtimes match after stripping compiler metadata, and all 108 reformatted TypeScript files preserve emitted JavaScript behavior. Coordinate #4205 and #4217 with this stack.
The issue is left open until the closing PR and its prerequisites land.
Follow-up #4306 preserves generated TypeChain overloads in the lint TypeScript programs while generated output remains excluded from lint targets.
Activity
linear commentedon Jul 27, 2026
ENG-699
mswilkison commentedon Sep 8, 2026
Closing PR: #4304, with prerequisite PRs #4302 (ESLint 10 flat configs) and #4303 (Prettier 3 plus a separate formatting-only commit). The Git-pinned shared lint configs are replaced with explicit local policy. All lint/format checks pass; existing warnings remain deliberately non-blocking, with the error rules preserved. Fresh TypeChain generation succeeds, all 159 compiled contract ABIs/runtimes match after stripping compiler metadata, and all 108 reformatted TypeScript files preserve emitted JavaScript behavior. Coordinate #4205 and #4217 with this stack.
The issue is left open until the closing PR and its prerequisites land.
Follow-up #4306 preserves generated TypeChain overloads in the lint TypeScript programs while generated output remains excluded from lint targets.
build(solidity): upgrade Solhint 6 and complete lint modernization (#…
build(solidity): upgrade Prettier 3 and reformat sources (#4303)
build(solidity): migrate to ESLint 10 flat configs (#4302)