Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions crates/optimism/trie/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,25 @@ pub enum OpProofsStorageError {
latest_block_hash: B256,
},
/// Block update failed since parent state
#[error("Cannot execute block updates for block {0} without parent state {1} (latest stored block number: {2})")]
BlockUpdateFailed(u64, u64, u64),
#[error("Cannot execute block updates for block {block_number} without parent state {parent_block_number} (latest stored block number: {latest_block_number})")]
BlockUpdateFailed {
/// The block number being executed
block_number: u64,
/// The parent state of the block being executed
parent_block_number: u64,
/// Latest stored block number
latest_block_number: u64,
},
/// State root mismatch
#[error("State root mismatch for block {0} (have: {1}, expected: {2})")]
StateRootMismatch(u64, B256, B256),
#[error("State root mismatch for block {block_number} (have: {current_state_hash}, expected: {expected_state_hash})")]
StateRootMismatch {
/// Block number
block_number: u64,
/// Have state root
current_state_hash: B256,
/// Expected state root
expected_state_hash: B256,
},
/// Error occurred while interacting with the database.
#[error(transparent)]
DatabaseError(#[from] DatabaseError),
Expand Down
18 changes: 9 additions & 9 deletions crates/optimism/trie/src/live.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ where
}

if parent_block_number > latest {
return Err(OpProofsStorageError::BlockUpdateFailed(
block.number(),
return Err(OpProofsStorageError::BlockUpdateFailed {
block_number: block.number(),
parent_block_number,
latest,
)
latest_block_number: latest,
}
.into());
}

Expand Down Expand Up @@ -92,11 +92,11 @@ where
let calculate_state_root_duration = start.elapsed() - execute_block_duration;

if state_root != block.state_root() {
return Err(OpProofsStorageError::StateRootMismatch(
block.number(),
state_root,
block.state_root(),
)
return Err(OpProofsStorageError::StateRootMismatch {
block_number: block.number(),
current_state_hash: state_root,
expected_state_hash: block.state_root(),
}
.into());
}

Expand Down