From: Evgenii P Date: Wed, 9 Dec 2020 09:46:05 +0000 (+0700) Subject: Fix the REPL example to have optional esplora X-Git-Tag: v0.1.0~16^2 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/enum.EncodeError.html?a=commitdiff_plain;h=e1b98ca289f2eda94dc9f1eb8fc087b840f86467;p=bdk-cli Fix the REPL example to have optional esplora --- diff --git a/examples/repl.rs b/examples/repl.rs index 1638fbe..bd04075 100644 --- a/examples/repl.rs +++ b/examples/repl.rs @@ -35,6 +35,7 @@ use rustyline::Editor; use structopt::StructOpt; use bdk::bitcoin; +#[cfg(feature = "esplora")] use bdk::blockchain::esplora::EsploraBlockchainConfig; use bdk::blockchain::{ AnyBlockchain, AnyBlockchainConfig, ConfigurableBlockchain, ElectrumBlockchainConfig, @@ -87,18 +88,28 @@ fn main() { let tree = database.open_tree(cli_opt.wallet).unwrap(); debug!("database opened successfully"); - let config = match cli_opt.esplora { - Some(base_url) => AnyBlockchainConfig::Esplora(EsploraBlockchainConfig { - base_url: base_url.to_string(), - concurrency: Some(cli_opt.esplora_concurrency), - }), - None => AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig { + // Try to use Esplora config if "esplora" feature is enabled + #[cfg(feature = "esplora")] + let config_esplora: Option = { + let esplora_concurrency = cli_opt.esplora_concurrency; + cli_opt.esplora.map(|base_url| { + AnyBlockchainConfig::Esplora(EsploraBlockchainConfig { + base_url: base_url.to_string(), + concurrency: Some(esplora_concurrency), + }) + }) + }; + #[cfg(not(feature = "esplora"))] + let config_esplora = None; + + // Fall back to Electrum config if Esplora config isn't provided + let config = + config_esplora.unwrap_or(AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig { url: cli_opt.electrum, socks5: cli_opt.proxy, retry: 10, timeout: 10, - }), - }; + })); let wallet = Wallet::new( descriptor,