aboutsummaryrefslogtreecommitdiffstats
path: root/routes/lightning/send.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-04-05 14:00:23 -0400
committerAdam Soltys <[email protected]>2020-04-05 14:00:23 -0400
commit1738b0feeef4f2d44aeac58bdd27236684792f64 (patch)
treed389f83ba050e42e72d79a19b7e47ac9a3885469 /routes/lightning/send.js
parent86b32fdd423b1be3eb75c7fbcb934646cda79d62 (diff)
downloadcoinos-server-1738b0feeef4f2d44aeac58bdd27236684792f64.tar.gz
coinos-server-1738b0feeef4f2d44aeac58bdd27236684792f64.zip
use sendPayment instead of sendToRoute
Diffstat (limited to 'routes/lightning/send.js')
-rw-r--r--routes/lightning/send.js15
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);