remove activeLongPoll on error and prevent activeLongPoll skip if forced

This commit is contained in:
Sebastian 2023-01-13 16:34:07 -03:00
parent 0b2bf13def
commit 767f1a9d67
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1

View File

@ -982,7 +982,9 @@ enum BankStatusResultCode {
export async function processWithdrawalGroup(
ws: InternalWalletState,
withdrawalGroupId: string,
options: object = {},
options: {
forceNow?: boolean;
} = {},
): Promise<OperationAttemptResult> {
logger.trace("processing withdrawal group", withdrawalGroupId);
const withdrawalGroup = await ws.db
@ -998,7 +1000,7 @@ export async function processWithdrawalGroup(
const retryTag = RetryTags.forWithdrawal(withdrawalGroup);
// We're already running!
if (ws.activeLongpoll[retryTag]) {
if (ws.activeLongpoll[retryTag] && !options.forceNow) {
logger.info("withdrawal group already in long-polling, returning!");
return {
type: OperationAttemptResultType.Longpoll,
@ -1035,8 +1037,9 @@ export async function processWithdrawalGroup(
getErrorDetailFromException(e),
);
return;
} finally {
delete ws.activeLongpoll[retryTag];
}
delete ws.activeLongpoll[retryTag];
if (!res.ready) {
await storeOperationPending(ws, retryTag);
}