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.

84 lines
2.2 KiB

/**
* Dispatches a bi-directional streaming RPC for sending payments through the Lightning Network.
* @param {[type]} lnd [description]
* @param {[type]} paymentRequest [description]
* @return {[type]} [description]
*/
export function sendPaymentSync(lnd, meta, { paymentRequest }) {
return new Promise((resolve, reject) => {
lnd.sendPaymentSync({ payment_request: paymentRequest }, meta, (error, data) => {
if (error) {
reject({ error }) // eslint-disable-line
return
}
if (!data || !data.payment_route) { reject({ error: data.payment_error }) } // eslint-disable-line
resolve(data)
})
})
}
/**
* Synchronous non-streaming version of SendPayment
* @param {[type]} lnd [description]
* @param {[type]} paymentRequest [description]
* @return {[type]} [description]
*/
export function sendPayment(lnd, meta, { paymentRequest }) {
return new Promise((resolve, reject) => {
lnd.sendPayment({ payment_request: paymentRequest }, meta, (err, data) => {
if (err) { reject(err) }
resolve(data)
})
})
}
/**
* Returns a full description of the conditions encoded within the payment request
* @param {[type]} lnd [description]
* @param {[type]} payReq [description]
* @return {[type]} [description]
*/
export function decodePayReq(lnd, meta, { payReq }) {
return new Promise((resolve, reject) => {
lnd.decodePayReq({ pay_req: payReq }, meta, (err, data) => {
if (err) { reject(err) }
resolve(data)
})
})
}
/**
* Returns a list of all outgoing payments
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function listPayments(lnd, meta) {
return new Promise((resolve, reject) => {
lnd.listPayments({}, meta, (err, data) => {
if (err) { reject(err) }
resolve(data)
})
})
}
/**
* Deletes all outgoing payments from DB.
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function deleteAllPayments(lnd, meta) {
return new Promise((resolve, reject) => {
lnd.deleteAllPayments({}, meta, (err, data) => {
if (err) { reject(err) }
resolve(data)
})
})
}