//! # use bdk::Wallet;
//! let config = serde_json::from_str("...")?;
//! let blockchain = AnyBlockchain::from_config(&config)?;
-//! let wallet = Wallet::new("...", None, Network::Testnet, MemoryDatabase::default(), blockchain)?;
+//! let wallet = Wallet::new(
+//! "...",
+//! None,
+//! Network::Testnet,
+//! MemoryDatabase::default(),
+//! blockchain,
+//! )?;
//! # Ok::<(), bdk::Error>(())
//! ```
//!
//! let mempool = Arc::new(Mempool::default());
//! let peers = (0..num_threads)
-//! .map(|_| Peer::connect(
-//! "btcd-mainnet.lightning.computer:8333",
-//! Arc::clone(&mempool),
-//! Network::Bitcoin,
-//! ))
+//! .map(|_| {
+//! Peer::connect(
+//! "btcd-mainnet.lightning.computer:8333",
+//! Arc::clone(&mempool),
+//! Network::Bitcoin,
+//! )
+//! })
//! .collect::<Result<_, _>>()?;
//! let blockchain = CompactFiltersBlockchain::new(peers, "./wallet-filters", Some(500_000))?;
//! # Ok::<(), CompactFiltersError>(())
sent: outgoing,
height,
timestamp,
- fees: inputs_sum.saturating_sub(outputs_sum), // if the tx is a coinbase, fees would be negative
+ fees: inputs_sum.saturating_sub(outputs_sum), /* if the tx is a coinbase, fees would be negative */
};
updates.set_tx(&tx_details)?;
//! # use bdk::database::{AnyDatabase, MemoryDatabase};
//! # use bdk::{Wallet, OfflineWallet};
//! let memory = MemoryDatabase::default().into();
-//! let wallet_memory: OfflineWallet<AnyDatabase> = Wallet::new_offline("...", None, Network::Testnet, memory)?;
+//! let wallet_memory: OfflineWallet<AnyDatabase> =
+//! Wallet::new_offline("...", None, Network::Testnet, memory)?;
//!
//! # #[cfg(feature = "key-value-db")]
//! # {
//! let sled = sled::open("my-database")?.open_tree("default_tree")?.into();
-//! let wallet_sled: OfflineWallet<AnyDatabase> = Wallet::new_offline("...", None, Network::Testnet, sled)?;
+//! let wallet_sled: OfflineWallet<AnyDatabase> =
+//! Wallet::new_offline("...", None, Network::Testnet, sled)?;
//! # }
//! # Ok::<(), bdk::Error>(())
//! ```
///
/// ```
/// # use std::str::FromStr;
-/// let my_key_1 = bitcoin::PublicKey::from_str("02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c")?;
-/// let my_key_2 = bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
+/// let my_key_1 = bitcoin::PublicKey::from_str(
+/// "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
+/// )?;
+/// let my_key_2 =
+/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
///
/// let (descriptor, key_map, networks) = bdk::descriptor! {
/// wsh (
/// Native-Segwit single-sig, equivalent to: `wpkh(...)`
///
/// ```
-/// let my_key = bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
+/// let my_key =
+/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
///
-/// let (descriptor, key_map, networks) = bdk::descriptor!(wpkh ( my_key ) )?;
+/// let (descriptor, key_map, networks) = bdk::descriptor!(wpkh(my_key))?;
/// # Ok::<(), Box<dyn std::error::Error>>(())
/// ```
#[macro_export]
/// ## Example
///
/// ```
-/// use bdk::keys::{ToDescriptorKey, KeyError};
-/// use bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
+/// use bdk::keys::{KeyError, ToDescriptorKey};
/// use bdk::miniscript::Legacy;
+/// use bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
///
/// struct MyP2PKH<K: ToDescriptorKey<Legacy>>(K);
///
/// impl<K: ToDescriptorKey<Legacy>> DescriptorTemplate for MyP2PKH<K> {
/// fn build(self) -> Result<DescriptorTemplateOut, KeyError> {
-/// Ok(bdk::descriptor!(pkh ( self.0 ) )?)
+/// Ok(bdk::descriptor!(pkh(self.0))?)
/// }
/// }
/// ```
/// # use bdk::database::MemoryDatabase;
/// use bdk::template::P2PKH;
///
-/// let key = bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet: OfflineWallet<_> = Wallet::new_offline(P2PKH(key), None, Network::Testnet, MemoryDatabase::default())?;
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let wallet: OfflineWallet<_> = Wallet::new_offline(
+/// P2PKH(key),
+/// None,
+/// Network::Testnet,
+/// MemoryDatabase::default(),
+/// )?;
///
-/// assert_eq!(wallet.get_new_address()?.to_string(), "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT");
+/// assert_eq!(
+/// wallet.get_new_address()?.to_string(),
+/// "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
+/// );
/// # Ok::<_, Box<dyn std::error::Error>>(())
/// ```
pub struct P2PKH<K: ToDescriptorKey<Legacy>>(pub K);
/// # use bdk::database::MemoryDatabase;
/// use bdk::template::P2WPKH_P2SH;
///
-/// let key = bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet: OfflineWallet<_> = Wallet::new_offline(P2WPKH_P2SH(key), None, Network::Testnet, MemoryDatabase::default())?;
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let wallet: OfflineWallet<_> = Wallet::new_offline(
+/// P2WPKH_P2SH(key),
+/// None,
+/// Network::Testnet,
+/// MemoryDatabase::default(),
+/// )?;
///
-/// assert_eq!(wallet.get_new_address()?.to_string(), "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5");
+/// assert_eq!(
+/// wallet.get_new_address()?.to_string(),
+/// "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
+/// );
/// # Ok::<_, Box<dyn std::error::Error>>(())
/// ```
#[allow(non_camel_case_types)]
/// # use bdk::database::MemoryDatabase;
/// use bdk::template::P2WPKH;
///
-/// let key = bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let wallet: OfflineWallet<_> = Wallet::new_offline(P2WPKH(key), None, Network::Testnet, MemoryDatabase::default())?;
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let wallet: OfflineWallet<_> = Wallet::new_offline(
+/// P2WPKH(key),
+/// None,
+/// Network::Testnet,
+/// MemoryDatabase::default(),
+/// )?;
///
-/// assert_eq!(wallet.get_new_address()?.to_string(), "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd");
+/// assert_eq!(
+/// wallet.get_new_address()?.to_string(),
+/// "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
+/// );
/// # Ok::<_, Box<dyn std::error::Error>>(())
/// ```
pub struct P2WPKH<K: ToDescriptorKey<Segwitv0>>(pub K);
/// ```
/// use bdk::bitcoin::PublicKey;
///
-/// use bdk::keys::{ScriptContext, ToDescriptorKey, DescriptorKey, KeyError};
+/// use bdk::keys::{DescriptorKey, KeyError, ScriptContext, ToDescriptorKey};
///
/// pub struct MyKeyType {
/// pubkey: PublicKey,
/// ```
/// use bdk::bitcoin::PublicKey;
///
-/// use bdk::keys::{mainnet_network, ScriptContext, ToDescriptorKey, DescriptorKey, DescriptorPublicKey, DescriptorSinglePub, KeyError};
+/// use bdk::keys::{
+/// mainnet_network, DescriptorKey, DescriptorPublicKey, DescriptorSinglePub, KeyError,
+/// ScriptContext, ToDescriptorKey,
+/// };
///
/// pub struct MyKeyType {
/// pubkey: PublicKey,
///
/// impl<Ctx: ScriptContext> ToDescriptorKey<Ctx> for MyKeyType {
/// fn to_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-/// Ok(DescriptorKey::from_public(DescriptorPublicKey::SinglePub(DescriptorSinglePub {
-/// origin: None,
-/// key: self.pubkey
-/// }), mainnet_network()))
+/// Ok(DescriptorKey::from_public(
+/// DescriptorPublicKey::SinglePub(DescriptorSinglePub {
+/// origin: None,
+/// key: self.pubkey,
+/// }),
+/// mainnet_network(),
+/// ))
/// }
/// }
/// ```
/// ```
/// use bdk::bitcoin::PublicKey;
///
-/// use bdk::keys::{ExtScriptContext, ScriptContext, ToDescriptorKey, DescriptorKey, KeyError};
+/// use bdk::keys::{DescriptorKey, ExtScriptContext, KeyError, ScriptContext, ToDescriptorKey};
///
/// pub struct MyKeyType {
/// is_legacy: bool,
/// makes the compiler (correctly) fail.
///
/// ```compile_fail
-/// use std::str::FromStr;
/// use bdk::bitcoin::PublicKey;
+/// use std::str::FromStr;
///
-/// use bdk::keys::{ToDescriptorKey, DescriptorKey, KeyError};
+/// use bdk::keys::{DescriptorKey, KeyError, ToDescriptorKey};
///
/// pub struct MySegwitOnlyKeyType {
/// pubkey: PublicKey,
/// let key = MySegwitOnlyKeyType {
/// pubkey: PublicKey::from_str("...")?,
/// };
-/// let (descriptor, _, _) = bdk::descriptor!(pkh ( key ) )?;
+/// let (descriptor, _, _) = bdk::descriptor!(pkh(key))?;
/// // ^^^^^ changing this to `wpkh` would make it compile
///
/// # Ok::<_, Box<dyn std::error::Error>>(())
//! }"#;
//!
//! let import = WalletExport::from_str(import)?;
-//! let wallet: OfflineWallet<_> = Wallet::new_offline(&import.descriptor(), import.change_descriptor().as_ref(), Network::Testnet, MemoryDatabase::default())?;
+//! let wallet: OfflineWallet<_> = Wallet::new_offline(
+//! &import.descriptor(),
+//! import.change_descriptor().as_ref(),
+//! Network::Testnet,
+//! MemoryDatabase::default(),
+//! )?;
//! # Ok::<_, bdk::Error>(())
//! ```
//!