]> Untitled Git - bdk-cli/commitdiff
Update to current bdk rev with new 'DerivableKey' and 'TxBuilder' APIs
authorSteve Myers <steve@notmandatory.org>
Wed, 3 Feb 2021 18:55:16 +0000 (10:55 -0800)
committerSteve Myers <steve@notmandatory.org>
Wed, 3 Feb 2021 18:55:40 +0000 (10:55 -0800)
Cargo.toml
src/lib.rs

index 0bfd8263807adc8283462dfde7ce5fe4633dfc99..70fd6ddfe9a0150a922678a47b3900db6d3c9de5 100644 (file)
@@ -12,8 +12,8 @@ readme = "README.md"
 license = "MIT"
 
 [dependencies]
-bdk = { git = "https://github.com/afilini/bdk.git", branch = "fix/better-derivable-key-api", features = ["all-keys"]}
-bdk-macros = "^0.2"
+bdk = { git = "https://github.com/bitcoindevkit/bdk.git", commit = "4c36020e", features = ["all-keys"]}
+bdk-macros = { git = "https://github.com/bitcoindevkit/bdk.git", commit = "4c36020e" }
 structopt = "^0.3"
 serde_json = { version = "^1.0" }
 log = "^0.4"
index 0b24766d7b13fa94e83d5f925e26156088f1e4d4..4edc80c5a6acca191593a84fdc805696fcd5847f 100644 (file)
@@ -119,7 +119,7 @@ use bdk::keys::bip39::{Language, Mnemonic, MnemonicType};
 use bdk::keys::{DerivableKey, ExtendedKey, GeneratableKey, GeneratedKey};
 use bdk::miniscript::miniscript;
 use bdk::Error;
-use bdk::{FeeRate, KeychainKind, TxBuilder, Wallet};
+use bdk::{FeeRate, KeychainKind, Wallet};
 
 /// Global options
 ///
@@ -556,36 +556,36 @@ where
             external_policy,
             internal_policy,
         } => {
-            let mut tx_builder = TxBuilder::new();
+            let mut tx_builder = wallet.build_tx();
 
             if send_all {
-                tx_builder = tx_builder
+                tx_builder
                     .drain_wallet()
                     .set_single_recipient(recipients[0].0.clone());
             } else {
-                tx_builder = tx_builder.set_recipients(recipients);
+                tx_builder.set_recipients(recipients);
             }
 
             if enable_rbf {
-                tx_builder = tx_builder.enable_rbf();
+                tx_builder.enable_rbf();
             }
 
             if offline_signer {
-                tx_builder = tx_builder
+                tx_builder
                     .force_non_witness_utxo()
                     .include_output_redeem_witness_script();
             }
 
             if let Some(fee_rate) = fee_rate {
-                tx_builder = tx_builder.fee_rate(FeeRate::from_sat_per_vb(fee_rate));
+                tx_builder.fee_rate(FeeRate::from_sat_per_vb(fee_rate));
             }
 
             if let Some(utxos) = utxos {
-                tx_builder = tx_builder.utxos(utxos).manually_selected_only();
+                tx_builder.add_utxos(&utxos[..])?.manually_selected_only();
             }
 
             if let Some(unspendable) = unspendable {
-                tx_builder = tx_builder.unspendable(unspendable);
+                tx_builder.unspendable(unspendable);
             }
 
             let policies = vec![
@@ -596,10 +596,10 @@ where
             for (policy, keychain) in policies.into_iter().filter_map(|x| x) {
                 let policy = serde_json::from_str::<BTreeMap<String, Vec<usize>>>(&policy)
                     .map_err(|s| Error::Generic(s.to_string()))?;
-                tx_builder = tx_builder.policy_path(policy, keychain);
+                tx_builder.policy_path(policy, keychain);
             }
 
-            let (psbt, details) = wallet.create_tx(tx_builder)?;
+            let (psbt, details) = tx_builder.finish()?;
             Ok(json!({"psbt": base64::encode(&serialize(&psbt)),"details": details,}))
         }
         BumpFee {
@@ -612,27 +612,28 @@ where
         } => {
             let txid = Txid::from_str(txid.as_str()).map_err(|s| Error::Generic(s.to_string()))?;
 
-            let mut tx_builder = TxBuilder::new().fee_rate(FeeRate::from_sat_per_vb(fee_rate));
+            let mut tx_builder = wallet.build_fee_bump(txid)?;
+            tx_builder.fee_rate(FeeRate::from_sat_per_vb(fee_rate));
 
             if send_all {
-                tx_builder = tx_builder.maintain_single_recipient();
+                tx_builder.maintain_single_recipient()?;
             }
 
             if offline_signer {
-                tx_builder = tx_builder
+                tx_builder
                     .force_non_witness_utxo()
                     .include_output_redeem_witness_script();
             }
 
             if let Some(utxos) = utxos {
-                tx_builder = tx_builder.utxos(utxos);
+                tx_builder.add_utxos(&utxos[..])?;
             }
 
             if let Some(unspendable) = unspendable {
-                tx_builder = tx_builder.unspendable(unspendable);
+                tx_builder.unspendable(unspendable);
             }
 
-            let (psbt, details) = wallet.bump_fee(&txid, tx_builder)?;
+            let (psbt, details) = tx_builder.finish()?;
             Ok(json!({"psbt": base64::encode(&serialize(&psbt)),"details": details,}))
         }
         Policies => Ok(json!({