You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

74 lines
3.0 KiB

import allchannels from './allchannels'
import channelbalance from './channelbalance'
import channels from './channels'
import createinvoice from './createinvoice'
import info from './info'
import invoice from './invoice'
import invoices from './invoices'
import payinvoice from './payinvoice'
import payments from './payments'
import peers from './peers'
import pendingchannels from './pendingchannels'
import walletbalance from './walletbalance'
export default function(lnd, event, msg, data) {
switch(msg) {
case 'info':
info(lnd)
.then(info =>event.sender.send('receiveInfo', info))
.catch(error => console.log('info error: ', error))
break
case 'peers':
// Data looks like { peers: [] }
peers(lnd)
.then(peers => event.sender.send('receivePeers', peers))
.catch(error => console.log('peers error: ', error))
break
case 'channels':
// Data looks like [ { channels: [channel, channel, channel] }, { total_limbo_balance: 0, pending_open_channels: [], pending_closing_channels: [], pending_force_closing_channels: [] } ]
Promise.all([channels, pendingchannels].map(func => func(lnd)))
.then(data => event.sender.send('receiveChannels', { channels: data[0].channels, pendingChannels: data[1] }))
.catch(error => console.log('channels error: ', error))
break
case 'payments':
// Data looks like { payments: [] }
payments(lnd)
.then(payments => event.sender.send('receivePayments', payments))
.catch(error => console.log('payments error: ', error))
break
case 'invoices':
// Data looks like { invoices: [] }
invoices(lnd)
.then(invoices => event.sender.send('receiveInvoices', invoices))
.catch(error => console.log('invoices error: ', error))
break
case 'invoice':
// Data looks like { invoices: [] }
invoice(data.payreq)
.then(invoice => event.sender.send('receiveInvoice', invoice))
.catch(error => console.log('invoice error: ', error))
break
case 'balance':
// Balance looks like [ { balance: '129477456' }, { balance: '243914' } ]
Promise.all([walletbalance, channelbalance].map(func => func(lnd)))
.then(balance => event.sender.send('receiveBalance', { walletBalance: balance[0].balance, channelBalance: balance[1].balance }))
.catch(error => console.log('balance error: ', error))
break
case 'createInvoice':
// Invoice looks like { r_hash: Buffer, payment_request: '' }
const { memo, value } = data
createInvoice(lnd, { memo, value })
.then(invoice => event.sender.send('createdInvoice', Object.assign(invoice, { memo, value, r_hash: new Buffer(invoice.r_hash,'hex').toString('hex') })))
.catch(error => console.log('createInvoice error: ', error))
break
case 'sendPayment':
// Payment looks like { payment_preimage: Buffer, payment_route: Object }
const { paymentRequest } = data
sendPayment(lnd, { paymentRequest })
.then(payment => event.sender.send('paymentSuccessful'))
.catch(error => console.log('sendPayment error: ', error))
break
default:
return
}
}