Skip to main content

ows_lib/
error.rs

1use ows_signer::hd::HdError;
2use ows_signer::mnemonic::MnemonicError;
3use ows_signer::{CryptoError, SignerError};
4
5/// Unified error type for ows-lib operations.
6#[derive(Debug, thiserror::Error)]
7pub enum OwsLibError {
8    #[error("wallet not found: '{0}'")]
9    WalletNotFound(String),
10
11    #[error("ambiguous wallet name '{name}' matches {count} wallets; use the wallet ID instead")]
12    AmbiguousWallet { name: String, count: usize },
13
14    #[error("wallet name already exists: '{0}'")]
15    WalletNameExists(String),
16
17    #[error("invalid input: {0}")]
18    InvalidInput(String),
19
20    #[error("broadcast failed: {0}")]
21    BroadcastFailed(String),
22
23    #[error("{0}")]
24    Crypto(#[from] CryptoError),
25
26    #[error("{0}")]
27    Signer(#[from] SignerError),
28
29    #[error("{0}")]
30    Mnemonic(#[from] MnemonicError),
31
32    #[error("{0}")]
33    Hd(#[from] HdError),
34
35    #[error("{0}")]
36    Core(#[from] ows_core::OwsError),
37
38    #[error("I/O error: {0}")]
39    Io(#[from] std::io::Error),
40
41    #[error("JSON error: {0}")]
42    Json(#[from] serde_json::Error),
43}