From dbb8f756cfa3acb46d14720125f4b54afca519a3 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko Date: Mon, 17 Mar 2025 12:58:21 +0100 Subject: [PATCH 1/3] add --supported-solc-version --- crates/solidity/src/lib.rs | 3 +++ crates/solidity/src/resolc/arguments.rs | 10 ++++++++++ crates/solidity/src/resolc/main.rs | 10 ++++++++++ 3 files changed, 23 insertions(+) diff --git a/crates/solidity/src/lib.rs b/crates/solidity/src/lib.rs index 7214120e..8c2e8b1b 100644 --- a/crates/solidity/src/lib.rs +++ b/crates/solidity/src/lib.rs @@ -46,6 +46,9 @@ pub use self::solc::version::Version as SolcVersion; pub use self::solc::Compiler; pub use self::version::Version as ResolcVersion; pub use self::warning::Warning; + +pub use solc::{FIRST_SUPPORTED_VERSION, LAST_SUPPORTED_VERSION}; + #[cfg(not(target_os = "emscripten"))] pub mod test_utils; pub mod tests; diff --git a/crates/solidity/src/resolc/arguments.rs b/crates/solidity/src/resolc/arguments.rs index e0e9e923..c777b6b3 100644 --- a/crates/solidity/src/resolc/arguments.rs +++ b/crates/solidity/src/resolc/arguments.rs @@ -19,6 +19,10 @@ pub struct Arguments { #[arg(long = "version")] pub version: bool, + /// Print supported `solc` versions and exit. + #[arg(long = "supported-solc-versions")] + pub supported_solc_versions: bool, + /// Print the licence and exit. #[arg(long = "license")] pub license: bool, @@ -171,6 +175,12 @@ impl Arguments { anyhow::bail!("No other options are allowed while getting the compiler version."); } + if self.supported_solc_versions && std::env::args().count() > 2 { + anyhow::bail!( + "No other options are allowed while getting the supported `solc` versions." + ); + } + #[cfg(debug_assertions)] if self.recursive_process_input.is_some() && !self.recursive_process { anyhow::bail!("--process-input can be only used when --recursive-process is given"); diff --git a/crates/solidity/src/resolc/main.rs b/crates/solidity/src/resolc/main.rs index b308771c..abf9adbb 100644 --- a/crates/solidity/src/resolc/main.rs +++ b/crates/solidity/src/resolc/main.rs @@ -41,6 +41,16 @@ fn main_inner() -> anyhow::Result<()> { return Ok(()); } + if arguments.supported_solc_versions { + writeln!( + std::io::stdout(), + ">={},<={}", + revive_solidity::FIRST_SUPPORTED_VERSION, + revive_solidity::LAST_SUPPORTED_VERSION, + )?; + return Ok(()); + } + if arguments.license { let license_mit = include_str!("../../../../LICENSE-MIT"); let license_apache = include_str!("../../../../LICENSE-APACHE"); From 48755a630e8d603538ab7ec99bd916580f50e0c4 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko Date: Mon, 17 Mar 2025 14:52:18 +0100 Subject: [PATCH 2/3] review commment --- crates/solidity/src/lib.rs | 4 ++-- crates/solidity/src/resolc/main.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/solidity/src/lib.rs b/crates/solidity/src/lib.rs index 8c2e8b1b..24776e2f 100644 --- a/crates/solidity/src/lib.rs +++ b/crates/solidity/src/lib.rs @@ -44,11 +44,11 @@ pub use self::solc::standard_json::output::contract::Contract as SolcStandardJso pub use self::solc::standard_json::output::Output as SolcStandardJsonOutput; pub use self::solc::version::Version as SolcVersion; pub use self::solc::Compiler; +pub use self::solc::FIRST_SUPPORTED_VERSION as SolcFirstSupportedVersion; +pub use self::solc::LAST_SUPPORTED_VERSION as SolcLastSupportedVersion; pub use self::version::Version as ResolcVersion; pub use self::warning::Warning; -pub use solc::{FIRST_SUPPORTED_VERSION, LAST_SUPPORTED_VERSION}; - #[cfg(not(target_os = "emscripten"))] pub mod test_utils; pub mod tests; diff --git a/crates/solidity/src/resolc/main.rs b/crates/solidity/src/resolc/main.rs index abf9adbb..5e133f6a 100644 --- a/crates/solidity/src/resolc/main.rs +++ b/crates/solidity/src/resolc/main.rs @@ -45,8 +45,8 @@ fn main_inner() -> anyhow::Result<()> { writeln!( std::io::stdout(), ">={},<={}", - revive_solidity::FIRST_SUPPORTED_VERSION, - revive_solidity::LAST_SUPPORTED_VERSION, + revive_solidity::SolcFirstSupportedVersion, + revive_solidity::SolcLastSupportedVersion, )?; return Ok(()); } From 63eac0b7d3515c9a985446b3729bc83721a318b2 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko Date: Tue, 18 Mar 2025 15:15:19 +0100 Subject: [PATCH 3/3] add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42ef1a1e..c58a162f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Supported `polkadot-sdk` rev:`c29e72a8628835e34deb6aa7db9a78a2e4eabcee` ### Added - Support for solc v0.8.29 +- `--supported-solc-versions` for `resolc` binary to return a `semver` range of supported `solc` versions. ### Changed - Runner `resolc` using webkit is no longer supported.