diff --git a/package-lock.json b/package-lock.json index 4cf82e5..a3fcc08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3097,7 +3097,7 @@ "dependencies": { "@welshman/lib": "0.0.11", "@welshman/net": "0.0.14", - "@welshman/util": "0.0.17", + "@welshman/util": "0.0.18", "nostr-tools": "^2.7.0" }, "devDependencies": { @@ -3111,7 +3111,7 @@ "version": "0.0.12", "license": "MIT", "dependencies": { - "@welshman/util": "0.0.17" + "@welshman/util": "0.0.18" }, "devDependencies": { "gts": "^5.0.1", @@ -3149,7 +3149,7 @@ "license": "MIT", "dependencies": { "@welshman/lib": "0.0.11", - "@welshman/util": "0.0.17", + "@welshman/util": "0.0.18", "isomorphic-ws": "^5.0.0", "ws": "^8.16.0" }, @@ -3161,7 +3161,7 @@ }, "packages/util": { "name": "@welshman/util", - "version": "0.0.17", + "version": "0.0.18", "license": "MIT", "dependencies": { "@welshman/lib": "0.0.11", diff --git a/packages/dvm/package.json b/packages/dvm/package.json index 26345a2..e3f3cb6 100644 --- a/packages/dvm/package.json +++ b/packages/dvm/package.json @@ -33,7 +33,7 @@ "dependencies": { "@welshman/lib": "0.0.11", "@welshman/net": "0.0.14", - "@welshman/util": "0.0.17", + "@welshman/util": "0.0.18", "nostr-tools": "^2.7.0" } } diff --git a/packages/feeds/package.json b/packages/feeds/package.json index d371af1..60eb053 100644 --- a/packages/feeds/package.json +++ b/packages/feeds/package.json @@ -31,6 +31,6 @@ "typescript": "~5.1.6" }, "dependencies": { - "@welshman/util": "0.0.17" + "@welshman/util": "0.0.18" } } diff --git a/packages/net/package.json b/packages/net/package.json index 72b9503..deaf106 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@welshman/lib": "0.0.11", - "@welshman/util": "0.0.17", + "@welshman/util": "0.0.18", "isomorphic-ws": "^5.0.0", "ws": "^8.16.0" } diff --git a/packages/util/package.json b/packages/util/package.json index ec04b32..08701de 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@welshman/util", - "version": "0.0.17", + "version": "0.0.18", "author": "hodlbod", "license": "MIT", "description": "A collection of nostr-related utilities.", diff --git a/packages/util/src/Repository.ts b/packages/util/src/Repository.ts index 990e6b5..a9dba1c 100644 --- a/packages/util/src/Repository.ts +++ b/packages/util/src/Repository.ts @@ -136,21 +136,21 @@ export class Repository extends Emitter { throw new Error("Invalid event published to Repository", event) } - const address = getAddress(event) - const duplicate = ( - this.eventsById.get(event.id) || - this.eventsByAddress.get(address) - ) - - // If our duplicate is newer than the event we're adding, we're done - if (duplicate && duplicate.created_at >= event.created_at) { - this.deletes.set(event.id, duplicate.created_at) - + // If we've already seen this event, we're done + if (this.eventsById.get(event.id)) { return } - // Delete our duplicate + const address = getAddress(event) + const duplicate = this.eventsByAddress.get(address) + if (duplicate) { + // If our event is older than the duplicate, we're done + if (event.created_at <= duplicate.created_at) { + return + } + + // If our event is newer than what it's replacing, delete the old version this.deletes.set(duplicate.id, event.created_at) }