#![warn(missing_docs)]
mod animate;
mod bip39;
mod bip85;
mod complex;
mod derive;
mod generic;
mod macros;
mod matrix;
mod simple;
#[doc(no_inline)]
pub use bitcoin::{self, bip32::Xpriv};
pub use animate::AnimateDiagram;
pub use bip39::{Bip39 as BIP39, Language, Mnemonic};
pub use bip85::{Bip85 as BIP85, Password, Wif};
pub use complex::ComplexDiagram;
pub use derive::{Bip32 as BIP32, Bip44 as BIP44, Bip49 as BIP49, Bip84 as BIP84};
pub use generic::GenericDiagram;
pub use matrix::{Matrix, ToMatrix};
pub use simple::SimpleDiagram;
pub mod error {
use crate::bip39;
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("invalid parameter: {0}")]
InvalidParameter(&'static str),
#[error("bip32 error")]
Bip32Error(#[from] bitcoin::bip32::Error),
#[error("bip39 error")]
Bip39Error(#[from] bip39::Bip39Error),
#[error("runtime error")]
SecpError(#[from] bitcoin::secp256k1::Error),
#[error("hex error")]
HexError(#[from] bitcoin::hex::HexToArrayError),
#[error("address error")]
AddressError(#[from] bitcoin::key::UncompressedPublicKeyError),
#[error("p2sh error")]
P2shError(#[from] bitcoin::address::P2shError),
#[cfg(feature = "serde")]
#[error("serialize error")]
Serialize(#[from] rmp_serde::encode::Error),
#[cfg(feature = "serde")]
#[error("deserialize error")]
Deserialize(#[from] rmp_serde::decode::Error),
}
}
pub use error::Error;
#[cfg(not(feature = "testnet"))]
pub const NETWORK: bitcoin::NetworkKind = bitcoin::NetworkKind::Main;
#[cfg(feature = "testnet")]
pub const NETWORK: bitcoin::NetworkKind = bitcoin::NetworkKind::Test;