From c0a75966170dd0526a3e81fddfc7f9aad38a3a02 Mon Sep 17 00:00:00 2001 From: xermicus Date: Sun, 22 Feb 2026 14:27:03 +0100 Subject: [PATCH] support solc v0.8.34 (#482) As a drive-by fix, the get-llvm action now ignores LLVM releases marked as pre-release. --------- Signed-off-by: xermicus Co-authored-by: Claude Opus 4.6 --- .github/actions/get-llvm/action.yml | 2 +- .github/actions/get-solc/action.yml | 2 +- .github/workflows/reusable-build.yml | 2 +- CHANGELOG.md | 3 +++ crates/resolc/src/solc/mod.rs | 2 +- js/emscripten/build.js | 2 +- js/emscripten/package.json | 2 +- js/resolc/package.json | 2 +- package-lock.json | 9 ++------- 9 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.github/actions/get-llvm/action.yml b/.github/actions/get-llvm/action.yml index 9124675..f2b0cdd 100644 --- a/.github/actions/get-llvm/action.yml +++ b/.github/actions/get-llvm/action.yml @@ -82,7 +82,7 @@ runs: allReleases.sort((a, b) => new Date(b.published_at) - new Date(a.published_at)); // Debug: Print all LLVM releases - const llvmReleases = allReleases.filter(r => r.tag_name.startsWith('llvm-')); + const llvmReleases = allReleases.filter(r => r.tag_name.startsWith('llvm-') && !r.prerelease); core.info(`Found ${llvmReleases.length} LLVM releases in total:`); llvmReleases.forEach(r => { core.info(` - ${r.tag_name} (published: ${r.published_at})`); diff --git a/.github/actions/get-solc/action.yml b/.github/actions/get-solc/action.yml index a907cbf..e5feb2d 100644 --- a/.github/actions/get-solc/action.yml +++ b/.github/actions/get-solc/action.yml @@ -19,7 +19,7 @@ runs: shell: bash run: | mkdir -p solc - curl -sSL --output solc/solc https://github.com/ethereum/solidity/releases/download/v0.8.33/${SOLC_NAME} + curl -sSL --output solc/solc https://github.com/argotorg/solidity/releases/download/v0.8.34/${SOLC_NAME} - name: Make Solc Executable if: ${{ runner.os == 'Windows' }} diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 668f50c..04657bc 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -183,7 +183,7 @@ jobs: - name: Basic Sanity Check run: | mkdir -p solc - curl -sSLo solc/soljson.js https://github.com/ethereum/solidity/releases/download/v0.8.33/soljson.js + curl -sSLo solc/soljson.js https://github.com/argotorg/solidity/releases/download/v0.8.34/soljson.js node -e " const soljson = require('solc/soljson'); const createRevive = require('./target/wasm32-unknown-emscripten/release/resolc.js'); diff --git a/CHANGELOG.md b/CHANGELOG.md index 127129f..622b50e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ This is a development pre-release. +### Added +- Support for solc v0.8.34. + ### Fixed - npm package: The `--bin` CLI flag was not producing bytecode because the `outputSelection` was not updated to explicitly requested it. diff --git a/crates/resolc/src/solc/mod.rs b/crates/resolc/src/solc/mod.rs index d5e93c7..af1ce47 100644 --- a/crates/resolc/src/solc/mod.rs +++ b/crates/resolc/src/solc/mod.rs @@ -23,7 +23,7 @@ pub mod version; pub const FIRST_SUPPORTED_VERSION: semver::Version = semver::Version::new(0, 8, 0); /// The last supported version of `solc`. -pub const LAST_SUPPORTED_VERSION: semver::Version = semver::Version::new(0, 8, 33); +pub const LAST_SUPPORTED_VERSION: semver::Version = semver::Version::new(0, 8, 34); /// The Solidity compiler. pub trait Compiler { diff --git a/js/emscripten/build.js b/js/emscripten/build.js index 00e10f3..1ce5a86 100644 --- a/js/emscripten/build.js +++ b/js/emscripten/build.js @@ -3,7 +3,7 @@ const path = require("path"); const { minify } = require("terser"); const SOLJSON_URI = - "https://binaries.soliditylang.org/wasm/soljson-v0.8.33+commit.64118f21.js"; + "https://binaries.soliditylang.org/wasm/soljson-v0.8.34+commit.80d5c536.js"; const RESOLC_WASM_URI = process.env.RELEASE_RESOLC_WASM_URI || "http://127.0.0.1:8080/resolc.wasm"; const RESOLC_WASM_TARGET_DIR = path.join( diff --git a/js/emscripten/package.json b/js/emscripten/package.json index fc9c76c..9441022 100644 --- a/js/emscripten/package.json +++ b/js/emscripten/package.json @@ -2,7 +2,7 @@ "name": "revive", "private": true, "dependencies": { - "solc": ">=0.8.0 <=0.8.33" + "solc": ">=0.8.0 <=0.8.34" }, "scripts": { "example:web": "http-server ./examples/web/", diff --git a/js/resolc/package.json b/js/resolc/package.json index 18447b7..fd41984 100644 --- a/js/resolc/package.json +++ b/js/resolc/package.json @@ -34,6 +34,6 @@ "commander": "^13.1.0", "package-json": "^10.0.1", "resolve-pkg": "^2.0.0", - "solc": ">=0.8.0 <=0.8.33" + "solc": ">=0.8.0 <=0.8.34" } } diff --git a/package-lock.json b/package-lock.json index 320d75c..67efe3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "js/emscripten": { "name": "revive", "dependencies": { - "solc": ">=0.8.0 <=0.8.33" + "solc": ">=0.8.0 <=0.8.34" }, "devDependencies": { "@playwright/test": "^1.49.1", @@ -38,7 +38,7 @@ "commander": "^13.1.0", "package-json": "^10.0.1", "resolve-pkg": "^2.0.0", - "solc": ">=0.8.0 <=0.8.33" + "solc": ">=0.8.0 <=0.8.34" }, "bin": { "resolc": "dist/bin.js" @@ -1585,7 +1585,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz", "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==", "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.32.1", "@typescript-eslint/types": "8.32.1", @@ -1753,7 +1752,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2363,7 +2361,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -2522,7 +2519,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abi": "5.8.0", "@ethersproject/abstract-provider": "5.8.0", @@ -4397,7 +4393,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver"