diff --git a/Cargo.lock b/Cargo.lock index 506650d6..08717947 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -237,9 +237,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bdk" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dcf686dfc6200d641e8619019c027976533b7e2d5c00de2b4182c88287a18b" +checksum = "d85959e6883d0286e39e89aa7791b2edc2b8712f0f7152fda43b692c4db96c06" dependencies = [ "async-trait", "bdk-macros", diff --git a/swap/Cargo.toml b/swap/Cargo.toml index 80dca924..cb08a792 100644 --- a/swap/Cargo.toml +++ b/swap/Cargo.toml @@ -15,7 +15,7 @@ async-trait = "0.1" atty = "0.2" backoff = { version = "0.3", features = [ "tokio" ] } base64 = "0.13" -bdk = "0.6" +bdk = "0.7" big-bytes = "1" bitcoin = { version = "0.26", features = [ "rand", "use-serde" ] } bmrng = "0.5" diff --git a/swap/src/bitcoin/wallet.rs b/swap/src/bitcoin/wallet.rs index 6268d64e..90276b0a 100644 --- a/swap/src/bitcoin/wallet.rs +++ b/swap/src/bitcoin/wallet.rs @@ -10,7 +10,7 @@ use bdk::descriptor::Segwitv0; use bdk::electrum_client::{ElectrumApi, GetHistoryRes}; use bdk::keys::DerivableKey; use bdk::wallet::AddressIndex; -use bdk::{FeeRate, KeychainKind}; +use bdk::{FeeRate, KeychainKind, SignOptions}; use bitcoin::{Network, Script}; use reqwest::Url; use rust_decimal::prelude::*; @@ -246,14 +246,21 @@ where C: EstimateFeeRate, D: BatchDatabase, { - pub async fn sign_and_finalize(&self, psbt: PartiallySignedTransaction) -> Result { - let (signed_psbt, finalized) = self.wallet.lock().await.sign(psbt, None)?; + pub async fn sign_and_finalize( + &self, + mut psbt: PartiallySignedTransaction, + ) -> Result { + let finalized = self + .wallet + .lock() + .await + .sign(&mut psbt, SignOptions::default())?; if !finalized { bail!("PSBT is not finalized") } - let tx = signed_psbt.extract_tx(); + let tx = psbt.extract_tx(); Ok(tx) }