@@ -39,7 +39,8 @@ use foundry_compilers_core::{
3939 error:: SolcError ,
4040 utils:: {
4141 strip_prefix_owned, BERLIN_SOLC , BYZANTIUM_SOLC , CANCUN_SOLC , CONSTANTINOPLE_SOLC ,
42- ISTANBUL_SOLC , LONDON_SOLC , PARIS_SOLC , PETERSBURG_SOLC , PRAGUE_SOLC , SHANGHAI_SOLC ,
42+ ISTANBUL_SOLC , LONDON_SOLC , OSAKA_SOLC , PARIS_SOLC , PETERSBURG_SOLC , PRAGUE_SOLC ,
43+ SHANGHAI_SOLC ,
4344 } ,
4445} ;
4546pub use serde_helpers:: { deserialize_bytes, deserialize_opt_bytes} ;
@@ -856,8 +857,10 @@ impl EvmVersion {
856857 if * version >= BYZANTIUM_SOLC {
857858 // If the Solc version is the latest, it supports all EVM versions.
858859 // For all other cases, cap at the at-the-time highest possible fork.
859- let normalized = if * version >= PRAGUE_SOLC {
860+ let normalized = if * version >= OSAKA_SOLC {
860861 self
862+ } else if * version >= PRAGUE_SOLC {
863+ Self :: Prague
861864 } else if self >= Self :: Cancun && * version >= CANCUN_SOLC {
862865 Self :: Cancun
863866 } else if self >= Self :: Shanghai && * version >= SHANGHAI_SOLC {
@@ -2021,6 +2024,7 @@ mod tests {
20212024 ( "0.8.26" , EvmVersion :: Cancun , Some ( EvmVersion :: Cancun ) ) ,
20222025 ( "0.8.26" , EvmVersion :: Prague , Some ( EvmVersion :: Cancun ) ) ,
20232026 ( "0.8.27" , EvmVersion :: Prague , Some ( EvmVersion :: Prague ) ) ,
2027+ ( "0.8.29" , EvmVersion :: Osaka , Some ( EvmVersion :: Osaka ) ) ,
20242028 ] {
20252029 let version = Version :: from_str ( solc_version) . unwrap ( ) ;
20262030 assert_eq ! (
0 commit comments