"bdk_redb",
"bdk_sp",
"bdk_testenv",
- "bdk_wallet",
+ "bdk_wallet 3.1.0",
"clap",
"clap_complete",
"cli-table",
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "262ee5f0c1056400b354391cabc541cb732c10488679de6389641e37f7e6c698"
dependencies = [
- "bdk_wallet",
+ "bdk_wallet 2.1.0",
"bitcoin",
]
[[package]]
name = "bdk_chain"
-version = "0.23.2"
+version = "0.23.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b5d691fd092aacec7e05046b7d04897d58d6d65ed3152cb6cf65dababcfabed"
+checksum = "c290eff038799a8ac0c5a82b6160a9ca456baa299a6f22b262c771342d2846c0"
dependencies = [
"bdk_core",
"bitcoin",
[[package]]
name = "bdk_core"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dbbe4aad0c898bfeb5253c222be3ea3dccfb380a07e72c87e3e4ed6664a6753"
+checksum = "cb3028782f6bf14a6df987244333d34e6b272b5a40a53e4879ec2dfd82275a3a"
dependencies = [
"bitcoin",
"hashbrown 0.14.5",
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f35b9f8b3aa8c4647bec7a92b050c496742d955e0ac1edcb4e7c2deabf63c54"
dependencies = [
- "bdk_wallet",
+ "bdk_wallet 2.1.0",
"bip157",
]
[[package]]
name = "bdk_redb"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c21112531eccdcb15c120d6c39f704b0c733b12a3dff6bcce106984ca9f1011"
+checksum = "69ac8b88c9594c615fcb5b763e7afa16937e94f7a7f5ca334bf59a7fee69fea1"
dependencies = [
"bdk_chain",
- "bdk_wallet",
+ "bdk_wallet 3.1.0",
"ciborium",
"redb",
"thiserror 2.0.18",
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d30b5dba770184863b5d966ccbc6a11d12c145450be3b6a4435308297e6a12dc"
+dependencies = [
+ "bdk_chain",
+ "bitcoin",
+ "miniscript",
+ "rand_core 0.6.4",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "bdk_wallet"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1284fb23acc3e3022673712b55f4d5ce7e38aadc2c49bbef830dc3935f0a3289"
dependencies = [
"bdk_chain",
"bip39",
license = "MIT"
[dependencies]
-bdk_wallet = { version = "2.1.0", features = ["rusqlite", "keys-bip39", "compiler", "std"] }
+bdk_wallet = { version = "3.1.0", features = ["rusqlite", "keys-bip39", "compiler", "std"] }
clap = { version = "4.6", features = ["derive","env"] }
clap_complete = "4.6"
dirs = { version = "6.0.0" }
bdk_electrum = { version = "0.23.2", optional = true }
bdk_esplora = { version = "0.22.1", features = ["async-https", "tokio"], optional = true }
bdk_kyoto = { version = "0.15.4", optional = true }
-bdk_redb = { version = "0.1.1", optional = true }
+bdk_redb = { version = "0.2.0", optional = true }
bdk_sp = { version = "0.1.0", optional = true, git = "https://github.com/bitcoindevkit/bdk-sp", tag = "v0.1.0" }
shlex = { version = "1.3.0", optional = true }
payjoin = { version = "=1.0.0-rc.1", features = ["v1", "v2", "io", "_test-utils"], optional = true}
match &self.key {
Some(key) => {
if is_mnemonic(key) {
- generate_descriptor_from_mnemonic(key, ctx.network, &self.desc_type)
+ generate_descriptor_from_mnemonic(key, ctx.network.into(), &self.desc_type)
} else {
- generate_descriptors(&self.desc_type, key, ctx.network)
+ generate_descriptors(&self.desc_type, key, ctx.network.into())
}
}
- None => generate_descriptor_with_mnemonic(ctx.network, &self.desc_type),
+ None => generate_descriptor_with_mnemonic(ctx.network.into(), &self.desc_type),
}
}
}
.map_err(|_| Error::Generic("Mnemonic generation error".to_string()))?;
let mnemonic = mnemonic.into_key();
let xkey: ExtendedKey = (mnemonic.clone(), self.password.clone()).into_extended_key()?;
- let xprv = xkey.into_xprv(ctx.network).ok_or_else(|| {
+ let xprv = xkey.into_xprv(ctx.network.into()).ok_or_else(|| {
Error::Generic("Privatekey info not found (should not happen)".to_string())
})?;
let fingerprint = xprv.fingerprint(&secp);
let mnemonic = Mnemonic::parse_in(Language::English, &self.mnemonic)?;
let xkey: ExtendedKey = (mnemonic.clone(), &self.password).0.into_extended_key()?;
- let xprv = xkey.into_xprv(ctx.network).ok_or_else(|| {
+ let xprv = xkey.into_xprv(ctx.network.into()).ok_or_else(|| {
Error::Generic("Privatekey info not found (should not happen)".to_string())
})?;
let fingerprint = xprv.fingerprint(&secp);
}
if self.offline_signer {
- tx_builder.include_output_redeem_witness_script();
+ tx_builder.add_global_xpubs();
}
if let Some(fee_rate) = self.fee_rate
tx_builder.set_exact_sequence(Sequence::MAX);
if self.offline_signer {
- tx_builder.include_output_redeem_witness_script();
+ tx_builder.add_global_xpubs();
}
if let Some(fee_rate) = self.fee_rate
}
if self.offline_signer {
- tx_builder.include_output_redeem_witness_script();
+ tx_builder.add_global_xpubs();
}
if let Some(utxos) = &self.utxos {
KeychainKind,
bip39::{Language, Mnemonic},
bitcoin::{
- Network,
+ NetworkKind,
bip32::{DerivationPath, Xpriv, Xpub},
secp256k1::Secp256k1,
},
pub fn generate_descriptors(
desc_type: &str,
key: &str,
- network: Network,
+ network: NetworkKind,
) -> Result<DescriptorResult, Error> {
let is_private = key.starts_with("xprv") || key.starts_with("tprv");
_ => 84u32,
};
let coin_type = match network {
- Network::Bitcoin => 0u32,
+ NetworkKind::Main => 0u32,
_ => 1u32,
};
let derivation_path = DerivationPath::from_str(&format!("m/{purpose}h/{coin_type}h/0h"))?;
fn generate_private_descriptors(
desc_type: &str,
key: &str,
- network: Network,
+ network: NetworkKind,
) -> Result<DescriptorResult, Error> {
use bdk_wallet::template::{Bip44, Bip49, Bip84, Bip86};
/// Generate new mnemonic and descriptors
pub fn generate_descriptor_with_mnemonic(
- network: Network,
+ network: NetworkKind,
desc_type: &str,
) -> Result<DescriptorResult, Error> {
let mnemonic: GeneratedKey<Mnemonic, Segwitv0> =
/// Generate descriptors from existing mnemonic
pub fn generate_descriptor_from_mnemonic(
mnemonic_str: &str,
- network: Network,
+ network: NetworkKind,
desc_type: &str,
) -> Result<DescriptorResult, Error> {
let mnemonic = Mnemonic::parse_in(Language::English, mnemonic_str)?;