From: Richard Ulrich Date: Wed, 26 May 2021 14:07:46 +0000 (+0200) Subject: adapt to the recent changes in the signing interface X-Git-Tag: v0.3.0~41 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/struct.WScriptHash.html?a=commitdiff_plain;h=105442539be13a49a855c58377ee08c35e27d03b;p=bdk-cli adapt to the recent changes in the signing interface --- diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml index d3aa9fa..c51cad0 100644 --- a/.github/workflows/cont_integration.yml +++ b/.github/workflows/cont_integration.yml @@ -10,8 +10,8 @@ jobs: strategy: matrix: rust: - - 1.50.0 # STABLE - - 1.45.0 # MSRV + - 1.51.0 # STABLE + - 1.46.0 # MSRV features: - default - repl diff --git a/Cargo.toml b/Cargo.toml index 107e01c..7f85af4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" license = "MIT" [dependencies] -bdk = { version = "^0.5.1", default-features = false, features = ["all-keys"]} +bdk = { version = "^0.7", default-features = false, features = ["all-keys"]} bdk-macros = "^0.4" structopt = "^0.3" serde_json = { version = "^1.0" } diff --git a/src/lib.rs b/src/lib.rs index f1fe8e6..d5a1b14 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -126,7 +126,9 @@ use bdk::keys::{DerivableKey, DescriptorKey, ExtendedKey, GeneratableKey, Genera use bdk::miniscript::miniscript; #[cfg(feature = "compiler")] use bdk::miniscript::policy::Concrete; +use bdk::wallet::AddressIndex; use bdk::Error; +use bdk::SignOptions; use bdk::{FeeRate, KeychainKind, Wallet}; /// Global options @@ -692,7 +694,7 @@ where D: BatchDatabase, { match offline_subcommand { - GetNewAddress => Ok(json!({"address": wallet.get_new_address()?})), + GetNewAddress => Ok(json!({"address": wallet.get_address(AddressIndex::New)?})), ListUnspent => Ok(serde_json::to_value(&wallet.list_unspent()?)?), ListTransactions => Ok(serde_json::to_value(&wallet.list_transactions(false)?)?), GetBalance => Ok(json!({"satoshi": wallet.get_balance()?})), @@ -722,9 +724,7 @@ where } if offline_signer { - tx_builder - .force_non_witness_utxo() - .include_output_redeem_witness_script(); + tx_builder.include_output_redeem_witness_script(); } if let Some(fee_rate) = fee_rate { @@ -771,9 +771,7 @@ where } if offline_signer { - tx_builder - .force_non_witness_utxo() - .include_output_redeem_witness_script(); + tx_builder.include_output_redeem_witness_script(); } if let Some(utxos) = utxos { @@ -800,8 +798,12 @@ where assume_height, } => { let psbt = base64::decode(&psbt).unwrap(); - let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap(); - let (psbt, finalized) = wallet.sign(psbt, assume_height)?; + let mut psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap(); + let signopt = SignOptions { + assume_height, + ..Default::default() + }; + let finalized = wallet.sign(&mut psbt, signopt)?; Ok(json!({"psbt": base64::encode(&serialize(&psbt)),"is_finalized": finalized,})) } ExtractPsbt { psbt } => { @@ -814,9 +816,13 @@ where assume_height, } => { let psbt = base64::decode(&psbt).unwrap(); - let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap(); + let mut psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap(); - let (psbt, finalized) = wallet.finalize_psbt(psbt, assume_height)?; + let signopt = SignOptions { + assume_height, + ..Default::default() + }; + let finalized = wallet.finalize_psbt(&mut psbt, signopt)?; Ok(json!({ "psbt": base64::encode(&serialize(&psbt)),"is_finalized": finalized,})) } CombinePsbt { psbt } => {