refactor: make sender recovery explicit in provider (#5776)

This commit is contained in:
Bjerg
2023-12-15 15:05:52 +02:00
committed by GitHub
parent faa9a22a71
commit 3f7760d852
12 changed files with 157 additions and 142 deletions

View File

@@ -195,7 +195,13 @@ impl Command {
let provider_rw = factory.provider_rw()?;
// Insert block, state and hashes
provider_rw.insert_block(block.clone(), None, None)?;
provider_rw.insert_block(
block
.clone()
.try_seal_with_senders()
.map_err(|_| BlockValidationError::SenderRecoveryError)?,
None,
)?;
block_state.write_to_db(provider_rw.tx_ref(), OriginalValuesKnown::No)?;
let storage_lists = provider_rw.changed_storages_with_range(block.number..=block.number)?;
let storages = provider_rw.plain_state_storages(storage_lists)?;

View File

@@ -177,10 +177,10 @@ impl Command {
Ok(senders) => senders,
Err(err) => {
warn!(target: "reth::cli", "Error sealing block with senders: {err:?}. Skipping...");
continue
continue;
}
};
provider_rw.insert_block(sealed_block.block, Some(sealed_block.senders), None)?;
provider_rw.insert_block(sealed_block, None)?;
}
// Check if any of hashing or merkle stages aren't on the same block number as
@@ -277,7 +277,7 @@ impl Command {
let clean_result = merkle_stage.execute(&provider_rw, clean_input);
assert!(clean_result.is_ok(), "Clean state root calculation failed");
if clean_result.unwrap().done {
break
break;
}
}
@@ -343,7 +343,7 @@ impl Command {
clean.1.nibbles.len() > self.skip_node_depth.unwrap_or_default()
{
first_mismatched_storage = Some((incremental, clean));
break
break;
}
}
(Some(incremental), None) => {