From f7e8381c3ce4db310f8596631302b3a88e113223 Mon Sep 17 00:00:00 2001 From: Borja Castellano Date: Fri, 22 May 2026 13:56:45 -0700 Subject: [PATCH] fix spv client deadlocking himself when sending a tx --- packages/rs-platform-wallet/src/spv/runtime.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/rs-platform-wallet/src/spv/runtime.rs b/packages/rs-platform-wallet/src/spv/runtime.rs index a68eb683677..593a5aabefd 100644 --- a/packages/rs-platform-wallet/src/spv/runtime.rs +++ b/packages/rs-platform-wallet/src/spv/runtime.rs @@ -103,9 +103,6 @@ impl SpvRuntime { .await .map_err(|e| PlatformWalletError::SpvError(e.to_string()))?; - let mut client = self.client.write().await; - let _ = client.take(); - Ok(()) } @@ -143,10 +140,16 @@ impl SpvRuntime { .as_ref() .ok_or(PlatformWalletError::SpvNotRunning)?; - client + let result = client .run() .await - .map_err(|e| PlatformWalletError::SpvError(e.to_string())) + .map_err(|e| PlatformWalletError::SpvError(e.to_string())); + + drop(client_guard); + let mut client = self.client.write().await; + let _ = client.take(); + + result } /// Stop SPV sync gracefully.