reth_trie_parallel/
error.rs1use reth_execution_errors::{SparseTrieError, StateProofError};
2use reth_provider::ProviderError;
3use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum StateRootTaskError {
8 #[error(transparent)]
10 Provider(#[from] ProviderError),
11 #[error("proof dispatch failed: {_0}")]
13 ProofDispatch(ProviderError),
14 #[error(transparent)]
16 SparseTrie(#[from] SparseTrieError),
17 #[error("sparse trie task stalled")]
19 Stalled,
20 #[error("state root task canceled: consumer dropped the handle")]
22 Canceled,
23 #[error("{_0}")]
25 Other(String),
26}
27
28impl From<StateProofError> for StateRootTaskError {
29 fn from(error: StateProofError) -> Self {
30 match error {
31 StateProofError::Database(err) => Self::Provider(ProviderError::Database(err)),
32 StateProofError::Rlp(err) => Self::Provider(ProviderError::Rlp(err)),
33 StateProofError::TrieInconsistency(msg) => {
34 Self::Provider(ProviderError::TrieWitnessError(msg))
35 }
36 }
37 }
38}