diff --git a/packages/app/src/Cache/IndexedDB.ts b/packages/app/src/Cache/IndexedDB.ts index 5fa7b959..420ef143 100644 --- a/packages/app/src/Cache/IndexedDB.ts +++ b/packages/app/src/Cache/IndexedDB.ts @@ -1,7 +1,7 @@ import Dexie, { Table } from "dexie"; import { TaggedNostrEvent, ReqFilter as Filter } from "@snort/system"; import * as Comlink from "comlink"; -import LRUSet from "@snort/shared/src/LRUSet"; +import { seenEvents } from "@snort/system"; type Tag = { id: string; @@ -16,7 +16,6 @@ class IndexedDB extends Dexie { events!: Table; tags!: Table; private saveQueue: SaveQueueEntry[] = []; - private seenEvents = new LRUSet(1000); private subscribedEventIds = new Set(); private subscribedAuthors = new Set(); private subscribedTags = new Set(); @@ -58,10 +57,10 @@ class IndexedDB extends Dexie { } handleEvent(event: TaggedNostrEvent) { - if (this.seenEvents.has(event.id)) { + if (seenEvents.has(event.id)) { return; } - this.seenEvents.add(event.id); + seenEvents.add(event.id); // maybe we don't want event.kind 3 tags const tags = @@ -149,7 +148,7 @@ class IndexedDB extends Dexie { // make sure only 1 argument is passed const cb = e => { - this.seenEvents.add(e.id); + seenEvents.add(e.id); callback(e); }; diff --git a/packages/system/src/connection.ts b/packages/system/src/connection.ts index 86660060..e3628cfc 100644 --- a/packages/system/src/connection.ts +++ b/packages/system/src/connection.ts @@ -9,7 +9,7 @@ import { ConnectionStats } from "./connection-stats"; import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nostr"; import { RelayInfo } from "./relay-info"; import EventKind from "./event-kind"; -import seenEvents from "./seen-events"; +import { seenEvents } from "./seen-events"; import {getHex64} from "./utils"; /** @@ -204,7 +204,6 @@ export class Connection extends EventEmitter { // skip message processing if we've already seen it const msgId = getHex64(e.data as string, "id"); if (seenEvents.has(msgId)) { - console.log('already seen'); return; } seenEvents.add(msgId); // TODO only do after msg validation diff --git a/packages/system/src/index.ts b/packages/system/src/index.ts index 530842cd..9e6dd510 100644 --- a/packages/system/src/index.ts +++ b/packages/system/src/index.ts @@ -33,6 +33,7 @@ export * from "./query-optimizer"; export * from "./encrypted"; export * from "./outbox-model"; export { parseIMeta } from "./utils"; +export * from "./seen-events"; export * from "./impl/nip4"; export * from "./impl/nip44"; diff --git a/packages/system/src/seen-events.ts b/packages/system/src/seen-events.ts index 20a9cf85..b8fd2c92 100644 --- a/packages/system/src/seen-events.ts +++ b/packages/system/src/seen-events.ts @@ -1,3 +1,3 @@ import LRUSet from "@snort/shared/src/LRUSet"; -export default new LRUSet(2000); \ No newline at end of file +export const seenEvents = new LRUSet(2000); \ No newline at end of file