libelectrum2descriptors/
errors.rs1use 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}