aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/transactions.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-09-07 20:35:46 +0200
committerFlorian Dold <florian@dold.me>2023-09-08 00:12:52 +0200
commitc660db82c12e08020661828f1d8383baa7ef0e02 (patch)
tree655b3aa9cf91fae4a4b4052356b97a9b3b119376 /packages/taler-wallet-core/src/operations/transactions.ts
parent33f2798004b1235eeb33a66d08bf22243f5ae566 (diff)
downloadwallet-core-c660db82c12e08020661828f1d8383baa7ef0e02.tar.xz
wallet-core: address DB FIXMEs, systematic state numbering
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/transactions.ts122
1 files changed, 61 insertions, 61 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts
index 7f5302b25..5c57195c1 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -50,10 +50,10 @@ import {
OperationRetryRecord,
PeerPullPaymentIncomingRecord,
PeerPullDebitRecordStatus,
- PeerPullPaymentInitiationRecord,
+ PeerPullCreditRecord,
PeerPushPaymentIncomingRecord,
- PeerPushPaymentIncomingStatus,
- PeerPushPaymentInitiationRecord,
+ PeerPushCreditStatus,
+ PeerPushDebitRecord,
PurchaseRecord,
PurchaseStatus,
RefreshGroupRecord,
@@ -335,10 +335,10 @@ export async function getTransactionById(
}
case TransactionType.PeerPullDebit: {
return await ws.db
- .mktx((x) => [x.peerPullPaymentIncoming])
+ .mktx((x) => [x.peerPullDebit])
.runReadWrite(async (tx) => {
- const debit = await tx.peerPullPaymentIncoming.get(
- parsedTx.peerPullPaymentIncomingId,
+ const debit = await tx.peerPullDebit.get(
+ parsedTx.peerPullDebitId,
);
if (!debit) throw Error("not found");
return buildTransactionForPullPaymentDebit(debit);
@@ -347,9 +347,9 @@ export async function getTransactionById(
case TransactionType.PeerPushDebit: {
return await ws.db
- .mktx((x) => [x.peerPushPaymentInitiations, x.contractTerms])
+ .mktx((x) => [x.peerPushDebit, x.contractTerms])
.runReadWrite(async (tx) => {
- const debit = await tx.peerPushPaymentInitiations.get(
+ const debit = await tx.peerPushDebit.get(
parsedTx.pursePub,
);
if (!debit) throw Error("not found");
@@ -363,17 +363,17 @@ export async function getTransactionById(
}
case TransactionType.PeerPushCredit: {
- const peerPushPaymentIncomingId = parsedTx.peerPushPaymentIncomingId;
+ const peerPushCreditId = parsedTx.peerPushCreditId;
return await ws.db
.mktx((x) => [
- x.peerPushPaymentIncoming,
+ x.peerPushCredit,
x.contractTerms,
x.withdrawalGroups,
x.operationRetries,
])
.runReadWrite(async (tx) => {
- const pushInc = await tx.peerPushPaymentIncoming.get(
- peerPushPaymentIncomingId,
+ const pushInc = await tx.peerPushCredit.get(
+ peerPushCreditId,
);
if (!pushInc) throw Error("not found");
const ct = await tx.contractTerms.get(pushInc.contractTermsHash);
@@ -405,13 +405,13 @@ export async function getTransactionById(
const pursePub = parsedTx.pursePub;
return await ws.db
.mktx((x) => [
- x.peerPullPaymentInitiations,
+ x.peerPullCredit,
x.contractTerms,
x.withdrawalGroups,
x.operationRetries,
])
.runReadWrite(async (tx) => {
- const pushInc = await tx.peerPullPaymentInitiations.get(pursePub);
+ const pushInc = await tx.peerPullCredit.get(pursePub);
if (!pushInc) throw Error("not found");
const ct = await tx.contractTerms.get(pushInc.contractTermsHash);
checkDbInvariant(!!ct);
@@ -442,7 +442,7 @@ export async function getTransactionById(
}
function buildTransactionForPushPaymentDebit(
- pi: PeerPushPaymentInitiationRecord,
+ pi: PeerPushDebitRecord,
contractTerms: PeerContractTerms,
ort?: OperationRetryRecord,
): Transaction {
@@ -490,14 +490,14 @@ function buildTransactionForPullPaymentDebit(
timestamp: pi.timestampCreated,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPullDebit,
- peerPullPaymentIncomingId: pi.peerPullPaymentIncomingId,
+ peerPullDebitId: pi.peerPullDebitId,
}),
...(ort?.lastError ? { error: ort.lastError } : {}),
};
}
function buildTransactionForPeerPullCredit(
- pullCredit: PeerPullPaymentInitiationRecord,
+ pullCredit: PeerPullCreditRecord,
pullCreditOrt: OperationRetryRecord | undefined,
peerContractTerms: PeerContractTerms,
wsr: WithdrawalGroupRecord | undefined,
@@ -606,7 +606,7 @@ function buildTransactionForPeerPushCredit(
timestamp: wsr.timestampStart,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
- peerPushPaymentIncomingId: pushInc.peerPushPaymentIncomingId,
+ peerPushCreditId: pushInc.peerPushCreditId,
}),
kycUrl: pushInc.kycUrl,
...(wsrOrt?.lastError ? { error: wsrOrt.lastError } : {}),
@@ -629,7 +629,7 @@ function buildTransactionForPeerPushCredit(
timestamp: pushInc.timestamp,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
- peerPushPaymentIncomingId: pushInc.peerPushPaymentIncomingId,
+ peerPushCreditId: pushInc.peerPushCreditId,
}),
...(pushOrt?.lastError ? { error: pushOrt.lastError } : {}),
};
@@ -654,7 +654,7 @@ function buildTransactionForBankIntegratedWithdraw(
reservePub: wgRecord.reservePub,
bankConfirmationUrl: wgRecord.wgInfo.bankInfo.confirmUrl,
reserveIsReady:
- wgRecord.status === WithdrawalGroupStatus.Finished ||
+ wgRecord.status === WithdrawalGroupStatus.Done ||
wgRecord.status === WithdrawalGroupStatus.PendingReady,
},
kycUrl: wgRecord.kycUrl,
@@ -698,7 +698,7 @@ function buildTransactionForManualWithdraw(
reservePub: withdrawalGroup.reservePub,
exchangePaytoUris,
reserveIsReady:
- withdrawalGroup.status === WithdrawalGroupStatus.Finished ||
+ withdrawalGroup.status === WithdrawalGroupStatus.Done ||
withdrawalGroup.status === WithdrawalGroupStatus.PendingReady,
},
kycUrl: withdrawalGroup.kycUrl,
@@ -944,10 +944,10 @@ export async function getTransactions(
x.exchangeDetails,
x.exchanges,
x.operationRetries,
- x.peerPullPaymentIncoming,
- x.peerPushPaymentInitiations,
- x.peerPushPaymentIncoming,
- x.peerPullPaymentInitiations,
+ x.peerPullDebit,
+ x.peerPushDebit,
+ x.peerPushCredit,
+ x.peerPullCredit,
x.planchets,
x.purchases,
x.contractTerms,
@@ -985,7 +985,7 @@ export async function getTransactions(
}
if (
pi.status !== PeerPullDebitRecordStatus.PendingDeposit &&
- pi.status !== PeerPullDebitRecordStatus.DonePaid
+ pi.status !== PeerPullDebitRecordStatus.Done
) {
return;
}
@@ -1004,7 +1004,7 @@ export async function getTransactions(
if (shouldSkipSearch(transactionsRequest, [])) {
return;
}
- if (pi.status === PeerPushPaymentIncomingStatus.DialogProposed) {
+ if (pi.status === PeerPushCreditStatus.DialogProposed) {
// We don't report proposed push credit transactions, user needs
// to scan URI again and confirm to see it.
return;
@@ -1268,9 +1268,9 @@ export async function getTransactions(
export type ParsedTransactionIdentifier =
| { tag: TransactionType.Deposit; depositGroupId: string }
| { tag: TransactionType.Payment; proposalId: string }
- | { tag: TransactionType.PeerPullDebit; peerPullPaymentIncomingId: string }
+ | { tag: TransactionType.PeerPullDebit; peerPullDebitId: string }
| { tag: TransactionType.PeerPullCredit; pursePub: string }
- | { tag: TransactionType.PeerPushCredit; peerPushPaymentIncomingId: string }
+ | { tag: TransactionType.PeerPushCredit; peerPushCreditId: string }
| { tag: TransactionType.PeerPushDebit; pursePub: string }
| { tag: TransactionType.Refresh; refreshGroupId: string }
| { tag: TransactionType.Refund; refundGroupId: string }
@@ -1289,9 +1289,9 @@ export function constructTransactionIdentifier(
case TransactionType.PeerPullCredit:
return `txn:${pTxId.tag}:${pTxId.pursePub}` as TransactionIdStr;
case TransactionType.PeerPullDebit:
- return `txn:${pTxId.tag}:${pTxId.peerPullPaymentIncomingId}` as TransactionIdStr;
+ return `txn:${pTxId.tag}:${pTxId.peerPullDebitId}` as TransactionIdStr;
case TransactionType.PeerPushCredit:
- return `txn:${pTxId.tag}:${pTxId.peerPushPaymentIncomingId}` as TransactionIdStr;
+ return `txn:${pTxId.tag}:${pTxId.peerPushCreditId}` as TransactionIdStr;
case TransactionType.PeerPushDebit:
return `txn:${pTxId.tag}:${pTxId.pursePub}` as TransactionIdStr;
case TransactionType.Refresh:
@@ -1337,12 +1337,12 @@ export function parseTransactionIdentifier(
case TransactionType.PeerPullDebit:
return {
tag: TransactionType.PeerPullDebit,
- peerPullPaymentIncomingId: rest[0],
+ peerPullDebitId: rest[0],
};
case TransactionType.PeerPushCredit:
return {
tag: TransactionType.PeerPushCredit,
- peerPushPaymentIncomingId: rest[0],
+ peerPushCreditId: rest[0],
};
case TransactionType.PeerPushDebit:
return { tag: TransactionType.PeerPushDebit, pursePub: rest[0] };
@@ -1455,7 +1455,7 @@ export async function retryTransaction(
case TransactionType.PeerPullDebit: {
const taskId = constructTaskIdentifier({
tag: PendingTaskType.PeerPullDebit,
- peerPullPaymentIncomingId: parsedTx.peerPullPaymentIncomingId,
+ peerPullDebitId: parsedTx.peerPullDebitId,
});
await resetPendingTaskTimeout(ws, taskId);
stopLongpolling(ws, taskId);
@@ -1464,7 +1464,7 @@ export async function retryTransaction(
case TransactionType.PeerPushCredit: {
const taskId = constructTaskIdentifier({
tag: PendingTaskType.PeerPushCredit,
- peerPushPaymentIncomingId: parsedTx.peerPushPaymentIncomingId,
+ peerPushCreditId: parsedTx.peerPushCreditId,
});
await resetPendingTaskTimeout(ws, taskId);
stopLongpolling(ws, taskId);
@@ -1522,10 +1522,10 @@ export async function suspendTransaction(
await suspendPeerPushDebitTransaction(ws, tx.pursePub);
break;
case TransactionType.PeerPullDebit:
- await suspendPeerPullDebitTransaction(ws, tx.peerPullPaymentIncomingId);
+ await suspendPeerPullDebitTransaction(ws, tx.peerPullDebitId);
break;
case TransactionType.PeerPushCredit:
- await suspendPeerPushCreditTransaction(ws, tx.peerPushPaymentIncomingId);
+ await suspendPeerPushCreditTransaction(ws, tx.peerPushCreditId);
break;
case TransactionType.Refund:
throw Error("refund transactions can't be suspended or resumed");
@@ -1568,10 +1568,10 @@ export async function failTransaction(
await failPeerPullCreditTransaction(ws, tx.pursePub);
return;
case TransactionType.PeerPullDebit:
- await failPeerPullDebitTransaction(ws, tx.peerPullPaymentIncomingId);
+ await failPeerPullDebitTransaction(ws, tx.peerPullDebitId);
return;
case TransactionType.PeerPushCredit:
- await failPeerPushCreditTransaction(ws, tx.peerPushPaymentIncomingId);
+ await failPeerPushCreditTransaction(ws, tx.peerPushCreditId);
return;
case TransactionType.PeerPushDebit:
await failPeerPushDebitTransaction(ws, tx.pursePub);
@@ -1613,10 +1613,10 @@ export async function resumeTransaction(
await resumePeerPushDebitTransaction(ws, tx.pursePub);
break;
case TransactionType.PeerPullDebit:
- await resumePeerPullDebitTransaction(ws, tx.peerPullPaymentIncomingId);
+ await resumePeerPullDebitTransaction(ws, tx.peerPullDebitId);
break;
case TransactionType.PeerPushCredit:
- await resumePeerPushCreditTransaction(ws, tx.peerPushPaymentIncomingId);
+ await resumePeerPushCreditTransaction(ws, tx.peerPushCreditId);
break;
case TransactionType.Refund:
throw Error("refund transactions can't be suspended or resumed");
@@ -1641,16 +1641,16 @@ export async function deleteTransaction(
switch (parsedTx.tag) {
case TransactionType.PeerPushCredit: {
- const peerPushPaymentIncomingId = parsedTx.peerPushPaymentIncomingId;
+ const peerPushCreditId = parsedTx.peerPushCreditId;
await ws.db
.mktx((x) => [
x.withdrawalGroups,
- x.peerPushPaymentIncoming,
+ x.peerPushCredit,
x.tombstones,
])
.runReadWrite(async (tx) => {
- const pushInc = await tx.peerPushPaymentIncoming.get(
- peerPushPaymentIncomingId,
+ const pushInc = await tx.peerPushCredit.get(
+ peerPushCreditId,
);
if (!pushInc) {
return;
@@ -1668,12 +1668,12 @@ export async function deleteTransaction(
});
}
}
- await tx.peerPushPaymentIncoming.delete(peerPushPaymentIncomingId);
+ await tx.peerPushCredit.delete(peerPushCreditId);
await tx.tombstones.put({
id:
TombstoneTag.DeletePeerPushCredit +
":" +
- peerPushPaymentIncomingId,
+ peerPushCreditId,
});
});
return;
@@ -1684,11 +1684,11 @@ export async function deleteTransaction(
await ws.db
.mktx((x) => [
x.withdrawalGroups,
- x.peerPullPaymentInitiations,
+ x.peerPullCredit,
x.tombstones,
])
.runReadWrite(async (tx) => {
- const pullIni = await tx.peerPullPaymentInitiations.get(pursePub);
+ const pullIni = await tx.peerPullCredit.get(pursePub);
if (!pullIni) {
return;
}
@@ -1705,7 +1705,7 @@ export async function deleteTransaction(
});
}
}
- await tx.peerPullPaymentInitiations.delete(pursePub);
+ await tx.peerPullCredit.delete(pursePub);
await tx.tombstones.put({
id: TombstoneTag.DeletePeerPullCredit + ":" + pursePub,
});
@@ -1795,7 +1795,7 @@ export async function deleteTransaction(
case TransactionType.Refund: {
const refundGroupId = parsedTx.refundGroupId;
await ws.db
- .mktx((x) => [x.refundGroups, x.tombstones, x.refundItems])
+ .mktx((x) => [x.refundGroups, x.tombstones])
.runReadWrite(async (tx) => {
const refundRecord = await tx.refundGroups.get(refundGroupId);
if (!refundRecord) {
@@ -1809,15 +1809,15 @@ export async function deleteTransaction(
}
case TransactionType.PeerPullDebit: {
- const peerPullPaymentIncomingId = parsedTx.peerPullPaymentIncomingId;
+ const peerPullDebitId = parsedTx.peerPullDebitId;
await ws.db
- .mktx((x) => [x.peerPullPaymentIncoming, x.tombstones])
+ .mktx((x) => [x.peerPullDebit, x.tombstones])
.runReadWrite(async (tx) => {
- const debit = await tx.peerPullPaymentIncoming.get(
- peerPullPaymentIncomingId,
+ const debit = await tx.peerPullDebit.get(
+ peerPullDebitId,
);
if (debit) {
- await tx.peerPullPaymentIncoming.delete(peerPullPaymentIncomingId);
+ await tx.peerPullDebit.delete(peerPullDebitId);
await tx.tombstones.put({ id: transactionId });
}
});
@@ -1828,11 +1828,11 @@ export async function deleteTransaction(
case TransactionType.PeerPushDebit: {
const pursePub = parsedTx.pursePub;
await ws.db
- .mktx((x) => [x.peerPushPaymentInitiations, x.tombstones])
+ .mktx((x) => [x.peerPushDebit, x.tombstones])
.runReadWrite(async (tx) => {
- const debit = await tx.peerPushPaymentInitiations.get(pursePub);
+ const debit = await tx.peerPushDebit.get(pursePub);
if (debit) {
- await tx.peerPushPaymentInitiations.delete(pursePub);
+ await tx.peerPushDebit.delete(pursePub);
await tx.tombstones.put({ id: transactionId });
}
});
@@ -1875,10 +1875,10 @@ export async function abortTransaction(
await abortPeerPullCreditTransaction(ws, txId.pursePub);
break;
case TransactionType.PeerPullDebit:
- await abortPeerPullDebitTransaction(ws, txId.peerPullPaymentIncomingId);
+ await abortPeerPullDebitTransaction(ws, txId.peerPullDebitId);
break;
case TransactionType.PeerPushCredit:
- await abortPeerPushCreditTransaction(ws, txId.peerPushPaymentIncomingId);
+ await abortPeerPushCreditTransaction(ws, txId.peerPushCreditId);
break;
case TransactionType.PeerPushDebit:
await abortPeerPushDebitTransaction(ws, txId.pursePub);