aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-04-05 19:13:48 +0200
committerFlorian Dold <florian@dold.me>2024-04-05 19:13:55 +0200
commitf5747b394d14f65d9bee342eb30edf47a36d9751 (patch)
treeb340bb2182d6b002f4a73b0019ab74c41c0b1b98
parent90d799ef4d68f9287ce88d00f74dcb5dba99b021 (diff)
downloadwallet-core-f5747b394d14f65d9bee342eb30edf47a36d9751.tar.xz
wallet-core: make scope info mandatory on exchange entry responses
-rw-r--r--packages/taler-harness/src/integrationtests/test-wallet-config.ts2
-rw-r--r--packages/taler-util/src/wallet-types.ts8
-rw-r--r--packages/taler-wallet-core/src/exchanges.ts8
-rw-r--r--packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts7
-rw-r--r--packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts7
5 files changed, 24 insertions, 8 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-config.ts b/packages/taler-harness/src/integrationtests/test-wallet-config.ts
index 81a723473..461574031 100644
--- a/packages/taler-harness/src/integrationtests/test-wallet-config.ts
+++ b/packages/taler-harness/src/integrationtests/test-wallet-config.ts
@@ -45,9 +45,11 @@ export async function runWalletConfigTest(t: GlobalTestState) {
exchanges: [
{
exchangeBaseUrl: "https://exchange.demo.taler.net/",
+ currencyHint: "KUDOS",
},
{
exchangeBaseUrl: "https://exchange.test.taler.net/",
+ currencyHint: "TESTKUDOS",
},
],
},
diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts
index 441da7a87..40c837994 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -462,7 +462,7 @@ export interface GetCurrencySpecificationResponse {
export interface BuiltinExchange {
exchangeBaseUrl: string;
- currencyHint?: string;
+ currencyHint: string;
}
export interface PartialWalletRunConfig {
@@ -1397,7 +1397,7 @@ export interface ShortExchangeListItem {
export interface ExchangeListItem {
exchangeBaseUrl: string;
masterPub: string | undefined;
- currency: string | undefined;
+ currency: string;
paytoUris: string[];
tosStatus: ExchangeTosStatus;
exchangeEntryStatus: ExchangeEntryStatus;
@@ -1415,7 +1415,7 @@ export interface ExchangeListItem {
*/
noFees: boolean;
- scopeInfo: ScopeInfo | undefined;
+ scopeInfo: ScopeInfo;
lastUpdateTimestamp: TalerPreciseTimestamp | undefined;
@@ -1483,7 +1483,7 @@ export const codecForExchangeFullDetails = (): Codec<ExchangeFullDetails> =>
export const codecForExchangeListItem = (): Codec<ExchangeListItem> =>
buildCodecForObject<ExchangeListItem>()
- .property("currency", codecOptional(codecForString()))
+ .property("currency", codecForString())
.property("exchangeBaseUrl", codecForString())
.property("masterPub", codecOptional(codecForString()))
.property("paytoUris", codecForList(codecForString()))
diff --git a/packages/taler-wallet-core/src/exchanges.ts b/packages/taler-wallet-core/src/exchanges.ts
index cae758a43..ca8e48c06 100644
--- a/packages/taler-wallet-core/src/exchanges.ts
+++ b/packages/taler-wallet-core/src/exchanges.ts
@@ -327,7 +327,7 @@ async function makeExchangeListItem(
masterPub: exchangeDetails?.masterPublicKey,
noFees: r.noFees ?? false,
peerPaymentsDisabled: r.peerPaymentsDisabled ?? false,
- currency: exchangeDetails?.currency ?? r.presetCurrencyHint,
+ currency: exchangeDetails?.currency ?? r.presetCurrencyHint ?? "UNKNOWN",
exchangeUpdateStatus: getExchangeUpdateStatusFromRecord(r),
exchangeEntryStatus: getExchangeEntryStatusFromRecord(r),
tosStatus: getExchangeTosStatusFromRecord(r),
@@ -337,7 +337,11 @@ async function makeExchangeListItem(
paytoUris: exchangeDetails?.wireInfo.accounts.map((x) => x.payto_uri) ?? [],
lastUpdateTimestamp: timestampOptionalPreciseFromDb(r.lastUpdate),
lastUpdateErrorInfo,
- scopeInfo,
+ scopeInfo: scopeInfo ?? {
+ type: ScopeType.Exchange,
+ currency: "UNKNOWN",
+ url: r.baseUrl,
+ },
};
}
diff --git a/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts b/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
index aa844f175..d0e78a94e 100644
--- a/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
+++ b/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
@@ -23,6 +23,7 @@ import {
ExchangeEntryStatus,
ExchangeTosStatus,
ExchangeUpdateStatus,
+ ScopeType,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import * as tests from "@gnu-taler/web-util/testing";
@@ -48,7 +49,11 @@ describe("AddExchange states", () => {
{
exchangeBaseUrl: "http://exchange.local/",
ageRestrictionOptions: [],
- scopeInfo: undefined,
+ scopeInfo: {
+ currency: "ARS",
+ type: ScopeType.Exchange,
+ url: "http://exchange.local/",
+ },
masterPub: "123qwe123",
currency: "ARS",
exchangeEntryStatus: ExchangeEntryStatus.Ephemeral,
diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
index 29cf23739..683378613 100644
--- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
+++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
@@ -25,6 +25,7 @@ import {
ExchangeListItem,
ExchangeTosStatus,
ExchangeUpdateStatus,
+ ScopeType,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import * as tests from "@gnu-taler/web-util/testing";
@@ -37,7 +38,11 @@ const exchangeArs: ExchangeListItem = {
currency: "ARS",
exchangeBaseUrl: "http://",
masterPub: "123qwe123",
- scopeInfo: undefined,
+ scopeInfo: {
+ currency: "ARS",
+ type: ScopeType.Exchange,
+ url: "http://",
+ },
tosStatus: ExchangeTosStatus.Accepted,
exchangeEntryStatus: ExchangeEntryStatus.Used,
exchangeUpdateStatus: ExchangeUpdateStatus.Initial,