diff --git a/.github/actions/get-solc/action.yml b/.github/actions/get-solc/action.yml index db8b3d2..978692e 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/argotorg/solidity/releases/download/v0.8.35/${SOLC_NAME} + curl -sSL --output solc/solc https://github.com/argotorg/solidity/releases/download/v0.8.36/${SOLC_NAME} - name: Make Solc Executable if: ${{ runner.os == 'Windows' }} diff --git a/.github/workflows/differential-tests.yml b/.github/workflows/differential-tests.yml index 15de82d..9f6093b 100644 --- a/.github/workflows/differential-tests.yml +++ b/.github/workflows/differential-tests.yml @@ -14,7 +14,7 @@ env: # The compiler modes allowed to run during e2e test execution by retester. # E.g. this can be updated to allow only `"Y, NY Mz S+"` (all Yul modes + newyork with -Oz and solc optimizer enabled). E2E_ALLOWED_MODES: "Y, NY" - SOLC_VERSION: "0.8.35" + SOLC_VERSION: "0.8.36" jobs: build-linux: diff --git a/.github/workflows/reusable-build-wasm.yml b/.github/workflows/reusable-build-wasm.yml index a3466d0..f63f619 100644 --- a/.github/workflows/reusable-build-wasm.yml +++ b/.github/workflows/reusable-build-wasm.yml @@ -101,7 +101,7 @@ jobs: - name: Basic Sanity Check run: | mkdir -p solc - curl -sSLo solc/soljson.js https://github.com/argotorg/solidity/releases/download/v0.8.35/soljson.js + curl -sSLo solc/soljson.js https://github.com/argotorg/solidity/releases/download/v0.8.36/soljson.js node -e " // Make sure to require './solc/soljson' and not 'solc/soljson' in order to use // the explicitly downloaded solc, rather than resolving an npm package potentially diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b9ae07..d539044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Supported `polkadot-sdk` rev: `2604.2.0` +### Added + +- Support for solc v0.8.36 and the "Amsterdam" EVM version. + ### Fixed - Restored the top-level `revive_version` field in `--standard-json` output and the `resolc_version` field in `--combined-json` output, both of which stopped being populated in `v0.4.0`. [#557](https://github.com/paritytech/revive/pull/557) diff --git a/crates/common/src/evm_version.rs b/crates/common/src/evm_version.rs index 32227a1..fa9c2d8 100644 --- a/crates/common/src/evm_version.rs +++ b/crates/common/src/evm_version.rs @@ -49,6 +49,9 @@ pub enum EVMVersion { /// The corresponding EVM version. #[serde(rename = "osaka")] Osaka, + /// The corresponding EVM version. + #[serde(rename = "amsterdam")] + Amsterdam, } impl TryFrom<&str> for EVMVersion { @@ -70,6 +73,7 @@ impl TryFrom<&str> for EVMVersion { "cancun" => Self::Cancun, "prague" => Self::Prague, "osaka" => Self::Osaka, + "amsterdam" => Self::Amsterdam, _ => anyhow::bail!("Invalid EVM version: {}", value), }) } @@ -92,6 +96,7 @@ impl std::fmt::Display for EVMVersion { Self::Cancun => write!(f, "cancun"), Self::Prague => write!(f, "prague"), Self::Osaka => write!(f, "osaka"), + Self::Amsterdam => write!(f, "amsterdam"), } } } diff --git a/crates/resolc/src/solc/mod.rs b/crates/resolc/src/solc/mod.rs index 768f652..0eb8b04 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, 35); +pub const LAST_SUPPORTED_VERSION: semver::Version = semver::Version::new(0, 8, 36); /// The Solidity compiler. pub trait Compiler { diff --git a/js/emscripten/build.js b/js/emscripten/build.js index 7515352..b500dba 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.35+commit.47b9dedd.js"; + "https://binaries.soliditylang.org/wasm/soljson-v0.8.36+commit.8a079791.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 b8579cc..e355035 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.35" + "solc": ">=0.8.0 <=0.8.36" }, "scripts": { "example:web": "http-server ./examples/web/", diff --git a/js/resolc/package.json b/js/resolc/package.json index bed8e6a..3da3ecd 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.35" + "solc": ">=0.8.0 <=0.8.36" } } diff --git a/package-lock.json b/package-lock.json index c804a82..3aeccdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "js/emscripten": { "name": "revive", "dependencies": { - "solc": ">=0.8.0 <=0.8.35" + "solc": ">=0.8.0 <=0.8.36" }, "devDependencies": { "@playwright/test": "^1.60.0", @@ -55,7 +55,7 @@ "commander": "^13.1.0", "package-json": "^10.0.1", "resolve-pkg": "^2.0.0", - "solc": ">=0.8.0 <=0.8.35" + "solc": ">=0.8.0 <=0.8.36" }, "bin": { "resolc": "dist/bin.js" diff --git a/tooling-projects/foundry/erc20/foundry.toml b/tooling-projects/foundry/erc20/foundry.toml index 59ce13d..c394e36 100644 --- a/tooling-projects/foundry/erc20/foundry.toml +++ b/tooling-projects/foundry/erc20/foundry.toml @@ -2,7 +2,7 @@ src = "src" test = "test" libs = ["lib"] -solc = "0.8.35" +solc = "0.8.36" remappings = [ "forge-std/=lib/forge-std/src/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", diff --git a/tooling-projects/hardhat/erc20/hardhat.config.js b/tooling-projects/hardhat/erc20/hardhat.config.js index 357160c..ddb7108 100644 --- a/tooling-projects/hardhat/erc20/hardhat.config.js +++ b/tooling-projects/hardhat/erc20/hardhat.config.js @@ -14,7 +14,7 @@ function getEnv(name) { /** @type {import('hardhat/config').HardhatUserConfig} */ module.exports = { - solidity: "0.8.35", + solidity: "0.8.36", resolc: { compilerSource: "binary", settings: {