diff --git a/js/userBlocks.js b/js/userBlocks.js index 8a787f4d..c0f0316d 100644 --- a/js/userBlocks.js +++ b/js/userBlocks.js @@ -752,6 +752,14 @@ class UserBlockListManager { } stopBlockListSubscription() { + if (this.blockListSubscriptionHandle) { + try { + this.blockListSubscriptionHandle.close(); + } catch (error) { + devLogger.warn("[UserBlockList] Failed to close block-list subscription handle", error); + } + this.blockListSubscriptionHandle = null; + } if (this.blockListSubscriptionKey) { relaySubscriptionService.stopSubscription( this.blockListSubscriptionKey, @@ -775,6 +783,23 @@ class UserBlockListManager { { kinds: [30002], authors: [normalized], "#d": [BLOCK_LIST_IDENTIFIER] }, ]; + // Route through the L1 SubscriptionManager when available (dedup + reconnect + // re-issue); fall back to relaySubscriptionService in manager-less envs. + const manager = + typeof nostrClient.getSubscriptionManager === "function" + ? nostrClient.getSubscriptionManager() + : null; + if (manager) { + this.blockListSubscriptionHandle = manager.subscribe({ + key, + relays, + filters, + label: "block-list", + onEvent: (event) => this.handleBlockListEvent(event), + }); + return this.blockListSubscriptionHandle; + } + return relaySubscriptionService.ensureSubscription({ key, pool: nostrClient.pool,