Struct bdk::descriptor::template::Bip49 [−][src]
pub struct Bip49<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description
BIP49 template. Expands to sh(wpkh(key/49'/0'/0'/{0,1}/*))
Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv
/tprv
).
See Bip49Public
for a template that can work with a xpub
/tpub
.
Example
use bdk::template::Bip49; let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?; let wallet = Wallet::new_offline( Bip49(key.clone(), KeychainKind::External), Some(Bip49(key, KeychainKind::Internal)), Network::Testnet, MemoryDatabase::default() )?; assert_eq!(wallet.get_address(New)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"); assert_eq!(wallet.public_descriptor(KeychainKind::External)?.unwrap().to_string(), "sh(wpkh([c55b303f/49\'/0\'/0\']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#gsmdv4xr");
Trait Implementations
Build the complete descriptor
Auto Trait Implementations
impl<K> RefUnwindSafe for Bip49<K> where
K: RefUnwindSafe,
impl<K> UnwindSafe for Bip49<K> where
K: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
pub fn into_wallet_descriptor(
Self,
&Secp256k1<All>,
Network
) -> Result<(Descriptor<DescriptorPublicKey>, HashMap<DescriptorPublicKey, DescriptorSecretKey, RandomState>), Error>
pub fn into_wallet_descriptor(
Self,
&Secp256k1<All>,
Network
) -> Result<(Descriptor<DescriptorPublicKey>, HashMap<DescriptorPublicKey, DescriptorSecretKey, RandomState>), Error>
Convert to wallet descriptor
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V