]> Untitled Git - bdk-cli/commitdiff
Add proxy option to esplora
authorrajarshimaitra <rajarshi149@gmail.com>
Sun, 3 Oct 2021 09:44:37 +0000 (15:14 +0530)
committerrajarshimaitra <rajarshi149@gmail.com>
Sun, 3 Oct 2021 09:51:00 +0000 (15:21 +0530)
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.

src/bdk_cli.rs
src/lib.rs

index d5df3ffbe6103bfecf0e029b1bf06dff1f4695f4..b11cb31402710b1784f94b05da6d682aecdbb781 100644 (file)
@@ -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")]
index 899b517482bcfd802e27bb4ab049b88d725cddb5..e65a325586cf4347d6443620b801b6aed364275d 100644 (file)
@@ -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,