From 898bcbb77c0fe67a538a539694ed6f48598a24c8 Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Wed, 21 May 2025 11:38:28 +0200 Subject: [PATCH 1/7] switch to prague by default --- crates/artifacts/solc/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/artifacts/solc/src/lib.rs b/crates/artifacts/solc/src/lib.rs index 3f3a741d2..83f9c4b04 100644 --- a/crates/artifacts/solc/src/lib.rs +++ b/crates/artifacts/solc/src/lib.rs @@ -793,7 +793,7 @@ impl YulDetails { /// EVM versions. /// -/// Default is `Cancun`, since 0.8.25 +/// Default is `Prague`, since 0.8.30 /// /// Kept in sync with: // When adding new EVM versions (see a previous attempt at https://github.com/foundry-rs/compilers/pull/51): @@ -816,8 +816,8 @@ pub enum EvmVersion { London, Paris, Shanghai, - #[default] Cancun, + #[default] Prague, Osaka, } From 9db6afb81944e04ce442fae409c877498eccc71e Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Mon, 26 May 2025 20:03:42 +0200 Subject: [PATCH 2/7] bump solc version to prague compatible one --- crates/compilers/tests/project.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compilers/tests/project.rs b/crates/compilers/tests/project.rs index d8c085290..eba5d7d18 100644 --- a/crates/compilers/tests/project.rs +++ b/crates/compilers/tests/project.rs @@ -2703,7 +2703,7 @@ fn can_compile_std_json_input() { assert!(input.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); // should be installed - if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 24)) { + if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 30)) { let out = solc.compile(&input).unwrap(); assert!(out.errors.is_empty()); assert!(out.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); From 10fe5afa2f174532df421e9f5b36c9a2b2ea03fe Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Mon, 26 May 2025 20:26:48 +0200 Subject: [PATCH 3/7] bump min solc version --- crates/compilers/tests/project.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/compilers/tests/project.rs b/crates/compilers/tests/project.rs index eba5d7d18..334d43834 100644 --- a/crates/compilers/tests/project.rs +++ b/crates/compilers/tests/project.rs @@ -2678,7 +2678,7 @@ fn can_create_standard_json_input_with_external_file() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2703,7 +2703,7 @@ fn can_compile_std_json_input() { assert!(input.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); // should be installed - if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 30)) { + if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 28)) { let out = solc.compile(&input).unwrap(); assert!(out.errors.is_empty()); assert!(out.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); @@ -2767,7 +2767,7 @@ fn can_create_standard_json_input_with_symlink() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 28)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2936,7 +2936,7 @@ async fn can_install_solc_and_compile_std_json_input_async() { tmp.assert_no_errors(); let source = tmp.list_source_files().into_iter().find(|p| p.ends_with("Dapp.t.sol")).unwrap(); let input = tmp.project().standard_json_input(&source).unwrap(); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); assert!(input.settings.remappings.contains(&"ds-test/=lib/ds-test/src/".parse().unwrap())); let input: SolcInput = input.into(); From 3ac17c8083833a69f763942cf7ceb6bd5716c8a1 Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Wed, 28 May 2025 17:01:26 +0200 Subject: [PATCH 4/7] revert solc versions --- crates/compilers/tests/project.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/compilers/tests/project.rs b/crates/compilers/tests/project.rs index 334d43834..d8c085290 100644 --- a/crates/compilers/tests/project.rs +++ b/crates/compilers/tests/project.rs @@ -2678,7 +2678,7 @@ fn can_create_standard_json_input_with_external_file() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2703,7 +2703,7 @@ fn can_compile_std_json_input() { assert!(input.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); // should be installed - if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 28)) { + if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 24)) { let out = solc.compile(&input).unwrap(); assert!(out.errors.is_empty()); assert!(out.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); @@ -2767,7 +2767,7 @@ fn can_create_standard_json_input_with_symlink() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 28)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2936,7 +2936,7 @@ async fn can_install_solc_and_compile_std_json_input_async() { tmp.assert_no_errors(); let source = tmp.list_source_files().into_iter().find(|p| p.ends_with("Dapp.t.sol")).unwrap(); let input = tmp.project().standard_json_input(&source).unwrap(); - let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); assert!(input.settings.remappings.contains(&"ds-test/=lib/ds-test/src/".parse().unwrap())); let input: SolcInput = input.into(); From 8aa25cc1618d847be1ad8e04767229edc54742b4 Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Wed, 28 May 2025 17:10:05 +0200 Subject: [PATCH 5/7] re-enforce minimum versions compatible with Prague >= 0.8.27 --- crates/compilers/tests/project.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/compilers/tests/project.rs b/crates/compilers/tests/project.rs index d8c085290..334d43834 100644 --- a/crates/compilers/tests/project.rs +++ b/crates/compilers/tests/project.rs @@ -2678,7 +2678,7 @@ fn can_create_standard_json_input_with_external_file() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2703,7 +2703,7 @@ fn can_compile_std_json_input() { assert!(input.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); // should be installed - if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 24)) { + if let Ok(solc) = Solc::find_or_install(&Version::new(0, 8, 28)) { let out = solc.compile(&input).unwrap(); assert!(out.errors.is_empty()); assert!(out.sources.contains_key(Path::new("lib/ds-test/src/test.sol"))); @@ -2767,7 +2767,7 @@ fn can_create_standard_json_input_with_symlink() { ] ); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 28)).unwrap(); // can compile using the created json let compiler_errors = solc @@ -2936,7 +2936,7 @@ async fn can_install_solc_and_compile_std_json_input_async() { tmp.assert_no_errors(); let source = tmp.list_source_files().into_iter().find(|p| p.ends_with("Dapp.t.sol")).unwrap(); let input = tmp.project().standard_json_input(&source).unwrap(); - let solc = Solc::find_or_install(&Version::new(0, 8, 24)).unwrap(); + let solc = Solc::find_or_install(&Version::new(0, 8, 27)).unwrap(); assert!(input.settings.remappings.contains(&"ds-test/=lib/ds-test/src/".parse().unwrap())); let input: SolcInput = input.into(); From 7c77b1544aaf31a72f4f699c93cd5ebbe85d8b5c Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Wed, 28 May 2025 17:27:48 +0200 Subject: [PATCH 6/7] pin to 0.12.15 due to compilation bug: https://github.com/seanmonstar/reqwest/issues/2699 --- crates/compilers/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compilers/Cargo.toml b/crates/compilers/Cargo.toml index 73808a041..1a944e07c 100644 --- a/crates/compilers/Cargo.toml +++ b/crates/compilers/Cargo.toml @@ -62,7 +62,7 @@ tracing-subscriber = { version = "0.3", default-features = false, features = [ similar-asserts.workspace = true fd-lock = "4.0.0" tokio = { version = "1.35", features = ["rt-multi-thread", "macros"] } -reqwest = "0.12" +reqwest = "=0.12.15" tempfile = "3.9" snapbox.workspace = true foundry-compilers-core = { workspace = true, features = ["test-utils"] } From 60e111d42e77d77375e5c657db5dd5bd28623531 Mon Sep 17 00:00:00 2001 From: zerosnacks Date: Wed, 28 May 2025 18:18:43 +0200 Subject: [PATCH 7/7] unpin reqwest, 0.12.18 includes the fix --- crates/compilers/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compilers/Cargo.toml b/crates/compilers/Cargo.toml index 1a944e07c..73808a041 100644 --- a/crates/compilers/Cargo.toml +++ b/crates/compilers/Cargo.toml @@ -62,7 +62,7 @@ tracing-subscriber = { version = "0.3", default-features = false, features = [ similar-asserts.workspace = true fd-lock = "4.0.0" tokio = { version = "1.35", features = ["rt-multi-thread", "macros"] } -reqwest = "=0.12.15" +reqwest = "0.12" tempfile = "3.9" snapbox.workspace = true foundry-compilers-core = { workspace = true, features = ["test-utils"] }