diff options
| author | Adam Soltys <[email protected]> | 2020-02-03 14:02:26 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-02-03 14:02:26 -0800 |
| commit | c57d4570ee381043ded4c9dfa0b03d81f319f2ee (patch) | |
| tree | a8809a41aa34630be89d602440b7791eed4b48b4 /sendPayment.js | |
| parent | 941ac6df66dcd46063cb8a07b282e3c37ad23bf8 (diff) | |
| download | coinos-server-c57d4570ee381043ded4c9dfa0b03d81f319f2ee.tar.gz coinos-server-c57d4570ee381043ded4c9dfa0b03d81f319f2ee.zip | |
payments fixes
Diffstat (limited to 'sendPayment.js')
| -rw-r--r-- | sendPayment.js | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/sendPayment.js b/sendPayment.js index 2450e6bc..24853605 100644 --- a/sendPayment.js +++ b/sendPayment.js @@ -6,7 +6,9 @@ const l = console.log; module.exports = (app, db, emit, seen, lna, lnb) => async (req, res) => { let hash = req.body.payreq; let payreq = bolt11.decode(hash); - l("sending lightning", req.user.username, payreq.satoshis); + let { user } = req; + + l("sending lightning", user.username, payreq.satoshis); if (seen.includes(hash)) { return res.status(500).send("Invoice has been paid, can't pay again"); @@ -17,7 +19,7 @@ module.exports = (app, db, emit, seen, lna, lnb) => async (req, res) => { let { balance } = await db.User.findOne( { where: { - username: req.user.username + username: user.username } }, { transaction } @@ -27,8 +29,8 @@ module.exports = (app, db, emit, seen, lna, lnb) => async (req, res) => { throw new Error(); } - req.user.balance -= payreq.satoshis; - await req.user.save({ transaction }); + user.balance -= payreq.satoshis; + await user.save({ transaction }); }); } catch (e) { return res.status(500).send("Not enough satoshis"); @@ -45,40 +47,42 @@ module.exports = (app, db, emit, seen, lna, lnb) => async (req, res) => { seen.push(m.payment_preimage); let total = parseInt(m.payment_route.total_amt); - req.user.balance -= total - payreq.satoshis; + let fee = m.payment_route.total_fees; + + user.balance -= total - payreq.satoshis; await db.transaction(async transaction => { - await req.user.save({ transaction }); + await user.save({ transaction }); const payment = await db.Payment.create( { amount: -total, - user_id: req.user.id, + fee, + user_id: user.id, hash, - rate: app.get("ask"), - currency: "CAD", + rate: app.get("rates")[user.currency], + currency: user.currency, confirmed: true }, { transaction } ); - emit(req.user.username, "payment", payment); - }); - - emit(req.user.username, "user", req.user); + emit(user.username, "payment", payment); + emit(user.username, "user", user); - if (payreq.payeeNodeKey === config.lnb.id) { - let invoice = await lna.addInvoice({ value: payreq.satoshis }); - let payback = lnb.sendPayment(lnb.meta, {}); + if (payreq.payeeNodeKey === config.lnb.id) { + let invoice = await lna.addInvoice({ value: payreq.satoshis }); + let payback = lnb.sendPayment(lnb.meta, {}); - /* eslint-disable-next-line */ - let { payment_request } = invoice; - /* eslint-disable-next-line */ - payback.write({ payment_request }); - } + /* eslint-disable-next-line */ + let { payment_request } = invoice; + /* eslint-disable-next-line */ + payback.write({ payment_request }); + } - seen.push(hash); - res.send(m); + seen.push(hash); + res.send(payment); + }); } }); |
