From d538d93e01ee7efe3719db8f92d6f352f862113d Mon Sep 17 00:00:00 2001 From: Silberengel Date: Wed, 6 May 2026 22:59:06 +0200 Subject: [PATCH] bug-fixes --- package-lock.json | 4 ++-- package.json | 2 +- .../client-replaceable-events.service.ts | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30eafdb9..afb5b0c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "imwald", - "version": "23.5.1", + "version": "23.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "imwald", - "version": "23.5.1", + "version": "23.5.2", "license": "MIT", "dependencies": { "@asciidoctor/core": "^3.0.4", diff --git a/package.json b/package.json index 49627651..1fcbf20f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "imwald", - "version": "23.5.1", + "version": "23.5.2", "description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery", "private": true, "type": "module", diff --git a/src/services/client-replaceable-events.service.ts b/src/services/client-replaceable-events.service.ts index b8ce8268..4960c194 100644 --- a/src/services/client-replaceable-events.service.ts +++ b/src/services/client-replaceable-events.service.ts @@ -566,6 +566,19 @@ export class ReplaceableEventService { ) ) ).filter(Boolean) + } else if (kind === ExtendedKind.PAYMENT_INFO) { + // NIP-A3 kind 10133: often published to the user's write relays only; FAST_READ alone misses many copies. + // Mirror contacts + pin-list coverage (writes + profile mirrors + aggregators + fast read). + relayUrls = Array.from( + new Set( + [ + ...FAST_WRITE_RELAY_URLS, + ...READ_ONLY_RELAY_URLS, + ...PROFILE_FETCH_RELAY_URLS, + ...FAST_READ_RELAY_URLS + ].map((u) => normalizeUrl(u) || u) + ) + ).filter(Boolean) } else { relayUrls = [...FAST_READ_RELAY_URLS] } @@ -584,7 +597,8 @@ export class ReplaceableEventService { relayCount: relayUrls.length }) } - const isSlowReplaceableBatch = kind === kinds.Metadata || kind === 10001 + const isSlowReplaceableBatch = + kind === kinds.Metadata || kind === 10001 || kind === ExtendedKind.PAYMENT_INFO const multiAuthorBatch = pubkeys.length > 1 // replaceableRace + default grace closes the REQ shortly after the first EVENT. For batched kind-0 // (many `authors` in one filter) that stops the subscription while most profiles are still in flight.