From 7d5efcfb7596411fbb5a51fb4b6c6054695bcbf0 Mon Sep 17 00:00:00 2001 From: Forte11Cuba Date: Sun, 29 Mar 2026 14:19:04 -0600 Subject: [PATCH] fix: apply nitpick improvements from CodeRabbit --- rust/src/api/payment_request.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/rust/src/api/payment_request.rs b/rust/src/api/payment_request.rs index 7405863..5f867a8 100644 --- a/rust/src/api/payment_request.rs +++ b/rust/src/api/payment_request.rs @@ -5,7 +5,6 @@ use cdk::{ mint_url::MintUrl, nuts::{ CurrencyUnit, PaymentRequest as CdkPaymentRequest, Transport, TransportType, - TransportType as CdkTransportType, }, wallet::ReceiveOptions as CdkReceiveOptions, }; @@ -84,8 +83,8 @@ fn parse_payment_request_inner(encoded: String) -> Result "nostr".into(), - CdkTransportType::HttpPost => "post".into(), + TransportType::Nostr => "nostr".into(), + TransportType::HttpPost => "post".into(), }, target: t.target.clone(), }); @@ -382,7 +381,7 @@ async fn wait_for_nostr_payment_inner( sink: &StreamSink, ) -> Result { use cdk::nuts::{nut00::ProofsMethods, PaymentRequestPayload, Token as CdkToken}; - use nostr_sdk::{Client, Filter}; + use nostr_sdk::{Client, Filter, Kind}; use std::time::Duration; // Create Nostr client with ephemeral keys @@ -393,10 +392,14 @@ async fn wait_for_nostr_payment_inner( .await .map_err(|e| Error::Cdk(format!("Failed to add relay {relay}: {e}")))?; } - client.connect().await; - // Subscribe to events addressed to our ephemeral pubkey - let filter = Filter::new().pubkey(pubkey); + // Connect with timeout so we fail fast if relays are unreachable + tokio::time::timeout(Duration::from_secs(10), client.connect()) + .await + .map_err(|_| Error::Network("Relay connection timed out".to_string()))?; + + // Subscribe to NIP-17 gift-wrap events (kind 1059) addressed to our ephemeral pubkey + let filter = Filter::new().pubkey(pubkey).kind(Kind::GiftWrap); client .subscribe(filter, None) .await