diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml index 35101517..aa03c865 100644 --- a/.github/workflows/cont_integration.yml +++ b/.github/workflows/cont_integration.yml @@ -16,7 +16,7 @@ jobs: - default - minimal - all-keys - - minimal,esplora,ureq + - minimal,use-esplora-ureq - key-value-db - electrum - compact_filters @@ -25,7 +25,7 @@ jobs: - rpc - verify - async-interface - - async-interface,esplora,reqwest + - use-esplora-reqwest steps: - name: checkout uses: actions/checkout@v2 @@ -139,7 +139,7 @@ jobs: - name: Update toolchain run: rustup update - name: Check - run: cargo check --target wasm32-unknown-unknown --features esplora,reqwest --no-default-features + run: cargo check --target wasm32-unknown-unknown --features use-esplora-reqwest --no-default-features fmt: diff --git a/Cargo.toml b/Cargo.toml index f8caafbf..fd3c5a91 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,13 +60,20 @@ rpc = ["bitcoincore-rpc"] # # - Users wanting asynchronous HTTP calls should enable `async-interface` to get # access to the asynchronous method implementations. Then, if Esplora is wanted, -# enable `esplora` AND `reqwest`. +# enable `esplora` AND `reqwest` (`--features=use-esplora-reqwest`). # - Users wanting blocking HTTP calls can use any of the other blockchain # implementations (`compact_filters`, `electrum`, or `esplora`). Users wanting to -# use Esplora should enable `esplora` AND `ureq`. +# use Esplora should enable `esplora` AND `ureq` (`--features=use-esplora-ureq`). +# +# WARNING: Please take care with the features below, various combinations will +# fail to build. We cannot currently build `bdk` with `--all-features`. async-interface = ["async-trait"] electrum = ["electrum-client"] -esplora = ["futures"] # Requires one of: `ureq` or `reqwest`. +# MUST ALSO USE `--no-default-features`. +use-esplora-reqwest = ["async-interface", "esplora", "reqwest", "futures"] +use-esplora-ureq = ["esplora", "ureq"] +# Typical configurations will not need to use `esplora` feature directly. +esplora = [] # Debug/Test features diff --git a/src/lib.rs b/src/lib.rs index 0d0c3e9c..0a7d61b3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -223,9 +223,6 @@ compile_error!( "Features async-interface and compact_filters are mutually exclusive and cannot be enabled together" ); -#[cfg(all(feature = "esplora", not(feature = "ureq"), not(feature = "reqwest")))] -compile_error!("Feature missing: esplora requires either ureq or reqwest to be enabled"); - #[cfg(feature = "keys-bip39")] extern crate bip39;