sp1_cc_host_executor/
errors.rs

1use alloy_eips::{eip2718::Eip2718Error, BlockId};
2use alloy_transport::TransportError;
3use rsp_mpt::FromProofError;
4use thiserror::Error;
5
6/// Error types for host operations.
7#[derive(Error, Debug)]
8pub enum HostError {
9    #[error("Transport error: {0}")]
10    TransportError(#[from] TransportError),
11    #[error("Decoding error: {0}")]
12    DecodingError(#[from] Eip2718Error),
13    #[error("Trie from proof conversion error: {0}")]
14    TrieFromProofError(#[from] FromProofError),
15    #[error("Merkleization error: {0}")]
16    MerkleizationError(#[from] ethereum_consensus::ssz::prelude::MerkleizationError),
17    #[error("Beacon error: {0}")]
18    BeaconError(#[from] BeaconError),
19    #[error("Failed to convert the header for block {0}")]
20    HeaderConversionError(u64),
21    #[error("The block {0} don't exists")]
22    BlockNotFoundError(BlockId),
23    #[error("The parent beacon block root is missing in the header")]
24    ParentBeaconBlockRootMissing,
25}
26
27/// Beacon-related error types.
28#[derive(Error, Debug)]
29pub enum BeaconError {
30    #[error("Reqwest error: {0}")]
31    Reqwest(#[from] reqwest::Error),
32    #[error("Serde error: {0}")]
33    Serde(#[from] serde_json::Error),
34    #[error("Execution payload missing")]
35    ExecutionPayloadMissing,
36}