From 89a7ddca7f6ed8c65ed0124774f3a868d08faf68 Mon Sep 17 00:00:00 2001 From: vmammal Date: Sun, 29 Oct 2023 01:02:31 -0400 Subject: [PATCH] ref(esplora): `Box` a large `esplora_client::Error` to address `clippy::result_large_err`. Clippy's default large-error- threshold is 128. `esplora_client::Error` currently has size 272. --- crates/esplora/src/async_ext.rs | 8 ++++---- crates/esplora/src/blocking_ext.rs | 15 ++++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/crates/esplora/src/async_ext.rs b/crates/esplora/src/async_ext.rs index 8e697a2a9..fddedf3e2 100644 --- a/crates/esplora/src/async_ext.rs +++ b/crates/esplora/src/async_ext.rs @@ -6,11 +6,14 @@ use bdk_chain::{ local_chain::{self, CheckPoint}, BlockId, ConfirmationTimeHeightAnchor, TxGraph, }; -use esplora_client::{Error, TxStatus}; +use esplora_client::TxStatus; use futures::{stream::FuturesOrdered, TryStreamExt}; use crate::anchor_from_status; +/// [`esplora_client::Error`] +type Error = Box; + /// Trait to extend the functionality of [`esplora_client::AsyncClient`]. /// /// Refer to [crate-level documentation] for more. @@ -35,7 +38,6 @@ pub trait EsploraAsyncExt { /// [`LocalChain`]: bdk_chain::local_chain::LocalChain /// [`LocalChain::tip`]: bdk_chain::local_chain::LocalChain::tip /// [`LocalChain::apply_update`]: bdk_chain::local_chain::LocalChain::apply_update - #[allow(clippy::result_large_err)] async fn update_local_chain( &self, local_tip: CheckPoint, @@ -50,7 +52,6 @@ pub trait EsploraAsyncExt { /// The full scan for each keychain stops after a gap of `stop_gap` script pubkeys with no associated /// transactions. `parallel_requests` specifies the max number of HTTP requests to make in /// parallel. - #[allow(clippy::result_large_err)] async fn full_scan( &self, keychain_spks: BTreeMap< @@ -73,7 +74,6 @@ pub trait EsploraAsyncExt { /// may include scripts that have been used, use [`full_scan`] with the keychain. /// /// [`full_scan`]: EsploraAsyncExt::full_scan - #[allow(clippy::result_large_err)] async fn sync( &self, misc_spks: impl IntoIterator + Send> + Send, diff --git a/crates/esplora/src/blocking_ext.rs b/crates/esplora/src/blocking_ext.rs index a7ee290b0..8e53ce218 100644 --- a/crates/esplora/src/blocking_ext.rs +++ b/crates/esplora/src/blocking_ext.rs @@ -7,10 +7,13 @@ use bdk_chain::{ local_chain::{self, CheckPoint}, BlockId, ConfirmationTimeHeightAnchor, TxGraph, }; -use esplora_client::{Error, TxStatus}; +use esplora_client::TxStatus; use crate::anchor_from_status; +/// [`esplora_client::Error`] +type Error = Box; + /// Trait to extend the functionality of [`esplora_client::BlockingClient`]. /// /// Refer to [crate-level documentation] for more. @@ -33,7 +36,6 @@ pub trait EsploraExt { /// [`LocalChain`]: bdk_chain::local_chain::LocalChain /// [`LocalChain::tip`]: bdk_chain::local_chain::LocalChain::tip /// [`LocalChain::apply_update`]: bdk_chain::local_chain::LocalChain::apply_update - #[allow(clippy::result_large_err)] fn update_local_chain( &self, local_tip: CheckPoint, @@ -48,7 +50,6 @@ pub trait EsploraExt { /// The full scan for each keychain stops after a gap of `stop_gap` script pubkeys with no associated /// transactions. `parallel_requests` specifies the max number of HTTP requests to make in /// parallel. - #[allow(clippy::result_large_err)] fn full_scan( &self, keychain_spks: BTreeMap>, @@ -68,7 +69,6 @@ pub trait EsploraExt { /// may include scripts that have been used, use [`full_scan`] with the keychain. /// /// [`full_scan`]: EsploraExt::full_scan - #[allow(clippy::result_large_err)] fn sync( &self, misc_spks: impl IntoIterator, @@ -247,7 +247,12 @@ impl EsploraExt for esplora_client::BlockingClient { .map(|txid| { std::thread::spawn({ let client = self.clone(); - move || client.get_tx_status(&txid).map(|s| (txid, s)) + move || { + client + .get_tx_status(&txid) + .map_err(Box::new) + .map(|s| (txid, s)) + } }) }) .collect::>>>();