From 97bded8f5bdc8ab65c031d8646440b1c10586008 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sun, 2 Mar 2025 01:25:06 -0300 Subject: [PATCH] prevent a relay from eoseing then closing and causing pool handlers to fire twice. --- abstract-pool.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/abstract-pool.ts b/abstract-pool.ts index d5cabcf..48a66a4 100644 --- a/abstract-pool.ts +++ b/abstract-pool.ts @@ -84,6 +84,7 @@ export class AbstractSimplePool { // batch all EOSEs into a single const eosesReceived: boolean[] = [] let handleEose = (i: number) => { + if (eosesReceived[i]) return // do not act twice for the same relay eosesReceived[i] = true if (eosesReceived.filter(a => a).length === relaysLength) { params.oneose?.() @@ -93,6 +94,7 @@ export class AbstractSimplePool { // batch all closes into a single const closesReceived: string[] = [] let handleClose = (i: number, reason: string) => { + if (closesReceived[i]) return // do not act twice for the same relay handleEose(i) closesReceived[i] = reason if (closesReceived.filter(a => a).length === relaysLength) {