libelectrum2descriptors/
lib.rs

1pub mod electrum_extended_priv_key;
2pub mod electrum_extended_pub_key;
3#[cfg(feature = "wallet_file")]
4pub mod electrum_wallet_file;
5pub mod errors;
6
7pub use electrum_extended_priv_key::ElectrumExtendedPrivKey;
8pub use electrum_extended_pub_key::ElectrumExtendedPubKey;
9#[cfg(feature = "wallet_file")]
10pub use electrum_wallet_file::ElectrumWalletFile;
11pub use errors::Electrum2DescriptorError;
12
13pub trait ElectrumExtendedKey {
14    /// Returns internal and external descriptor
15    fn to_descriptors(&self) -> Descriptors;
16
17    /// Returns the bitcoin extended key (xpub or xprv) as String
18    fn xkey_str(&self) -> String;
19
20    /// Returns the kind of script
21    fn kind(&self) -> &str;
22}
23
24/// The two descriptors for external and change addresses
25#[derive(Clone, Debug, PartialEq, Eq)]
26pub struct Descriptors {
27    pub external: String,
28    pub change: String,
29}