aboutsummaryrefslogtreecommitdiffstats
path: root/nwcpush/server.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-01 12:30:57 -0700
committerAdam Soltys <[email protected]>2026-08-01 12:30:57 -0700
commit37989576d91d21b4f727a67470eef9e07e85dd07 (patch)
treead6f3e97d93208245c38368bbfbe10c5a86e3254 /nwcpush/server.js
parentcdfda57c06e60ea235e54815a7734ad66484016f (diff)
downloadcoinosv3-37989576d91d21b4f727a67470eef9e07e85dd07.tar.gz
coinosv3-37989576d91d21b4f727a67470eef9e07e85dd07.zip
Pass a single filter to subscribeMany — arrays are rejected by relays
nostr-tools ≥2.23 changed subscribeMany to take one filter object; the old array form now serializes as ["REQ",id,[{...}]], which every relay answers with CLOSED "provided filter is not an object". That killed the NWC request subscription (the Amethyst forever-spinner), the device-sync live subscription, and the push notifier's relay watch — all silently. Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'nwcpush/server.js')
-rw-r--r--nwcpush/server.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/nwcpush/server.js b/nwcpush/server.js
index feca109..a2164d6 100644
--- a/nwcpush/server.js
+++ b/nwcpush/server.js
@@ -79,8 +79,10 @@ function resubscribe() {
lastResub = Date.now();
sub = pool.subscribeMany(
RELAYS,
- // only live traffic: a replayed old request must not wake devices
- [{ kinds: [REQ_KIND], '#p': pks, since: Math.floor(Date.now() / 1000) }],
+ // only live traffic: a replayed old request must not wake devices.
+ // NOTE: nostr-tools ≥2.23 wants a single filter object, NOT an array —
+ // an array serializes as an invalid REQ that relays reject with CLOSED.
+ { kinds: [REQ_KIND], '#p': pks, since: Math.floor(Date.now() / 1000) },
{
onevent: (ev) => {
const target = ev.tags?.find((t) => t[0] === 'p')?.[1];