diff --git a/bdk-ffi/Cargo.lock b/bdk-ffi/Cargo.lock index c74f59f7..5a770ce0 100644 --- a/bdk-ffi/Cargo.lock +++ b/bdk-ffi/Cargo.lock @@ -110,7 +110,6 @@ name = "bdk-ffi" version = "2.0.0-alpha.0" dependencies = [ "assert_matches", - "bdk_core", "bdk_electrum", "bdk_esplora", "bdk_kyoto", @@ -121,9 +120,9 @@ dependencies = [ [[package]] name = "bdk_chain" -version = "0.21.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4955734f97b2baed3f36d16ae7c203fdde31ae85391ac44ee3cbcaf0886db5ce" +checksum = "0e7e7c062f2229a767fe85062b8932352a7b8c1df586f91fae1017fd3dd281ef" dependencies = [ "bdk_core", "bitcoin", @@ -134,9 +133,9 @@ dependencies = [ [[package]] name = "bdk_core" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b545aea1efc090e4f71f1dd5468090d9f54c3de48002064c04895ef811fbe0b2" +checksum = "17698c25d2728afd6950d82069dce172147006f73960b9dc793a7e8dd7089016" dependencies = [ "bitcoin", "hashbrown", @@ -145,9 +144,9 @@ dependencies = [ [[package]] name = "bdk_electrum" -version = "0.21.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb2ac12acbf8f263c59d74ceeeed015e0fd00982aa8e71824f63d102999be040" +checksum = "28f25503fbb646a219a23145ca1a753f7e239232225c661df8353f05faf00116" dependencies = [ "bdk_core", "electrum-client", @@ -155,20 +154,19 @@ dependencies = [ [[package]] name = "bdk_esplora" -version = "0.20.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7fdf5efbebabc0c0bb46c0348ef0d4db505856c7d6c5d50cebba1e5eda5fe4" +checksum = "1b9bf0bcfc01d6d67f2515b1fd4eab77b220726ed2ade09f9b6c90c286e0b767" dependencies = [ "bdk_core", "esplora-client", - "miniscript", ] [[package]] name = "bdk_kyoto" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5219ed3dc0c614aa9539b5005a63b596ec7391949c79117f3b83a490d75a46" +checksum = "9bdb5c2af2da8d0ddef7293835b31191a4ed77ca8fe89d66c442300c8c2c8551" dependencies = [ "bdk_wallet", "kyoto-cbf", @@ -176,9 +174,9 @@ dependencies = [ [[package]] name = "bdk_wallet" -version = "1.2.0" +version = "2.0.0-beta.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461b92c4e47b688a92740b204f4580e0a51775df16b67dde1d2db6ede1f0ba09" +checksum = "1663a414b394a123818fc4f9876f5352b66719b45d8595cf743c9e74831e9e5d" dependencies = [ "bdk_chain", "bip39", @@ -427,9 +425,9 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "electrum-client" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8ed4d35bb98a55540bb5b735731486febddf9cc9b6e96f5b3fd2536eed81a4e" +checksum = "5ed9a037f88aa61d3627a20af1c68fa0405ed5a16d9a0d9dc0e66adcda44afbe" dependencies = [ "bitcoin", "byteorder", @@ -444,9 +442,9 @@ dependencies = [ [[package]] name = "esplora-client" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0da3c186d286e046253ccdc4bb71aa87ef872e4eff2045947c0c4fe3d2b2efc" +checksum = "209cf00e44b979682b22be38672317d8bb48dd5ea2726e61b762d6b14b5842f2" dependencies = [ "bitcoin", "hex-conservative 0.2.1", diff --git a/bdk-ffi/Cargo.toml b/bdk-ffi/Cargo.toml index b647f874..ea78bf9f 100644 --- a/bdk-ffi/Cargo.toml +++ b/bdk-ffi/Cargo.toml @@ -18,11 +18,10 @@ path = "uniffi-bindgen.rs" default = ["uniffi/cli"] [dependencies] -bdk_wallet = { version = "1.2.0", features = ["all-keys", "keys-bip39", "rusqlite"] } -bdk_core = { version = "0.4.1" } -bdk_esplora = { version = "0.20.1", default-features = false, features = ["std", "blocking", "blocking-https-rustls"] } -bdk_electrum = { version = "0.21.0", default-features = false, features = ["use-rustls-ring"] } -bdk_kyoto = { version = "0.10.0" } +bdk_wallet = { version = "2.0.0-beta.0", features = ["all-keys", "keys-bip39", "rusqlite"] } +bdk_esplora = { version = "0.22.0", default-features = false, features = ["std", "blocking", "blocking-https-rustls"] } +bdk_electrum = { version = "0.23.0", default-features = false, features = ["use-rustls-ring"] } +bdk_kyoto = { version = "0.11.0" } uniffi = { version = "=0.29.1" } thiserror = "1.0.58" diff --git a/bdk-ffi/src/electrum.rs b/bdk-ffi/src/electrum.rs index 786baa20..7fe487c0 100644 --- a/bdk-ffi/src/electrum.rs +++ b/bdk-ffi/src/electrum.rs @@ -3,19 +3,19 @@ use crate::error::ElectrumError; use crate::types::Update; use crate::types::{FullScanRequest, SyncRequest}; -use bdk_core::spk_client::FullScanRequest as BdkFullScanRequest; -use bdk_core::spk_client::FullScanResponse as BdkFullScanResponse; -use bdk_core::spk_client::SyncRequest as BdkSyncRequest; -use bdk_core::spk_client::SyncResponse as BdkSyncResponse; use bdk_electrum::electrum_client::HeaderNotification as BdkHeaderNotification; use bdk_electrum::electrum_client::ServerFeaturesRes as BdkServerFeaturesRes; use bdk_electrum::BdkElectrumClient as BdkBdkElectrumClient; use bdk_wallet::bitcoin::Transaction as BdkTransaction; +use bdk_wallet::chain::spk_client::FullScanRequest as BdkFullScanRequest; +use bdk_wallet::chain::spk_client::FullScanResponse as BdkFullScanResponse; +use bdk_wallet::chain::spk_client::SyncRequest as BdkSyncRequest; +use bdk_wallet::chain::spk_client::SyncResponse as BdkSyncResponse; use bdk_wallet::KeychainKind; use bdk_wallet::Update as BdkUpdate; -use bdk_core::bitcoin::hex::{Case, DisplayHex}; use bdk_electrum::electrum_client::ElectrumApi; +use bdk_wallet::bitcoin::hex::{Case, DisplayHex}; use std::collections::BTreeMap; use std::sync::Arc; @@ -191,7 +191,7 @@ pub struct ServerFeaturesRes { impl From for ServerFeaturesRes { fn from(value: BdkServerFeaturesRes) -> ServerFeaturesRes { let hash_str = value.genesis_hash.to_hex_string(Case::Lower); - let blockhash = hash_str.parse::().unwrap(); + let blockhash = hash_str.parse::().unwrap(); ServerFeaturesRes { server_version: value.server_version, genesis_hash: Arc::new(BlockHash(blockhash)), diff --git a/bdk-ffi/src/error.rs b/bdk-ffi/src/error.rs index afcfc61d..ca681282 100644 --- a/bdk-ffi/src/error.rs +++ b/bdk-ffi/src/error.rs @@ -1,6 +1,5 @@ use crate::OutPoint; -use bdk_core::bitcoin::script::PushBytesError; use bdk_electrum::electrum_client::Error as BdkElectrumError; use bdk_esplora::esplora_client::Error as BdkEsploraError; use bdk_wallet::bitcoin::address::ParseError as BdkParseError; @@ -13,6 +12,7 @@ use bdk_wallet::bitcoin::hex::DisplayHex; use bdk_wallet::bitcoin::psbt::Error as BdkPsbtError; use bdk_wallet::bitcoin::psbt::ExtractTxError as BdkExtractTxError; use bdk_wallet::bitcoin::psbt::PsbtParseError as BdkPsbtParseError; +use bdk_wallet::bitcoin::script::PushBytesError; use bdk_wallet::chain::local_chain::CannotConnectError as BdkCannotConnectError; use bdk_wallet::chain::rusqlite::Error as BdkSqliteError; use bdk_wallet::chain::tx_graph::CalculateFeeError as BdkCalculateFeeError; @@ -1047,6 +1047,9 @@ impl From for CreateTxError { BuildFeeBumpError::FeeRateUnavailable => CreateTxError::FeeRateTooLow { required: "unavailable".to_string(), }, + BuildFeeBumpError::InvalidOutputIndex(outpoint) => CreateTxError::UnknownUtxo { + outpoint: outpoint.to_string(), + }, } } } diff --git a/bdk-ffi/src/types.rs b/bdk-ffi/src/types.rs index 59378304..f6bf7d01 100644 --- a/bdk-ffi/src/types.rs +++ b/bdk-ffi/src/types.rs @@ -5,9 +5,10 @@ use crate::bitcoin::{ use crate::descriptor::Descriptor; use crate::error::{CreateTxError, RequestBuilderError}; -use bdk_core::bitcoin::absolute::LockTime as BdkLockTime; -use bdk_core::spk_client::SyncItem; -use bdk_core::{BlockId as BdkBlockId, Merge}; +use bdk_wallet::bitcoin::absolute::LockTime as BdkLockTime; +use bdk_wallet::chain::spk_client::SyncItem; +use bdk_wallet::chain::BlockId as BdkBlockId; +use bdk_wallet::chain::Merge; use bdk_wallet::bitcoin::Transaction as BdkTransaction; use bdk_wallet::chain::spk_client::FullScanRequest as BdkFullScanRequest; @@ -81,7 +82,7 @@ impl From> for ChainPosition { transitively: transitively.map(|t| Arc::new(Txid(t))), } } - BdkChainPosition::Unconfirmed { last_seen } => ChainPosition::Unconfirmed { + BdkChainPosition::Unconfirmed { last_seen, .. } => ChainPosition::Unconfirmed { timestamp: last_seen, }, } @@ -784,6 +785,7 @@ impl From for bdk_wallet::chain::indexer::keychain_txout::Chan } Self { last_revealed: changes, + spk_cache: Default::default(), } } } @@ -918,6 +920,8 @@ impl From for bdk_wallet::chain::tx_graph::ChangeSet