From 75cd323e2481502671aa1f62b28875d95f9863c3 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 27 Nov 2024 17:20:28 +0000 Subject: feat(login): contact remote signer when needed for existing login, the remote signer should only be called when an event needs to be signed. This might be a AUTH event so we still need to call it during read scenarios. a feature was added to rust-nostr to enable this. --- src/lib/login/existing.rs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/lib/login/existing.rs b/src/lib/login/existing.rs index f5b93c7..45727b0 100644 --- a/src/lib/login/existing.rs +++ b/src/lib/login/existing.rs @@ -198,24 +198,25 @@ async fn get_signer( bunker_app_key, npub, } => { - let term = console::Term::stderr(); - term.write_line("connecting to remote signer...")?; let uri = NostrConnectURI::parse(bunker_uri)?; - let signer: Arc = Arc::new(NostrConnect::new( + let s = NostrConnect::new( uri, nostr::Keys::from_str(bunker_app_key).context("invalid app key")?, Duration::from_secs(10 * 60), None, - )?); - term.clear_last_lines(1)?; - let public_key = if let Some(pubic_key) = - npub.clone().and_then(|npub| PublicKey::parse(npub).ok()) - { - pubic_key + )?; + if let Some(public_key) = npub.clone().and_then(|npub| PublicKey::parse(npub).ok()) { + s.non_secure_set_user_public_key(public_key)?; + let signer: Arc = Arc::new(s); + Ok((signer, public_key)) } else { - fetch_public_key(&signer).await? - }; - Ok((signer, public_key)) + let signer: Arc = Arc::new(s); + let term = console::Term::stderr(); + term.write_line("connecting to remote signer...")?; + let public_key = fetch_public_key(&signer).await?; + term.clear_last_lines(1)?; + Ok((signer, public_key)) + } } } } -- cgit v1.2.3