-
Notifications
You must be signed in to change notification settings - Fork 63
Closed
Description
Describe the bug
The into_wallet_descriptor function takes a network argument which should doublecheck if the descriptor fits this network. However this doesn't work as expected.
use bdk_wallet::bitcoin::key::Secp256k1;
use bdk_wallet::bitcoin::Network;
use bdk_wallet::descriptor::{ExtendedDescriptor, IntoWalletDescriptor};
use bdk_wallet::keys::KeyMap;
use bdk_wallet::miniscript::TranslatePk;
fn main() {
// multipath
let descriptor_str = "wpkh([9a6a2580/84'/0'/0']tpubDDnGNapGEY6AZAdQbfRJgMg9fvz8pUBrLwvyvUqEgcUfgzM6zc2eVK4vY9x9L5FJWdX8WumXuLEDV5zDZnTfbn87vLe9XceCFwTu9so9Kks/<0;1>/*)";
let secp = Secp256k1::new();
let (extended_descriptor, key_map) = descriptor_str
.into_wallet_descriptor(&secp, Network::Testnet)
.unwrap();
println!("working: {}", extended_descriptor.to_string());
// multipath should not work, but throws no error
let descriptor_str = "wpkh([9a6a2580/84'/0'/0']xpub6DEzNop46vmxR49zYWFnMwmEfawSNmAMf6dLH5YKDY463twtvw1XD7ihwJRLPRGZJz799VPFzXHpZu6WdhT29WnaeuChS6aZHZPFmqczR5K/<0;1>/*)";
let secp = Secp256k1::new();
let (extended_descriptor, key_map) = descriptor_str
.into_wallet_descriptor(&secp, Network::Testnet)
.unwrap();
println!("should not work: {}", extended_descriptor.to_string());
// multipath should work, but fails
let descriptor_str = "wpkh([9a6a2580/84'/0'/0']xpub6DEzNop46vmxR49zYWFnMwmEfawSNmAMf6dLH5YKDY463twtvw1XD7ihwJRLPRGZJz799VPFzXHpZu6WdhT29WnaeuChS6aZHZPFmqczR5K/<0;1>/*)";
let secp = Secp256k1::new();
let (extended_descriptor, key_map) = descriptor_str
.into_wallet_descriptor(&secp, Network::Bitcoin)
.unwrap();
println!("fail: {}", extended_descriptor.to_string());
}
This error (in the 3. case) only occurs with multipath descriptors.
Build environment
[dependencies]
bdk_wallet = { version = "1.0.0", features = ["all-keys", "keys-bip39", "rusqlite"] }
bdk_core = { version = "0.4.1" }
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done