Struct bdk::descriptor::template::Bip49Public [−][src]
pub struct Bip49Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description
BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))
This assumes that the key used has already been derived with m/49'/0'/0'
.
This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
See Bip49
for a template that does the full derivation, but requires private data
for the key.
Example
use bdk::template::Bip49Public;
let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
let wallet = Wallet::new_offline(
Bip49Public(key.clone(), fingerprint, KeychainKind::External),
Some(Bip49Public(key, fingerprint, 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");
Tuple Fields
0: K
1: Fingerprint
2: KeychainKind
Trait Implementations
Build the complete descriptor
Auto Trait Implementations
impl<K> RefUnwindSafe for Bip49Public<K> where
K: RefUnwindSafe,
impl<K> Send for Bip49Public<K> where
K: Send,
impl<K> Sync for Bip49Public<K> where
K: Sync,
impl<K> Unpin for Bip49Public<K> where
K: Unpin,
impl<K> UnwindSafe for Bip49Public<K> where
K: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. 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