diff options
Diffstat (limited to 'packages/taler-wallet-core')
| -rw-r--r-- | packages/taler-wallet-core/src/db.ts | 4 | ||||
| -rw-r--r-- | packages/taler-wallet-core/src/operations/pending.ts | 10 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts index 4296d0503..07e0f4b0a 100644 --- a/packages/taler-wallet-core/src/db.ts +++ b/packages/taler-wallet-core/src/db.ts @@ -539,6 +539,10 @@ export interface ExchangeRecord {     */    nextRefreshCheck: Timestamp; +  /** +   * Last error (if any) for fetching updated information about the +   * exchange. +   */    lastError?: TalerErrorDetails;    /** diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts index a87b1c8b1..e3d22bfe6 100644 --- a/packages/taler-wallet-core/src/operations/pending.ts +++ b/packages/taler-wallet-core/src/operations/pending.ts @@ -52,10 +52,18 @@ async function gatherExchangePending(    resp: PendingOperationsResponse,  ): Promise<void> {    await tx.exchanges.iter().forEachAsync(async (e) => { +    let exchangeUpdateTimestampDue: Timestamp; + +    if (e.lastError) { +      exchangeUpdateTimestampDue = e.retryInfo.nextRetry; +    } else { +      exchangeUpdateTimestampDue = e.nextUpdate; +    } +      resp.pendingOperations.push({        type: PendingTaskType.ExchangeUpdate,        givesLifeness: false, -      timestampDue: e.nextUpdate, +      timestampDue: exchangeUpdateTimestampDue,        exchangeBaseUrl: e.baseUrl,        lastError: e.lastError,      }); | 
