aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* serialize limit check + reservation under per-asset mutexAdam Soltys2026-05-171-26/+81
| | | | | | | | | | | | | | | | | | | The previous check at debit() read ${type}:limit, compared amount, and deferred any decrement to the next freezeCheck tick (every 10s). That made the check non-atomic: a burst of concurrent withdrawals could each pass the same stale limit value before any reconciliation happened. Combined with the /gateway abuse, this allowed the hot wallet to be drained. withLimitLock() serializes the check + db.decrBy inside a per-type async mutex, and freezeCheck also takes the lock when overwriting limits so its 10s reconciliation can't race in-flight checks. Single-process only; distributed lock or TigerBeetle reservation needed if app ever scales out. Trade-off: decremented limits are not refunded on payment failure — they get reset by the next freezeCheck within 10s. Acceptable false-deny window in exchange for correctness against bursts. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* prevent duplicate utxo selectionAdam Soltys2026-04-261-1/+17
|
* check listpays before reversingAdam Soltys2026-04-251-3/+12
|
* remove nwc fieldAdam Soltys2026-04-011-1/+0
|
* nwc heartbeatAdam Soltys2026-03-292-14/+28
|
* lnurl proxyAdam Soltys2026-03-273-1/+133
|
* ensure lightning payments get processedAdam Soltys2026-03-191-0/+9
|
* listener logsAdam Soltys2026-03-181-1/+1
|
* stop republishing primal eventsAdam Soltys2026-03-182-3/+14
|
* remove logsAdam Soltys2026-03-177-13/+3
|
* catch reverse errorsAdam Soltys2026-03-171-2/+2
|
* adjust ln minfeeregtest-dataAdam Soltys2026-03-155-19/+13
|
* pass bytes for app secretAdam Soltys2026-03-141-1/+1
|
* use bytes for nostr toolsAdam Soltys2026-03-131-4/+4
|
* fix pending payment cleanup and login password verificationAdam Soltys2026-03-061-0/+4
| | | | | | | Skip non-lightning entries in pending payments check and handle malformed password hashes gracefully during login. Co-Authored-By: Claude Opus 4.6 <[email protected]>
* handle socket errorsAdam Soltys2026-02-252-16/+58
|
* health checkAdam Soltys2026-02-065-112/+256
|
* consult archive for older paymentsAdam Soltys2026-01-302-6/+10
|
* relay reconnect logicAdam Soltys2026-01-302-31/+48
|
* purge old nwc eventsAdam Soltys2026-01-281-2/+12
|
* ip fallbackAdam Soltys2026-01-271-0/+5
|
* loggingAdam Soltys2026-01-261-0/+1
|
* read payments from archiveAdam Soltys2026-01-222-5/+42
|
* quiet nwc failuresAdam Soltys2026-01-211-8/+8
|
* loggingAdam Soltys2026-01-212-10/+8
|
* check usernameAdam Soltys2026-01-191-0/+1
|
* blacklist changeAdam Soltys2025-12-161-1/+1
|
* more robust lightning clientAdam Soltys2025-12-161-3/+85
|
* lintAdam Soltys2025-12-161-10/+10
|
* Merge pull request #82 from ericpp/catch-failed-keysendAdam Soltys2025-12-041-11/+12
|\ | | | | Catch failed keysend payments
| * Catch failed keysend paymentsEric P2025-11-091-11/+12
| |
* | Merge pull request #81 from ericpp/fix-keysend-extratlvsAdam Soltys2025-12-041-1/+11
|\ \ | | | | | | Fix incorrect extratlvs format in pay_keysend
| * | Fix incorrect extratlvs format in pay_keysendEric P2025-11-091-1/+11
| |/
* / fee adjustmentAdam Soltys2025-11-261-6/+3
|/
* rm logAdam Soltys2025-10-011-3/+0
|
* rotate server keyAdam Soltys2025-09-293-10/+46
|
* catch errors in pay_invoiceAdam Soltys2025-09-291-19/+23
|
* fix bolt12 issueAdam Soltys2025-09-201-5/+3
|
* fix bolt12 invoicesAdam Soltys2025-09-191-1/+1
|
* sendinvoice supportAdam Soltys2025-09-183-15/+26
|
* default account idAdam Soltys2025-09-101-5/+4
|
* check for syncSquareAdam Soltys2025-09-082-2/+2
|
* square paymentsAdam Soltys2025-09-082-16/+16
|
* wipAdam Soltys2025-09-062-232/+43
|
* create external paymentsquareAdam Soltys2025-09-041-1/+0
|
* support readonly tokensAdam Soltys2025-09-041-3/+11
|
* wipAdam Soltys2025-08-261-0/+249
|
* handle 0 tipAdam Soltys2025-08-261-1/+2
|
* fix invoice updateAdam Soltys2025-08-211-3/+4
|
* user agent rate limitingAdam Soltys2025-08-131-9/+43
|