aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/deposits.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/operations/deposits.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/deposits.ts41
1 files changed, 22 insertions, 19 deletions
diff --git a/packages/taler-wallet-core/src/operations/deposits.ts b/packages/taler-wallet-core/src/operations/deposits.ts
index a8ec859cf..3d78e938b 100644
--- a/packages/taler-wallet-core/src/operations/deposits.ts
+++ b/packages/taler-wallet-core/src/operations/deposits.ts
@@ -510,10 +510,10 @@ async function refundDepositGroup(
ws: InternalWalletState,
depositGroup: DepositGroupRecord,
): Promise<TaskRunResult> {
- const newTxPerCoin = [...depositGroup.transactionPerCoin];
- logger.info(`status per coin: ${j2s(depositGroup.transactionPerCoin)}`);
- for (let i = 0; i < depositGroup.transactionPerCoin.length; i++) {
- const st = depositGroup.transactionPerCoin[i];
+ const newTxPerCoin = [...depositGroup.statusPerCoin];
+ logger.info(`status per coin: ${j2s(depositGroup.statusPerCoin)}`);
+ for (let i = 0; i < depositGroup.statusPerCoin.length; i++) {
+ const st = depositGroup.statusPerCoin[i];
switch (st) {
case DepositElementStatus.RefundFailed:
case DepositElementStatus.RefundSuccess:
@@ -593,7 +593,7 @@ async function refundDepositGroup(
if (!newDg) {
return;
}
- newDg.transactionPerCoin = newTxPerCoin;
+ newDg.statusPerCoin = newTxPerCoin;
const refreshCoins: CoinRefreshRequest[] = [];
for (let i = 0; i < newTxPerCoin.length; i++) {
refreshCoins.push({
@@ -766,7 +766,7 @@ async function processDepositGroupPendingTrack(
cancellationToken?: CancellationToken,
): Promise<TaskRunResult> {
const { depositGroupId } = depositGroup;
- for (let i = 0; i < depositGroup.depositedPerCoin.length; i++) {
+ for (let i = 0; i < depositGroup.statusPerCoin.length; i++) {
const coinPub = depositGroup.payCoinSelection.coinPubs[i];
// FIXME: Make the URL part of the coin selection?
const exchangeBaseUrl = await ws.db
@@ -785,7 +785,7 @@ async function processDepositGroupPendingTrack(
}
| undefined;
- if (depositGroup.transactionPerCoin[i] !== DepositElementStatus.Wired) {
+ if (depositGroup.statusPerCoin[i] !== DepositElementStatus.Wired) {
const track = await trackDeposit(
ws,
depositGroup,
@@ -810,7 +810,7 @@ async function processDepositGroupPendingTrack(
exchangeBaseUrl,
);
} else {
- updatedTxStatus = DepositElementStatus.Accepted;
+ updatedTxStatus = DepositElementStatus.Tracking;
}
} else if (track.type === "wired") {
updatedTxStatus = DepositElementStatus.Wired;
@@ -840,7 +840,7 @@ async function processDepositGroupPendingTrack(
id: track.exchange_sig,
};
} else {
- updatedTxStatus = DepositElementStatus.Unknown;
+ updatedTxStatus = DepositElementStatus.DepositPending;
}
}
@@ -853,7 +853,7 @@ async function processDepositGroupPendingTrack(
return;
}
if (updatedTxStatus !== undefined) {
- dg.transactionPerCoin[i] = updatedTxStatus;
+ dg.statusPerCoin[i] = updatedTxStatus;
}
if (newWiredCoin) {
/**
@@ -885,8 +885,8 @@ async function processDepositGroupPendingTrack(
return undefined;
}
const oldTxState = computeDepositTransactionStatus(dg);
- for (let i = 0; i < depositGroup.depositedPerCoin.length; i++) {
- if (depositGroup.transactionPerCoin[i] !== DepositElementStatus.Wired) {
+ for (let i = 0; i < depositGroup.statusPerCoin.length; i++) {
+ if (depositGroup.statusPerCoin[i] !== DepositElementStatus.Wired) {
allWired = false;
break;
}
@@ -943,7 +943,7 @@ async function processDepositGroupPendingDeposit(
for (let i = 0; i < depositPermissions.length; i++) {
const perm = depositPermissions[i];
- if (depositGroup.depositedPerCoin[i]) {
+ if (depositGroup.statusPerCoin[i] !== DepositElementStatus.DepositPending) {
continue;
}
@@ -980,8 +980,12 @@ async function processDepositGroupPendingDeposit(
if (!dg) {
return;
}
- dg.depositedPerCoin[i] = true;
- await tx.depositGroups.put(dg);
+ const coinStatus = dg.statusPerCoin[i];
+ switch (coinStatus) {
+ case DepositElementStatus.DepositPending:
+ dg.statusPerCoin[i] = DepositElementStatus.Tracking;
+ await tx.depositGroups.put(dg);
+ }
});
}
@@ -1373,16 +1377,15 @@ export async function createDepositGroup(
noncePub: noncePair.pub,
timestampCreated: AbsoluteTime.toPreciseTimestamp(now),
timestampFinished: undefined,
- transactionPerCoin: payCoinSel.coinSel.coinPubs.map(
- () => DepositElementStatus.Unknown,
+ statusPerCoin: payCoinSel.coinSel.coinPubs.map(
+ () => DepositElementStatus.DepositPending,
),
payCoinSelection: payCoinSel.coinSel,
payCoinSelectionUid: encodeCrock(getRandomBytes(32)),
- depositedPerCoin: payCoinSel.coinSel.coinPubs.map(() => false),
merchantPriv: merchantPair.priv,
merchantPub: merchantPair.pub,
totalPayCost: Amounts.stringify(totalDepositCost),
- effectiveDepositAmount: Amounts.stringify(
+ counterpartyEffectiveDepositAmount: Amounts.stringify(
counterpartyEffectiveDepositAmount,
),
wire: {