diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml index 3a0745a1..65827328 100644 --- a/.github/workflows/cont_integration.yml +++ b/.github/workflows/cont_integration.yml @@ -19,11 +19,11 @@ jobs: - esplora-reqwest - compiler - compact_filters -# - reserves -# - reserves,electrum -# - reserves,esplora-ureq -# - reserves,compact_filters -# - reserves,rpc + - reserves + - reserves,electrum + - reserves,esplora-ureq + - reserves,compact_filters + - reserves,rpc - rpc - electrum,verify steps: diff --git a/Cargo.lock b/Cargo.lock index 5b03c275..6ad5f2e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,24 +78,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "bdk" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3face7de38293a2f7e2a9f69a48b442f28e864da0fc7a6a977388e31bdc367d7" -dependencies = [ - "async-trait", - "bdk-macros", - "bitcoin", - "js-sys", - "log", - "miniscript", - "rand", - "serde", - "serde_json", - "tokio", -] - [[package]] name = "bdk" version = "0.17.0" @@ -131,7 +113,7 @@ name = "bdk-cli" version = "0.5.0" dependencies = [ "base64 0.11.0", - "bdk 0.17.0", + "bdk", "bdk-macros", "bdk-reserves", "clap", @@ -159,12 +141,12 @@ dependencies = [ [[package]] name = "bdk-reserves" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85397162a769b6162033c4ed8edc6285d347006eac5299dd186dee7bd77e8c88" +checksum = "caf154487aa14256d6f3769baf6c80b56c945a0a1c825a7f3132878acbc8ede0" dependencies = [ "base64 0.11.0", - "bdk 0.16.1", + "bdk", "bitcoinconsensus", "log", ] diff --git a/Cargo.toml b/Cargo.toml index de9f7f24..0ed9caa2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,7 @@ dirs-next = { version = "2.0", optional = true } env_logger = { version = "0.7", optional = true } clap = { version = "2.33", optional = true } regex = { version = "1", optional = true } -bdk-reserves = { version = "0.16", optional = true} +bdk-reserves = { version = "0.17", optional = true} [features] default = ["cli", "repl"] diff --git a/src/lib.rs b/src/lib.rs index 6c8c19d4..50325a00 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -124,8 +124,6 @@ use bdk::bitcoin::secp256k1::Secp256k1; use bdk::bitcoin::util::bip32::{DerivationPath, ExtendedPrivKey, KeySource}; use bdk::bitcoin::util::psbt::PartiallySignedTransaction; use bdk::bitcoin::{Address, Network, OutPoint, Script, Txid}; -#[cfg(feature = "reserves")] -use bdk::blockchain::Capability; #[cfg(any( feature = "electrum", feature = "esplora", @@ -133,6 +131,8 @@ use bdk::blockchain::Capability; feature = "rpc" ))] use bdk::blockchain::{log_progress, Blockchain}; +#[cfg(feature = "reserves")] +use bdk::blockchain::{Capability, GetHeight}; use bdk::database::BatchDatabase; use bdk::descriptor::Segwitv0; #[cfg(feature = "compiler")] @@ -1136,12 +1136,11 @@ where } => { let psbt = base64::decode(&psbt).unwrap(); let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap(); - let current_height = wallet.client().get_height()?; + let current_height = blockchain.get_height()?; let max_confirmation_height = if confirmations == 0 { None } else { - if !wallet - .client() + if !blockchain .get_capabilities() .contains(&Capability::GetAnyTx) { @@ -2275,20 +2274,30 @@ mod test { #[cfg(all(feature = "reserves", feature = "electrum"))] #[test] fn test_proof_of_reserves_wallet() { + use bdk::blockchain::log_progress; + use bdk::SyncOptions; + let descriptor = "wpkh(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW)".to_string(); let message = "Those coins belong to Satoshi Nakamoto"; let client = Client::new("ssl://electrum.blockstream.info:60002").unwrap(); + let blockchain = ElectrumBlockchain::from(client); let wallet = Wallet::new( &descriptor, None, Network::Testnet, MemoryDatabase::default(), - ElectrumBlockchain::from(client), ) .unwrap(); - wallet.sync(noop_progress(), None).unwrap(); + wallet + .sync( + &blockchain, + SyncOptions { + progress: Some(Box::new(log_progress())), + }, + ) + .unwrap(); let balance = wallet.get_balance().unwrap(); let addr = wallet.get_address(bdk::wallet::AddressIndex::New).unwrap(); @@ -2317,7 +2326,7 @@ mod test { } => online_subcommand, _ => panic!("unexpected subcommand"), }; - let result = handle_online_wallet_subcommand(&wallet, wallet_subcmd).unwrap(); + let result = handle_online_wallet_subcommand(&wallet, &blockchain, wallet_subcmd).unwrap(); let psbt: PartiallySignedTransaction = serde_json::from_str(&result.as_object().unwrap().get("psbt").unwrap().to_string()) .unwrap(); @@ -2355,7 +2364,7 @@ mod test { } => online_subcommand, _ => panic!("unexpected subcommand"), }; - let result = handle_online_wallet_subcommand(&wallet, wallet_subcmd).unwrap(); + let result = handle_online_wallet_subcommand(&wallet, &blockchain, wallet_subcmd).unwrap(); let spendable = result .as_object() .unwrap()