libelectrum2descriptors/
errors.rs

1use bitcoin::{base58, bip32, secp256k1};
2#[cfg(feature = "wallet_file")]
3use serde_json::Error as SerdeError;
4use std::io;
5use thiserror::Error;
6
7#[derive(Error, Debug)]
8pub enum Electrum2DescriptorError {
9    #[cfg(feature = "wallet_file")]
10    #[error(transparent)]
11    Serde(#[from] SerdeError),
12    #[error(transparent)]
13    IO(#[from] io::Error),
14    #[error(transparent)]
15    Infallible(#[from] std::convert::Infallible),
16    #[error(transparent)]
17    Base58Error(#[from] base58::Error),
18    #[error(transparent)]
19    Secp256k1Error(#[from] secp256k1::Error),
20    #[error(transparent)]
21    Bip32Error(#[from] bip32::Error),
22    #[cfg(feature = "wallet_file")]
23    #[error(transparent)]
24    RegexError(#[from] regex::Error),
25
26    #[error("Unknown type")]
27    UnknownType,
28    #[error("Unknown wallet type: {0}")]
29    UnknownWalletType(String),
30    #[error("Multisig with less than two signers doesn't make a lot of sense")]
31    MultisigFewSigners,
32    #[error("Unknown multisig descriptor format: {0}")]
33    UnknownDescriptorFormat(String),
34    #[error("Wrong number of keystores: {0}; expected: {1}")]
35    WrongNumberOfKeyStores(usize, usize),
36    #[error("Minimum number of signatures {0} must not be greater than keystores {1}")]
37    NumberSignaturesKeyStores(u8, usize),
38    #[error("keystore sizes above 255 are not currently supported. {0}")]
39    TooManyKeyStores(usize),
40    #[error("Unknown script kind: {0}")]
41    UnknownScriptKind(String),
42    #[error("Incorrect length of string representation: {0}")]
43    InvalidLength(usize),
44    #[error("Unknown sentinel")]
45    InvalidExtendedKeyVersion([u8; 4]),
46    #[error("{0}")]
47    GenericBorrow(&'static str),
48}