diff options
| author | Adam Soltys <[email protected]> | 2026-06-06 09:10:16 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-06 09:10:16 -0700 |
| commit | 8cb1882111c079cfac9870054d9917fa5f94de76 (patch) | |
| tree | 9b03a58eb19bdd3bbcedb32ee2b356dbfaccff7d /routes/email.js.map | |
| parent | c4aba2cfd76eeaa0a177a4a92ca4539f5bf61e52 (diff) | |
| download | coinos-server-8cb1882111c079cfac9870054d9917fa5f94de76.tar.gz coinos-server-8cb1882111c079cfac9870054d9917fa5f94de76.zip | |
nwc: fix pay_invoice reply reliability, rate-limit drops, notifications
Three issues reported by an NWC client integrator (refs #80):
(a) pay_invoice sync reply: the handler polled listpays for ~20s then returned
a misleading "Payment timed out" error on slow routes even though the payment
settled — client never got the preimage. sendLightning already runs xpay to
completion and finalize() sets p.ref = preimage, so return that directly; keep
a longer listpays loop only as a fallback, and on still-in-flight return an
explicit "check with lookup_invoice" rather than implying failure.
(b) rate limiting: raised per-pubkey cap 5/min -> 60/min (normal usage — a
balance check + payment + a few lookup_invoice reconciles — trivially exceeded
5), and over-limit requests now get a NIP-47 RATE_LIMITED error reply instead
of a silent drop that looked exactly like a lost reply. Also: every request
path now always sends a 23195 reply (success, error, or handler-returned-
nothing) so a client never hangs waiting.
(c) notifications: payment_received/payment_sent are advertised in the info
event but app.notify defaulted to false unless the client sent notify:"true"
(only ~1% of apps had it on), so they never fired. Default notify ON; only
disable when explicitly "false". (Existing apps still false — backfill TBD.)
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'routes/email.js.map')
0 files changed, 0 insertions, 0 deletions
