From: valued mammal Date: Sat, 31 Aug 2024 17:02:25 +0000 (-0400) Subject: fix(wallet): do `check_wallet_descriptor` when creating and loading X-Git-Tag: v1.0.0-beta.3~5^2 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/scripts/struct.BlockHash.html?a=commitdiff_plain;h=5aecf4d6c48b75e610bbb9e31ad552878d797b5c;p=bdk fix(wallet): do `check_wallet_descriptor` when creating and loading --- diff --git a/crates/wallet/src/wallet/mod.rs b/crates/wallet/src/wallet/mod.rs index 9f12fac4..306ca60f 100644 --- a/crates/wallet/src/wallet/mod.rs +++ b/crates/wallet/src/wallet/mod.rs @@ -390,6 +390,7 @@ impl Wallet { let (chain, chain_changeset) = LocalChain::from_genesis_hash(genesis_hash); let (descriptor, mut descriptor_keymap) = (params.descriptor)(&secp, network)?; + check_wallet_descriptor(&descriptor)?; descriptor_keymap.extend(params.descriptor_keymap); let signers = Arc::new(SignersContainer::build( @@ -401,6 +402,7 @@ impl Wallet { let (change_descriptor, change_signers) = match params.change_descriptor { Some(make_desc) => { let (change_descriptor, mut internal_keymap) = make_desc(&secp, network)?; + check_wallet_descriptor(&change_descriptor)?; internal_keymap.extend(params.change_descriptor_keymap); let change_signers = Arc::new(SignersContainer::build( internal_keymap, @@ -582,6 +584,7 @@ impl Wallet { } // parameters must match Some(make_desc) => { + check_wallet_descriptor(&desc).map_err(LoadError::Descriptor)?; let (exp_desc, keymap) = make_desc(&secp, network).map_err(LoadError::Descriptor)?; if desc.descriptor_id() != exp_desc.descriptor_id() {