terra_rust_wallet/
errors.rs1#![allow(missing_docs)]
2#![allow(missing_docs)]
3use terra_rust_api::errors::TerraRustAPIError;
4use thiserror::Error;
5
6#[derive(Error, Debug)]
7pub enum TerraRustWalletError {
8 #[error(transparent)]
9 KeyringError(#[from] KeyringErrorAdapter),
10 #[error(transparent)]
11 SerdeJsonError(#[from] ::serde_json::Error),
12 #[error(transparent)]
13 KeyringErrorAdapter(#[from] ::keyring::Error),
14 #[error(transparent)]
15 TerraRustAPIError(#[from] TerraRustAPIError),
16 #[error("Terra Wallet `{key}` Key not found Error")]
17 KeyNotFound {
18 key: String,
19 source: KeyringErrorAdapter,
20 },
21
22 #[error("unknown Terra-Rust Wallet error")]
23 Unknown,
24}
25
26#[derive(Error, Debug)]
32#[error(transparent)]
33pub struct KeyringErrorAdapter(anyhow::Error);
34
35impl From<keyring::Error> for KeyringErrorAdapter {
36 fn from(e: keyring::Error) -> Self {
37 KeyringErrorAdapter(anyhow::anyhow!("Keyring error: {:?}", e))
38 }
39}