pending fixes
This commit is contained in:
parent
4159367d8c
commit
e01f94e345
@ -139,25 +139,17 @@ async function gatherReservePending(
|
||||
if (!reserve.retryInfo.active) {
|
||||
return;
|
||||
}
|
||||
resp.nextRetryDelay = updateRetryDelay(
|
||||
resp.nextRetryDelay,
|
||||
now,
|
||||
reserve.retryInfo.nextRetry,
|
||||
);
|
||||
if (onlyDue && reserve.retryInfo.nextRetry.t_ms > now.t_ms) {
|
||||
return;
|
||||
}
|
||||
switch (reserve.reserveStatus) {
|
||||
case ReserveRecordStatus.DORMANT:
|
||||
// nothing to report as pending
|
||||
break;
|
||||
case ReserveRecordStatus.WITHDRAWING:
|
||||
case ReserveRecordStatus.UNCONFIRMED:
|
||||
case ReserveRecordStatus.QUERYING_STATUS:
|
||||
case ReserveRecordStatus.REGISTERING_BANK:
|
||||
if (onlyDue) {
|
||||
break;
|
||||
}
|
||||
resp.pendingOperations.push({
|
||||
type: "reserve",
|
||||
givesLifeness: true,
|
||||
givesLifeness: false,
|
||||
stage: reserve.reserveStatus,
|
||||
timestampCreated: reserve.created,
|
||||
reserveType,
|
||||
@ -166,6 +158,31 @@ async function gatherReservePending(
|
||||
});
|
||||
break;
|
||||
case ReserveRecordStatus.WAIT_CONFIRM_BANK:
|
||||
if (onlyDue) {
|
||||
break;
|
||||
}
|
||||
resp.pendingOperations.push({
|
||||
type: "reserve",
|
||||
givesLifeness: false,
|
||||
stage: reserve.reserveStatus,
|
||||
timestampCreated: reserve.created,
|
||||
reserveType,
|
||||
reservePub: reserve.reservePub,
|
||||
bankWithdrawConfirmUrl: reserve.bankWithdrawConfirmUrl,
|
||||
retryInfo: reserve.retryInfo,
|
||||
});
|
||||
break;
|
||||
case ReserveRecordStatus.WITHDRAWING:
|
||||
case ReserveRecordStatus.QUERYING_STATUS:
|
||||
case ReserveRecordStatus.REGISTERING_BANK:
|
||||
resp.nextRetryDelay = updateRetryDelay(
|
||||
resp.nextRetryDelay,
|
||||
now,
|
||||
reserve.retryInfo.nextRetry,
|
||||
);
|
||||
if (onlyDue && reserve.retryInfo.nextRetry.t_ms > now.t_ms) {
|
||||
return;
|
||||
}
|
||||
resp.pendingOperations.push({
|
||||
type: "reserve",
|
||||
givesLifeness: true,
|
||||
@ -173,7 +190,6 @@ async function gatherReservePending(
|
||||
timestampCreated: reserve.created,
|
||||
reserveType,
|
||||
reservePub: reserve.reservePub,
|
||||
bankWithdrawConfirmUrl: reserve.bankWithdrawConfirmUrl,
|
||||
retryInfo: reserve.retryInfo,
|
||||
});
|
||||
break;
|
||||
@ -265,7 +281,10 @@ async function gatherWithdrawalPending(
|
||||
if (onlyDue && wsr.retryInfo.nextRetry.t_ms > now.t_ms) {
|
||||
return;
|
||||
}
|
||||
const numCoinsWithdrawn = wsr.withdrawn.reduce((a, x) => a + (x ? 1 : 0), 0);
|
||||
const numCoinsWithdrawn = wsr.withdrawn.reduce(
|
||||
(a, x) => a + (x ? 1 : 0),
|
||||
0,
|
||||
);
|
||||
const numCoinsTotal = wsr.withdrawn.length;
|
||||
resp.pendingOperations.push({
|
||||
type: "withdraw",
|
||||
@ -352,7 +371,7 @@ async function gatherPurchasePending(
|
||||
resp: PendingOperationsResponse,
|
||||
onlyDue: boolean = false,
|
||||
): Promise<void> {
|
||||
await tx.iter(Stores.purchases).forEach((pr) => {
|
||||
await tx.iter(Stores.purchases).forEach(pr => {
|
||||
if (!pr.firstSuccessfulPayTimestamp) {
|
||||
resp.nextRetryDelay = updateRetryDelay(
|
||||
resp.nextRetryDelay,
|
||||
|
@ -174,6 +174,8 @@ export async function createReserve(
|
||||
},
|
||||
);
|
||||
|
||||
ws.notify({ type: NotificationType.ReserveCreated });
|
||||
|
||||
// Asynchronously process the reserve, but return
|
||||
// to the caller already.
|
||||
processReserve(ws, resp.reservePub, true).catch(e => {
|
||||
@ -244,6 +246,7 @@ async function registerReserveWithBank(
|
||||
r.retryInfo = initRetryInfo();
|
||||
return r;
|
||||
});
|
||||
ws.notify( { type: NotificationType.Wildcard });
|
||||
return processReserveBankStatus(ws, reservePub);
|
||||
}
|
||||
|
||||
@ -284,6 +287,8 @@ async function processReserveBankStatusImpl(
|
||||
throw e;
|
||||
}
|
||||
|
||||
ws.notify( { type: NotificationType.Wildcard });
|
||||
|
||||
if (status.selection_done) {
|
||||
if (reserve.reserveStatus === ReserveRecordStatus.REGISTERING_BANK) {
|
||||
await registerReserveWithBank(ws, reservePub);
|
||||
@ -322,6 +327,7 @@ async function processReserveBankStatusImpl(
|
||||
return r;
|
||||
});
|
||||
}
|
||||
ws.notify( { type: NotificationType.Wildcard });
|
||||
}
|
||||
|
||||
async function incrementReserveRetry(
|
||||
|
@ -519,6 +519,7 @@ export const enum NotificationType {
|
||||
ReserveUpdated = "reserve-updated",
|
||||
ReserveConfirmed = "reserve-confirmed",
|
||||
ReserveDepleted = "reserve-depleted",
|
||||
ReserveCreated = "reserve-created",
|
||||
WithdrawSessionCreated = "withdraw-session-created",
|
||||
WithdrawSessionFinished = "withdraw-session-finished",
|
||||
WaitingForRetry = "waiting-for-retry",
|
||||
@ -534,6 +535,7 @@ export const enum NotificationType {
|
||||
PayOperationError = "pay-error",
|
||||
WithdrawOperationError = "withdraw-error",
|
||||
ReserveOperationError = "reserve-error",
|
||||
Wildcard = "wildcard",
|
||||
}
|
||||
|
||||
export interface ProposalAcceptedNotification {
|
||||
@ -656,6 +658,14 @@ export interface ReserveOperationErrorNotification {
|
||||
type: NotificationType.ReserveOperationError;
|
||||
}
|
||||
|
||||
export interface ReserveCreatedNotification {
|
||||
type: NotificationType.ReserveCreated;
|
||||
}
|
||||
|
||||
export interface WildcardNotification {
|
||||
type: NotificationType.Wildcard;
|
||||
}
|
||||
|
||||
export type WalletNotification =
|
||||
| WithdrawOperationErrorNotification
|
||||
| ReserveOperationErrorNotification
|
||||
@ -676,6 +686,7 @@ export type WalletNotification =
|
||||
| RefreshStartedNotification
|
||||
| RefreshRefusedNotification
|
||||
| ReserveUpdatedNotification
|
||||
| ReserveCreatedNotification
|
||||
| ReserveConfirmedNotification
|
||||
| WithdrawSessionFinishedNotification
|
||||
| ReserveDepletedNotification
|
||||
@ -684,7 +695,8 @@ export type WalletNotification =
|
||||
| RefundFinishedNotification
|
||||
| RefundQueriedNotification
|
||||
| WithdrawSessionCreatedNotification
|
||||
| CoinWithdrawnNotification;
|
||||
| CoinWithdrawnNotification
|
||||
| WildcardNotification;
|
||||
|
||||
export interface OperationError {
|
||||
type: string;
|
||||
|
Loading…
Reference in New Issue
Block a user