aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-09-29 21:14:43 -0700
committerAdam Soltys <[email protected]>2025-09-29 21:17:41 -0700
commitc901c9571ff9406188a8bbb68c701ad3b21c24eb (patch)
treed6fbc46c0618a378e76570567365a7ae8aeb6eb5 /lib
parent65523113927f551920c5e6637759836d9292ab5a (diff)
downloadcoinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.tar.gz
coinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.zip
catch errors in pay_invoice
Diffstat (limited to 'lib')
-rw-r--r--lib/nwc.ts42
1 files changed, 23 insertions, 19 deletions
diff --git a/lib/nwc.ts b/lib/nwc.ts
index d82d35e2..4439ead4 100644
--- a/lib/nwc.ts
+++ b/lib/nwc.ts
@@ -125,10 +125,10 @@ const handle = (method, params, ev, app, user) =>
const spent = payments.reduce(
(a, b) =>
a +
- (Math.abs(parseInt(b.amount || 0)) +
- parseInt(b.tip || 0) +
- parseInt(b.fee || 0) +
- parseInt(b.ourfee || 0)),
+ (Math.abs(Number.parseInt(b.amount || 0)) +
+ Number.parseInt(b.tip || 0) +
+ Number.parseInt(b.fee || 0) +
+ Number.parseInt(b.ourfee || 0)),
0,
);
@@ -193,24 +193,28 @@ const handle = (method, params, ev, app, user) =>
}
}
- const { id: pid } = await sendLightning({
- amount,
- fee: max_fee || Math.round(amount * 0.01),
- user,
- pr,
- memo: JSON.stringify(metadata),
- });
+ try {
+ const { id: pid } = await sendLightning({
+ amount,
+ fee: max_fee || Math.round(amount * 0.01),
+ user,
+ pr,
+ memo: JSON.stringify(metadata),
+ });
- await db.lPush(`${pubkey}:payments`, pid);
+ await db.lPush(`${pubkey}:payments`, pid);
- for (let i = 0; i < 10; i++) {
- const { pays } = await ln.listpays(pr);
- const p = pays.find((p) => p.status === "complete");
- if (p) {
- const { preimage } = p;
- return result({ preimage });
+ for (let i = 0; i < 10; i++) {
+ const { pays } = await ln.listpays(pr);
+ const p = pays.find((p) => p.status === "complete");
+ if (p) {
+ const { preimage } = p;
+ return result({ preimage });
+ }
+ await sleep(2000);
}
- await sleep(2000);
+ } catch (e) {
+ return error({ code: "INTERNAL", message: e.message });
}
return error({ code: "INTERNAL", message: "Payment timed out" });