aboutsummaryrefslogtreecommitdiffstats
path: root/index.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2018-02-20 22:45:45 -0800
committerAdam Soltys <[email protected]>2018-02-20 22:45:45 -0800
commitf18ed646b0e056179650118c1b02420809de0405 (patch)
treedc17ba7c61869e9b2fac7a456ed36b4192806728 /index.js
parentba202a956cc73e9eddda78318220b54b66666200 (diff)
parentaecc01cdaf848c19b324dc299cb6ece550a01b29 (diff)
downloadcoinos-server-f18ed646b0e056179650118c1b02420809de0405.tar.gz
coinos-server-f18ed646b0e056179650118c1b02420809de0405.zip
Merge commit 'aecc01c'
Diffstat (limited to 'index.js')
-rw-r--r--index.js85
1 files changed, 39 insertions, 46 deletions
diff --git a/index.js b/index.js
index 44dc2dbf..b1be1871 100644
--- a/index.js
+++ b/index.js
@@ -14,15 +14,31 @@ import reverse from 'buffer-reverse'
import zmq from 'zmq'
import cache from './cache'
-import passport from './passport'
import { graphqlExpress, graphiqlExpress } from 'apollo-server-express'
-
dotenv.config()
const l = console.log
;(async () => {
+ const restClient = ba.restfulClient(process.env.BITCOINAVERAGE_PUBLIC, process.env.BITCOINAVERAGE_SECRET)
+
+ const lna = await require('lnrpc')({ server: 'localhost:10001', tls: '/home/adam/.lnd.testa/tls.cert' })
+ const maca = fs.readFileSync('/home/adam/.lnd.testa/admin.macaroon')
+ const meta = new grpc.Metadata()
+ meta.add('macaroon', maca.toString('hex'))
+ lna.meta = meta
+
+ const lnb = await require('lnrpc')({ server: 'localhost:10002', tls: '/home/adam/.lnd.testb/tls.cert' })
+ const macb = fs.readFileSync('/home/adam/.lnd.testb/admin.macaroon')
+ const metab = new grpc.Metadata()
+ metab.add('macaroon', macb.toString('hex'))
+ lnb.meta = metab
+
+ const db = await require('./db')(lna)
+ const passport = require('./passport')(db)
+ const auth = passport.authenticate('jwt', { session: false })
+
const app = express()
app.enable('trust proxy')
app.use(bodyParser.urlencoded({ extended: true }))
@@ -36,24 +52,16 @@ const l = console.log
const io = require('socket.io').listen(server)
io.origins('http://localhost:8085')
- const restClient = ba.restfulClient(process.env.BITCOINAVERAGE_PUBLIC, process.env.BITCOINAVERAGE_SECRET)
- const lnrpc = await require('lnrpc')({
- server: 'localhost:10001',
- tls: '/home/adam/.lnd.testa/tls.cert',
- macaroon: '/home/adam/.lnd.testa/admin.macaroon',
+ const invoices = lna.subscribeInvoices({})
+ invoices.on('data', msg => {
+ io.emit('invoices', msg)
})
- const adminMacaroon = fs.readFileSync('/home/adam/.lnd.testa/admin.macaroon')
- const meta = new grpc.Metadata()
- meta.add('macaroon', adminMacaroon.toString('hex'))
- lnrpc.meta = meta
- const invoices = lnrpc.subscribeInvoices({}, meta)
- invoices.on('data', msg => {
- let io = socketio()
+ const invoicesb = lnb.subscribeInvoices({})
+ invoicesb.on('data', msg => {
io.emit('invoices', msg)
})
- const db = await require('./db.js')(lnrpc)
const zmqSock = zmq.socket('sub')
zmqSock.connect('tcp://127.0.0.1:18503')
zmqSock.subscribe('rawblock')
@@ -108,14 +116,6 @@ const l = console.log
}
})
- app.get('/balance', async (req, res) => {
- res.json(await lnrpc.walletBalance({witness_only: true}, meta))
- })
-
- app.get('/pendingchannels', async (req, res) => {
- res.json(await lnrpc.pendingChannels({}, meta))
- })
-
app.post('/openchannel', async (req, res) => {
let user = await db['User'].findOne({
where: {
@@ -123,10 +123,10 @@ const l = console.log
}
})
- let channel = lnrpc.openChannelSync({
+ let channel = lna.openChannelSync({
node_pubkey_string: '022ea315e5052b152579e70a90bacfd6aa7420f2ce94674d4ca8da29d709bc70fd',
local_funding_amount: user.balance,
- }, meta, async (err, data) => {
+ }, async (err, data) => {
if (err) {
l(err)
return res.status(500).send(err)
@@ -148,32 +148,25 @@ const l = console.log
})
})
- app.get('/channelbalance', async (req, res) => {
- let user = await db['User'].findOne({
- where: {
- username: req.query.username,
- }
- })
-
- let data = await lnrpc.listChannels({}, meta)
- let channels = data.channels.filter(c => c.channel_point.includes(user.channel))
- if (channels.length) {
- res.json({ balance: channels[0].local_balance })
- } else {
- res.status(500).send({ error: 'No channel found' })
- }
- })
-
- app.post('/sendPayment', async (req, res) => {
- const payments = lnrpc.sendPayment(meta, {})
+ app.post('/sendPayment', auth, (req, res) => {
+ const payments = lna.sendPayment(meta, {})
payments.write({ payment_request: req.body.payreq })
- payments.on('data', m => {
+ payments.on('data', async m => {
+ req.user.channelbalance -= m.value
+ await req.user.save()
res.json(m)
})
})
- app.post('/addInvoice', async (req, res) => {
- res.json(await lnrpc.addInvoice({ value: req.body.amount }, meta))
+ app.post('/addInvoice', auth, async (req, res) => {
+ let invoice = await lnb.addInvoice({ value: req.body.amount })
+
+ await db.Invoice.create({
+ user_id: req.user.id,
+ payreq: invoice.payment_request,
+ })
+
+ res.json(invoice)
})
let fetchRates