From: rajarshimaitra Date: Sun, 3 Oct 2021 09:44:37 +0000 (+0530) Subject: Add proxy option to esplora X-Git-Tag: v0.3.0~17 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/enum.FromScriptError.html?a=commitdiff_plain;h=279fec19885d1fed287303c0458d35c14079b18e;p=bdk-cli Add proxy option to esplora Recent update in BDK esplora backend allows it to connect with SOCKS5 proxy. This change adds proxy option to esplora configuration. Updates Proxy_Opts feature guard to enable it for esplora feature. --- diff --git a/src/bdk_cli.rs b/src/bdk_cli.rs index d5df3ff..b11cb31 100644 --- a/src/bdk_cli.rs +++ b/src/bdk_cli.rs @@ -131,6 +131,7 @@ where timeout_read: wallet_opts.esplora_opts.read_timeout, timeout_write: wallet_opts.esplora_opts.write_timeout, stop_gap: wallet_opts.esplora_opts.stop_gap, + proxy: wallet_opts.proxy_opts.proxy.clone(), }); #[cfg(feature = "esplora-reqwest")] @@ -138,6 +139,7 @@ where base_url: wallet_opts.esplora_opts.server.clone(), concurrency: Some(wallet_opts.esplora_opts.conc), stop_gap: wallet_opts.esplora_opts.stop_gap, + proxy: wallet_opts.proxy_opts.proxy.clone(), }); #[cfg(feature = "compact_filters")] diff --git a/src/lib.rs b/src/lib.rs index 899b517..e65a325 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -155,7 +155,7 @@ use bdk::{FeeRate, KeychainKind, Wallet}; /// # use bdk_cli::EsploraOpts; /// # #[cfg(feature = "compact_filters")] /// # use bdk_cli::CompactFilterOpts; -/// # #[cfg(any(feature = "compact_filters", feature = "electrum"))] +/// # #[cfg(any(feature = "compact_filters", feature = "electrum", feature="esplora"))] /// # use bdk_cli::ProxyOpts; /// # use bdk_cli::OnlineWalletSubCommand::Sync; /// @@ -200,7 +200,7 @@ use bdk::{FeeRate, KeychainKind, Wallet}; /// conn_count: 4, /// skip_blocks: 0, /// }, -/// #[cfg(any(feature="compact_filters", feature="electrum"))] +/// #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] /// proxy_opts: ProxyOpts{ /// proxy: None, /// proxy_auth: None, @@ -312,7 +312,7 @@ pub enum WalletSubCommand { /// # use bdk_cli::EsploraOpts; /// # #[cfg(feature = "compact_filters")] /// # use bdk_cli::CompactFilterOpts; -/// # #[cfg(any(feature = "compact_filters", feature = "electrum"))] +/// # #[cfg(any(feature = "compact_filters", feature = "electrum", feature="esplora"))] /// # use bdk_cli::ProxyOpts; /// /// let cli_args = vec!["wallet", @@ -353,7 +353,7 @@ pub enum WalletSubCommand { /// conn_count: 4, /// skip_blocks: 0, /// }, -/// #[cfg(any(feature="compact_filters", feature="electrum"))] +/// #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] /// proxy_opts: ProxyOpts{ /// proxy: None, /// proxy_auth: None, @@ -391,7 +391,7 @@ pub struct WalletOpts { #[cfg(feature = "compact_filters")] #[structopt(flatten)] pub compactfilter_opts: CompactFilterOpts, - #[cfg(any(feature = "compact_filters", feature = "electrum"))] + #[cfg(any(feature = "compact_filters", feature = "electrum", feature = "esplora"))] #[structopt(flatten)] pub proxy_opts: ProxyOpts, } @@ -399,7 +399,7 @@ pub struct WalletOpts { /// Proxy Server options /// /// Only activated for `compact_filters` or `electrum` -#[cfg(any(feature = "compact_filters", feature = "electrum"))] +#[cfg(any(feature = "compact_filters", feature = "electrum", feature = "esplora"))] #[derive(Debug, StructOpt, Clone, PartialEq)] pub struct ProxyOpts { /// Sets the SOCKS5 proxy for Blockchain backend @@ -523,7 +523,7 @@ pub struct EsploraOpts { pub server: String, /// Number of parallel requests sent to the esplora service (default: 4) - #[structopt(name = "CONCURRENCY", long = "conc", short = "p", default_value = "4")] + #[structopt(name = "CONCURRENCY", long = "conc", default_value = "4")] pub conc: u8, /// Stop searching addresses for transactions after finding an unused gap of this length. @@ -751,7 +751,7 @@ fn parse_recipient(s: &str) -> Result<(Script, u64), String> { Ok((addr.unwrap().script_pubkey(), val.unwrap())) } -#[cfg(any(feature = "electrum", feature = "compact_filters"))] +#[cfg(any(feature = "electrum", feature = "compact_filters", feature = "esplora"))] fn parse_proxy_auth(s: &str) -> Result<(String, String), String> { let parts: Vec<_> = s.split(':').collect(); if parts.len() != 2 { @@ -1148,7 +1148,7 @@ mod test { use crate::OfflineWalletSubCommand::{CreateTx, GetNewAddress}; #[cfg(any(feature = "electrum", feature = "esplora", feature = "compact_filters"))] use crate::OnlineWalletSubCommand::{Broadcast, Sync}; - #[cfg(any(feature = "compact_filters", feature = "electrum"))] + #[cfg(any(feature = "compact_filters", feature = "electrum", feature = "esplora"))] use crate::ProxyOpts; use crate::{handle_key_subcommand, CliSubCommand, KeySubCommand, WalletSubCommand}; @@ -1199,7 +1199,7 @@ mod test { conn_count: 4, skip_blocks: 0, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None, @@ -1305,7 +1305,7 @@ mod test { skip_blocks: 0, conn_count: 4, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None, @@ -1357,7 +1357,7 @@ mod test { skip_blocks: 0, conn_count: 4, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None, @@ -1466,7 +1466,7 @@ mod test { conn_count: 4, skip_blocks: 0, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None, @@ -1541,7 +1541,7 @@ mod test { conn_count: 4, skip_blocks: 0, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None, @@ -1608,7 +1608,7 @@ mod test { conn_count: 4, skip_blocks: 0, }, - #[cfg(any(feature="compact_filters", feature="electrum"))] + #[cfg(any(feature="compact_filters", feature="electrum", feature="esplora"))] proxy_opts: ProxyOpts{ proxy: None, proxy_auth: None,