taler-typescript-core

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

commit 72dfb31125aba1dc184f1cac065206fe000ba08f
parent 336b1619972a27a7227b2d744580d0687e9f3b19
Author: Florian Dold <florian@dold.me>
Date:   Wed, 30 Oct 2024 19:51:00 +0100

-some tests now need merchant priv

Diffstat:
Mpackages/taler-harness/src/bench2.ts | 6++++++
Mpackages/taler-harness/src/integrationtests/test-exchange-deposit.ts | 10++++++++--
Mpackages/taler-harness/src/integrationtests/test-wallet-dbless.ts | 9+++++++--
Mpackages/taler-wallet-core/src/dbless.ts | 8+++++++-
4 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/packages/taler-harness/src/bench2.ts b/packages/taler-harness/src/bench2.ts @@ -68,6 +68,10 @@ export async function runBench2(configJson: any): Promise<void> { const denomselAllowLate = false; + const merchantPair = await cryptoApi.createEddsaKeypair({}); + const merchantPub = merchantPair.pub; + const merchantPriv = merchantPair.priv; + for (let i = 0; i < numIter; i++) { const exchangeInfo = await downloadExchangeInfo(benchConf.exchange, http); @@ -115,6 +119,8 @@ export async function runBench2(configJson: any): Promise<void> { exchangeBaseUrl: benchConf.exchange, http, depositPayto: benchConf.payto, + merchantPriv, + merchantPub, }); const refreshDenoms = [ diff --git a/packages/taler-harness/src/integrationtests/test-exchange-deposit.ts b/packages/taler-harness/src/integrationtests/test-exchange-deposit.ts @@ -37,8 +37,8 @@ import { topupReserveWithBank, withdrawCoin, } from "@gnu-taler/taler-wallet-core/dbless"; -import { GlobalTestState } from "../harness/harness.js"; import { createSimpleTestkudosEnvironmentV2 } from "../harness/environments.js"; +import { GlobalTestState } from "../harness/harness.js"; /** * Run test for basic, bank-integrated withdrawal and payment. @@ -56,6 +56,10 @@ export async function runExchangeDepositTest(t: GlobalTestState) { ); const cryptoApi = cryptiDisp.cryptoApi; + const merchantPair = await cryptoApi.createEddsaKeypair({}); + const merchantPub = merchantPair.pub; + const merchantPriv = merchantPair.priv; + try { // Withdraw digital cash into the wallet. @@ -93,12 +97,12 @@ export async function runExchangeDepositTest(t: GlobalTestState) { }); const wireSalt = encodeCrock(getRandomBytes(16)); - const merchantPub = encodeCrock(getRandomBytes(32)); const contractTermsHash = encodeCrock(getRandomBytes(64)); await depositCoin({ contractTermsHash, merchantPub, + merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, coin: coin, @@ -111,6 +115,7 @@ export async function runExchangeDepositTest(t: GlobalTestState) { await depositCoin({ contractTermsHash, merchantPub, + merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, coin: coin, @@ -124,6 +129,7 @@ export async function runExchangeDepositTest(t: GlobalTestState) { await depositCoin({ contractTermsHash, merchantPub, + merchantPriv, wireSalt, amount: "TESTKUDOS:3.5" as AmountString, coin: coin, diff --git a/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts b/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts @@ -37,8 +37,8 @@ import { topupReserveWithBank, withdrawCoin, } from "@gnu-taler/taler-wallet-core/dbless"; -import { GlobalTestState, harnessHttpLib } from "../harness/harness.js"; import { createSimpleTestkudosEnvironmentV2 } from "../harness/environments.js"; +import { GlobalTestState, harnessHttpLib } from "../harness/harness.js"; /** * Run test for basic, bank-integrated withdrawal and payment. @@ -54,6 +54,10 @@ export async function runWalletDblessTest(t: GlobalTestState) { ); const cryptoApi = cryptiDisp.cryptoApi; + const merchantPair = await cryptoApi.createEddsaKeypair({}); + const merchantPub = merchantPair.pub; + const merchantPriv = merchantPair.priv; + try { // Withdraw digital cash into the wallet. @@ -103,12 +107,12 @@ export async function runWalletDblessTest(t: GlobalTestState) { }); const wireSalt = encodeCrock(getRandomBytes(16)); - const merchantPub = encodeCrock(getRandomBytes(32)); const contractTermsHash = encodeCrock(getRandomBytes(64)); await depositCoin({ contractTermsHash, merchantPub, + merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, coin: coin, @@ -121,6 +125,7 @@ export async function runWalletDblessTest(t: GlobalTestState) { await depositCoin({ contractTermsHash, merchantPub, + merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, coin: coin, diff --git a/packages/taler-wallet-core/src/dbless.ts b/packages/taler-wallet-core/src/dbless.ts @@ -212,7 +212,8 @@ export async function depositCoin(args: { coin: CoinInfo; amount: AmountString; depositPayto?: string; - merchantPub?: string; + merchantPub: string; + merchantPriv: string; contractTermsHash?: string; // 16 bytes, crockford encoded wireSalt?: string; @@ -243,6 +244,10 @@ export async function depositCoin(args: { refundDeadline: refundDeadline, wireInfoHash: hashWire(depositPayto, wireSalt), }); + const merchantContractSigResp = await cryptoApi.signContractTermsHash({ + contractTermsHash, + merchantPriv: merchantPub, + }); const requestBody: ExchangeBatchDepositRequest = { coins: [ { @@ -253,6 +258,7 @@ export async function depositCoin(args: { ub_sig: dp.ub_sig, }, ], + merchant_sig: merchantContractSigResp.sig, merchant_payto_uri: depositPayto, wire_salt: wireSalt, h_contract_terms: contractTermsHash,