From 96781f127a09dc8db93cf288c2792f134e74d339 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 28 Oct 2025 07:35:07 +0000 Subject: fix: nip46 signer bunker pubkey the user pubkey was being used in bunker-url rather than the bunker pubkey. fixes nostr:nevent1qvzqqqqx25pzpv3tq6c9rl2jx2tx4y6y5c6dj4krmse60a0vmjkea5gam3qjpfljqqsx5ztpy48muheny4p49hh634l5zs3jqw9x5980dm9xsjsk98jrk8ch2sdsw --- src/lib/login/fresh.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/lib') diff --git a/src/lib/login/fresh.rs b/src/lib/login/fresh.rs index a9cf845..44ee66a 100644 --- a/src/lib/login/fresh.rs +++ b/src/lib/login/fresh.rs @@ -413,13 +413,13 @@ pub async fn listen_for_remote_signer( let app_key = app_key.clone(); let nostr_connect_url_clone = nostr_connect_url.clone(); - let nostr_connect = NostrConnect::new( + let nostr_connect = Arc::new(NostrConnect::new( nostr_connect_url_clone, app_key, Duration::from_secs(10 * 60), None, - )?; - let signer: Arc = Arc::new(nostr_connect); + )?); + let signer: Arc = nostr_connect.clone(); let pubkey_future = signer.get_public_key(); // wait for signer response or ctrl + c @@ -437,12 +437,16 @@ pub async fn listen_for_remote_signer( printer.clear_all(); if let Some(Ok(public_key)) = res { - let bunker_url = NostrConnectURI::Bunker { - // TODO the remote signer pubkey may not be the user pubkey - remote_signer_public_key: public_key, - relays: nostr_connect_url.relays().to_vec(), - secret: nostr_connect_url.secret().map(String::from), - }; + // Get the proper bunker URI from the NostrConnect client + // This will contain the correct remote-signer-pubkey that was discovered + // during the connection handshake, regardless of whether the original URL + // was bunker:// (already had it) or nostrconnect:// (extracted from response + // event author) + let bunker_url = nostr_connect + .bunker_uri() + .await + .context("failed to get bunker URI from NostrConnect client")?; + Ok((signer, public_key, bunker_url)) } else { bail!("failed to get signer") -- cgit v1.2.3