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("proof worker failed: {_0}")]
16 ProofWorker(String),
17 #[error(transparent)]
19 SparseTrie(#[from] SparseTrieError),
20 #[error("sparse trie task stalled")]
22 Stalled,
23 #[error("state root task canceled: consumer dropped the handle")]
25 Canceled,
26 #[error("{_0}")]
28 Other(String),
29}
30
31impl From<StateProofError> for StateRootTaskError {
32 fn from(error: StateProofError) -> Self {
33 match error {
34 StateProofError::Database(err) => Self::Provider(ProviderError::Database(err)),
35 StateProofError::Rlp(err) => Self::Provider(ProviderError::Rlp(err)),
36 StateProofError::TrieInconsistency(msg) => {
37 Self::Provider(ProviderError::TrieWitnessError(msg))
38 }
39 }
40 }
41}