From 1cfe705bafd073b9042b69f7e28fc0b71d8dd463 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Tue, 26 Dec 2023 07:56:20 -0300 Subject: [PATCH] auth() returns a promise that resolves on OK. fixes https://github.com/nbd-wtf/nostr-tools/issues/336 --- abstract-relay.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/abstract-relay.ts b/abstract-relay.ts index ea9f820..30571e5 100644 --- a/abstract-relay.ts +++ b/abstract-relay.ts @@ -1,6 +1,6 @@ /* global WebSocket */ -import type { Event, EventTemplate, Nostr } from './core.ts' +import type { Event, EventTemplate, VerifiedEvent, Nostr } from './core.ts' import { matchFilters, type Filter } from './filter.ts' import { getHex64, getSubscriptionId } from './fakejson.ts' import { Queue, normalizeURL } from './utils.ts' @@ -218,11 +218,14 @@ export class AbstractRelay { }) } - public async auth(signAuthEvent: (authEvent: EventTemplate) => Promise) { + public async auth(signAuthEvent: (evt: EventTemplate) => Promise) { if (!this.challenge) throw new Error("can't perform auth, no challenge was received") - const evt = makeAuthEvent(this.url, this.challenge) - await signAuthEvent(evt) + const evt = await signAuthEvent(makeAuthEvent(this.url, this.challenge)) + const ret = new Promise((resolve, reject) => { + this.openEventPublishes.set(evt.id, { resolve, reject }) + }) this.send('["AUTH",' + JSON.stringify(evt) + ']') + return ret } public async publish(event: Event): Promise {