Fix is auth

This commit is contained in:
Vitor Pamplona 2024-01-28 14:27:08 -05:00
parent eda7ef2346
commit 476e462d32

View File

@ -103,6 +103,8 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
// open websocket // open websocket
const ws = new WebSocket(relay) const ws = new WebSocket(relay)
let isAuthenticating = false
// prevent hanging forever // prevent hanging forever
let myTimeout = setTimeout(() => { let myTimeout = setTimeout(() => {
ws.close() ws.close()
@ -119,8 +121,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
lastEvent: null, lastEvent: null,
done: false, done: false,
filter: filter, filter: filter,
eventIds: new Set(), eventIds: new Set()
isAuthenticating: false
} }
] ]
})) }))
@ -210,7 +211,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
} }
if (msgType === 'AUTH') { if (msgType === 'AUTH') {
subscriptions[subscriptionId].isAuthenticating = true isAuthenticating = true
signNostrAuthEvent(relay, subscriptionId).then( signNostrAuthEvent(relay, subscriptionId).then(
(event) => { (event) => {
if (event) { if (event) {
@ -229,7 +230,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
) )
} }
if (msgType === 'CLOSED' && !subscriptions[subscriptionId].isAuthenticating) { if (msgType === 'CLOSED' && !isAuthenticating) {
subscriptions[subscriptionId].done = true subscriptions[subscriptionId].done = true
let alldone = Object.values(subscriptions).every(filter => filter.done === true); let alldone = Object.values(subscriptions).every(filter => filter.done === true);
@ -241,7 +242,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
} }
if (msgType === 'OK') { if (msgType === 'OK') {
subscriptions[subscriptionId].isAuthenticating = false isAuthenticating = false
// auth ok. // auth ok.
for (const [key, sub] of Object.entries(subscriptions)) { for (const [key, sub] of Object.entries(subscriptions)) {
ws.send(JSON.stringify(['REQ', sub.id, sub.filter])) ws.send(JSON.stringify(['REQ', sub.id, sub.filter]))