diff --git a/client/Cargo.toml b/client/Cargo.toml index 3c4abbc..3d07b8a 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -20,14 +20,26 @@ name = "bitcoincore_rpc_async" path = "src/lib.rs" [dependencies] -bitcoincore-rpc-json-async = { version = "4.0.0-alpha.0", path = "../json"} async-trait = "0.1.42" log = "0.4.5" jsonrpc-async = {version="2.0.2"} + +[dependencies.bitcoincore-rpc-json-async] +version = "4.0.0-alpha.0" +path = "../json" +default-features = false + # Used for deserialization of JSON. serde = "1" serde_json = "1.0.61" [dev-dependencies] tokio = { version = "1", features = ["full"] } + + +[features] +default = ["main"] +main = ["bitcoincore-rpc-json-async/main"] +sapio = ["bitcoincore-rpc-json-async/sapio"] + diff --git a/integration_test/Cargo.toml b/integration_test/Cargo.toml index d362c79..e8dcd23 100644 --- a/integration_test/Cargo.toml +++ b/integration_test/Cargo.toml @@ -7,7 +7,6 @@ publish=false [dependencies] bitcoincore-rpc-async = { path = "../client" } -bitcoin = { version = "0.28.0-rc.3", features = [ "use-serde", "rand" ], package = "sapio-bitcoin" } lazy_static = "1.4.0" log = "0.4" tokio = { version = "1", features = ["full"] } diff --git a/integration_test/src/main.rs b/integration_test/src/main.rs index 931d338..3bd28fd 100644 --- a/integration_test/src/main.rs +++ b/integration_test/src/main.rs @@ -20,6 +20,7 @@ use std::collections::HashMap; use bitcoincore_rpc_async as bitcoincore_rpc; use bitcoincore_rpc::json; +use bitcoincore_rpc::json::bitcoin; use bitcoincore_rpc::jsonrpc::error::Error as JsonRpcError; use bitcoincore_rpc::{Auth, Client, Error, RpcApi}; diff --git a/json/Cargo.toml b/json/Cargo.toml index cb99678..191d281 100644 --- a/json/Cargo.toml +++ b/json/Cargo.toml @@ -24,4 +24,10 @@ serde = { version = "1", features = [ "derive" ] } serde_json = "1" hex = "0.3" -bitcoin = { package = "sapio-bitcoin", version = "0.28.0-rc.3", features = [ "use-serde" ] } +sapio-bitcoin = { package = "sapio-bitcoin", version = "0.28.1", features = [ "use-serde" ], optional=true } +main-bitcoin = { package = "bitcoin", version = "0.28.2", features = [ "use-serde" ], optional=true } + +[features] +default = ["main"] +sapio = ["sapio-bitcoin"] +main = ["main-bitcoin"] diff --git a/json/src/lib.rs b/json/src/lib.rs index a184cc6..6ef8766 100644 --- a/json/src/lib.rs +++ b/json/src/lib.rs @@ -15,7 +15,18 @@ use std::collections::HashMap; -pub use bitcoin; + +#[cfg(all(feature = "main", feature = "sapio"))] +compile_error!("features `crate/main` and `crate/sapio` are mutually exclusive"); + +#[cfg(not(any(feature = "main", feature = "sapio")))] +compile_error!("one of `crate/main` or `crate/sapio` must be set"); + +#[cfg(feature = "sapio")] +pub use sapio_bitcoin as bitcoin; + +#[cfg(feature = "main")] +pub use main_bitcoin as bitcoin; use bitcoin::consensus::encode; use bitcoin::hashes::hex::{FromHex, ToHex};