diff options
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts index a30120baa..7ee6275b0 100644 --- a/packages/taler-wallet-core/src/operations/transactions.ts +++ b/packages/taler-wallet-core/src/operations/transactions.ts @@ -66,6 +66,7 @@ import { } from "../db.js"; import { GetReadOnlyAccess, + PeerPushDebitStatus, timestampPreciseFromDb, timestampProtocolFromDb, WalletStoresV1, @@ -136,9 +137,9 @@ import { import { iterRecordsForDeposit, iterRecordsForPeerPullDebit, - iterRecordsForPeerPullInitiation, + iterRecordsForPeerPullInitiation as iterRecordsForPeerPullCredit, iterRecordsForPeerPushCredit, - iterRecordsForPeerPushInitiation, + iterRecordsForPeerPushInitiation as iterRecordsForPeerPushDebit, iterRecordsForPurchase, iterRecordsForRefresh, iterRecordsForRefund, @@ -463,6 +464,15 @@ function buildTransactionForPushPaymentDebit( contractTerms: PeerContractTerms, ort?: OperationRetryRecord, ): Transaction { + let talerUri: string | undefined = undefined; + switch (pi.status) { + case PeerPushDebitStatus.PendingReady: + case PeerPushDebitStatus.SuspendedReady: + talerUri = stringifyPayPushUri({ + exchangeBaseUrl: pi.exchangeBaseUrl, + contractPriv: pi.contractPriv, + }); + } return { type: TransactionType.PeerPushDebit, txState: computePeerPushDebitTransactionState(pi), @@ -475,10 +485,7 @@ function buildTransactionForPushPaymentDebit( summary: contractTerms.summary, }, timestamp: timestampPreciseFromDb(pi.timestampCreated), - talerUri: stringifyPayPushUri({ - exchangeBaseUrl: pi.exchangeBaseUrl, - contractPriv: pi.contractPriv, - }), + talerUri, transactionId: constructTransactionIdentifier({ tag: TransactionType.PeerPushDebit, pursePub: pi.pursePub, @@ -985,7 +992,7 @@ export async function getTransactions( x.refundGroups, ]) .runReadOnly(async (tx) => { - await iterRecordsForPeerPushInitiation(tx, filter, async (pi) => { + await iterRecordsForPeerPushDebit(tx, filter, async (pi) => { const amount = Amounts.parseOrThrow(pi.amount); if (shouldSkipCurrency(transactionsRequest, amount.currency)) { @@ -1073,7 +1080,7 @@ export async function getTransactions( ); }); - await iterRecordsForPeerPullInitiation(tx, filter, async (pi) => { + await iterRecordsForPeerPullCredit(tx, filter, async (pi) => { const currency = Amounts.currencyOf(pi.amount); if (shouldSkipCurrency(transactionsRequest, currency)) { return; |