diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/taler-wallet-core/src/operations/deposits.ts | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/packages/taler-wallet-core/src/operations/deposits.ts b/packages/taler-wallet-core/src/operations/deposits.ts index 051cbc176..14d1f9e3f 100644 --- a/packages/taler-wallet-core/src/operations/deposits.ts +++ b/packages/taler-wallet-core/src/operations/deposits.ts @@ -441,7 +441,7 @@ export async function processDepositGroup( let updatedTxStatus: DepositElementStatus | undefined = undefined; type ValueOf<T> = T[keyof T]; - let newWiredTransaction: + let newWiredCoin: | { id: string; value: ValueOf<NonNullable<DepositGroupRecord["trackingState"]>>; @@ -484,7 +484,7 @@ export async function processDepositGroup( const raw = Amounts.parseOrThrow(track.coin_contribution); const wireFee = Amounts.parseOrThrow(fee.wireFee); - newWiredTransaction = { + newWiredCoin = { value: { amountRaw: Amounts.stringify(raw), wireFee: Amounts.stringify(wireFee), @@ -513,13 +513,20 @@ export async function processDepositGroup( if (updatedTxStatus !== undefined) { dg.transactionPerCoin[i] = updatedTxStatus; } - if (newWiredTransaction) { + if (newWiredCoin) { + /** + * FIXME: if there is a new wire information from the exchange + * it should add up to the previous tracking states. + * + * This may loose information by overriding prev state. + * + * And: add checks to integration tests + */ if (!dg.trackingState) { dg.trackingState = {}; } - dg.trackingState[newWiredTransaction.id] = - newWiredTransaction.value; + dg.trackingState[newWiredCoin.id] = newWiredCoin.value; } await tx.depositGroups.put(dg); }); |