From 0341e7c9fcce61e9cbd624462d1336803e95b674 Mon Sep 17 00:00:00 2001 From: Daniel Karzel Date: Thu, 1 Apr 2021 16:46:39 +1100 Subject: [PATCH] Point BDK to commit that fixes overflow error Edge cases of UTXOs where value < fee cause the BDK's `coin_select` calculation to panic. This issue was fixed upstream thus we point the BDK dependency against the commit of the merged fix. --- Cargo.lock | 5 ++--- swap/Cargo.toml | 2 +- swap/src/bitcoin/wallet.rs | 3 ++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbbec2b2..64685770 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,9 +279,8 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bdk" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4260e70501c2f9d6fb2915cf2be2f5b8ba57743e527834de5de6e371827f1e19" +version = "0.5.2-dev" +source = "git+https://github.com/bitcoindevkit/bdk.git?rev=e5ecc7f#e5ecc7f5410aea9d7a108a46d01c7a2fa0822bb7" dependencies = [ "async-trait", "bdk-macros", diff --git a/swap/Cargo.toml b/swap/Cargo.toml index d36589dc..c0b7e9bb 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 = { version = "0.5" } +bdk = { git = "https://github.com/bitcoindevkit/bdk.git", rev = "e5ecc7f" } big-bytes = "1" bitcoin = { version = "0.26", features = ["rand", "use-serde"] } config = { version = "0.11", default-features = false, features = ["toml"] } diff --git a/swap/src/bitcoin/wallet.rs b/swap/src/bitcoin/wallet.rs index c87c0f3e..09033edc 100644 --- a/swap/src/bitcoin/wallet.rs +++ b/swap/src/bitcoin/wallet.rs @@ -9,6 +9,7 @@ use bdk::database::BatchDatabase; use bdk::descriptor::Segwitv0; use bdk::electrum_client::{ElectrumApi, GetHistoryRes}; use bdk::keys::DerivableKey; +use bdk::wallet::AddressIndex; use bdk::{FeeRate, KeychainKind}; use bitcoin::{Network, Script}; use reqwest::Url; @@ -255,7 +256,7 @@ where .wallet .lock() .await - .get_new_address() + .get_address(AddressIndex::New) .context("Failed to get new Bitcoin address")?; Ok(address)