From 213aa202fa8479eb9a04ba56db7f1c9ee00aab26 Mon Sep 17 00:00:00 2001 From: emirongrr Date: Fri, 10 Apr 2026 22:42:33 +0300 Subject: [PATCH 1/3] refactor(l1): improve error handling in set_sync_block with eyre::Result --- cmd/ethrex/initializers.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/cmd/ethrex/initializers.rs b/cmd/ethrex/initializers.rs index 7f60695a47..a97f4cbd17 100644 --- a/cmd/ethrex/initializers.rs +++ b/cmd/ethrex/initializers.rs @@ -461,21 +461,23 @@ pub fn get_ws_socket_addr(opts: &Options) -> SocketAddr { } #[cfg(feature = "sync-test")] -async fn set_sync_block(store: &Store) { - if let Ok(block_number) = env::var("SYNC_BLOCK_NUM") { - let block_number = block_number - .parse() - .expect("Block number provided by environment is not numeric"); - let block_hash = store - .get_canonical_block_hash(block_number) - .await - .expect("Could not get hash for block number provided by env variable") - .expect("Could not get hash for block number provided by env variable"); - store - .forkchoice_update(vec![], block_number, block_hash, None, None) - .await - .expect("Could not set sync block"); - } +async fn set_sync_block(store: &Store) -> eyre::Result<()> { + let block_number = env::var("SYNC_BLOCK_NUM")?; + let block_number: u64 = block_number.parse() + .map_err(|_| eyre::eyre!("SYNC_BLOCK_NUM environment variable is not a valid number"))?; + + let block_hash = store + .get_canonical_block_hash(block_number) + .await + .map_err(|e| eyre::eyre!("Failed to query block hash from store: {e}"))? + .ok_or_else(|| eyre::eyre!("Block hash not found for block number {block_number}"))?; + + store + .forkchoice_update(vec![], block_number, block_hash, None, None) + .await + .map_err(|e| eyre::eyre!("Failed to set sync block: {e}"))?; + + Ok(()) } pub async fn init_l1( @@ -514,7 +516,7 @@ pub async fn init_l1( } #[cfg(feature = "sync-test")] - set_sync_block(&store).await; + set_sync_block(&store).await?; let blockchain = init_blockchain( store.clone(), From bf8ae2f7bf58ae11fb9479a2cb5230dcd7b57af7 Mon Sep 17 00:00:00 2001 From: emirongrr Date: Fri, 10 Apr 2026 23:34:26 +0300 Subject: [PATCH 2/3] fix(l1): preserve optional guard in set_sync_block --- cmd/ethrex/initializers.rs | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/cmd/ethrex/initializers.rs b/cmd/ethrex/initializers.rs index a97f4cbd17..6d73385277 100644 --- a/cmd/ethrex/initializers.rs +++ b/cmd/ethrex/initializers.rs @@ -462,21 +462,26 @@ pub fn get_ws_socket_addr(opts: &Options) -> SocketAddr { #[cfg(feature = "sync-test")] async fn set_sync_block(store: &Store) -> eyre::Result<()> { - let block_number = env::var("SYNC_BLOCK_NUM")?; - let block_number: u64 = block_number.parse() - .map_err(|_| eyre::eyre!("SYNC_BLOCK_NUM environment variable is not a valid number"))?; - - let block_hash = store - .get_canonical_block_hash(block_number) - .await - .map_err(|e| eyre::eyre!("Failed to query block hash from store: {e}"))? - .ok_or_else(|| eyre::eyre!("Block hash not found for block number {block_number}"))?; - - store - .forkchoice_update(vec![], block_number, block_hash, None, None) - .await - .map_err(|e| eyre::eyre!("Failed to set sync block: {e}"))?; - + if let Ok(block_number_str) = env::var("SYNC_BLOCK_NUM") { + let block_number: u64 = block_number_str + .parse() + .map_err(|_| eyre::eyre!("Block number provided by environment is not numeric"))?; + + let block_hash = store + .get_canonical_block_hash(block_number) + .await + .map_err(|e| eyre::eyre!("Failed to query block hash from store: {e}"))? + .ok_or_else(|| { + eyre::eyre!( + "Could not get hash for block number provided by env variable {block_number}" + ) + })?; + + store + .forkchoice_update(vec![], block_number, block_hash, None, None) + .await + .map_err(|e| eyre::eyre!("Could not set sync block: {e}"))?; + } Ok(()) } From d261142f161e3353db1c77bb07dbbf93f1fcd357 Mon Sep 17 00:00:00 2001 From: emirongrr Date: Mon, 13 Apr 2026 21:17:44 +0300 Subject: [PATCH 3/3] use wrap_err for cleaner error propagation --- cmd/ethrex/initializers.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/ethrex/initializers.rs b/cmd/ethrex/initializers.rs index 6d73385277..e57068d6c9 100644 --- a/cmd/ethrex/initializers.rs +++ b/cmd/ethrex/initializers.rs @@ -462,15 +462,15 @@ pub fn get_ws_socket_addr(opts: &Options) -> SocketAddr { #[cfg(feature = "sync-test")] async fn set_sync_block(store: &Store) -> eyre::Result<()> { - if let Ok(block_number_str) = env::var("SYNC_BLOCK_NUM") { - let block_number: u64 = block_number_str + if let Ok(block_number) = env::var("SYNC_BLOCK_NUM") { + let block_number: u64 = block_number .parse() - .map_err(|_| eyre::eyre!("Block number provided by environment is not numeric"))?; + .wrap_err("Block number provided by environment is not numeric")?; let block_hash = store .get_canonical_block_hash(block_number) .await - .map_err(|e| eyre::eyre!("Failed to query block hash from store: {e}"))? + .wrap_err("Failed to query block hash from store")? .ok_or_else(|| { eyre::eyre!( "Could not get hash for block number provided by env variable {block_number}" @@ -480,7 +480,7 @@ async fn set_sync_block(store: &Store) -> eyre::Result<()> { store .forkchoice_update(vec![], block_number, block_hash, None, None) .await - .map_err(|e| eyre::eyre!("Could not set sync block: {e}"))?; + .wrap_err("Could not set sync block")?; } Ok(()) }