From 1424d48d77e3680dc4bd75c24b320436b999dced Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 7 Feb 2023 21:06:52 -0800 Subject: handle zero amount invoices better --- docker-compose.yml | 8 ++++---- routes/payments.js | 5 ++++- routes/requests.js | 23 ++++++++++++++--------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9958458f..a645859f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,7 @@ services: - ./data/bitcoin:/home/bitcoin/.bitcoin restart: always cl: - image: elementsproject/lightningd:latest + image: elementsproject/lightningd:v22.11.1 container_name: cl environment: LIGHTNINGD_NETWORK: regtest @@ -34,7 +34,7 @@ services: - ./data/lightning:/root/.lightning restart: always clb: - image: elementsproject/lightningd:latest + image: elementsproject/lightningd:v22.11.1 container_name: clb environment: LIGHTNINGD_NETWORK: regtest @@ -42,7 +42,7 @@ services: - ./data/lightningb:/root/.lightning restart: always clc: - image: elementsproject/lightningd:latest + image: elementsproject/lightningd:v22.11.1 container_name: clc environment: LIGHTNINGD_NETWORK: regtest @@ -50,7 +50,7 @@ services: - ./data/lightningc:/root/.lightning restart: always cld: - image: elementsproject/lightningd:latest + image: elementsproject/lightningd:v22.11.1 container_name: cld environment: LIGHTNINGD_NETWORK: regtest diff --git a/routes/payments.js b/routes/payments.js index 1043959c..ec557474 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -36,6 +36,9 @@ export default { }) .json(); } else if (payreq) { + let { msatoshi } = await ln.decode(payreq); + if (msatoshi) amount = Math.round(msatoshi * 1000); + p = await debit( hash, amount + maxfee, @@ -45,7 +48,7 @@ export default { types.lightning ); - let r = await ln.pay(payreq); + let r = await ln.pay(payreq, msatoshi ? undefined : `${amount}sats`); p.amount = -amount; p.hash = r.payment_hash; diff --git a/routes/requests.js b/routes/requests.js index 79af1fb6..93457213 100644 --- a/routes/requests.js +++ b/routes/requests.js @@ -1,10 +1,13 @@ import { emit } from "$lib/sockets"; -import { g, db } from "$lib/db"; +import { g, s, db } from "$lib/db"; +import { v4 } from "uuid"; export default { async get({ params: { id } }, res) { try { - res.send({ request: await g(id) }); + let request = await g(`request:${id}`); + request.recipient = await g(`user:${request.recipient_id}`); + res.send({ request }); } catch (e) { console.log(e); res.code(500).send(e.message); @@ -29,16 +32,18 @@ export default { { body: { recipient, ...params }, user: { username, profile } }, res ) { - let { id: recipient_id } = await g(`user:${recipient}`); - - let request = { recipient_id, ...params }; - request.requester = { - username, - profile + let recipient_id = await g(`user:${recipient}`); + + let id = v4(); + let request = { + id, + recipient_id, + requester: { username, profile }, + ...params }; + await s(`request:${id}`, request); emit(recipient, "request", request); - res.send(request); }, -- cgit v1.2.3