summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/transactions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/transactions.ts')
-rw-r--r--packages/taler-wallet-core/src/transactions.ts86
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,