taler-typescript-core

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

commit c1321afc21877ca2c8d0220d420e29d329b3c0bb
parent 0956ea297885e131ed5bcdf0a10e12d47cbe0f56
Author: Florian Dold <florian@dold.me>
Date:   Wed, 22 Jul 2026 21:29:10 +0200

fix drifting timestamp in deposit idempotency test

Diffstat:
Mpackages/taler-harness/src/integrationtests/test-exchange-deposit.ts | 6++++++
Mpackages/taler-wallet-core/src/dbless.ts | 8++++++--
2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/test-exchange-deposit.ts b/packages/taler-harness/src/integrationtests/test-exchange-deposit.ts @@ -24,6 +24,7 @@ import { j2s, Logger, TalerError, + TalerProtocolTimestamp, } from "@gnu-taler/taler-util"; import { createPlatformHttpLib } from "@gnu-taler/taler-util/http"; import { @@ -100,6 +101,8 @@ export async function runExchangeDepositTest(t: GlobalTestState) { const wireSalt = encodeCrock(getRandomBytes(16)); const contractTermsHash = encodeCrock(getRandomBytes(64)); + const timestamp = TalerProtocolTimestamp.now(); + await depositCoin({ contractTermsHash, merchantPriv, @@ -109,6 +112,7 @@ export async function runExchangeDepositTest(t: GlobalTestState) { cryptoApi, exchangeBaseUrl: exchange.baseUrl, http, + timestamp, }); // Idempotency @@ -121,6 +125,7 @@ export async function runExchangeDepositTest(t: GlobalTestState) { cryptoApi, exchangeBaseUrl: exchange.baseUrl, http, + timestamp, }); try { @@ -134,6 +139,7 @@ export async function runExchangeDepositTest(t: GlobalTestState) { cryptoApi, exchangeBaseUrl: exchange.baseUrl, http, + timestamp, }); } catch (e) { if (e instanceof TalerError && e.errorDetail.code === 7005) { diff --git a/packages/taler-wallet-core/src/dbless.ts b/packages/taler-wallet-core/src/dbless.ts @@ -40,8 +40,11 @@ import { ExchangeMeltRequestV2, ExchangeRefreshRevealRequestV2, Logger, + Paytos, + Result, TalerCorebankApiClient, TalerExchangeHttpClient, + TalerProtocolTimestamp, UnblindedDenominationSignature, codecForAny, codecForBankWithdrawalOperationPostResponse, @@ -51,8 +54,6 @@ import { hashDenomPub, hashWire, j2s, - Paytos, - Result, succeedOrThrow, } from "@gnu-taler/taler-util"; import { @@ -260,6 +261,7 @@ export async function depositCoin(args: { contractTermsHash?: string; // 16 bytes, crockford encoded wireSalt?: string; + timestamp?: TalerProtocolTimestamp; }): Promise<void> { return await depositCoinBatch({ coins: [args.coin], @@ -271,6 +273,7 @@ export async function depositCoin(args: { depositPayto: args.depositPayto, contractTermsHash: args.contractTermsHash, wireSalt: args.wireSalt, + timestamp: args.timestamp, }); } @@ -285,6 +288,7 @@ export async function depositCoinBatch(args: { contractTermsHash?: string; // 16 bytes, crockford encoded wireSalt?: string; + timestamp?: TalerProtocolTimestamp; }): Promise<void> { const { coins, amounts, http, cryptoApi } = args; const depositPayto =