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:
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,