diff options
| -rw-r--r-- | routes/lightning/send.js | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/routes/lightning/send.js b/routes/lightning/send.js index f07c8843..822fe0e4 100644 --- a/routes/lightning/send.js +++ b/routes/lightning/send.js @@ -39,27 +39,24 @@ module.exports = async (req, res) => { let m; try { let paymentHash = payreq.tags.find(t => t.tagName === 'payment_hash').data; - m = await lna.sendToRouteSync({ - "payment_hash": Buffer.from(paymentHash, 'hex').toString('base64'), - route + m = await lna.sendPaymentSync({ + "payment_request": hash, }); if (m.payment_error) return res.status(500).send(m.payment_error); + if (seen.includes(m.payment_preimage)) { - l.info("payment has already been seen", m.payment_preimage); - return; + l.warn("duplicate payment detected", m.payment_preimage); + return res.status(500).send("duplicate payment detected"); } - seen.push(m.payment_preimage); let total = parseInt(m.payment_route.total_amt); let fee = m.payment_route.total_fees; user.balance -= total - payreq.satoshis; - l.info("deducting", total, payreq.satoshis); await db.transaction(async transaction => { await user.save({ transaction }); - l.info("user saved"); const payment = await db.Payment.create( { @@ -75,6 +72,8 @@ module.exports = async (req, res) => { { transaction } ); + seen.push(m.payment_preimage); + l.info("sent lightning", user.username, -payment.amount); emit(user.username, "payment", payment); emit(user.username, "user", user); |
