diff options
Diffstat (limited to 'packages/taler-wallet-core/src/transactions.ts')
-rw-r--r-- | packages/taler-wallet-core/src/transactions.ts | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/packages/taler-wallet-core/src/transactions.ts b/packages/taler-wallet-core/src/transactions.ts index d7f0c0d18..3beb42187 100644 --- a/packages/taler-wallet-core/src/transactions.ts +++ b/packages/taler-wallet-core/src/transactions.ts @@ -132,7 +132,7 @@ import { computeTipTransactionActions, RewardTransactionContext, } from "./reward.js"; -import type { InternalWalletState } from "./wallet.js"; +import type { InternalWalletState, WalletExecutionContext } from "./wallet.js"; import { augmentPaytoUrisForWithdrawal, computeWithdrawalTransactionActions, @@ -215,7 +215,7 @@ const txOrder: { [t in TransactionType]: number } = { }; export async function getTransactionById( - ws: InternalWalletState, + wex: WalletExecutionContext, req: TransactionByIdRequest, ): Promise<Transaction> { const parsedTx = parseTransactionIdentifier(req.transactionId); @@ -228,7 +228,7 @@ export async function getTransactionById( case TransactionType.InternalWithdrawal: case TransactionType.Withdrawal: { const withdrawalGroupId = parsedTx.withdrawalGroupId; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( [ "withdrawalGroups", "exchangeDetails", @@ -273,7 +273,7 @@ export async function getTransactionById( case TransactionType.Payment: { const proposalId = parsedTx.proposalId; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( [ "purchases", "tombstones", @@ -284,7 +284,7 @@ export async function getTransactionById( async (tx) => { const purchase = await tx.purchases.get(proposalId); if (!purchase) throw Error("not found"); - const download = await expectProposalDownload(ws, purchase, tx); + const download = await expectProposalDownload(wex, purchase, tx); const contractData = download.contractData; const payOpId = TaskIdentifiers.forPay(purchase); const payRetryRecord = await tx.operationRetries.get(payOpId); @@ -306,7 +306,7 @@ export async function getTransactionById( case TransactionType.Refresh: { // FIXME: We should return info about the refresh here!; const refreshGroupId = parsedTx.refreshGroupId; - return await ws.db.runReadOnlyTx( + return await wex.db.runReadOnlyTx( ["refreshGroups", "operationRetries"], async (tx) => { const refreshGroupRec = await tx.refreshGroups.get(refreshGroupId); @@ -323,7 +323,7 @@ export async function getTransactionById( case TransactionType.Reward: { const tipId = parsedTx.walletRewardId; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( ["rewards", "operationRetries"], async (tx) => { const tipRecord = await tx.rewards.get(tipId); @@ -339,7 +339,7 @@ export async function getTransactionById( case TransactionType.Deposit: { const depositGroupId = parsedTx.depositGroupId; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( ["depositGroups", "operationRetries"], async (tx) => { const depositRecord = await tx.depositGroups.get(depositGroupId); @@ -354,7 +354,7 @@ export async function getTransactionById( } case TransactionType.Refund: { - return await ws.db.runReadOnlyTx( + return await wex.db.runReadOnlyTx( ["refundGroups", "purchases", "operationRetries", "contractTerms"], async (tx) => { const refundRecord = await tx.refundGroups.get( @@ -372,7 +372,7 @@ export async function getTransactionById( ); } case TransactionType.PeerPullDebit: { - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( ["peerPullDebit", "contractTerms"], async (tx) => { const debit = await tx.peerPullDebit.get(parsedTx.peerPullDebitId); @@ -391,7 +391,7 @@ export async function getTransactionById( } case TransactionType.PeerPushDebit: { - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( ["peerPushDebit", "contractTerms"], async (tx) => { const debit = await tx.peerPushDebit.get(parsedTx.pursePub); @@ -408,7 +408,7 @@ export async function getTransactionById( case TransactionType.PeerPushCredit: { const peerPushCreditId = parsedTx.peerPushCreditId; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( [ "peerPushCredit", "contractTerms", @@ -446,7 +446,7 @@ export async function getTransactionById( case TransactionType.PeerPullCredit: { const pursePub = parsedTx.pursePub; - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( [ "peerPullCredit", "contractTerms", @@ -1039,10 +1039,10 @@ async function buildTransactionForPurchase( } export async function getWithdrawalTransactionByUri( - ws: InternalWalletState, + wex: WalletExecutionContext, request: WithdrawalTransactionByURIRequest, ): Promise<TransactionWithdrawal | undefined> { - return await ws.db.runReadWriteTx( + return await wex.db.runReadWriteTx( ["withdrawalGroups", "exchangeDetails", "exchanges", "operationRetries"], async (tx) => { const withdrawalGroupRecord = @@ -1085,7 +1085,7 @@ export async function getWithdrawalTransactionByUri( * Retrieve the full event history for this wallet. */ export async function getTransactions( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionsRequest?: TransactionsRequest, ): Promise<TransactionsResponse> { const transactions: Transaction[] = []; @@ -1095,7 +1095,7 @@ export async function getTransactions( filter.onlyState = transactionsRequest.filterByState; } - await ws.db.runReadOnlyTx( + await wex.db.runReadOnlyTx( [ "coins", "denominations", @@ -1698,18 +1698,18 @@ function maybeTaskFromTransaction( * of a transaction. */ export async function retryTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { logger.info(`resetting retry timeout for ${transactionId}`); const taskId = maybeTaskFromTransaction(transactionId); if (taskId) { - ws.taskScheduler.resetTaskRetries(taskId); + wex.taskScheduler.resetTaskRetries(taskId); } } async function getContextForTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<TransactionContext> { const tx = parseTransactionIdentifier(transactionId); @@ -1718,26 +1718,26 @@ async function getContextForTransaction( } switch (tx.tag) { case TransactionType.Deposit: - return new DepositTransactionContext(ws, tx.depositGroupId); + return new DepositTransactionContext(wex, tx.depositGroupId); case TransactionType.Refresh: - return new RefreshTransactionContext(ws, tx.refreshGroupId); + return new RefreshTransactionContext(wex, tx.refreshGroupId); case TransactionType.InternalWithdrawal: case TransactionType.Withdrawal: - return new WithdrawTransactionContext(ws, tx.withdrawalGroupId); + return new WithdrawTransactionContext(wex, tx.withdrawalGroupId); case TransactionType.Payment: - return new PayMerchantTransactionContext(ws, tx.proposalId); + return new PayMerchantTransactionContext(wex, tx.proposalId); case TransactionType.PeerPullCredit: - return new PeerPullCreditTransactionContext(ws, tx.pursePub); + return new PeerPullCreditTransactionContext(wex, tx.pursePub); case TransactionType.PeerPushDebit: - return new PeerPushDebitTransactionContext(ws, tx.pursePub); + return new PeerPushDebitTransactionContext(wex, tx.pursePub); case TransactionType.PeerPullDebit: - return new PeerPullDebitTransactionContext(ws, tx.peerPullDebitId); + return new PeerPullDebitTransactionContext(wex, tx.peerPullDebitId); case TransactionType.PeerPushCredit: - return new PeerPushCreditTransactionContext(ws, tx.peerPushCreditId); + return new PeerPushCreditTransactionContext(wex, tx.peerPushCreditId); case TransactionType.Refund: - return new RefundTransactionContext(ws, tx.refundGroupId); + return new RefundTransactionContext(wex, tx.refundGroupId); case TransactionType.Reward: - return new RewardTransactionContext(ws, tx.walletRewardId); + return new RewardTransactionContext(wex, tx.walletRewardId); case TransactionType.Recoup: throw new Error("not yet supported"); //return new RecoupTransactionContext(ws, tx.recoupGroupId); @@ -1753,18 +1753,18 @@ async function getContextForTransaction( * to take longer (such as a backup, recovery or very large withdrawal operation). */ export async function suspendTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { - const ctx = await getContextForTransaction(ws, transactionId); + const ctx = await getContextForTransaction(wex, transactionId); await ctx.suspendTransaction(); } export async function failTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { - const ctx = await getContextForTransaction(ws, transactionId); + const ctx = await getContextForTransaction(wex, transactionId); await ctx.failTransaction(); } @@ -1772,10 +1772,10 @@ export async function failTransaction( * Resume a suspended transaction. */ export async function resumeTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { - const ctx = await getContextForTransaction(ws, transactionId); + const ctx = await getContextForTransaction(wex, transactionId); await ctx.resumeTransaction(); } @@ -1783,21 +1783,21 @@ export async function resumeTransaction( * Permanently delete a transaction based on the transaction ID. */ export async function deleteTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { - const ctx = await getContextForTransaction(ws, transactionId); + const ctx = await getContextForTransaction(wex, transactionId); await ctx.deleteTransaction(); if (ctx.taskId) { - ws.taskScheduler.stopShepherdTask(ctx.taskId); + wex.taskScheduler.stopShepherdTask(ctx.taskId); } } export async function abortTransaction( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, ): Promise<void> { - const ctx = await getContextForTransaction(ws, transactionId); + const ctx = await getContextForTransaction(wex, transactionId); await ctx.abortTransaction(); } @@ -1810,7 +1810,7 @@ export interface TransitionInfo { * Notify of a state transition if necessary. */ export function notifyTransition( - ws: InternalWalletState, + wex: WalletExecutionContext, transactionId: string, transitionInfo: TransitionInfo | undefined, experimentalUserData: any = undefined, @@ -1822,7 +1822,7 @@ export function notifyTransition( transitionInfo.oldTxState.minor === transitionInfo.newTxState.minor ) ) { - ws.notify({ + wex.ws.notify({ type: NotificationType.TransactionStateTransition, oldTxState: transitionInfo.oldTxState, newTxState: transitionInfo.newTxState, |