taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 23df01115277378669f2c550389b72281998a732
parent 04798ec39dde77796294ac6c20aed03cce9e7671
Author: Florian Dold <florian@dold.me>
Date:   Wed, 17 Jul 2024 01:33:55 +0200

wallet-core: fix p2p idempotency issue

Diffstat:
Mpackages/taler-wallet-core/src/pay-peer-push-credit.ts | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/packages/taler-wallet-core/src/pay-peer-push-credit.ts b/packages/taler-wallet-core/src/pay-peer-push-credit.ts @@ -15,6 +15,7 @@ */ import { + AbsoluteTime, AcceptPeerPushPaymentResponse, Amounts, ConfirmPeerPushCreditRequest, @@ -28,7 +29,6 @@ import { PreparePeerPushCreditResponse, TalerErrorCode, TalerPreciseTimestamp, - TalerProtocolTimestamp, TransactionAction, TransactionIdStr, TransactionMajorState, @@ -70,6 +70,7 @@ import { PeerPushPaymentIncomingRecord, WithdrawalGroupStatus, WithdrawalRecordType, + timestampPreciseFromDb, timestampPreciseToDb, } from "./db.js"; import { fetchFreshExchange } from "./exchanges.js"; @@ -677,7 +678,11 @@ async function handlePendingMerge( exchangeBaseUrl: peerInc.exchangeBaseUrl, }); - const mergeTimestamp = TalerProtocolTimestamp.now(); + const timestamp = timestampPreciseFromDb(peerInc.timestamp); + + const mergeTimestamp = AbsoluteTime.toProtocolTimestamp( + AbsoluteTime.fromPreciseTimestamp(timestamp), + ); const reservePayto = talerPaytoFromExchangeReserve( peerInc.exchangeBaseUrl,