|
|
|
import config from './config'
|
|
|
|
import lightning from './lib/lightning'
|
|
|
|
import { decodeInvoice } from './utils'
|
|
|
|
|
|
|
|
const lnd = lightning(config.lightningRpc, config.lightningHost)
|
|
|
|
|
|
|
|
// LND Get Info
|
|
|
|
export function info() {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
lnd.getInfo({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND List Peers
|
|
|
|
export function peers() {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
lnd.listPeers({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND List Channels
|
|
|
|
const channels = new Promise((resolve, reject) => {
|
|
|
|
lnd.listChannels({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
// LND List Pending Channels
|
|
|
|
const pendingChannels = new Promise((resolve, reject) => {
|
|
|
|
lnd.pendingChannels({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
// LND Get All Channels
|
|
|
|
export function allChannels() {
|
|
|
|
return Promise.all([channels, pendingChannels])
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND Get Payments
|
|
|
|
export function payments() {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
lnd.listPayments({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND Get Invoices
|
|
|
|
export function invoices() {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
lnd.listInvoices({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND Get Invoice
|
|
|
|
export function invoice(payreq) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
resolve(decodeInvoice(payreq))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND Get Wallet Balance
|
|
|
|
const walletBalance = new Promise((resolve, reject) => {
|
|
|
|
lnd.walletBalance({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
// LND Get Channel Balance
|
|
|
|
const channelBalance = new Promise((resolve, reject) => {
|
|
|
|
lnd.channelBalance({}, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
// LND Get Wallet + Channel Balance
|
|
|
|
export function balance() {
|
|
|
|
return Promise.all([walletBalance, channelBalance])
|
|
|
|
}
|
|
|
|
|
|
|
|
// LND Get Wallet + Channel Balance
|
|
|
|
export function createInvoice({ memo, value }) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
lnd.addInvoice({ memo, value }, (err, data) => {
|
|
|
|
if (err) { reject(err) }
|
|
|
|
|
|
|
|
resolve(data)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export default {
|
|
|
|
info,
|
|
|
|
peers,
|
|
|
|
allChannels,
|
|
|
|
payments,
|
|
|
|
invoices,
|
|
|
|
invoice,
|
|
|
|
balance,
|
|
|
|
createInvoice
|
|
|
|
}
|