diff options
| author | Adam Soltys <[email protected]> | 2025-09-29 21:14:43 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2025-09-29 21:17:41 -0700 |
| commit | c901c9571ff9406188a8bbb68c701ad3b21c24eb (patch) | |
| tree | d6fbc46c0618a378e76570567365a7ae8aeb6eb5 | |
| parent | 65523113927f551920c5e6637759836d9292ab5a (diff) | |
| download | coinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.tar.gz coinos-server-c901c9571ff9406188a8bbb68c701ad3b21c24eb.zip | |
catch errors in pay_invoice
| -rw-r--r-- | config.ts.sample | 2 | ||||
| -rw-r--r-- | lib/nwc.ts | 42 |
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, @@ -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" }); |
