@@ -257,6 +257,10 @@ impl TestFiller {
257257 None
258258 } else {
259259 for ( ineqality, error) in expect_exception {
260+ // Empty exception string means no exception expected for this network
261+ if error. is_empty ( ) {
262+ continue ;
263+ }
260264 if ineqality. starts_with ( ">=" ) {
261265 let compare_to: EthereumNetworkVersion =
262266 ineqality. strip_prefix ( ">=" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
@@ -311,9 +315,16 @@ impl TestFiller {
311315 EthereumNetworkVersion :: Instanbul => result. istanbul . get_exception ( ) ,
312316 EthereumNetworkVersion :: London => result. london . get_exception ( ) ,
313317 // This test format has not been updated
314- EthereumNetworkVersion :: Shanghi => unimplemented ! ( ) ,
315- // This test format has not been updated
316- EthereumNetworkVersion :: Merge => unimplemented ! ( ) ,
318+ EthereumNetworkVersion :: Shanghi => result
319+ . shanghai
320+ . as_ref ( )
321+ . map ( |s| s. get_exception ( ) )
322+ . unwrap_or ( None ) ,
323+ EthereumNetworkVersion :: Merge => result
324+ . merge
325+ . as_ref ( )
326+ . map ( |m| m. get_exception ( ) )
327+ . unwrap_or ( None ) ,
317328 } ,
318329 }
319330 }
@@ -387,6 +398,10 @@ pub struct TestFixtureResult {
387398 pub constantinople_fix : TestFixtureNetwork ,
388399 #[ serde( rename = "Istanbul" ) ]
389400 pub istanbul : TestFixtureNetwork ,
401+ #[ serde( rename = "Merge" , default ) ]
402+ pub merge : Option < TestFixtureNetwork > ,
403+ #[ serde( rename = "Shanghai" , default ) ]
404+ pub shanghai : Option < TestFixtureNetwork > ,
390405}
391406
392407impl TestFixtureResult {
@@ -406,10 +421,12 @@ impl TestFixtureResult {
406421 EthereumNetworkVersion :: Homestead => self . homestead ,
407422 EthereumNetworkVersion :: Instanbul => self . istanbul ,
408423 EthereumNetworkVersion :: London => self . london ,
409- // This test format has not been updated
410- EthereumNetworkVersion :: Shanghi => unimplemented ! ( ) ,
411- // This test format has not been updated
412- EthereumNetworkVersion :: Merge => unimplemented ! ( ) ,
424+ EthereumNetworkVersion :: Merge => {
425+ self . merge . expect ( "Merge result not present in fixture" )
426+ }
427+ EthereumNetworkVersion :: Shanghi => self
428+ . shanghai
429+ . expect ( "Shanghai result not present in fixture" ) ,
413430 }
414431 }
415432}
@@ -502,7 +519,7 @@ impl EthereumNetworkVersion {
502519 EthereumNetworkVersion :: Shanghi => 12 ,
503520 }
504521 }
505- pub fn get_all ( ) -> [ EthereumNetworkVersion ; 10 ] {
522+ pub fn get_all ( ) -> [ EthereumNetworkVersion ; 12 ] {
506523 [
507524 EthereumNetworkVersion :: Berlin ,
508525 EthereumNetworkVersion :: Byzantium ,
@@ -514,6 +531,8 @@ impl EthereumNetworkVersion {
514531 EthereumNetworkVersion :: Homestead ,
515532 EthereumNetworkVersion :: Instanbul ,
516533 EthereumNetworkVersion :: London ,
534+ EthereumNetworkVersion :: Merge ,
535+ EthereumNetworkVersion :: Shanghi ,
517536 ]
518537 }
519538}
0 commit comments