taler-typescript-core

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

commit 0323868e10ca1fc5d3e10ad9e6866b986f552680
parent 0290c5fd379a4b4262d8835d4131b7c4e8a2f2f2
Author: Florian Dold <florian@dold.me>
Date:   Mon,  7 Mar 2022 20:44:18 +0100

fix tipping

Diffstat:
Mpackages/taler-util/src/talerTypes.ts | 13+------------
Mpackages/taler-wallet-cli/src/harness/harness.ts | 8+++++---
Mpackages/taler-wallet-core/src/crypto/cryptoTypes.ts | 2+-
Mpackages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts | 11++++++++---
Mpackages/taler-wallet-core/src/operations/tip.ts | 2--
5 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/packages/taler-util/src/talerTypes.ts b/packages/taler-util/src/talerTypes.ts @@ -609,7 +609,7 @@ export interface TipPlanchetDetail { /** * Coin's blinded public key. */ - coin_ev: string; + coin_ev: CoinEnvelope; } /** @@ -1307,17 +1307,6 @@ export const codecForMerchantRefundResponse = .property("refunds", codecForList(codecForMerchantRefundPermission())) .build("MerchantRefundResponse"); -export const codecForMerchantBlindSigWrapperV1 = - (): Codec<MerchantBlindSigWrapperV1> => - buildCodecForObject<MerchantBlindSigWrapperV1>() - .property("blind_sig", codecForString()) - .build("BlindSigWrapper"); - -export const codecForMerchantTipResponseV1 = (): Codec<MerchantTipResponseV1> => - buildCodecForObject<MerchantTipResponseV1>() - .property("blind_sigs", codecForList(codecForMerchantBlindSigWrapperV1())) - .build("MerchantTipResponseV1"); - export const codecForBlindSigWrapperV2 = (): Codec<MerchantBlindSigWrapperV2> => buildCodecForObject<MerchantBlindSigWrapperV2>() .property("blind_sig", codecForBlindedDenominationSignature()) diff --git a/packages/taler-wallet-cli/src/harness/harness.ts b/packages/taler-wallet-cli/src/harness/harness.ts @@ -1894,9 +1894,11 @@ export class MerchantService implements MerchantServiceInterface { default_max_deposit_fee: instanceConfig.defaultMaxDepositFee ?? `${this.merchantConfig.currency}:1.0`, - default_wire_transfer_delay: instanceConfig.defaultWireTransferDelay ?? { - d_ms: "forever", - }, + default_wire_transfer_delay: + instanceConfig.defaultWireTransferDelay ?? + Duration.fromSpec({ + days: 1, + }), default_pay_delay: instanceConfig.defaultPayDelay ?? { d_ms: "forever" }, }); } diff --git a/packages/taler-wallet-core/src/crypto/cryptoTypes.ts b/packages/taler-wallet-core/src/crypto/cryptoTypes.ts @@ -110,7 +110,7 @@ export interface DeriveTipRequest { */ export interface DerivedTipPlanchet { blindingKey: string; - coinEv: string; + coinEv: CoinEnvelope; coinEvHash: string; coinPriv: string; coinPub: string; diff --git a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts @@ -229,11 +229,16 @@ export class CryptoImplementation { const denomPub = decodeCrock(req.denomPub.rsa_public_key); const coinPubHash = hash(fc.coinPub); const ev = rsaBlind(coinPubHash, fc.bks, denomPub); - + const coinEv = { + cipher: DenomKeyType.Rsa, + rsa_blinded_planchet: encodeCrock(ev), + }; const tipPlanchet: DerivedTipPlanchet = { blindingKey: encodeCrock(fc.bks), - coinEv: encodeCrock(ev), - coinEvHash: encodeCrock(hash(ev)), + coinEv, + coinEvHash: encodeCrock( + hashCoinEv(coinEv, encodeCrock(hashDenomPub(req.denomPub))), + ), coinPriv: encodeCrock(fc.coinPriv), coinPub: encodeCrock(fc.coinPub), }; diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts @@ -27,13 +27,11 @@ import { NotificationType, TipPlanchetDetail, TalerErrorCode, - codecForMerchantTipResponseV1, Logger, URL, DenomKeyType, BlindedDenominationSignature, codecForMerchantTipResponseV2, - MerchantProtocolVersion, } from "@gnu-taler/taler-util"; import { DerivedTipPlanchet } from "../crypto/cryptoTypes.js"; import {