From baed390beb471c59f24b83483c138432292cae8b Mon Sep 17 00:00:00 2001 From: kieran Date: Sun, 22 Sep 2024 15:46:26 +0100 Subject: [PATCH] fix: use inner created_at timestamp nip17 --- packages/app/src/chat/nip17.ts | 2 +- packages/shared/src/utils.ts | 2 +- packages/system/src/event-builder.ts | 2 +- packages/system/src/event-publisher.ts | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/app/src/chat/nip17.ts b/packages/app/src/chat/nip17.ts index 3a27812c..20e3f60a 100644 --- a/packages/app/src/chat/nip17.ts +++ b/packages/app/src/chat/nip17.ts @@ -105,7 +105,7 @@ export class Nip17ChatSystem extends ExternalStore> implements ChatS participants, messages: messages.map(m => ({ id: m.id, - created_at: m.created_at, + created_at: m.inner.created_at, from: m.inner.pubkey, tags: m.tags, content: "", diff --git a/packages/shared/src/utils.ts b/packages/shared/src/utils.ts index 9b7dd84d..636a2231 100644 --- a/packages/shared/src/utils.ts +++ b/packages/shared/src/utils.ts @@ -44,7 +44,7 @@ export function unixNowMs() { } export function jitter(n: number) { - return n * 2 * Math.random() - n; + return n * Math.random(); } export function deepClone(obj: T) { diff --git a/packages/system/src/event-builder.ts b/packages/system/src/event-builder.ts index 5b864131..2ba3c7ae 100644 --- a/packages/system/src/event-builder.ts +++ b/packages/system/src/event-builder.ts @@ -98,7 +98,7 @@ export class EventBuilder { pubkey: this.#pubkey ?? "", content: this.#content ?? "", kind: this.#kind, - created_at: (this.#createdAt ?? unixNow()) + (this.#jitter ? jitter(this.#jitter) : 0), + created_at: (this.#createdAt ?? unixNow()) - (this.#jitter ? jitter(this.#jitter) : 0), tags: this.#tags.sort((a, b) => a[0].localeCompare(b[0])), } as NostrEvent; ev.id = EventExt.createId(ev); diff --git a/packages/system/src/event-publisher.ts b/packages/system/src/event-publisher.ts index 5cd888e5..a39fc50c 100644 --- a/packages/system/src/event-publisher.ts +++ b/packages/system/src/event-publisher.ts @@ -314,6 +314,7 @@ export class EventPublisher { eb.pow(powTarget, powMiner); } eb.content(await signer.nip44Encrypt(JSON.stringify(inner), pTag)); + eb.jitter(60 * 60 * 24); return await eb.buildAndSign(secret); }