From cffc4347a0b3a7b6024b4d274e7225f49f75eb08 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 19 Sep 2022 11:28:47 +0200 Subject: wallet-core: add wire method check in new coin selection --- packages/taler-wallet-core/src/operations/pay.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'packages/taler-wallet-core/src/operations/pay.ts') diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts index 52b23713d..a498ab28d 100644 --- a/packages/taler-wallet-core/src/operations/pay.ts +++ b/packages/taler-wallet-core/src/operations/pay.ts @@ -47,6 +47,7 @@ import { j2s, Logger, NotificationType, + parsePaytoUri, parsePayUri, PayCoinSelection, PreparePayResult, @@ -898,6 +899,19 @@ export async function selectCandidates( if (exchangeDetails?.currency !== req.contractTermsAmount.currency) { continue; } + let wireMethodSupported = false; + for (const acc of exchangeDetails.wireInfo.accounts) { + const pp = parsePaytoUri(acc.payto_uri); + checkLogicInvariant(!!pp); + if (pp.targetType === req.wireMethod) { + wireMethodSupported = true; + break; + } + } + if (!wireMethodSupported) { + break; + } + exchangeDetails.wireInfo.accounts; let accepted = false; for (const allowedExchange of req.exchanges) { if (allowedExchange.exchangePub === exchangeDetails.masterPublicKey) { -- cgit v1.2.3