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
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))
|
|
})
|
|
}
|
|
|