commit 1fc6127d6cbcbbe19289f5d98caf78063575e15d parent ca42a3d4cec21b7fa510a323b3b395966aa01f2b Author: Florian Dold <florian@dold.me> Date: Mon, 9 Dec 2024 17:55:23 +0100 test: fix merchant sig in batch deposit Diffstat:
4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/packages/taler-harness/src/bench2.ts b/packages/taler-harness/src/bench2.ts @@ -120,7 +120,6 @@ export async function runBench2(configJson: any): Promise<void> { 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 @@ -101,7 +101,6 @@ export async function runExchangeDepositTest(t: GlobalTestState) { await depositCoin({ contractTermsHash, - merchantPub, merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, @@ -114,7 +113,6 @@ export async function runExchangeDepositTest(t: GlobalTestState) { // Idempotency await depositCoin({ contractTermsHash, - merchantPub, merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, @@ -128,7 +126,6 @@ export async function runExchangeDepositTest(t: GlobalTestState) { // Non-idempotent request with different amount await depositCoin({ contractTermsHash, - merchantPub, merchantPriv, wireSalt, amount: "TESTKUDOS:3.5" as AmountString, diff --git a/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts b/packages/taler-harness/src/integrationtests/test-wallet-dbless.ts @@ -111,7 +111,6 @@ export async function runWalletDblessTest(t: GlobalTestState) { await depositCoin({ contractTermsHash, - merchantPub, merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, @@ -124,7 +123,6 @@ export async function runWalletDblessTest(t: GlobalTestState) { // Idempotency await depositCoin({ contractTermsHash, - merchantPub, merchantPriv, wireSalt, amount: "TESTKUDOS:4" as AmountString, diff --git a/packages/taler-wallet-core/src/dbless.ts b/packages/taler-wallet-core/src/dbless.ts @@ -32,6 +32,8 @@ import { AmountString, Amounts, DenominationPubKey, + EddsaPrivateKeyString, + EddsaPublicKeyString, ExchangeBatchDepositRequest, ExchangeBatchWithdrawRequest, ExchangeMeltRequest, @@ -212,7 +214,6 @@ export async function depositCoin(args: { coin: CoinInfo; amount: AmountString; depositPayto?: string; - merchantPub: string; merchantPriv: string; contractTermsHash?: string; // 16 bytes, crockford encoded @@ -228,7 +229,19 @@ export async function depositCoin(args: { const depositTimestamp = timestampNow; const refundDeadline = timestampNow; const wireTransferDeadline = timestampNow; - const merchantPub = args.merchantPub ?? encodeCrock(getRandomBytes(32)); + let merchantPriv: EddsaPrivateKeyString; + let merchantPub: EddsaPublicKeyString; + if (args.merchantPriv) { + merchantPriv = args.merchantPriv; + const res = await cryptoApi.eddsaGetPublic({ + priv: merchantPriv, + }); + merchantPub = res.pub; + } else { + const res = await cryptoApi.createEddsaKeypair({}); + merchantPriv = res.priv; + merchantPub = res.pub; + } const dp = await cryptoApi.signDepositPermission({ coinPriv: coin.coinPriv, coinPub: coin.coinPub, @@ -246,7 +259,7 @@ export async function depositCoin(args: { }); const merchantContractSigResp = await cryptoApi.signContractTermsHash({ contractTermsHash, - merchantPriv: merchantPub, + merchantPriv: args.merchantPriv, }); const requestBody: ExchangeBatchDepositRequest = { coins: [