From cd8f76db61f4a1ab1a8a8a4d29b2f3e863b59854 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 26 May 2023 12:19:32 +0200 Subject: taler-util,wallet-core: implement TalerPreciseTimestamp Fixes #7703 --- packages/taler-wallet-core/src/operations/pay-peer.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/pay-peer.ts') diff --git a/packages/taler-wallet-core/src/operations/pay-peer.ts b/packages/taler-wallet-core/src/operations/pay-peer.ts index 108be7339..f464948f8 100644 --- a/packages/taler-wallet-core/src/operations/pay-peer.ts +++ b/packages/taler-wallet-core/src/operations/pay-peer.ts @@ -78,6 +78,7 @@ import { TransactionState, TransactionMajorState, TransactionMinorState, + TalerPreciseTimestamp, } from "@gnu-taler/taler-util"; import { SpendCoinDetails } from "../crypto/cryptoImplementation.js"; import { @@ -728,7 +729,7 @@ export async function initiatePeerPushDebit( purseExpiration: purseExpiration, pursePriv: pursePair.priv, pursePub: pursePair.pub, - timestampCreated: TalerProtocolTimestamp.now(), + timestampCreated: TalerPreciseTimestamp.now(), status: PeerPushPaymentInitiationStatus.PendingCreatePurse, contractTerms: contractTerms, coinSel: { @@ -889,7 +890,7 @@ export async function preparePeerPushCredit( exchangeBaseUrl: exchangeBaseUrl, mergePriv: dec.mergePriv, pursePub: pursePub, - timestamp: TalerProtocolTimestamp.now(), + timestamp: TalerPreciseTimestamp.now(), contractTermsHash, status: PeerPushPaymentIncomingStatus.Proposed, withdrawalGroupId, @@ -1450,7 +1451,7 @@ export async function preparePeerPullDebit( contractPriv: contractPriv, exchangeBaseUrl: exchangeBaseUrl, pursePub: pursePub, - timestampCreated: TalerProtocolTimestamp.now(), + timestampCreated: TalerPreciseTimestamp.now(), contractTerms, status: PeerPullPaymentIncomingStatus.Proposed, totalCostEstimated: Amounts.stringify(totalAmount), @@ -1668,7 +1669,7 @@ export async function processPeerPullCredit( contractTermsHash: pullIni.contractTermsHash, flags: WalletAccountMergeFlags.CreateWithPurseFee, mergePriv: pullIni.mergePriv, - mergeTimestamp: pullIni.mergeTimestamp, + mergeTimestamp: TalerPreciseTimestamp.round(pullIni.mergeTimestamp), purseAmount: pullIni.contractTerms.amount, purseExpiration: purseExpiration, purseFee: purseFee, @@ -1680,7 +1681,7 @@ export async function processPeerPullCredit( const reservePurseReqBody: ExchangeReservePurseRequest = { merge_sig: sigRes.mergeSig, - merge_timestamp: pullIni.mergeTimestamp, + merge_timestamp: TalerPreciseTimestamp.round(pullIni.mergeTimestamp), h_contract_terms: pullIni.contractTermsHash, merge_pub: pullIni.mergePub, min_age: 0, @@ -1788,8 +1789,8 @@ async function getPreferredExchangeForCurrency( if (candidate.lastWithdrawal && e.lastWithdrawal) { if ( AbsoluteTime.cmp( - AbsoluteTime.fromTimestamp(e.lastWithdrawal), - AbsoluteTime.fromTimestamp(candidate.lastWithdrawal), + AbsoluteTime.fromPreciseTimestamp(e.lastWithdrawal), + AbsoluteTime.fromPreciseTimestamp(candidate.lastWithdrawal), ) > 0 ) { candidate = e; @@ -1874,7 +1875,7 @@ export async function initiatePeerPullPayment( exchangeBaseUrl: exchangeBaseUrl, }); - const mergeTimestamp = TalerProtocolTimestamp.now(); + const mergeTimestamp = TalerPreciseTimestamp.now(); const pursePair = await ws.cryptoApi.createEddsaKeypair({}); const mergePair = await ws.cryptoApi.createEddsaKeypair({}); -- cgit v1.2.3