From eda7ef234690a48989b4b5301ae721e43fca93b4 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sun, 28 Jan 2024 14:25:42 -0500 Subject: [PATCH] hosts authentication state --- js/nostr-utils.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/nostr-utils.js b/js/nostr-utils.js index 0b215ea..31f7d2e 100644 --- a/js/nostr-utils.js +++ b/js/nostr-utils.js @@ -119,7 +119,8 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) => lastEvent: null, done: false, filter: filter, - eventIds: new Set() + eventIds: new Set(), + isAuthenticating: false } ] })) @@ -209,6 +210,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) => } if (msgType === 'AUTH') { + subscriptions[subscriptionId].isAuthenticating = true signNostrAuthEvent(relay, subscriptionId).then( (event) => { if (event) { @@ -227,7 +229,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) => ) } - if (msgType === 'CLOSED') { + if (msgType === 'CLOSED' && !subscriptions[subscriptionId].isAuthenticating) { subscriptions[subscriptionId].done = true let alldone = Object.values(subscriptions).every(filter => filter.done === true); @@ -239,6 +241,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) => } if (msgType === 'OK') { + subscriptions[subscriptionId].isAuthenticating = false // auth ok. for (const [key, sub] of Object.entries(subscriptions)) { ws.send(JSON.stringify(['REQ', sub.id, sub.filter]))