commit 123b92b3aa67f17d01586da0d7974de06318e551
parent 89435696f9a28316ab3dc5ef7c73776d092da89c
Author: Florian Dold <florian@dold.me>
Date: Wed, 30 Mar 2022 20:41:21 +0200
wallet: logging, timestamp parsing backwards compatibility
Diffstat:
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git 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<TalerProtocolTimestamp> = {
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
@@ -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 {