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:
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,