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.
 
 
 

85 lines
2.0 KiB

import pushinvoices from '../push/subscribeinvoice'
/**
* Attempts to add a new invoice to the invoice database.
* @param lnd [description]
* @param memo [description]
* @param value [description]
* @return [description]
*/
export function addInvoice(lnd, { memo, value }) {
return new Promise((resolve, reject) => {
lnd.addInvoice({ memo, value }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Returns a list of all the invoices currently stored within the database
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function listInvoices(lnd) {
return new Promise((resolve, reject) => {
lnd.listInvoices({}, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* @param {[type]} payreq [description]
* @return {[type]} [description]
*/
export function getInvoice(lnd, { pay_req }) {
return new Promise((resolve, reject) => {
lnd.decodePayReq({ pay_req }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Attemps to look up an invoice according to its payment hash
* @param {[type]} lnd [description]
* @param {[type]} rhash [description]
* @return {[type]} [description]
*/
export function lookupInvoice(lnd, { rhash }) {
return new Promise((resolve, reject) => {
lnd.lookupInvoice({ r_hash: rhash }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Returns a uni-directional stream (server -> client) for notifying the client of newly added/settled invoices
* @param {[type]} lnd [description]
* @param {[type]} event [description]
* @return {[type]} [description]
*/
export function subscribeInvoices(lnd, event) {
return new Promise((resolve, reject) => {
pushinvoices(lnd, event)
.then(data => resolve(data))
.catch(error => reject(error))
})
}