aboutsummaryrefslogtreecommitdiffstats
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
parent65523113927f551920c5e6637759836d9292ab5a (diff)
downloadcoinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.tar.gz
coinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.zip
catch errors in pay_invoice
-rw-r--r--config.ts.sample2
-rw-r--r--lib/nwc.ts42
2 files changed, 24 insertions, 20 deletions
diff --git a/config.ts.sample b/config.ts.sample
index 8132b8b0..d58e2f70 100644
--- a/config.ts.sample
+++ b/config.ts.sample
@@ -35,7 +35,7 @@ export default {
fee: 0.001,
adminpass: "pwa",
support: "[email protected]",
- nostrKey: "nsec13wekuqstlsyfrzm369yh6vjaphslq5pq9kze74acqqynjm8lvpms4qzsx9",
+ nostrKey: "nsec1msk3dqy2pzqy2murmm5s5gejfgkjkm2zesnh266gud2wcvhcunzqlu0h90",
mintUrl: "http://mint:3338",
square: {
environment: SquareEnvironment.Sandbox,
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" });