license = "MIT"
[dependencies]
-bdk_wallet = { version = "1.0.0", features = ["rusqlite", "keys-bip39"] }
+bdk_wallet = { version = "1.0.0", features = ["rusqlite", "keys-bip39", "compiler"] }
clap = { version = "4.5", features = ["derive","env"] }
dirs = { version = "6.0.0" }
env_logger = "0.11.6"
--- /dev/null
+#!/bin/bash
+
+feature_combinations=(
+ "default"
+ "repl"
+ "sqlite"
+ "electrum"
+ "esplora"
+ "verify"
+ "compiler"
+ "repl sqlite"
+ "repl electrum"
+ "repl esplora"
+ "repl verify"
+ "repl compiler"
+ "sqlite electrum"
+ "sqlite esplora"
+ "sqlite verify"
+ "sqlite compiler"
+)
+
+for features in "${feature_combinations[@]}"; do
+ echo "Testing with features: $features"
+
+ if ! cargo build --features "$features"; then
+ echo "Build failed with features: $features"
+ exit 1
+ fi
+
+ if ! cargo test --features "$features"; then
+ echo "Tests failed with features: $features"
+ exit 1
+ fi
+
+ echo "Tests passed with features: $features"
+ echo "----------------------------------------"
+done
+
+echo "All feature combinations tested successfully!"
#[arg(env = "POLICY", required = true, index = 1)]
policy: String,
/// Sets the script type used to embed the compiled policy.
- #[arg(env = "TYPE", short = 't', long = "type", default_value = "wsh", possible_values = &["sh","wsh", "sh-wsh"]
+ #[arg(env = "TYPE", short = 't', long = "type", default_value = "wsh", value_parser = ["sh","wsh", "sh-wsh"]
)]
script_type: String,
},
use bdk_wallet::bitcoin::{Amount, FeeRate, Psbt, Sequence};
use bdk_wallet::descriptor::Segwitv0;
#[cfg(feature = "compiler")]
-use bdk_wallet::descriptor::{Descriptor, Legacy, Miniscript};
+use bdk_wallet::{descriptor::{Descriptor, Legacy, Miniscript}, miniscript::policy::Concrete};
use bdk_wallet::keys::bip39::WordCount;
#[cfg(feature = "sqlite")]
use bdk_wallet::rusqlite::Connection;
use std::collections::{BTreeMap, HashSet};
use std::convert::TryFrom;
use std::io::Write;
-
-#[cfg(feature = "compiler")]
-use bdk_wallet::miniscript::policy::Concrete;
use serde_json::json;
use std::str::FromStr;
#[cfg(feature = "electrum")]
use crate::utils::BlockchainClient::Electrum;
#[cfg(feature = "esplora")]
-use crate::utils::BlockchainClient::Esplora;
-#[cfg(feature = "esplora")]
-use bdk_esplora::EsploraAsyncExt;
+use {crate::utils::BlockchainClient::Esplora,
+ bdk_esplora::EsploraAsyncExt
+};
use bdk_wallet::bitcoin::base64::prelude::*;
use bdk_wallet::bitcoin::consensus::Decodable;
use bdk_wallet::bitcoin::hex::FromHex;
Ok(dir)
}
-#[cfg(any(feature = "electrum", feature = "esplora", feature = "rpc",))]
-pub(crate) enum BlockchainClient {
- #[cfg(feature = "electrum")]
- Electrum {
- client: bdk_electrum::BdkElectrumClient<bdk_electrum::electrum_client::Client>,
- batch_size: usize,
- },
- #[cfg(feature = "esplora")]
- Esplora {
- client: bdk_esplora::esplora_client::AsyncClient,
- parallel_requests: usize,
- },
-}
-
#[cfg(any(
feature = "electrum",
feature = "esplora",
#[cfg(any(
feature = "electrum",
feature = "esplora",
- feature = "rpc",
+ // feature = "rpc",
feature = "cbf",
))]
/// Create a new blockchain from the wallet configuration options.
//! This modules performs the necessary integration test for bdk-cli
//! The tests can be run using `cargo test`
-#[cfg(feature = "regtest-node")]
+#[cfg(feature = "rpc")]
mod test {
use electrsd::bitcoind::tempfile::TempDir;
use serde_json::{json, Value};