diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts index 344bc0f74..695d6d274 100644 --- a/packages/taler-util/src/time.ts +++ b/packages/taler-util/src/time.ts @@ -323,6 +323,15 @@ export function durationAdd(d1: Duration, d2: Duration): Duration { export const codecForTimestamp: Codec = { decode(x: any, c?: Context): TalerProtocolTimestamp { + // Compatibility, should be removed soon. + const t_ms = x.t_ms; + if (typeof t_ms === "string") { + if (t_ms === "never") { + return { t_s: "never" }; + } + } else if (typeof t_ms === "number") { + return { t_s: Math.floor(t_ms / 1000) }; + } const t_s = x.t_s; if (typeof t_s === "string") { if (t_s === "never") { diff --git a/packages/taler-wallet-core/src/operations/refresh.ts b/packages/taler-wallet-core/src/operations/refresh.ts index cf292061f..1a4731939 100644 --- a/packages/taler-wallet-core/src/operations/refresh.ts +++ b/packages/taler-wallet-core/src/operations/refresh.ts @@ -818,9 +818,15 @@ async function processRefreshGroupImpl( logger.trace("processing refresh sessions for old coins"); const ps = refreshGroup.oldCoinPubs.map((x, i) => processRefreshSession(ws, refreshGroupId, i).catch((x) => { - logger.warn("process refresh session got exception"); - logger.warn(`exc ${x}`); - logger.warn(`exc stack ${x.stack}`); + if (x instanceof CryptoApiStoppedError) { + logger.info( + "crypto API stopped while processing refresh group, probably the wallet is during shutdown", + ); + } else { + logger.warn("process refresh session got exception"); + logger.warn(`exc ${x}`); + logger.warn(`exc stack ${x.stack}`); + } }), ); try {