Skip to main content

zemse_helios_core/execution/
errors.rs

1use alloy::eips::BlockId;
2use alloy::primitives::{Address, B256, U256};
3
4use thiserror::Error;
5
6#[derive(Debug, Error)]
7pub enum ExecutionError {
8    #[error("invalid account proof for address: {0}")]
9    InvalidAccountProof(Address),
10    #[error("invalid storage proof for address: {0}, slot: {1}")]
11    InvalidStorageProof(Address, B256),
12    #[error("code hash mismatch for address: {0}, found: {1}, expected: {2}")]
13    CodeHashMismatch(Address, B256, B256),
14    #[error("receipt root mismatch for tx: {0}")]
15    ReceiptRootMismatch(B256),
16    #[error("could not prove receipt for tx: {0}")]
17    NoReceiptForTransaction(B256),
18    #[error("could not prove receipts for block: {0}")]
19    NoReceiptsForBlock(BlockId),
20    #[error("missing log for transaction: {0}, index: {1}")]
21    MissingLog(B256, U256),
22    #[error("too many logs to prove: {0} spanning {1} blocks current limit is: {2} blocks")]
23    TooManyLogsToProve(usize, usize, usize),
24    #[error("execution rpc is for the incorrect network")]
25    IncorrectRpcNetwork(),
26    #[error("block not found: {0}")]
27    BlockNotFound(BlockId),
28    #[error("receipts root mismatch for block: {0}")]
29    BlockReceiptsRootMismatch(BlockId),
30    #[error("filter not found: 0x{0:x}")]
31    FilterNotFound(U256),
32    #[error("log does not match filter")]
33    LogFilterMismatch(),
34}