Skip to content

fix: drop Node 18 support, require Node 20+ (WAPI-1133)#76

Merged
chakra-guy merged 1 commit intomainfrom
cyfrin/wapi-1133
Feb 27, 2026
Merged

fix: drop Node 18 support, require Node 20+ (WAPI-1133)#76
chakra-guy merged 1 commit intomainfrom
cyfrin/wapi-1133

Conversation

@chakra-guy
Copy link
Collaborator

@chakra-guy chakra-guy commented Feb 26, 2026

Summary

  • Update CI matrix from Node 18.x to 20.x across all 5 jobs in lint-build-test.yml
  • Add engines.node >= 20 to root package.json and all 3 published packages (core, dapp-client, wallet-client) so npm warns consumers on unsupported versions
  • Update .nvmrc from v18 to v20 so contributors get the right version via nvm use
  • Update README.md prerequisites from "18.x or later" to "20.x or later"

Test plan

  • yarn build passes
  • yarn test:unit passes (59/59)
  • yarn lint:ci passes (no new warnings)
  • yarn biome check ./packages passes

Note

Low Risk
Low risk: this is a tooling/runtime support change (Node 18 -> 20) with no functional code changes, but it may break local dev/consumer installs still pinned to Node 18.

Overview
Drops Node 18 support and standardizes the repo on Node 20+.

CI now runs all lint, build, test, and changelog validation jobs on Node 20.x, .nvmrc is bumped to v20, the README prerequisite is updated, and engines.node is set to >=20 in the root and all published package package.json files to warn/enforce supported runtimes.

Written by Cursor Bugbot for commit 6b03144. This will update automatically on new commits. Configure here.

Node 18 reached end-of-life in April 2025 and lacks globalThis.crypto,
forcing unnecessary runtime fallbacks. All production runtimes (browsers,
React Native, Node 20+ LTS) already provide this API, and eciesjs 0.4.16
has already dropped Node 18 support.
Copy link

@adonesky1 adonesky1 left a comment

Choose a reason for hiding this comment

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

LGTM!

@chakra-guy chakra-guy merged commit 7c8ae31 into main Feb 27, 2026
12 checks passed
@chakra-guy chakra-guy deleted the cyfrin/wapi-1133 branch February 27, 2026 09:53
chakra-guy added a commit that referenced this pull request Feb 27, 2026
Node 18 support was dropped in WAPI-1133 (#76). globalThis.crypto is
always available in Node 20+, so the runtime fallback to
require("node:crypto").randomFillSync and the test polyfill are no
longer needed.
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