summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-08-19 15:12:33 +0200
committerFlorian Dold <florian@dold.me>2021-08-19 15:12:33 +0200
commitc0e6b6d0f66508ebc8d33502d1281cb48a1c9cc6 (patch)
treee80d81ec1c13a24c73a00eb6f388d6db75b32c0c /packages/taler-wallet-core/src
parentdefc393d6e320f6cc76df059a94936a7b88571a1 (diff)
downloadwallet-core-c0e6b6d0f66508ebc8d33502d1281cb48a1c9cc6.tar.gz
wallet-core-c0e6b6d0f66508ebc8d33502d1281cb48a1c9cc6.tar.bz2
wallet-core-c0e6b6d0f66508ebc8d33502d1281cb48a1c9cc6.zip
run pending operations at least once, style fixes
Diffstat (limited to 'packages/taler-wallet-core/src')
-rw-r--r--packages/taler-wallet-core/src/operations/refresh.ts12
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts18
-rw-r--r--packages/taler-wallet-core/src/wallet.ts8
3 files changed, 22 insertions, 16 deletions
diff --git a/packages/taler-wallet-core/src/operations/refresh.ts b/packages/taler-wallet-core/src/operations/refresh.ts
index 2549b1404..20b07d44e 100644
--- a/packages/taler-wallet-core/src/operations/refresh.ts
+++ b/packages/taler-wallet-core/src/operations/refresh.ts
@@ -147,6 +147,7 @@ async function refreshCreateSession(
throw Error("db inconsistent: exchange of coin not found");
}
+
const { availableAmount, availableDenoms } = await ws.db
.mktx((x) => ({
denominations: x.denominations,
@@ -161,6 +162,7 @@ async function refreshCreateSession(
throw Error("db inconsistent: denomination for coin not found");
}
+ // FIXME: use an index here, based on the withdrawal expiration time.
const availableDenoms: DenominationRecord[] = await tx.denominations.indexes.byExchangeBaseUrl
.iter(exchange.baseUrl)
.toArray();
@@ -913,7 +915,15 @@ export async function autoRefresh(
}
}
if (refreshCoins.length > 0) {
- await createRefreshGroup(ws, tx, refreshCoins, RefreshReason.Scheduled);
+ const res = await createRefreshGroup(
+ ws,
+ tx,
+ refreshCoins,
+ RefreshReason.Scheduled,
+ );
+ logger.info(
+ `created refresh group for auto-refresh (${res.refreshGroupId})`,
+ );
}
logger.info(
`current wallet time: ${timestampToIsoString(getTimestampNow())}`,
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts
index 44e626110..81c35c17b 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -17,7 +17,6 @@
/**
* Imports.
*/
-import * as LibtoolVersion from "@gnu-taler/taler-util";
import {
AmountJson,
Amounts,
@@ -41,6 +40,7 @@ import {
WithdrawResponse,
URL,
WithdrawUriInfoResponse,
+ VersionMatchResult,
} from "@gnu-taler/taler-util";
import {
CoinRecord,
@@ -143,7 +143,7 @@ interface ExchangeWithdrawDetails {
*
* Older exchanges don't return version information.
*/
- versionMatch: LibtoolVersion.VersionMatchResult | undefined;
+ versionMatch: VersionMatchResult | undefined;
/**
* Libtool-style version string for the exchange or "unknown"
@@ -693,15 +693,15 @@ export async function updateWithdrawalDenoms(
while (current < denominations.length) {
const updatedDenominations: DenominationRecord[] = [];
// Do a batch of batchSize
- for (let batchIdx = 0; batchIdx < batchSize; batchIdx++) {
- current++;
- if (current >= denominations.length) {
- break;
- }
+ for (
+ let batchIdx = 0;
+ batchIdx < batchSize && current < denominations.length;
+ batchIdx++, current++
+ ) {
const denom = denominations[current];
if (denom.status === DenominationStatus.Unverified) {
logger.trace(
- `Validation denomination (${current + 1}/${
+ `Validating denomination (${current + 1}/${
denominations.length
}) signature of ${denom.denomPubHash}`,
);
@@ -939,7 +939,7 @@ export async function getExchangeWithdrawalInfo(
let versionMatch;
if (exchangeDetails.protocolVersion) {
- versionMatch = LibtoolVersion.compare(
+ versionMatch = compare(
WALLET_EXCHANGE_PROTOCOL_VERSION,
exchangeDetails.protocolVersion,
);
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index 3c3da3cea..fec7e6155 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -333,7 +333,7 @@ async function runTaskLoop(
}
}
- if (opts.stopWhenDone && numGivingLiveness === 0) {
+ if (opts.stopWhenDone && numGivingLiveness === 0 && iteration !== 0) {
logger.warn(`stopping, as no pending operations have lifeness`);
return;
}
@@ -970,15 +970,11 @@ export class Wallet {
this.ws.stop();
}
- runRetryLoop(): Promise<void> {
- return runTaskLoop(this.ws);
- }
-
runPending(forceNow: boolean = false) {
return runPending(this.ws, forceNow);
}
- runTaskLoop(opts: RetryLoopOpts) {
+ runTaskLoop(opts?: RetryLoopOpts) {
return runTaskLoop(this.ws, opts);
}