]> Untitled Git - bdk-cli/commitdiff
feat(wallet-3.1.0): Update Wallet to v3.1.0
authorVihiga Tyonum <withtvpeter@gmail.com>
Tue, 30 Jun 2026 12:39:52 +0000 (13:39 +0100)
committerVihiga Tyonum <withtvpeter@gmail.com>
Tue, 30 Jun 2026 12:39:52 +0000 (13:39 +0100)
- Update bdk_wallet to v3.1.0
- Replaced Network enum with NetworkKind
- Replaced `include_output_redeem_witness_script`
with `add_global_xpubs`
- update bdk_redb to v0.2.0

Cargo.lock
Cargo.toml
src/handlers/descriptor.rs
src/handlers/key.rs
src/handlers/offline.rs
src/utils/descriptors.rs

index 40ec3dc84d3bf047e5436c40d911d0aa1e79af0c..9425b2eca6a43985e56ecb5074054c87bee64417 100644 (file)
@@ -255,7 +255,7 @@ dependencies = [
  "bdk_redb",
  "bdk_sp",
  "bdk_testenv",
- "bdk_wallet",
+ "bdk_wallet 3.1.0",
  "clap",
  "clap_complete",
  "cli-table",
@@ -283,7 +283,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "262ee5f0c1056400b354391cabc541cb732c10488679de6389641e37f7e6c698"
 dependencies = [
- "bdk_wallet",
+ "bdk_wallet 2.1.0",
  "bitcoin",
 ]
 
@@ -300,9 +300,9 @@ dependencies = [
 
 [[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",
@@ -313,9 +313,9 @@ dependencies = [
 
 [[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",
@@ -350,18 +350,18 @@ version = "0.15.4"
 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",
@@ -390,6 +390,20 @@ name = "bdk_wallet"
 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",
index 2295d666c56bfc3f3769a0735864a88ef7375ce6..c3c69385e76553df21630dd5b9e71c23c9a206b1 100644 (file)
@@ -12,7 +12,7 @@ readme = "README.md"
 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" }
@@ -32,7 +32,7 @@ bdk_bitcoind_rpc = { version = "0.21.0", features = ["std"], optional = true }
 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}
index 1396c8887920666d7897a2ed0bb2ec3676d08d85..d76d47fc66a52772ed7318a746c10e3c97d1d79c 100644 (file)
@@ -49,12 +49,12 @@ impl AppCommand<AppContext<Init>> for DescriptorCommand {
         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),
         }
     }
 }
index ce8c844e5f1bdc36767f140e382341ca675529b6..ebff8a7996c4801c429091c4cc5ca26615ccdb3d 100644 (file)
@@ -60,7 +60,7 @@ impl AppCommand<AppContext<Init>> for GenerateKeyCommand {
                 .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);
@@ -143,7 +143,7 @@ impl AppCommand<AppContext<Init>> for RestoreKeyCommand {
 
         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);
index 92b1f338e0f3f315d199055e8e1dab589e2eed3b..5af69b599780781ae4d9e5648f2548b653701707 100644 (file)
@@ -259,7 +259,7 @@ impl AppCommand<AppContext<OfflineOperations<'_>>> for CreateTxCommand {
         }
 
         if self.offline_signer {
-            tx_builder.include_output_redeem_witness_script();
+            tx_builder.add_global_xpubs();
         }
 
         if let Some(fee_rate) = self.fee_rate
@@ -414,7 +414,7 @@ impl AppCommand<AppContext<OfflineOperations<'_>>> for CreateSpTxCommand {
         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
@@ -576,7 +576,7 @@ impl AppCommand<AppContext<OfflineOperations<'_>>> for BumpFeeCommand {
         }
 
         if self.offline_signer {
-            tx_builder.include_output_redeem_witness_script();
+            tx_builder.add_global_xpubs();
         }
 
         if let Some(utxos) = &self.utxos {
index 04391e503214acaa184f55eb110323b5745f79b7..f06898613b6b0480a8af720d228208bb2405e13c 100644 (file)
@@ -6,7 +6,7 @@ use bdk_wallet::{
     KeychainKind,
     bip39::{Language, Mnemonic},
     bitcoin::{
-        Network,
+        NetworkKind,
         bip32::{DerivationPath, Xpriv, Xpub},
         secp256k1::Secp256k1,
     },
@@ -25,7 +25,7 @@ use crate::utils::types::KeychainPair;
 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");
 
@@ -40,7 +40,7 @@ pub fn generate_descriptors(
             _ => 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"))?;
@@ -52,7 +52,7 @@ pub fn generate_descriptors(
 fn generate_private_descriptors(
     desc_type: &str,
     key: &str,
-    network: Network,
+    network: NetworkKind,
 ) -> Result<DescriptorResult, Error> {
     use bdk_wallet::template::{Bip44, Bip49, Bip84, Bip86};
 
@@ -166,7 +166,7 @@ pub fn build_public_descriptor(
 
 /// 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> =
@@ -183,7 +183,7 @@ pub fn generate_descriptor_with_mnemonic(
 /// 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)?;