aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-12-03 14:48:31 -0800
committerAdam Soltys <[email protected]>2024-12-03 14:48:31 -0800
commitad4f2d37de749748de44523714790a215c846086 (patch)
treea21a8b5bb7b29888bbdd8a5aa2d298316162ebd7 /lib
parent0a318bf04d7691b47f65e1aa431a618d9bd935c0 (diff)
downloadcoinos-server-ad4f2d37de749748de44523714790a215c846086.tar.gz
coinos-server-ad4f2d37de749748de44523714790a215c846086.zip
handle keysend failure
Diffstat (limited to 'lib')
-rw-r--r--lib/nwc.ts34
1 files changed, 19 insertions, 15 deletions
diff --git a/lib/nwc.ts b/lib/nwc.ts
index 6313e05d..8961e8b0 100644
--- a/lib/nwc.ts
+++ b/lib/nwc.ts
@@ -144,24 +144,28 @@ const handle = (method, params, user, ev) =>
async pay_keysend() {
const { amount, pubkey } = params;
- const { payment_hash } = await sendKeysend({
- hash: ev.id,
- amount,
- pubkey,
- user,
- });
+ try {
+ const { payment_hash } = await sendKeysend({
+ hash: ev.id,
+ amount,
+ pubkey,
+ user,
+ });
- for (let i = 0; i < 10; i++) {
- const { pays } = await ln.listpays({ payment_hash });
- 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({ payment_hash });
+ const p = pays.find((p) => p.status === "complete");
+ if (p) {
+ const { preimage } = p;
+ return result({ preimage });
+ }
+ await sleep(2000);
}
- await sleep(2000);
- }
- return error({ code: "INTERNAL", message: "Payment timed out" });
+ return error({ code: "INTERNAL", message: "Payment timed out" });
+ } catch (e) {
+ return error({ code: "INTERNAL", message: "Keysend payment failed" });
+ }
},
async get_info() {