aboutsummaryrefslogtreecommitdiffstats
path: root/routes/lightning
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-05-06 15:09:35 -0700
committerAdam Soltys <[email protected]>2020-05-06 15:09:35 -0700
commit2f0f9e640ead76518f7f8013b16704da89421ee4 (patch)
tree50932ac23661290139d871b46417f928fdf2aa8f /routes/lightning
parent1b5f795c22a07adc978d129fd1e0066e46f6e4fa (diff)
downloadcoinos-server-2f0f9e640ead76518f7f8013b16704da89421ee4.tar.gz
coinos-server-2f0f9e640ead76518f7f8013b16704da89421ee4.zip
internal transfers
Diffstat (limited to 'routes/lightning')
-rw-r--r--routes/lightning/query.js20
-rw-r--r--routes/lightning/send.js21
2 files changed, 29 insertions, 12 deletions
diff --git a/routes/lightning/query.js b/routes/lightning/query.js
index 48af8b8e..6e70f30a 100644
--- a/routes/lightning/query.js
+++ b/routes/lightning/query.js
@@ -4,9 +4,25 @@ module.exports = async (req, res) => {
let { amount, payreq } = req.body;
try {
+ let invoice = await db.Invoice.findOne({
+ where: { text: payreq },
+ include: {
+ model: db.User,
+ as: "user"
+ }
+ });
+
+ if (invoice) emit(req.user.username, "to", invoice.user);
+
payreq = bolt11.decode(payreq);
- res.send(await lna.queryRoutes({ pub_key: payreq.payeeNodeKey, amt: amount || payreq.satoshis }));
+
+ res.send(
+ await lna.queryRoutes({
+ pub_key: payreq.payeeNodeKey,
+ amt: amount || payreq.satoshis
+ })
+ );
} catch (e) {
res.status(500).send(e.message);
- }
+ }
};
diff --git a/routes/lightning/send.js b/routes/lightning/send.js
index 9141bc1d..2c17ba1f 100644
--- a/routes/lightning/send.js
+++ b/routes/lightning/send.js
@@ -32,10 +32,14 @@ module.exports = async (req, res) => {
let m = await lna.sendPaymentSync({
amt: amount,
- payment_request: hash
+ payment_request: hash,
+ max_parts: 10,
});
- if (m.payment_error) return res.status(500).send(m.payment_error);
+ if (m.payment_error) {
+ l.error("error sending lightning", m.payment_hash.toString('hex'), m.payment_error);
+ return res.status(500).send(m.payment_error);
+ }
if (seen.includes(m.payment_preimage)) {
l.warn("duplicate payment detected", m.payment_preimage);
@@ -69,15 +73,12 @@ module.exports = async (req, res) => {
user = await getUser(user.username, transaction);
emit(user.username, "user", user);
+ l.info(config.lnb.id, payreq.payeeNodeKey);
if (payreq.payeeNodeKey === config.lnb.id) {
- lna.addInvoice({ value: amount }, (err, invoice) => {
- let payback = lnb.sendPayment(lnb.meta, {});
-
- /* eslint-disable-next-line */
- let { payment_request } = invoice;
- /* eslint-disable-next-line */
- payback.write({ payment_request });
- });
+ let invoice = await lna.addInvoice({ value: amount })
+ let { payment_request } = invoice;
+ await lnb.sendPaymentSync({ payment_request, max_parts: 10 });
+ l.info("lnb sending back", amount);
}
seen.push(hash);