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.1 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, { paymentRequest }) {
return new Promise((resolve, reject) => {
lnd.sendPaymentSync({ payment_request: paymentRequest }, (error, data) => {
if (error) {
reject({ error })
return
}
if (!data || !data.payment_route) { reject({ error: data.payment_error }) }
console.log('data: ', data)
resolve(data)
})
})
}
/**
* Synchronous non-streaming version of SendPayment
* @param {[type]} lnd [description]
* @param {[type]} paymentRequest [description]
* @return {[type]} [description]
*/
export function sendPayment(lnd, { paymentRequest }) {
return new Promise((resolve, reject) => {
lnd.sendPayment({ payment_request: paymentRequest }, (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, { payReq }) {
return new Promise((resolve, reject) => {
lnd.decodePayReq({ pay_req: payReq }, (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) {
return new Promise((resolve, reject) => {
lnd.listPayments({}, (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) {
return new Promise((resolve, reject) => {
lnd.deleteAllPayments({}, (err, data) => {
if (err) { reject(err) }
resolve(data)
})
})
}