35 lines
941 B
Rust
35 lines
941 B
Rust
use alloc::boxed::Box;
|
|
|
|
use displaydoc::Display;
|
|
use tendermint::{block::Height, Hash};
|
|
use tendermint_light_client::{
|
|
builder::error::Error as TmBuilderError, errors::Error as LightClientError,
|
|
};
|
|
|
|
#[derive(Debug, Display)]
|
|
pub enum Error {
|
|
/// empty trace
|
|
EmptyTrace,
|
|
/// first block in trace does not match trusted (expected {expected:?}, found {found:?})
|
|
FirstTraceBlockNotTrusted {
|
|
expected: (Height, Hash),
|
|
found: (Height, Hash),
|
|
},
|
|
/// verification failure (`{0}`)
|
|
VerificationFailure(Box<LightClientError>),
|
|
/// failed to build light client (`{0}`)
|
|
LightClientBuildFailure(Box<TmBuilderError>),
|
|
}
|
|
|
|
impl From<LightClientError> for Error {
|
|
fn from(e: LightClientError) -> Self {
|
|
Error::VerificationFailure(Box::new(e))
|
|
}
|
|
}
|
|
|
|
impl From<TmBuilderError> for Error {
|
|
fn from(e: TmBuilderError) -> Self {
|
|
Error::LightClientBuildFailure(Box::new(e))
|
|
}
|
|
}
|