1use keri_core::{
2 actor::prelude::VersionError, database::redb::RedbError,
3 event_message::cesr_adapter::ParseError, oobi::Scheme, prefix::IdentifierPrefix,
4 processor::validator::VerificationError,
5};
6use thiserror::Error;
7
8use crate::{
9 communication::SendingError,
10 identifier::{mechanics::MechanicsError, query::WatcherResponseError},
11};
12
13#[derive(Error, Debug)]
14pub enum ControllerError {
15 #[error("Redb error: {0}")]
16 RedbError(#[from] RedbError),
17
18 #[cfg(feature = "query_cache")]
19 #[error("SQL error: {0}")]
20 SQLError(#[from] rusqlite::Error),
21
22 #[error(transparent)]
23 SendingError(#[from] SendingError),
24
25 #[error("Keri event parsing error: {0}")]
26 ParseError(#[from] ParseError),
27
28 #[error("Unknown identifier")]
29 UnknownIdentifierError,
30
31 #[error("transparent")]
32 EventProcessingError(#[from] keri_core::error::Error),
33
34 #[error("Keri version error: ")]
35 VersionError(#[from] VersionError),
36
37 #[error("No location for {id} with {scheme:?}")]
38 NoLocationScheme {
39 id: IdentifierPrefix,
40 scheme: Scheme,
41 },
42
43 #[error("Query error: {0}")]
44 QueryArgumentError(String),
45
46 #[error("Cesr error")]
47 CesrFormatError,
48
49 #[error("Wrong signature")]
50 FaultySignature,
51
52 #[error("Verification failed for following elements: {0:?}")]
53 VerificationError(Vec<(VerificationError, String)>),
54
55 #[error(transparent)]
56 TelError(#[from] teliox::error::Error),
57
58 #[error("Error: {0}")]
59 OtherError(String),
60
61 #[error(transparent)]
62 Mechanic(#[from] MechanicsError),
63
64 #[error("Watcher response error: {0}")]
65 WatcherResponseError(#[from] WatcherResponseError),
66}