From 56f5a1e3abe2679b4913ac87ff82860bb9675823 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 12 Aug 2020 15:48:02 +0530 Subject: codec --- .../taler-wallet-core/src/types/walletTypes.ts | 52 +++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) (limited to 'packages/taler-wallet-core/src/types') diff --git a/packages/taler-wallet-core/src/types/walletTypes.ts b/packages/taler-wallet-core/src/types/walletTypes.ts index 8faace033..d79ade971 100644 --- a/packages/taler-wallet-core/src/types/walletTypes.ts +++ b/packages/taler-wallet-core/src/types/walletTypes.ts @@ -27,7 +27,11 @@ /** * Imports. */ -import { AmountJson, codecForAmountJson } from "../util/amounts"; +import { + AmountJson, + codecForAmountJson, + codecForAmountString, +} from "../util/amounts"; import * as LibtoolVersion from "../util/libtoolVersion"; import { ExchangeRecord, @@ -42,8 +46,10 @@ import { Codec, makeCodecForList, codecForBoolean, + makeCodecForConstString, + codecForAny, } from "../util/codec"; -import { AmountString } from "./talerTypes"; +import { AmountString, codecForContractTerms } from "./talerTypes"; import { TransactionError } from "./transactions"; /** @@ -351,6 +357,48 @@ export const enum PreparePayResultType { AlreadyConfirmed = "already-confirmed", } +export const codecForPreparePayResultPaymentPossible = (): Codec< + PreparePayResultPaymentPossible +> => + makeCodecForObject() + .property("amountEffective", codecForAmountString()) + .property("amountRaw", codecForAmountString()) + .property("contractTerms", codecForAny) + .property("proposalId", codecForString) + .property( + "status", + makeCodecForConstString(PreparePayResultType.PaymentPossible), + ) + .build("PreparePayResultPaymentPossible"); + +export const codecForPreparePayResultInsufficientBalance = (): Codec< + PreparePayResultInsufficientBalance +> => + makeCodecForObject() + .property("amountRaw", codecForAmountString()) + .property("contractTerms", codecForAny) + .property("proposalId", codecForString) + .property( + "status", + makeCodecForConstString(PreparePayResultType.InsufficientBalance), + ) + .build("PreparePayResultInsufficientBalance"); + +export const codecForPreparePayResultAlreadyConfirmed = (): Codec< + PreparePayResultAlreadyConfirmed +> => + makeCodecForObject() + .property( + "status", + makeCodecForConstString(PreparePayResultType.AlreadyConfirmed), + ) + .property("amountEffective", codecForAmountString()) + .property("amountRaw", codecForAmountString()) + .property("nextUrl", codecForString) + .property("paid", codecForBoolean) + .property("contractTerms", codecForAny) + .build("PreparePayResultAlreadyConfirmed"); + export type PreparePayResult = | PreparePayResultInsufficientBalance | PreparePayResultAlreadyConfirmed -- cgit v1.2.3