diff --git a/packages/status-js/src/request-client/request-client.ts b/packages/status-js/src/request-client/request-client.ts index e179632a..40d4263d 100644 --- a/packages/status-js/src/request-client/request-client.ts +++ b/packages/status-js/src/request-client/request-client.ts @@ -38,9 +38,12 @@ class RequestClient { /** Cache. */ public readonly wakuMessages: Set - constructor(waku: WakuLight) { + private started: boolean + + constructor(waku: WakuLight, started = false) { this.waku = waku this.wakuMessages = new Set() + this.started = started } static async start(options: RequestClientOptions): Promise { @@ -67,7 +70,9 @@ class RequestClient { await waku.start() await waitForRemotePeer(waku, [Protocols.Store], 10 * 1000) - client = new RequestClient(waku) + const started = true + + client = new RequestClient(waku, started) } catch (error) { if (waku) { await waku.stop() @@ -80,7 +85,14 @@ class RequestClient { } public async stop() { + if (!this.started) { + // todo?: throw error + return + } + await this.waku.stop() + + this.started = false } public fetchCommunity = async (