From eec6695be0409669fcad36c6cc7ea01f48d41c97 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 14 Oct 2022 22:38:40 +0200 Subject: wallet-core: DB tweaks, consistent file naming convention --- .../src/operations/backup/import.ts | 5 ++-- .../taler-wallet-core/src/operations/common.ts | 4 +-- .../src/operations/pay-merchant.ts | 31 ++++++++-------------- 3 files changed, 15 insertions(+), 25 deletions(-) (limited to 'packages/taler-wallet-core/src/operations') diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts index 599b02dea..775a8ac42 100644 --- a/packages/taler-wallet-core/src/operations/backup/import.ts +++ b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -45,7 +45,7 @@ import { DenominationRecord, DenominationVerificationStatus, OperationStatus, - ProposalDownload, + ProposalDownloadInfo, PurchaseStatus, PurchasePayInfo, RefreshCoinStatus, @@ -649,7 +649,7 @@ export async function importBackup( } else { maxWireFee = Amounts.getZero(amount.currency); } - const download: ProposalDownload = { + const download: ProposalDownloadInfo = { contractTermsHash, contractTermsMerchantSig: backupPurchase.merchant_sig!, currency: amount.currency, @@ -665,7 +665,6 @@ export async function importBackup( let payInfo: PurchasePayInfo | undefined = undefined; if (backupPurchase.pay_info) { payInfo = { - coinDepositPermissions: undefined, payCoinSelection: await recoverPayCoinSelection( tx, contractData, diff --git a/packages/taler-wallet-core/src/operations/common.ts b/packages/taler-wallet-core/src/operations/common.ts index 9f235c9b4..d69bc09f8 100644 --- a/packages/taler-wallet-core/src/operations/common.ts +++ b/packages/taler-wallet-core/src/operations/common.ts @@ -25,6 +25,7 @@ import { RefreshReason, TalerErrorCode, TalerErrorDetail, + TransactionIdStr, TransactionType, } from "@gnu-taler/taler-util"; import { WalletStoresV1, CoinStatus, CoinRecord } from "../db.js"; @@ -37,7 +38,6 @@ import { OperationAttemptResultType, RetryInfo, } from "../util/retries.js"; -import { createRefreshGroup } from "./refresh.js"; const logger = new Logger("operations/common.ts"); @@ -48,7 +48,7 @@ export interface CoinsSpendInfo { /** * Identifier for what the coin has been spent for. */ - allocationId: string; + allocationId: TransactionIdStr; } export async function makeCoinAvailable( diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts b/packages/taler-wallet-core/src/operations/pay-merchant.ts index d45a93056..233038997 100644 --- a/packages/taler-wallet-core/src/operations/pay-merchant.ts +++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts @@ -80,9 +80,8 @@ import { CoinRecord, CoinStatus, DenominationRecord, - ProposalDownload, - PurchaseStatus, PurchaseRecord, + PurchaseStatus, RefundReason, RefundState, WalletContractData, @@ -115,7 +114,6 @@ import { throwUnexpectedRequestError, } from "../util/http.js"; import { checkDbInvariant, checkLogicInvariant } from "../util/invariants.js"; -import { GetReadOnlyAccess } from "../util/query.js"; import { OperationAttemptResult, OperationAttemptResultType, @@ -124,10 +122,10 @@ import { scheduleRetry, } from "../util/retries.js"; import { + makeEventId, spendCoins, - storeOperationPending, storeOperationError, - makeEventId, + storeOperationPending, } from "./common.js"; import { getExchangeDetails } from "./exchanges.js"; import { createRefreshGroup, getTotalRefreshCost } from "./refresh.js"; @@ -858,10 +856,9 @@ async function handleInsufficientFunds( payInfo.payCoinSelection = res; payInfo.payCoinSelection = res; payInfo.payCoinSelectionUid = encodeCrock(getRandomBytes(32)); - payInfo.coinDepositPermissions = undefined; await tx.purchases.put(p); await spendCoins(ws, tx, { - allocationId: `proposal:${p.proposalId}`, + allocationId: `tx:proposal:${p.proposalId}`, coinPubs: payInfo.payCoinSelection.coinPubs, contributions: payInfo.payCoinSelection.coinContributions, refreshReason: RefreshReason.PayMerchant, @@ -1732,14 +1729,13 @@ export async function confirmPay( payCoinSelection: coinSelection, payCoinSelectionUid: encodeCrock(getRandomBytes(16)), totalPayCost: payCostInfo, - coinDepositPermissions: depositPermissions, }; p.lastSessionId = sessionId; p.timestampAccept = TalerProtocolTimestamp.now(); p.purchaseStatus = PurchaseStatus.Paying; await tx.purchases.put(p); await spendCoins(ws, tx, { - allocationId: `proposal:${p.proposalId}`, + allocationId: `tx:proposal:${p.proposalId}`, coinPubs: coinSelection.coinPubs, contributions: coinSelection.coinContributions, refreshReason: RefreshReason.PayMerchant, @@ -1856,17 +1852,12 @@ export async function processPurchasePay( ).href; let depositPermissions: CoinDepositPermission[]; - - if (purchase.payInfo?.coinDepositPermissions) { - depositPermissions = purchase.payInfo.coinDepositPermissions; - } else { - // FIXME: also cache! - depositPermissions = await generateDepositPermissions( - ws, - payInfo.payCoinSelection, - download.contractData, - ); - } + // FIXME: Cache! + depositPermissions = await generateDepositPermissions( + ws, + payInfo.payCoinSelection, + download.contractData, + ); const reqBody = { coins: depositPermissions, -- cgit v1.2.3