From d1c65726f26881a6cfa7a02e02fb05bcc23941e0 Mon Sep 17 00:00:00 2001 From: Leo Nash Date: Fri, 30 Jan 2026 16:58:10 +0000 Subject: [PATCH] Reuse client in the second round of the JWT fetch As Matt notes in https://github.com/lightningdevkit/vss-client/pull/56, `fetch_jwt_token` may be called on startup/wallet init and may be in the critical path for the first wallet UI paint, so its incredibly latency-sensitive. --- src/headers/lnurl_auth_jwt.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/headers/lnurl_auth_jwt.rs b/src/headers/lnurl_auth_jwt.rs index 63c6fc8..1f52efb 100644 --- a/src/headers/lnurl_auth_jwt.rs +++ b/src/headers/lnurl_auth_jwt.rs @@ -86,13 +86,14 @@ impl LnurlAuthToJwtProvider { } async fn fetch_jwt_token(&self) -> Result { + let client = bitreq::Client::new(1); // Fetch the LNURL. let lnurl_request = bitreq::get(&self.url) .with_headers(self.default_headers.clone()) .with_timeout(DEFAULT_TIMEOUT_SECS) .with_max_body_size(Some(MAX_RESPONSE_BODY_SIZE)); let lnurl_response = - lnurl_request.send_async().await.map_err(VssHeaderProviderError::from)?; + client.send_async(lnurl_request).await.map_err(VssHeaderProviderError::from)?; let lnurl_str = String::from_utf8(lnurl_response.into_bytes()).map_err(|e| { VssHeaderProviderError::InvalidData { error: format!("LNURL response is not valid UTF-8: {}", e), @@ -106,7 +107,7 @@ impl LnurlAuthToJwtProvider { .with_timeout(DEFAULT_TIMEOUT_SECS) .with_max_body_size(Some(MAX_RESPONSE_BODY_SIZE)); let auth_response = - auth_request.send_async().await.map_err(VssHeaderProviderError::from)?; + client.send_async(auth_request).await.map_err(VssHeaderProviderError::from)?; let lnurl_auth_response: LnurlAuthResponse = serde_json::from_slice(&auth_response.into_bytes()).map_err(|e| { VssHeaderProviderError::InvalidData {