From d32ecc80e60ca443b6813b17ab1896509e97f9ca Mon Sep 17 00:00:00 2001 From: maclane Date: Sun, 26 Jul 2026 12:59:45 -0400 Subject: [PATCH] chore(ci): move the solidity toolchain off end-of-life Node to 22 LTS All five workflows that build and test the contracts pin Node 18.15.0, which reached end of life on 2025-04-30 and receives no further security patches. `engines.node` in both solidity manifests and the two contract Dockerfiles say the same. Target is Node 22 (Jod), EOL 2027-04-30. Node 24 has more than twice the remaining support and was tried first, but Hardhat's undici call is incompatible with Node 24 until ~2.20, and @defi-wonderland/smock breaks on hardhat >= 2.20 -- the two windows do not overlap. Node 22 is the ceiling in both repos until smock is replaced, and smock is archived upstream (wonderland-archive/smock). No dependency changes. Verified against this branch, solidity/random-beacon: Node v18.20.8 168 passing, 12 failing Node v22.23.1 168 passing, 12 failing The 12 are identical and pre-existing on both -- every one is "No deployment found for: T", a missing external deployment artifact in a local checkout, unrelated to the runtime. hardhat 2.10.0 and @defi-wonderland/smock 2.0.7, the packages most likely to break on a newer runtime, are clean. infrastructure/ is deliberately untouched. Its Dockerfiles are not built by CI -- `client.yml` lists `infrastructure/**` under `paths-ignore`, and the only build contexts in the workflows are `.`, `./solidity/ecdsa` and `./solidity/random-beacon`. The node:11 init container there wants a decision about whether it is still deployed, not a bump to a file nothing builds. Stacked on #4109 -- carries that branch's commits and should merge after it. #4109 changes no Node-runtime surface, so there is no overlap. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/contracts-ecdsa.yml | 12 ++++++------ .github/workflows/contracts-random-beacon.yml | 12 ++++++------ .github/workflows/npm-ecdsa.yml | 2 +- .github/workflows/npm-random-beacon.yml | 2 +- .github/workflows/reusable-solidity-docs.yml | 2 +- solidity/ecdsa/Dockerfile | 2 +- solidity/ecdsa/package.json | 2 +- solidity/random-beacon/Dockerfile | 2 +- solidity/random-beacon/package.json | 2 +- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/contracts-ecdsa.yml b/.github/workflows/contracts-ecdsa.yml index b3c4ecd237..3ee91bba50 100644 --- a/.github/workflows/contracts-ecdsa.yml +++ b/.github/workflows/contracts-ecdsa.yml @@ -55,7 +55,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -81,7 +81,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: actions/setup-python@v4 with: @@ -123,7 +123,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -150,7 +150,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -183,7 +183,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/install-yarn-deps @@ -283,7 +283,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/install-yarn-deps diff --git a/.github/workflows/contracts-random-beacon.yml b/.github/workflows/contracts-random-beacon.yml index a7be8c6eab..060cd09ad3 100644 --- a/.github/workflows/contracts-random-beacon.yml +++ b/.github/workflows/contracts-random-beacon.yml @@ -55,7 +55,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -81,7 +81,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: actions/setup-python@v4 with: @@ -121,7 +121,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -148,7 +148,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: @@ -181,7 +181,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/install-yarn-deps @@ -279,7 +279,7 @@ jobs: # Using fixed version, because 18.16 was sometimes causing issues with # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877 - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/install-yarn-deps diff --git a/.github/workflows/npm-ecdsa.yml b/.github/workflows/npm-ecdsa.yml index f069ce2ba7..760157d750 100644 --- a/.github/workflows/npm-ecdsa.yml +++ b/.github/workflows/npm-ecdsa.yml @@ -28,7 +28,7 @@ jobs: # Using fixed version, because 18.16 may cause issues with the # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877. - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/install-yarn-deps diff --git a/.github/workflows/npm-random-beacon.yml b/.github/workflows/npm-random-beacon.yml index c7a342f009..5e4f7355ad 100644 --- a/.github/workflows/npm-random-beacon.yml +++ b/.github/workflows/npm-random-beacon.yml @@ -28,7 +28,7 @@ jobs: # Using fixed version, because 18.16 may cause issues with the # artifacts generation during `hardhat compile` - see # https://github.com/NomicFoundation/hardhat/issues/3877. - node-version: "18.15.0" + node-version: "22.23.1" registry-url: "https://registry.npmjs.org" - uses: ./.github/actions/setup-git-for-yarn diff --git a/.github/workflows/reusable-solidity-docs.yml b/.github/workflows/reusable-solidity-docs.yml index 0771fcc522..b56f256103 100644 --- a/.github/workflows/reusable-solidity-docs.yml +++ b/.github/workflows/reusable-solidity-docs.yml @@ -125,7 +125,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: "18.15.0" + node-version: "22.23.1" - uses: ./.github/actions/install-yarn-deps with: diff --git a/solidity/ecdsa/Dockerfile b/solidity/ecdsa/Dockerfile index 086cd4c59a..3c16d830b8 100644 --- a/solidity/ecdsa/Dockerfile +++ b/solidity/ecdsa/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:22.23.1-alpine RUN apk add --update --no-cache \ git \ diff --git a/solidity/ecdsa/package.json b/solidity/ecdsa/package.json index 93c8a3f01f..37ce3172ec 100644 --- a/solidity/ecdsa/package.json +++ b/solidity/ecdsa/package.json @@ -79,7 +79,7 @@ "@threshold-network/solidity-contracts": "1.3.0-dev.14" }, "engines": { - "node": ">=18.15.0" + "node": ">=22.0.0" }, "resolutions": { "ethereumjs-abi": "npm:0.6.8", diff --git a/solidity/random-beacon/Dockerfile b/solidity/random-beacon/Dockerfile index 164191215d..dca524f86b 100644 --- a/solidity/random-beacon/Dockerfile +++ b/solidity/random-beacon/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:22.23.1-alpine RUN apk add --update --no-cache \ git \ diff --git a/solidity/random-beacon/package.json b/solidity/random-beacon/package.json index ece2aee6f0..e9476e9b1d 100644 --- a/solidity/random-beacon/package.json +++ b/solidity/random-beacon/package.json @@ -74,7 +74,7 @@ "typescript": "^4.4.3" }, "engines": { - "node": ">=18.15.0" + "node": ">=22.0.0" }, "resolutions": { "ethereumjs-abi": "npm:0.6.8"