From 8ffcb3124de0c9e8821ef6213aef90e3b748ebf2 Mon Sep 17 00:00:00 2001 From: Dan Cline <6798349+Rjected@users.noreply.github.com> Date: Tue, 6 Jun 2023 18:34:47 -0400 Subject: [PATCH] fix: fix error types in recover_sender utility fn (#3042) --- crates/stages/src/stages/sender_recovery.rs | 30 +++------------------ 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/crates/stages/src/stages/sender_recovery.rs b/crates/stages/src/stages/sender_recovery.rs index a3cf8c22ac..b417f8cd82 100644 --- a/crates/stages/src/stages/sender_recovery.rs +++ b/crates/stages/src/stages/sender_recovery.rs @@ -106,29 +106,6 @@ impl Stage for SenderRecoveryStage { // Note: Unfortunate side-effect of how chunk is designed in itertools (it is not Send) let chunk: Vec<_> = chunk.collect(); - // closure that would recover signer. Used as utility to wrap result - let recover = |entry: Result< - (RawKey, RawValue), - DatabaseError, - >, - rlp_buf: &mut Vec| - -> Result<(u64, H160), Box> { - let (tx_id, transaction) = - entry.map_err(|e| Box::new(SenderRecoveryStageError::StageError(e.into())))?; - let tx_id = tx_id.key().expect("key to be formated"); - - let tx = transaction.value().expect("value to be formated"); - tx.transaction.encode_without_signature(rlp_buf); - - let sender = tx.signature.recover_signer(keccak256(rlp_buf)).ok_or( - SenderRecoveryStageError::FailedRecovery(FailedSenderRecoveryError { - tx: tx_id, - }), - )?; - - Ok((tx_id, sender)) - }; - // Spawn the sender recovery task onto the global rayon pool // This task will send the results through the channel after it recovered the senders. rayon::spawn(move || { @@ -203,8 +180,9 @@ impl Stage for SenderRecoveryStage { fn recover_sender( entry: Result<(RawKey, RawValue), DatabaseError>, rlp_buf: &mut Vec, -) -> Result<(u64, H160), Box> { - let (tx_id, transaction) = entry.map_err(|e| Box::new(e.into()))?; +) -> Result<(u64, H160), Box> { + let (tx_id, transaction) = + entry.map_err(|e| Box::new(SenderRecoveryStageError::StageError(e.into())))?; let tx_id = tx_id.key().expect("key to be formated"); let tx = transaction.value().expect("value to be formated"); @@ -213,7 +191,7 @@ fn recover_sender( let sender = tx .signature .recover_signer(keccak256(rlp_buf)) - .ok_or(StageError::from(SenderRecoveryStageError::SenderRecovery { tx: tx_id }))?; + .ok_or(SenderRecoveryStageError::FailedRecovery(FailedSenderRecoveryError { tx: tx_id }))?; Ok((tx_id, sender)) }