From 79b77a0c3c5a9a07d22c276a63ed81eb30507eba Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 12 Feb 2023 21:13:30 +0100 Subject: wallet-core: skeleton support for regional currency scopes --- packages/taler-util/src/wallet-types.ts | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'packages/taler-util') diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts index 0f29b964b..96251540e 100644 --- a/packages/taler-util/src/wallet-types.ts +++ b/packages/taler-util/src/wallet-types.ts @@ -27,11 +27,7 @@ /** * Imports. */ -import { - AmountJson, - codecForAmountJson, - codecForAmountString, -} from "./amounts.js"; +import { AmountJson, codecForAmountString } from "./amounts.js"; import { BackupRecovery } from "./backup-types.js"; import { buildCodecForObject, @@ -116,6 +112,7 @@ export const codecForGetBalanceDetailRequest = .build("GetBalanceDetailRequest"); export interface Balance { + scopeInfo: ScopeInfo; available: AmountString; pendingIncoming: AmountString; pendingOutgoing: AmountString; @@ -137,12 +134,24 @@ export interface InitResponse { versionInfo: WalletCoreVersion; } +export enum ScopeType { + Global = "global", + Exchange = "exchange", + Auditor = "auditor", +} + +export type ScopeInfo = + | { type: ScopeType.Global; currency: string } + | { type: ScopeType.Exchange; currency: string; url: string } + | { type: ScopeType.Auditor; currency: string; url: string }; + export interface BalancesResponse { balances: Balance[]; } export const codecForBalance = (): Codec => buildCodecForObject() + .property("scopeInfo", codecForAny()) // FIXME .property("available", codecForString()) .property("hasPendingTransactions", codecForBoolean()) .property("pendingIncoming", codecForString()) @@ -1423,11 +1432,12 @@ export interface PreparePayTemplateRequest { templateParams: Record; } -export const codecForPreparePayTemplateRequest = (): Codec => - buildCodecForObject() - .property("talerPayTemplateUri", codecForString()) - .property("templateParams", codecForAny()) - .build("PreparePayTemplate"); +export const codecForPreparePayTemplateRequest = + (): Codec => + buildCodecForObject() + .property("talerPayTemplateUri", codecForString()) + .property("templateParams", codecForAny()) + .build("PreparePayTemplate"); export interface ConfirmPayRequest { proposalId: string; -- cgit v1.2.3