From 7612eda78874b879aefaaa790aab56429c33473c Mon Sep 17 00:00:00 2001 From: Michael Mallan Date: Fri, 6 Sep 2024 11:46:19 +0100 Subject: [PATCH] electrum: ping server before returning client --- src/bitcoin/electrum/client.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bitcoin/electrum/client.rs b/src/bitcoin/electrum/client.rs index 1fd5a3d0..eec542f1 100644 --- a/src/bitcoin/electrum/client.rs +++ b/src/bitcoin/electrum/client.rs @@ -57,7 +57,9 @@ impl Client { pub fn new(electrum_config: &config::ElectrumConfig) -> Result { // First use a dummy config to check connectivity (no retries, short timeout). let dummy_config = Config::builder().retry(0).timeout(Some(3)).build(); + // Try to ping the server. bdk_electrum::electrum_client::Client::from_config(&electrum_config.addr, dummy_config) + .and_then(|dummy_client| dummy_client.ping()) .map_err(Error::Server)?; // Now connection has been checked, create client with required retries and timeout.