diff options
| author | Adam Soltys <[email protected]> | 2020-04-24 22:46:45 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-04-24 22:46:45 -0700 |
| commit | 83f973224bad381df62774bcc058f76eab635f0c (patch) | |
| tree | ef231f4490b0c9d194b8683be50c05524738903e /routes/lightning/send.js | |
| parent | 306357c24d3014b55ae1cd25b954a695ea2e5cc6 (diff) | |
| download | coinos-server-assets.tar.gz coinos-server-assets.zip | |
wipassets
Diffstat (limited to 'routes/lightning/send.js')
| -rw-r--r-- | routes/lightning/send.js | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/routes/lightning/send.js b/routes/lightning/send.js index 822fe0e4..c2551896 100644 --- a/routes/lightning/send.js +++ b/routes/lightning/send.js @@ -32,50 +32,63 @@ module.exports = async (req, res) => { await user.save({ transaction }); }); } catch (e) { - l.warn("insufficient funds for lightning payment", user.username, user.balance); + l.warn( + "insufficient funds for lightning payment", + user.username, + user.balance + ); return res.status(500).send("Not enough satoshis"); } let m; try { - let paymentHash = payreq.tags.find(t => t.tagName === 'payment_hash').data; + let paymentHash = payreq.tags.find(t => t.tagName === "payment_hash").data; m = await lna.sendPaymentSync({ - "payment_request": hash, + payment_request: hash }); - + if (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); return res.status(500).send("duplicate payment detected"); - } + } let total = parseInt(m.payment_route.total_amt); let fee = m.payment_route.total_fees; user.balance -= total - payreq.satoshis; - await db.transaction(async transaction => { - await user.save({ transaction }); + await user.save(); + + const account = await db.Account.findOne({ + where: { + user_id: user.id, + asset: config.liquid.btcasset + } + }); const payment = await db.Payment.create( { amount: -total, - fee, + account_id: account.id, user_id: user.id, hash, rate: app.get("rates")[user.currency], currency: user.currency, confirmed: true, - asset: 'LNBTC', - }, - { transaction } + asset: "LNBTC" + } ); + user = await getUser(user.username); + seen.push(m.payment_preimage); l.info("sent lightning", user.username, -payment.amount); emit(user.username, "payment", payment); + + l.info("user payments", user.payments); emit(user.username, "user", user); if (payreq.payeeNodeKey === config.lnb.id) { @@ -91,7 +104,6 @@ module.exports = async (req, res) => { seen.push(hash); res.send(payment); - }); } catch (e) { l.info("error sending lightning", e); return res.status(500).send(e); |
