From 39ba26c7623a380c15bf183d25ec8f1fd60b65b6 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 17 Oct 2023 20:43:03 +0200 Subject: wallet-core: implement listExchangesForScopedCurrency --- packages/taler-wallet-core/src/wallet.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'packages/taler-wallet-core/src/wallet.ts') diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts index 06d9bb9e8..6600aa799 100644 --- a/packages/taler-wallet-core/src/wallet.ts +++ b/packages/taler-wallet-core/src/wallet.ts @@ -129,6 +129,9 @@ import { setDangerousTimetravel, TestingWaitTransactionRequest, codecForUpdateExchangeEntryRequest, + codecForListExchangesForScopedCurrencyRequest, + ListExchangesForScopedCurrencyRequest, + ExchangesShortListResponse, } from "@gnu-taler/taler-util"; import type { HttpRequestLibrary } from "@gnu-taler/taler-util/http"; import { readSuccessResponseJsonOrThrow } from "@gnu-taler/taler-util/http"; @@ -1132,6 +1135,24 @@ async function dispatchRequestInternal( case WalletApiOperation.ListExchanges: { return await getExchanges(ws); } + case WalletApiOperation.ListExchangesForScopedCurrency: { + const req = + codecForListExchangesForScopedCurrencyRequest().decode(payload); + const exchangesResp = await getExchanges(ws); + const result: ExchangesShortListResponse = { + exchanges: [], + }; + // Right now we only filter on the currency, as wallet-core doesn't + // fully support scoped currencies yet. + for (const exch of exchangesResp.exchanges) { + if (exch.currency === req.scope.currency) { + result.exchanges.push({ + exchangeBaseUrl: exch.exchangeBaseUrl, + }); + } + } + return result; + } case WalletApiOperation.GetExchangeDetailedInfo: { const req = codecForAddExchangeRequest().decode(payload); return await getExchangeDetailedInfo(ws, req.exchangeBaseUrl); -- cgit v1.2.3