taler-typescript-core

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

commit f77489afa3e96b15ee9f3032f775aadda7594fe2
parent 6effcf5aeef4d19f71e6e1cf5c736f0fa49c36c8
Author: Özgür Kesim <oec@codeblau.de>
Date:   Tue, 27 Oct 2026 14:17:28 +0100

harness: wallet-dbless also refreshes with the v32 protocol (#11862)

Diffstat:
Mpackages/taler-harness/src/integrationtests/test-wallet-dbless.ts | 27++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts b/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts @@ -74,7 +74,7 @@ export async function runWalletDblessTest(t: GlobalTestState) { }); await topupReserveWithBank({ - amount: "TESTKUDOS:10" as AmountString, + amount: "TESTKUDOS:12" as AmountString, http, reservePub: reserveKeyPair.pub, corebankApiBaseUrl: bank.corebankApiBaseUrl, @@ -163,6 +163,31 @@ export async function runWalletDblessTest(t: GlobalTestState) { ], protocolVersion: 27, }); + + // Since protocol v45 the refresh commitment covers the transfer public + // keys; the exchange must still accept the commitment without them from + // wallets that melt with the v32 protocol (#11862). + const v32Coin = await withdrawCoin({ + http, + cryptoApi, + reserveKeyPair: { + reservePriv: reserveKeyPair.priv, + reservePub: reserveKeyPair.pub, + }, + denom: findDenomOrThrow(exchangeInfo, "TESTKUDOS:1" as AmountString), + exchangeBaseUrl: exchange.baseUrl, + }); + + await refreshCoin({ + oldCoin: v32Coin, + cryptoApi, + http, + newDenoms: [ + findDenomOrThrow(exchangeInfo, "TESTKUDOS:0.1" as AmountString), + findDenomOrThrow(exchangeInfo, "TESTKUDOS:0.1" as AmountString), + ], + protocolVersion: 32, + }); } catch (e) { if (e instanceof TalerError) { console.log(e);