lightning
Version:
Lightning Network client library
47 lines (36 loc) • 1.1 kB
JavaScript
const asyncAuto = require('async/auto');
const {returnResult} = require('asyncjs-util');
const {isLnd} = require('./../../lnd_requests');
const method = 'deleteAllPayments';
const type = 'default';
/** Delete all records of failed payments
Requires `offchain:write` permission
Method not supported on LND 0.12.1 or below
{
lnd: <Authenticated LND API Object>
}
@returns via cbk or Promise
*/
module.exports = ({lnd}, cbk) => {
return new Promise((resolve, reject) => {
return asyncAuto({
// Check arguments
validate: cbk => {
if (!isLnd({lnd, method, type})) {
return cbk([400, 'ExpectedAuthenticatedLndToDeleteFailedPayments']);
}
return cbk();
},
// Delete failed payments
deletePayments: ['validate', ({}, cbk) => {
return lnd[type][method]({failed_payments_only: true}, err => {
if (!!err) {
return cbk([503, 'UnexpectedErrorDeletingFailedPayments', {err}]);
}
return cbk();
});
}],
},
returnResult({reject, resolve}, cbk));
});
};