rename for consistency
This commit is contained in:
parent
56f5a1e3ab
commit
8d7b171d02
@ -35,7 +35,7 @@ import {
|
||||
AmountJson,
|
||||
Amounts,
|
||||
Codec,
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
Duration,
|
||||
CoreApiResponse,
|
||||
@ -627,9 +627,9 @@ export interface WithdrawalOperationInfo {
|
||||
}
|
||||
|
||||
const codecForWithdrawalOperationInfo = (): Codec<WithdrawalOperationInfo> =>
|
||||
makeCodecForObject<WithdrawalOperationInfo>()
|
||||
.property("withdrawal_id", codecForString)
|
||||
.property("taler_withdraw_uri", codecForString)
|
||||
buildCodecForObject<WithdrawalOperationInfo>()
|
||||
.property("withdrawal_id", codecForString())
|
||||
.property("taler_withdraw_uri", codecForString())
|
||||
.build("WithdrawalOperationInfo");
|
||||
|
||||
export const defaultCoinConfig = [
|
||||
|
@ -28,19 +28,20 @@ import {
|
||||
ContractTerms,
|
||||
Duration,
|
||||
Codec,
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
makeCodecOptional,
|
||||
makeCodecForConstString,
|
||||
codecOptional,
|
||||
codecForConstString,
|
||||
codecForBoolean,
|
||||
codecForNumber,
|
||||
codecForContractTerms,
|
||||
codecForAny,
|
||||
makeCodecForUnion,
|
||||
buildCodecForUnion,
|
||||
AmountString,
|
||||
Timestamp,
|
||||
CoinPublicKeyString,
|
||||
} from "taler-wallet-core";
|
||||
import { codecForAmountString } from "taler-wallet-core/lib/util/amounts";
|
||||
|
||||
export interface PostOrderRequest {
|
||||
// The order must at least contain the minimal
|
||||
@ -72,43 +73,43 @@ export interface PostOrderResponse {
|
||||
}
|
||||
|
||||
export const codecForPostOrderResponse = (): Codec<PostOrderResponse> =>
|
||||
makeCodecForObject<PostOrderResponse>()
|
||||
.property("order_id", codecForString)
|
||||
.property("token", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<PostOrderResponse>()
|
||||
.property("order_id", codecForString())
|
||||
.property("token", codecOptional(codecForString()))
|
||||
.build("PostOrderResponse");
|
||||
|
||||
export const codecForCheckPaymentPaidResponse = (): Codec<
|
||||
CheckPaymentPaidResponse
|
||||
> =>
|
||||
makeCodecForObject<CheckPaymentPaidResponse>()
|
||||
.property("order_status", makeCodecForConstString("paid"))
|
||||
buildCodecForObject<CheckPaymentPaidResponse>()
|
||||
.property("order_status", codecForConstString("paid"))
|
||||
.property("refunded", codecForBoolean)
|
||||
.property("wired", codecForBoolean)
|
||||
.property("deposit_total", codecForString)
|
||||
.property("exchange_ec", codecForNumber)
|
||||
.property("exchange_hc", codecForNumber)
|
||||
.property("refund_amount", codecForString)
|
||||
.property("deposit_total", codecForAmountString())
|
||||
.property("exchange_ec", codecForNumber())
|
||||
.property("exchange_hc", codecForNumber())
|
||||
.property("refund_amount", codecForAmountString())
|
||||
.property("contract_terms", codecForContractTerms())
|
||||
// FIXME: specify
|
||||
.property("wire_details", codecForAny)
|
||||
.property("wire_reports", codecForAny)
|
||||
.property("refund_details", codecForAny)
|
||||
.property("wire_details", codecForAny())
|
||||
.property("wire_reports", codecForAny())
|
||||
.property("refund_details", codecForAny())
|
||||
.build("CheckPaymentPaidResponse");
|
||||
|
||||
export const codecForCheckPaymentUnpaidResponse = (): Codec<
|
||||
CheckPaymentUnpaidResponse
|
||||
> =>
|
||||
makeCodecForObject<CheckPaymentUnpaidResponse>()
|
||||
.property("order_status", makeCodecForConstString("unpaid"))
|
||||
.property("taler_pay_uri", codecForString)
|
||||
.property("order_status_url", codecForString)
|
||||
.property("already_paid_order_id", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<CheckPaymentUnpaidResponse>()
|
||||
.property("order_status", codecForConstString("unpaid"))
|
||||
.property("taler_pay_uri", codecForString())
|
||||
.property("order_status_url", codecForString())
|
||||
.property("already_paid_order_id", codecOptional(codecForString()))
|
||||
.build("CheckPaymentPaidResponse");
|
||||
|
||||
export const codecForMerchantOrderPrivateStatusResponse = (): Codec<
|
||||
MerchantOrderPrivateStatusResponse
|
||||
> =>
|
||||
makeCodecForUnion<MerchantOrderPrivateStatusResponse>()
|
||||
buildCodecForUnion<MerchantOrderPrivateStatusResponse>()
|
||||
.discriminateOn("order_status")
|
||||
.alternative("paid", codecForCheckPaymentPaidResponse())
|
||||
.alternative("unpaid", codecForCheckPaymentUnpaidResponse())
|
||||
|
@ -31,7 +31,7 @@ import {
|
||||
TalerUriType,
|
||||
decodeCrock,
|
||||
addPaytoQueryParams,
|
||||
makeCodecForList,
|
||||
codecForList,
|
||||
codecForString,
|
||||
printTestVectors,
|
||||
} from "taler-wallet-core";
|
||||
@ -548,7 +548,7 @@ advancedCli
|
||||
});
|
||||
});
|
||||
|
||||
const coinPubListCodec = makeCodecForList(codecForString);
|
||||
const coinPubListCodec = codecForList(codecForString());
|
||||
|
||||
advancedCli
|
||||
.subcommand("suspendCoins", "suspend-coins", {
|
||||
|
@ -112,7 +112,7 @@ async function createBankWithdrawalUri(
|
||||
},
|
||||
},
|
||||
);
|
||||
const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny);
|
||||
const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny());
|
||||
return respJson;
|
||||
}
|
||||
|
||||
@ -135,7 +135,7 @@ async function confirmBankWithdrawalUri(
|
||||
},
|
||||
},
|
||||
);
|
||||
await readSuccessResponseJsonOrThrow(resp, codecForAny);
|
||||
await readSuccessResponseJsonOrThrow(resp, codecForAny());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,6 @@ import {
|
||||
PaymentShortInfo,
|
||||
} from "../types/transactions";
|
||||
import { getFundingPaytoUris } from "./reserves";
|
||||
import { ResultLevel } from "idb-bridge";
|
||||
|
||||
/**
|
||||
* Create an event ID from the type and the primary key for the event.
|
||||
|
@ -23,8 +23,8 @@
|
||||
*/
|
||||
import {
|
||||
codecForString,
|
||||
makeCodecForObject,
|
||||
makeCodecForList,
|
||||
buildCodecForObject,
|
||||
codecForList,
|
||||
Codec,
|
||||
} from "../util/codec";
|
||||
import { AmountString } from "./talerTypes";
|
||||
@ -51,7 +51,7 @@ export interface ReserveStatus {
|
||||
}
|
||||
|
||||
export const codecForReserveStatus = (): Codec<ReserveStatus> =>
|
||||
makeCodecForObject<ReserveStatus>()
|
||||
.property("balance", codecForString)
|
||||
.property("history", makeCodecForList(codecForReserveTransaction()))
|
||||
buildCodecForObject<ReserveStatus>()
|
||||
.property("balance", codecForString())
|
||||
.property("history", codecForList(codecForReserveTransaction()))
|
||||
.build("ReserveStatus");
|
||||
|
@ -23,9 +23,9 @@
|
||||
*/
|
||||
import {
|
||||
codecForString,
|
||||
makeCodecForObject,
|
||||
makeCodecForConstString,
|
||||
makeCodecForUnion,
|
||||
buildCodecForObject,
|
||||
codecForConstString,
|
||||
buildCodecForUnion,
|
||||
Codec,
|
||||
} from "../util/codec";
|
||||
import {
|
||||
@ -182,54 +182,54 @@ export type ReserveTransaction =
|
||||
export const codecForReserveWithdrawTransaction = (): Codec<
|
||||
ReserveWithdrawTransaction
|
||||
> =>
|
||||
makeCodecForObject<ReserveWithdrawTransaction>()
|
||||
.property("amount", codecForString)
|
||||
.property("h_coin_envelope", codecForString)
|
||||
.property("h_denom_pub", codecForString)
|
||||
.property("reserve_sig", codecForString)
|
||||
.property("type", makeCodecForConstString(ReserveTransactionType.Withdraw))
|
||||
.property("withdraw_fee", codecForString)
|
||||
buildCodecForObject<ReserveWithdrawTransaction>()
|
||||
.property("amount", codecForString())
|
||||
.property("h_coin_envelope", codecForString())
|
||||
.property("h_denom_pub", codecForString())
|
||||
.property("reserve_sig", codecForString())
|
||||
.property("type", codecForConstString(ReserveTransactionType.Withdraw))
|
||||
.property("withdraw_fee", codecForString())
|
||||
.build("ReserveWithdrawTransaction");
|
||||
|
||||
export const codecForReserveCreditTransaction = (): Codec<
|
||||
ReserveCreditTransaction
|
||||
> =>
|
||||
makeCodecForObject<ReserveCreditTransaction>()
|
||||
.property("amount", codecForString)
|
||||
.property("sender_account_url", codecForString)
|
||||
buildCodecForObject<ReserveCreditTransaction>()
|
||||
.property("amount", codecForString())
|
||||
.property("sender_account_url", codecForString())
|
||||
.property("timestamp", codecForTimestamp)
|
||||
.property("wire_reference", codecForString)
|
||||
.property("type", makeCodecForConstString(ReserveTransactionType.Credit))
|
||||
.property("wire_reference", codecForString())
|
||||
.property("type", codecForConstString(ReserveTransactionType.Credit))
|
||||
.build("ReserveCreditTransaction");
|
||||
|
||||
export const codecForReserveClosingTransaction = (): Codec<
|
||||
ReserveClosingTransaction
|
||||
> =>
|
||||
makeCodecForObject<ReserveClosingTransaction>()
|
||||
.property("amount", codecForString)
|
||||
.property("closing_fee", codecForString)
|
||||
.property("exchange_pub", codecForString)
|
||||
.property("exchange_sig", codecForString)
|
||||
.property("h_wire", codecForString)
|
||||
buildCodecForObject<ReserveClosingTransaction>()
|
||||
.property("amount", codecForString())
|
||||
.property("closing_fee", codecForString())
|
||||
.property("exchange_pub", codecForString())
|
||||
.property("exchange_sig", codecForString())
|
||||
.property("h_wire", codecForString())
|
||||
.property("timestamp", codecForTimestamp)
|
||||
.property("type", makeCodecForConstString(ReserveTransactionType.Closing))
|
||||
.property("wtid", codecForString)
|
||||
.property("type", codecForConstString(ReserveTransactionType.Closing))
|
||||
.property("wtid", codecForString())
|
||||
.build("ReserveClosingTransaction");
|
||||
|
||||
export const codecForReserveRecoupTransaction = (): Codec<
|
||||
ReserveRecoupTransaction
|
||||
> =>
|
||||
makeCodecForObject<ReserveRecoupTransaction>()
|
||||
.property("amount", codecForString)
|
||||
.property("coin_pub", codecForString)
|
||||
.property("exchange_pub", codecForString)
|
||||
.property("exchange_sig", codecForString)
|
||||
buildCodecForObject<ReserveRecoupTransaction>()
|
||||
.property("amount", codecForString())
|
||||
.property("coin_pub", codecForString())
|
||||
.property("exchange_pub", codecForString())
|
||||
.property("exchange_sig", codecForString())
|
||||
.property("timestamp", codecForTimestamp)
|
||||
.property("type", makeCodecForConstString(ReserveTransactionType.Recoup))
|
||||
.property("type", codecForConstString(ReserveTransactionType.Recoup))
|
||||
.build("ReserveRecoupTransaction");
|
||||
|
||||
export const codecForReserveTransaction = (): Codec<ReserveTransaction> =>
|
||||
makeCodecForUnion<ReserveTransaction>()
|
||||
buildCodecForUnion<ReserveTransaction>()
|
||||
.discriminateOn("type")
|
||||
.alternative(
|
||||
ReserveTransactionType.Withdraw,
|
||||
|
@ -28,18 +28,18 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
makeCodecForList,
|
||||
makeCodecOptional,
|
||||
codecForList,
|
||||
codecOptional,
|
||||
codecForAny,
|
||||
codecForNumber,
|
||||
codecForBoolean,
|
||||
makeCodecForMap,
|
||||
codecForMap,
|
||||
Codec,
|
||||
makeCodecForConstNumber,
|
||||
makeCodecForUnion,
|
||||
makeCodecForConstString,
|
||||
codecForConstNumber,
|
||||
buildCodecForUnion,
|
||||
codecForConstString,
|
||||
} from "../util/codec";
|
||||
import {
|
||||
Timestamp,
|
||||
@ -48,6 +48,7 @@ import {
|
||||
codecForDuration,
|
||||
} from "../util/time";
|
||||
import { ExchangeListItem } from "./walletTypes";
|
||||
import { codecForAmountString } from "../util/amounts";
|
||||
|
||||
/**
|
||||
* Denomination as found in the /keys response from the exchange.
|
||||
@ -951,7 +952,7 @@ export interface BankWithdrawalOperationPostResponse {
|
||||
export const codecForBankWithdrawalOperationPostResponse = (): Codec<
|
||||
BankWithdrawalOperationPostResponse
|
||||
> =>
|
||||
makeCodecForObject<BankWithdrawalOperationPostResponse>()
|
||||
buildCodecForObject<BankWithdrawalOperationPostResponse>()
|
||||
.property("transfer_done", codecForBoolean)
|
||||
.build("BankWithdrawalOperationPostResponse");
|
||||
|
||||
@ -962,292 +963,292 @@ export type EddsaPublicKeyString = string;
|
||||
export type CoinPublicKeyString = string;
|
||||
|
||||
export const codecForDenomination = (): Codec<Denomination> =>
|
||||
makeCodecForObject<Denomination>()
|
||||
.property("value", codecForString)
|
||||
.property("denom_pub", codecForString)
|
||||
.property("fee_withdraw", codecForString)
|
||||
.property("fee_deposit", codecForString)
|
||||
.property("fee_refresh", codecForString)
|
||||
.property("fee_refund", codecForString)
|
||||
buildCodecForObject<Denomination>()
|
||||
.property("value", codecForString())
|
||||
.property("denom_pub", codecForString())
|
||||
.property("fee_withdraw", codecForString())
|
||||
.property("fee_deposit", codecForString())
|
||||
.property("fee_refresh", codecForString())
|
||||
.property("fee_refund", codecForString())
|
||||
.property("stamp_start", codecForTimestamp)
|
||||
.property("stamp_expire_withdraw", codecForTimestamp)
|
||||
.property("stamp_expire_legal", codecForTimestamp)
|
||||
.property("stamp_expire_deposit", codecForTimestamp)
|
||||
.property("master_sig", codecForString)
|
||||
.property("master_sig", codecForString())
|
||||
.build("Denomination");
|
||||
|
||||
export const codecForAuditorDenomSig = (): Codec<AuditorDenomSig> =>
|
||||
makeCodecForObject<AuditorDenomSig>()
|
||||
.property("denom_pub_h", codecForString)
|
||||
.property("auditor_sig", codecForString)
|
||||
buildCodecForObject<AuditorDenomSig>()
|
||||
.property("denom_pub_h", codecForString())
|
||||
.property("auditor_sig", codecForString())
|
||||
.build("AuditorDenomSig");
|
||||
|
||||
export const codecForAuditor = (): Codec<Auditor> =>
|
||||
makeCodecForObject<Auditor>()
|
||||
.property("auditor_pub", codecForString)
|
||||
.property("auditor_url", codecForString)
|
||||
.property("denomination_keys", makeCodecForList(codecForAuditorDenomSig()))
|
||||
buildCodecForObject<Auditor>()
|
||||
.property("auditor_pub", codecForString())
|
||||
.property("auditor_url", codecForString())
|
||||
.property("denomination_keys", codecForList(codecForAuditorDenomSig()))
|
||||
.build("Auditor");
|
||||
|
||||
export const codecForExchangeHandle = (): Codec<ExchangeHandle> =>
|
||||
makeCodecForObject<ExchangeHandle>()
|
||||
.property("master_pub", codecForString)
|
||||
.property("url", codecForString)
|
||||
buildCodecForObject<ExchangeHandle>()
|
||||
.property("master_pub", codecForString())
|
||||
.property("url", codecForString())
|
||||
.build("ExchangeHandle");
|
||||
|
||||
export const codecForAuditorHandle = (): Codec<AuditorHandle> =>
|
||||
makeCodecForObject<AuditorHandle>()
|
||||
.property("name", codecForString)
|
||||
.property("master_pub", codecForString)
|
||||
.property("url", codecForString)
|
||||
buildCodecForObject<AuditorHandle>()
|
||||
.property("name", codecForString())
|
||||
.property("master_pub", codecForString())
|
||||
.property("url", codecForString())
|
||||
.build("AuditorHandle");
|
||||
|
||||
export const codecForMerchantInfo = (): Codec<MerchantInfo> =>
|
||||
makeCodecForObject<MerchantInfo>()
|
||||
.property("name", codecForString)
|
||||
.property("address", makeCodecOptional(codecForString))
|
||||
.property("jurisdiction", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<MerchantInfo>()
|
||||
.property("name", codecForString())
|
||||
.property("address", codecOptional(codecForString()))
|
||||
.property("jurisdiction", codecOptional(codecForString()))
|
||||
.build("MerchantInfo");
|
||||
|
||||
export const codecForTax = (): Codec<Tax> =>
|
||||
makeCodecForObject<Tax>()
|
||||
.property("name", codecForString)
|
||||
.property("tax", codecForString)
|
||||
buildCodecForObject<Tax>()
|
||||
.property("name", codecForString())
|
||||
.property("tax", codecForString())
|
||||
.build("Tax");
|
||||
|
||||
export const codecForI18n = (): Codec<{ [lang_tag: string]: string }> =>
|
||||
makeCodecForMap(codecForString);
|
||||
codecForMap(codecForString());
|
||||
|
||||
export const codecForProduct = (): Codec<Product> =>
|
||||
makeCodecForObject<Product>()
|
||||
.property("product_id", makeCodecOptional(codecForString))
|
||||
.property("description", codecForString)
|
||||
.property("description_i18n", makeCodecOptional(codecForI18n()))
|
||||
.property("quantity", makeCodecOptional(codecForNumber))
|
||||
.property("unit", makeCodecOptional(codecForString))
|
||||
.property("price", makeCodecOptional(codecForString))
|
||||
.property("delivery_date", makeCodecOptional(codecForTimestamp))
|
||||
.property("delivery_location", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<Product>()
|
||||
.property("product_id", codecOptional(codecForString()))
|
||||
.property("description", codecForString())
|
||||
.property("description_i18n", codecOptional(codecForI18n()))
|
||||
.property("quantity", codecOptional(codecForNumber()))
|
||||
.property("unit", codecOptional(codecForString()))
|
||||
.property("price", codecOptional(codecForString()))
|
||||
.property("delivery_date", codecOptional(codecForTimestamp))
|
||||
.property("delivery_location", codecOptional(codecForString()))
|
||||
.build("Tax");
|
||||
|
||||
export const codecForContractTerms = (): Codec<ContractTerms> =>
|
||||
makeCodecForObject<ContractTerms>()
|
||||
.property("order_id", codecForString)
|
||||
.property("fulfillment_url", codecForString)
|
||||
.property("merchant_base_url", codecForString)
|
||||
.property("h_wire", codecForString)
|
||||
.property("auto_refund", makeCodecOptional(codecForDuration))
|
||||
.property("wire_method", codecForString)
|
||||
.property("summary", codecForString)
|
||||
.property("summary_i18n", makeCodecOptional(codecForI18n()))
|
||||
.property("nonce", codecForString)
|
||||
.property("amount", codecForString)
|
||||
.property("auditors", makeCodecForList(codecForAuditorHandle()))
|
||||
buildCodecForObject<ContractTerms>()
|
||||
.property("order_id", codecForString())
|
||||
.property("fulfillment_url", codecForString())
|
||||
.property("merchant_base_url", codecForString())
|
||||
.property("h_wire", codecForString())
|
||||
.property("auto_refund", codecOptional(codecForDuration))
|
||||
.property("wire_method", codecForString())
|
||||
.property("summary", codecForString())
|
||||
.property("summary_i18n", codecOptional(codecForI18n()))
|
||||
.property("nonce", codecForString())
|
||||
.property("amount", codecForString())
|
||||
.property("auditors", codecForList(codecForAuditorHandle()))
|
||||
.property("pay_deadline", codecForTimestamp)
|
||||
.property("refund_deadline", codecForTimestamp)
|
||||
.property("wire_transfer_deadline", codecForTimestamp)
|
||||
.property("timestamp", codecForTimestamp)
|
||||
.property("locations", codecForAny)
|
||||
.property("max_fee", codecForString)
|
||||
.property("max_wire_fee", makeCodecOptional(codecForString))
|
||||
.property("locations", codecForAny())
|
||||
.property("max_fee", codecForString())
|
||||
.property("max_wire_fee", codecOptional(codecForString()))
|
||||
.property("merchant", codecForMerchantInfo())
|
||||
.property("merchant_pub", codecForString)
|
||||
.property("exchanges", makeCodecForList(codecForExchangeHandle()))
|
||||
.property("merchant_pub", codecForString())
|
||||
.property("exchanges", codecForList(codecForExchangeHandle()))
|
||||
.property(
|
||||
"products",
|
||||
makeCodecOptional(makeCodecForList(codecForProduct())),
|
||||
codecOptional(codecForList(codecForProduct())),
|
||||
)
|
||||
.property("extra", codecForAny)
|
||||
.property("extra", codecForAny())
|
||||
.build("ContractTerms");
|
||||
|
||||
export const codecForMerchantRefundPermission = (): Codec<
|
||||
MerchantAbortPayRefundDetails
|
||||
> =>
|
||||
makeCodecForObject<MerchantAbortPayRefundDetails>()
|
||||
.property("refund_amount", codecForString)
|
||||
.property("refund_fee", codecForString)
|
||||
.property("coin_pub", codecForString)
|
||||
.property("rtransaction_id", codecForNumber)
|
||||
.property("exchange_http_status", codecForNumber)
|
||||
.property("exchange_code", makeCodecOptional(codecForNumber))
|
||||
.property("exchange_reply", makeCodecOptional(codecForAny))
|
||||
.property("exchange_sig", makeCodecOptional(codecForString))
|
||||
.property("exchange_pub", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<MerchantAbortPayRefundDetails>()
|
||||
.property("refund_amount", codecForAmountString())
|
||||
.property("refund_fee", codecForAmountString())
|
||||
.property("coin_pub", codecForString())
|
||||
.property("rtransaction_id", codecForNumber())
|
||||
.property("exchange_http_status", codecForNumber())
|
||||
.property("exchange_code", codecOptional(codecForNumber()))
|
||||
.property("exchange_reply", codecOptional(codecForAny()))
|
||||
.property("exchange_sig", codecOptional(codecForString()))
|
||||
.property("exchange_pub", codecOptional(codecForString()))
|
||||
.build("MerchantRefundPermission");
|
||||
|
||||
export const codecForMerchantRefundResponse = (): Codec<
|
||||
MerchantRefundResponse
|
||||
> =>
|
||||
makeCodecForObject<MerchantRefundResponse>()
|
||||
.property("merchant_pub", codecForString)
|
||||
.property("h_contract_terms", codecForString)
|
||||
.property("refunds", makeCodecForList(codecForMerchantRefundPermission()))
|
||||
buildCodecForObject<MerchantRefundResponse>()
|
||||
.property("merchant_pub", codecForString())
|
||||
.property("h_contract_terms", codecForString())
|
||||
.property("refunds", codecForList(codecForMerchantRefundPermission()))
|
||||
.build("MerchantRefundResponse");
|
||||
|
||||
export const codecForReserveSigSingleton = (): Codec<ReserveSigSingleton> =>
|
||||
makeCodecForObject<ReserveSigSingleton>()
|
||||
.property("reserve_sig", codecForString)
|
||||
buildCodecForObject<ReserveSigSingleton>()
|
||||
.property("reserve_sig", codecForString())
|
||||
.build("ReserveSigSingleton");
|
||||
|
||||
export const codecForTipResponse = (): Codec<TipResponse> =>
|
||||
makeCodecForObject<TipResponse>()
|
||||
.property("reserve_pub", codecForString)
|
||||
.property("reserve_sigs", makeCodecForList(codecForReserveSigSingleton()))
|
||||
buildCodecForObject<TipResponse>()
|
||||
.property("reserve_pub", codecForString())
|
||||
.property("reserve_sigs", codecForList(codecForReserveSigSingleton()))
|
||||
.build("TipResponse");
|
||||
|
||||
export const codecForRecoup = (): Codec<Recoup> =>
|
||||
makeCodecForObject<Recoup>()
|
||||
.property("h_denom_pub", codecForString)
|
||||
buildCodecForObject<Recoup>()
|
||||
.property("h_denom_pub", codecForString())
|
||||
.build("Recoup");
|
||||
|
||||
export const codecForExchangeSigningKey = (): Codec<ExchangeSignKeyJson> =>
|
||||
makeCodecForObject<ExchangeSignKeyJson>()
|
||||
.property("key", codecForString)
|
||||
.property("master_sig", codecForString)
|
||||
buildCodecForObject<ExchangeSignKeyJson>()
|
||||
.property("key", codecForString())
|
||||
.property("master_sig", codecForString())
|
||||
.property("stamp_end", codecForTimestamp)
|
||||
.property("stamp_start", codecForTimestamp)
|
||||
.property("stamp_expire", codecForTimestamp)
|
||||
.build("ExchangeSignKeyJson");
|
||||
|
||||
export const codecForExchangeKeysJson = (): Codec<ExchangeKeysJson> =>
|
||||
makeCodecForObject<ExchangeKeysJson>()
|
||||
.property("denoms", makeCodecForList(codecForDenomination()))
|
||||
.property("master_public_key", codecForString)
|
||||
.property("auditors", makeCodecForList(codecForAuditor()))
|
||||
buildCodecForObject<ExchangeKeysJson>()
|
||||
.property("denoms", codecForList(codecForDenomination()))
|
||||
.property("master_public_key", codecForString())
|
||||
.property("auditors", codecForList(codecForAuditor()))
|
||||
.property("list_issue_date", codecForTimestamp)
|
||||
.property("recoup", makeCodecOptional(makeCodecForList(codecForRecoup())))
|
||||
.property("signkeys", makeCodecForList(codecForExchangeSigningKey()))
|
||||
.property("version", codecForString)
|
||||
.property("recoup", codecOptional(codecForList(codecForRecoup())))
|
||||
.property("signkeys", codecForList(codecForExchangeSigningKey()))
|
||||
.property("version", codecForString())
|
||||
.build("KeysJson");
|
||||
|
||||
export const codecForWireFeesJson = (): Codec<WireFeesJson> =>
|
||||
makeCodecForObject<WireFeesJson>()
|
||||
.property("wire_fee", codecForString)
|
||||
.property("closing_fee", codecForString)
|
||||
.property("sig", codecForString)
|
||||
buildCodecForObject<WireFeesJson>()
|
||||
.property("wire_fee", codecForString())
|
||||
.property("closing_fee", codecForString())
|
||||
.property("sig", codecForString())
|
||||
.property("start_date", codecForTimestamp)
|
||||
.property("end_date", codecForTimestamp)
|
||||
.build("WireFeesJson");
|
||||
|
||||
export const codecForAccountInfo = (): Codec<AccountInfo> =>
|
||||
makeCodecForObject<AccountInfo>()
|
||||
.property("payto_uri", codecForString)
|
||||
.property("master_sig", codecForString)
|
||||
buildCodecForObject<AccountInfo>()
|
||||
.property("payto_uri", codecForString())
|
||||
.property("master_sig", codecForString())
|
||||
.build("AccountInfo");
|
||||
|
||||
export const codecForExchangeWireJson = (): Codec<ExchangeWireJson> =>
|
||||
makeCodecForObject<ExchangeWireJson>()
|
||||
.property("accounts", makeCodecForList(codecForAccountInfo()))
|
||||
.property("fees", makeCodecForMap(makeCodecForList(codecForWireFeesJson())))
|
||||
buildCodecForObject<ExchangeWireJson>()
|
||||
.property("accounts", codecForList(codecForAccountInfo()))
|
||||
.property("fees", codecForMap(codecForList(codecForWireFeesJson())))
|
||||
.build("ExchangeWireJson");
|
||||
|
||||
export const codecForProposal = (): Codec<Proposal> =>
|
||||
makeCodecForObject<Proposal>()
|
||||
.property("contract_terms", codecForAny)
|
||||
.property("sig", codecForString)
|
||||
buildCodecForObject<Proposal>()
|
||||
.property("contract_terms", codecForAny())
|
||||
.property("sig", codecForString())
|
||||
.build("Proposal");
|
||||
|
||||
export const codecForCheckPaymentResponse = (): Codec<CheckPaymentResponse> =>
|
||||
makeCodecForObject<CheckPaymentResponse>()
|
||||
.property("order_status", codecForString)
|
||||
.property("refunded", makeCodecOptional(codecForBoolean))
|
||||
.property("refunded_amount", makeCodecOptional(codecForString))
|
||||
.property("contract_terms", makeCodecOptional(codecForAny))
|
||||
.property("taler_pay_uri", makeCodecOptional(codecForString))
|
||||
.property("contract_url", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<CheckPaymentResponse>()
|
||||
.property("order_status", codecForString())
|
||||
.property("refunded", codecOptional(codecForBoolean))
|
||||
.property("refunded_amount", codecOptional(codecForString()))
|
||||
.property("contract_terms", codecOptional(codecForAny()))
|
||||
.property("taler_pay_uri", codecOptional(codecForString()))
|
||||
.property("contract_url", codecOptional(codecForString()))
|
||||
.build("CheckPaymentResponse");
|
||||
|
||||
export const codecForWithdrawOperationStatusResponse = (): Codec<
|
||||
WithdrawOperationStatusResponse
|
||||
> =>
|
||||
makeCodecForObject<WithdrawOperationStatusResponse>()
|
||||
buildCodecForObject<WithdrawOperationStatusResponse>()
|
||||
.property("selection_done", codecForBoolean)
|
||||
.property("transfer_done", codecForBoolean)
|
||||
.property("amount", codecForString)
|
||||
.property("sender_wire", makeCodecOptional(codecForString))
|
||||
.property("suggested_exchange", makeCodecOptional(codecForString))
|
||||
.property("confirm_transfer_url", makeCodecOptional(codecForString))
|
||||
.property("wire_types", makeCodecForList(codecForString))
|
||||
.property("amount", codecForString())
|
||||
.property("sender_wire", codecOptional(codecForString()))
|
||||
.property("suggested_exchange", codecOptional(codecForString()))
|
||||
.property("confirm_transfer_url", codecOptional(codecForString()))
|
||||
.property("wire_types", codecForList(codecForString()))
|
||||
.build("WithdrawOperationStatusResponse");
|
||||
|
||||
export const codecForTipPickupGetResponse = (): Codec<TipPickupGetResponse> =>
|
||||
makeCodecForObject<TipPickupGetResponse>()
|
||||
.property("extra", codecForAny)
|
||||
.property("amount", codecForString)
|
||||
.property("amount_left", codecForString)
|
||||
.property("exchange_url", codecForString)
|
||||
buildCodecForObject<TipPickupGetResponse>()
|
||||
.property("extra", codecForAny())
|
||||
.property("amount", codecForString())
|
||||
.property("amount_left", codecForString())
|
||||
.property("exchange_url", codecForString())
|
||||
.property("stamp_expire", codecForTimestamp)
|
||||
.property("stamp_created", codecForTimestamp)
|
||||
.build("TipPickupGetResponse");
|
||||
|
||||
export const codecForRecoupConfirmation = (): Codec<RecoupConfirmation> =>
|
||||
makeCodecForObject<RecoupConfirmation>()
|
||||
.property("reserve_pub", makeCodecOptional(codecForString))
|
||||
.property("old_coin_pub", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<RecoupConfirmation>()
|
||||
.property("reserve_pub", codecOptional(codecForString()))
|
||||
.property("old_coin_pub", codecOptional(codecForString()))
|
||||
.build("RecoupConfirmation");
|
||||
|
||||
export const codecForWithdrawResponse = (): Codec<WithdrawResponse> =>
|
||||
makeCodecForObject<WithdrawResponse>()
|
||||
.property("ev_sig", codecForString)
|
||||
buildCodecForObject<WithdrawResponse>()
|
||||
.property("ev_sig", codecForString())
|
||||
.build("WithdrawResponse");
|
||||
|
||||
export const codecForMerchantPayResponse = (): Codec<MerchantPayResponse> =>
|
||||
makeCodecForObject<MerchantPayResponse>()
|
||||
.property("sig", codecForString)
|
||||
buildCodecForObject<MerchantPayResponse>()
|
||||
.property("sig", codecForString())
|
||||
.build("MerchantPayResponse");
|
||||
|
||||
export const codecForExchangeMeltResponse = (): Codec<ExchangeMeltResponse> =>
|
||||
makeCodecForObject<ExchangeMeltResponse>()
|
||||
.property("exchange_pub", codecForString)
|
||||
.property("exchange_sig", codecForString)
|
||||
.property("noreveal_index", codecForNumber)
|
||||
.property("refresh_base_url", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<ExchangeMeltResponse>()
|
||||
.property("exchange_pub", codecForString())
|
||||
.property("exchange_sig", codecForString())
|
||||
.property("noreveal_index", codecForNumber())
|
||||
.property("refresh_base_url", codecOptional(codecForString()))
|
||||
.build("ExchangeMeltResponse");
|
||||
|
||||
export const codecForExchangeRevealItem = (): Codec<ExchangeRevealItem> =>
|
||||
makeCodecForObject<ExchangeRevealItem>()
|
||||
.property("ev_sig", codecForString)
|
||||
buildCodecForObject<ExchangeRevealItem>()
|
||||
.property("ev_sig", codecForString())
|
||||
.build("ExchangeRevealItem");
|
||||
|
||||
export const codecForExchangeRevealResponse = (): Codec<
|
||||
ExchangeRevealResponse
|
||||
> =>
|
||||
makeCodecForObject<ExchangeRevealResponse>()
|
||||
.property("ev_sigs", makeCodecForList(codecForExchangeRevealItem()))
|
||||
buildCodecForObject<ExchangeRevealResponse>()
|
||||
.property("ev_sigs", codecForList(codecForExchangeRevealItem()))
|
||||
.build("ExchangeRevealResponse");
|
||||
|
||||
export const codecForMerchantCoinRefundSuccessStatus = (): Codec<
|
||||
MerchantCoinRefundSuccessStatus
|
||||
> =>
|
||||
makeCodecForObject<MerchantCoinRefundSuccessStatus>()
|
||||
.property("type", makeCodecForConstString("success"))
|
||||
.property("coin_pub", codecForString)
|
||||
.property("exchange_status", makeCodecForConstNumber(200))
|
||||
.property("exchange_sig", codecForString)
|
||||
.property("rtransaction_id", codecForNumber)
|
||||
.property("refund_amount", codecForString)
|
||||
.property("exchange_pub", codecForString)
|
||||
buildCodecForObject<MerchantCoinRefundSuccessStatus>()
|
||||
.property("type", codecForConstString("success"))
|
||||
.property("coin_pub", codecForString())
|
||||
.property("exchange_status", codecForConstNumber(200))
|
||||
.property("exchange_sig", codecForString())
|
||||
.property("rtransaction_id", codecForNumber())
|
||||
.property("refund_amount", codecForString())
|
||||
.property("exchange_pub", codecForString())
|
||||
.property("execution_time", codecForTimestamp)
|
||||
.build("MerchantCoinRefundSuccessStatus");
|
||||
|
||||
export const codecForMerchantCoinRefundFailureStatus = (): Codec<
|
||||
MerchantCoinRefundFailureStatus
|
||||
> =>
|
||||
makeCodecForObject<MerchantCoinRefundFailureStatus>()
|
||||
.property("type", makeCodecForConstString("failure"))
|
||||
.property("coin_pub", codecForString)
|
||||
.property("exchange_status", makeCodecForConstNumber(200))
|
||||
.property("rtransaction_id", codecForNumber)
|
||||
.property("refund_amount", codecForString)
|
||||
.property("exchange_code", makeCodecOptional(codecForNumber))
|
||||
.property("exchange_reply", makeCodecOptional(codecForAny))
|
||||
buildCodecForObject<MerchantCoinRefundFailureStatus>()
|
||||
.property("type", codecForConstString("failure"))
|
||||
.property("coin_pub", codecForString())
|
||||
.property("exchange_status", codecForConstNumber(200))
|
||||
.property("rtransaction_id", codecForNumber())
|
||||
.property("refund_amount", codecForString())
|
||||
.property("exchange_code", codecOptional(codecForNumber()))
|
||||
.property("exchange_reply", codecOptional(codecForAny()))
|
||||
.property("execution_time", codecForTimestamp)
|
||||
.build("MerchantCoinRefundSuccessStatus");
|
||||
|
||||
export const codecForMerchantCoinRefundStatus = (): Codec<
|
||||
MerchantCoinRefundStatus
|
||||
> =>
|
||||
makeCodecForUnion<MerchantCoinRefundStatus>()
|
||||
buildCodecForUnion<MerchantCoinRefundStatus>()
|
||||
.discriminateOn("type")
|
||||
.alternative("success", codecForMerchantCoinRefundSuccessStatus())
|
||||
.alternative("failure", codecForMerchantCoinRefundFailureStatus())
|
||||
@ -1256,17 +1257,17 @@ export const codecForMerchantCoinRefundStatus = (): Codec<
|
||||
export const codecForMerchantOrderStatusPaid = (): Codec<
|
||||
MerchantOrderStatusPaid
|
||||
> =>
|
||||
makeCodecForObject<MerchantOrderStatusPaid>()
|
||||
.property("merchant_pub", codecForString)
|
||||
.property("refund_amount", codecForString)
|
||||
buildCodecForObject<MerchantOrderStatusPaid>()
|
||||
.property("merchant_pub", codecForString())
|
||||
.property("refund_amount", codecForString())
|
||||
.property("refunded", codecForBoolean)
|
||||
.property("refunds", makeCodecForList(codecForMerchantCoinRefundStatus()))
|
||||
.property("refunds", codecForList(codecForMerchantCoinRefundStatus()))
|
||||
.build("MerchantOrderStatusPaid");
|
||||
|
||||
export const codecForMerchantOrderStatusUnpaid = (): Codec<
|
||||
MerchantOrderStatusUnpaid
|
||||
> =>
|
||||
makeCodecForObject<MerchantOrderStatusUnpaid>()
|
||||
.property("taler_pay_uri", codecForString)
|
||||
.property("already_paid_order_id", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<MerchantOrderStatusUnpaid>()
|
||||
.property("taler_pay_uri", codecForString())
|
||||
.property("already_paid_order_id", codecOptional(codecForString()))
|
||||
.build("MerchantOrderStatusUnpaid");
|
||||
|
@ -28,8 +28,8 @@ import { Timestamp } from "../util/time";
|
||||
import { AmountString, Product } from "./talerTypes";
|
||||
import {
|
||||
Codec,
|
||||
makeCodecForObject,
|
||||
makeCodecOptional,
|
||||
buildCodecForObject,
|
||||
codecOptional,
|
||||
codecForString,
|
||||
} from "../util/codec";
|
||||
|
||||
@ -305,7 +305,7 @@ interface TransactionRefresh extends TransactionCommon {
|
||||
}
|
||||
|
||||
export const codecForTransactionsRequest = (): Codec<TransactionsRequest> =>
|
||||
makeCodecForObject<TransactionsRequest>()
|
||||
.property("currency", makeCodecOptional(codecForString))
|
||||
.property("search", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<TransactionsRequest>()
|
||||
.property("currency", codecOptional(codecForString()))
|
||||
.property("search", codecOptional(codecForString()))
|
||||
.build("TransactionsRequest");
|
||||
|
@ -40,13 +40,13 @@ import {
|
||||
} from "./dbTypes";
|
||||
import { Timestamp } from "../util/time";
|
||||
import {
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
makeCodecOptional,
|
||||
codecOptional,
|
||||
Codec,
|
||||
makeCodecForList,
|
||||
codecForList,
|
||||
codecForBoolean,
|
||||
makeCodecForConstString,
|
||||
codecForConstString,
|
||||
codecForAny,
|
||||
} from "../util/codec";
|
||||
import { AmountString, codecForContractTerms } from "./talerTypes";
|
||||
@ -174,17 +174,17 @@ export interface BalancesResponse {
|
||||
}
|
||||
|
||||
export const codecForBalance = (): Codec<Balance> =>
|
||||
makeCodecForObject<Balance>()
|
||||
.property("available", codecForString)
|
||||
buildCodecForObject<Balance>()
|
||||
.property("available", codecForString())
|
||||
.property("hasPendingTransactions", codecForBoolean)
|
||||
.property("pendingIncoming", codecForString)
|
||||
.property("pendingOutgoing", codecForString)
|
||||
.property("pendingIncoming", codecForString())
|
||||
.property("pendingOutgoing", codecForString())
|
||||
.property("requiresUserInput", codecForBoolean)
|
||||
.build("Balance");
|
||||
|
||||
export const codecForBalancesResponse = (): Codec<BalancesResponse> =>
|
||||
makeCodecForObject<BalancesResponse>()
|
||||
.property("balances", makeCodecForList(codecForBalance()))
|
||||
buildCodecForObject<BalancesResponse>()
|
||||
.property("balances", codecForList(codecForBalance()))
|
||||
.build("BalancesResponse");
|
||||
|
||||
/**
|
||||
@ -270,12 +270,12 @@ export interface CreateReserveRequest {
|
||||
}
|
||||
|
||||
export const codecForCreateReserveRequest = (): Codec<CreateReserveRequest> =>
|
||||
makeCodecForObject<CreateReserveRequest>()
|
||||
buildCodecForObject<CreateReserveRequest>()
|
||||
.property("amount", codecForAmountJson())
|
||||
.property("exchange", codecForString)
|
||||
.property("exchangePaytoUri", codecForString)
|
||||
.property("senderWire", makeCodecOptional(codecForString))
|
||||
.property("bankWithdrawStatusUrl", makeCodecOptional(codecForString))
|
||||
.property("exchange", codecForString())
|
||||
.property("exchangePaytoUri", codecForString())
|
||||
.property("senderWire", codecOptional(codecForString()))
|
||||
.property("bankWithdrawStatusUrl", codecOptional(codecForString()))
|
||||
.build("CreateReserveRequest");
|
||||
|
||||
/**
|
||||
@ -290,8 +290,8 @@ export interface ConfirmReserveRequest {
|
||||
}
|
||||
|
||||
export const codecForConfirmReserveRequest = (): Codec<ConfirmReserveRequest> =>
|
||||
makeCodecForObject<ConfirmReserveRequest>()
|
||||
.property("reservePub", codecForString)
|
||||
buildCodecForObject<ConfirmReserveRequest>()
|
||||
.property("reservePub", codecForString())
|
||||
.build("ConfirmReserveRequest");
|
||||
|
||||
/**
|
||||
@ -360,43 +360,43 @@ export const enum PreparePayResultType {
|
||||
export const codecForPreparePayResultPaymentPossible = (): Codec<
|
||||
PreparePayResultPaymentPossible
|
||||
> =>
|
||||
makeCodecForObject<PreparePayResultPaymentPossible>()
|
||||
buildCodecForObject<PreparePayResultPaymentPossible>()
|
||||
.property("amountEffective", codecForAmountString())
|
||||
.property("amountRaw", codecForAmountString())
|
||||
.property("contractTerms", codecForAny)
|
||||
.property("proposalId", codecForString)
|
||||
.property("contractTerms", codecForAny())
|
||||
.property("proposalId", codecForString())
|
||||
.property(
|
||||
"status",
|
||||
makeCodecForConstString(PreparePayResultType.PaymentPossible),
|
||||
codecForConstString(PreparePayResultType.PaymentPossible),
|
||||
)
|
||||
.build("PreparePayResultPaymentPossible");
|
||||
|
||||
export const codecForPreparePayResultInsufficientBalance = (): Codec<
|
||||
PreparePayResultInsufficientBalance
|
||||
> =>
|
||||
makeCodecForObject<PreparePayResultInsufficientBalance>()
|
||||
buildCodecForObject<PreparePayResultInsufficientBalance>()
|
||||
.property("amountRaw", codecForAmountString())
|
||||
.property("contractTerms", codecForAny)
|
||||
.property("proposalId", codecForString)
|
||||
.property("contractTerms", codecForAny())
|
||||
.property("proposalId", codecForString())
|
||||
.property(
|
||||
"status",
|
||||
makeCodecForConstString(PreparePayResultType.InsufficientBalance),
|
||||
codecForConstString(PreparePayResultType.InsufficientBalance),
|
||||
)
|
||||
.build("PreparePayResultInsufficientBalance");
|
||||
|
||||
export const codecForPreparePayResultAlreadyConfirmed = (): Codec<
|
||||
PreparePayResultAlreadyConfirmed
|
||||
> =>
|
||||
makeCodecForObject<PreparePayResultAlreadyConfirmed>()
|
||||
buildCodecForObject<PreparePayResultAlreadyConfirmed>()
|
||||
.property(
|
||||
"status",
|
||||
makeCodecForConstString(PreparePayResultType.AlreadyConfirmed),
|
||||
codecForConstString(PreparePayResultType.AlreadyConfirmed),
|
||||
)
|
||||
.property("amountEffective", codecForAmountString())
|
||||
.property("amountRaw", codecForAmountString())
|
||||
.property("nextUrl", codecForString)
|
||||
.property("nextUrl", codecForString())
|
||||
.property("paid", codecForBoolean)
|
||||
.property("contractTerms", codecForAny)
|
||||
.property("contractTerms", codecForAny())
|
||||
.build("PreparePayResultAlreadyConfirmed");
|
||||
|
||||
export type PreparePayResult =
|
||||
|
@ -22,7 +22,7 @@
|
||||
* Imports.
|
||||
*/
|
||||
import {
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
codecForNumber,
|
||||
Codec,
|
||||
@ -68,13 +68,13 @@ export interface AmountJson {
|
||||
}
|
||||
|
||||
export const codecForAmountJson = (): Codec<AmountJson> =>
|
||||
makeCodecForObject<AmountJson>()
|
||||
.property("currency", codecForString)
|
||||
.property("value", codecForNumber)
|
||||
.property("fraction", codecForNumber)
|
||||
buildCodecForObject<AmountJson>()
|
||||
.property("currency", codecForString())
|
||||
.property("value", codecForNumber())
|
||||
.property("fraction", codecForNumber())
|
||||
.build("AmountJson");
|
||||
|
||||
export const codecForAmountString = (): Codec<AmountString> => codecForString;
|
||||
export const codecForAmountString = (): Codec<AmountString> => codecForString();
|
||||
|
||||
/**
|
||||
* Result of a possibly overflowing operation.
|
||||
|
@ -21,10 +21,10 @@
|
||||
import test from "ava";
|
||||
import {
|
||||
Codec,
|
||||
makeCodecForObject,
|
||||
makeCodecForConstString,
|
||||
buildCodecForObject,
|
||||
codecForConstString,
|
||||
codecForString,
|
||||
makeCodecForUnion,
|
||||
buildCodecForUnion,
|
||||
} from "./codec";
|
||||
|
||||
interface MyObj {
|
||||
@ -44,8 +44,8 @@ interface AltTwo {
|
||||
type MyUnion = AltOne | AltTwo;
|
||||
|
||||
test("basic codec", (t) => {
|
||||
const myObjCodec = makeCodecForObject<MyObj>()
|
||||
.property("foo", codecForString)
|
||||
const myObjCodec = buildCodecForObject<MyObj>()
|
||||
.property("foo", codecForString())
|
||||
.build("MyObj");
|
||||
const res = myObjCodec.decode({ foo: "hello" });
|
||||
t.assert(res.foo === "hello");
|
||||
@ -56,15 +56,15 @@ test("basic codec", (t) => {
|
||||
});
|
||||
|
||||
test("union", (t) => {
|
||||
const altOneCodec: Codec<AltOne> = makeCodecForObject<AltOne>()
|
||||
.property("type", makeCodecForConstString("one"))
|
||||
.property("foo", codecForString)
|
||||
const altOneCodec: Codec<AltOne> = buildCodecForObject<AltOne>()
|
||||
.property("type", codecForConstString("one"))
|
||||
.property("foo", codecForString())
|
||||
.build("AltOne");
|
||||
const altTwoCodec: Codec<AltTwo> = makeCodecForObject<AltTwo>()
|
||||
.property("type", makeCodecForConstString("two"))
|
||||
.property("bar", codecForString)
|
||||
const altTwoCodec: Codec<AltTwo> = buildCodecForObject<AltTwo>()
|
||||
.property("type", codecForConstString("two"))
|
||||
.property("bar", codecForString())
|
||||
.build("AltTwo");
|
||||
const myUnionCodec: Codec<MyUnion> = makeCodecForUnion<MyUnion>()
|
||||
const myUnionCodec: Codec<MyUnion> = buildCodecForUnion<MyUnion>()
|
||||
.discriminateOn("type")
|
||||
.alternative("one", altOneCodec)
|
||||
.alternative("two", altTwoCodec)
|
||||
|
@ -221,18 +221,18 @@ export class UnionCodecPreBuilder<T> {
|
||||
/**
|
||||
* Return a builder for a codec that decodes an object with properties.
|
||||
*/
|
||||
export function makeCodecForObject<T>(): ObjectCodecBuilder<T, {}> {
|
||||
export function buildCodecForObject<T>(): ObjectCodecBuilder<T, {}> {
|
||||
return new ObjectCodecBuilder<T, {}>();
|
||||
}
|
||||
|
||||
export function makeCodecForUnion<T>(): UnionCodecPreBuilder<T> {
|
||||
export function buildCodecForUnion<T>(): UnionCodecPreBuilder<T> {
|
||||
return new UnionCodecPreBuilder<T>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a codec for a mapping from a string to values described by the inner codec.
|
||||
*/
|
||||
export function makeCodecForMap<T>(
|
||||
export function codecForMap<T>(
|
||||
innerCodec: Codec<T>,
|
||||
): Codec<{ [x: string]: T }> {
|
||||
if (!innerCodec) {
|
||||
@ -255,7 +255,7 @@ export function makeCodecForMap<T>(
|
||||
/**
|
||||
* Return a codec for a list, containing values described by the inner codec.
|
||||
*/
|
||||
export function makeCodecForList<T>(innerCodec: Codec<T>): Codec<T[]> {
|
||||
export function codecForList<T>(innerCodec: Codec<T>): Codec<T[]> {
|
||||
if (!innerCodec) {
|
||||
throw Error("inner codec must be defined");
|
||||
}
|
||||
@ -276,16 +276,18 @@ export function makeCodecForList<T>(innerCodec: Codec<T>): Codec<T[]> {
|
||||
/**
|
||||
* Return a codec for a value that must be a number.
|
||||
*/
|
||||
export const codecForNumber: Codec<number> = {
|
||||
decode(x: any, c?: Context): number {
|
||||
if (typeof x === "number") {
|
||||
return x;
|
||||
}
|
||||
throw new DecodingError(
|
||||
`expected number at ${renderContext(c)} but got ${typeof x}`,
|
||||
);
|
||||
},
|
||||
};
|
||||
export function codecForNumber(): Codec<number> {
|
||||
return {
|
||||
decode(x: any, c?: Context): number {
|
||||
if (typeof x === "number") {
|
||||
return x;
|
||||
}
|
||||
throw new DecodingError(
|
||||
`expected number at ${renderContext(c)} but got ${typeof x}`,
|
||||
);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a codec for a value that must be a number.
|
||||
@ -304,30 +306,34 @@ export const codecForBoolean: Codec<boolean> = {
|
||||
/**
|
||||
* Return a codec for a value that must be a string.
|
||||
*/
|
||||
export const codecForString: Codec<string> = {
|
||||
decode(x: any, c?: Context): string {
|
||||
if (typeof x === "string") {
|
||||
return x;
|
||||
}
|
||||
throw new DecodingError(
|
||||
`expected string at ${renderContext(c)} but got ${typeof x}`,
|
||||
);
|
||||
},
|
||||
};
|
||||
export function codecForString(): Codec<string> {
|
||||
return {
|
||||
decode(x: any, c?: Context): string {
|
||||
if (typeof x === "string") {
|
||||
return x;
|
||||
}
|
||||
throw new DecodingError(
|
||||
`expected string at ${renderContext(c)} but got ${typeof x}`,
|
||||
);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Codec that allows any value.
|
||||
*/
|
||||
export const codecForAny: Codec<any> = {
|
||||
decode(x: any, c?: Context): any {
|
||||
return x;
|
||||
},
|
||||
};
|
||||
export function codecForAny(): Codec<any> {
|
||||
return {
|
||||
decode(x: any, c?: Context): any {
|
||||
return x;
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a codec for a value that must be a string.
|
||||
*/
|
||||
export function makeCodecForConstString<V extends string>(s: V): Codec<V> {
|
||||
export function codecForConstString<V extends string>(s: V): Codec<V> {
|
||||
return {
|
||||
decode(x: any, c?: Context): V {
|
||||
if (x === s) {
|
||||
@ -345,7 +351,7 @@ export function makeCodecForConstString<V extends string>(s: V): Codec<V> {
|
||||
/**
|
||||
* Return a codec for a boolean true constant.
|
||||
*/
|
||||
export function makeCodecForConstTrue(): Codec<true> {
|
||||
export function codecForConstTrue(): Codec<true> {
|
||||
return {
|
||||
decode(x: any, c?: Context): true {
|
||||
if (x === true) {
|
||||
@ -361,7 +367,7 @@ export function makeCodecForConstTrue(): Codec<true> {
|
||||
/**
|
||||
* Return a codec for a boolean true constant.
|
||||
*/
|
||||
export function makeCodecForConstFalse(): Codec<false> {
|
||||
export function codecForConstFalse(): Codec<false> {
|
||||
return {
|
||||
decode(x: any, c?: Context): false {
|
||||
if (x === false) {
|
||||
@ -377,7 +383,7 @@ export function makeCodecForConstFalse(): Codec<false> {
|
||||
/**
|
||||
* Return a codec for a value that must be a constant number.
|
||||
*/
|
||||
export function makeCodecForConstNumber<V extends number>(n: V): Codec<V> {
|
||||
export function codecForConstNumber<V extends number>(n: V): Codec<V> {
|
||||
return {
|
||||
decode(x: any, c?: Context): V {
|
||||
if (x === n) {
|
||||
@ -392,9 +398,7 @@ export function makeCodecForConstNumber<V extends number>(n: V): Codec<V> {
|
||||
};
|
||||
}
|
||||
|
||||
export function makeCodecOptional<V>(
|
||||
innerCodec: Codec<V>,
|
||||
): Codec<V | undefined> {
|
||||
export function codecOptional<V>(innerCodec: Codec<V>): Codec<V | undefined> {
|
||||
return {
|
||||
decode(x: any, c?: Context): V | undefined {
|
||||
if (x === undefined || x === null) {
|
||||
|
@ -23,10 +23,10 @@ import {
|
||||
import { TalerErrorCode } from "./TalerErrorCode";
|
||||
import { codecForTransactionsRequest } from "./types/transactions";
|
||||
import {
|
||||
makeCodecForObject,
|
||||
buildCodecForObject,
|
||||
codecForString,
|
||||
Codec,
|
||||
makeCodecOptional,
|
||||
codecOptional,
|
||||
} from "./util/codec";
|
||||
import { Amounts } from "./util/amounts";
|
||||
import { OperationErrorDetails } from "./types/walletTypes";
|
||||
@ -36,8 +36,8 @@ export interface AddExchangeRequest {
|
||||
}
|
||||
|
||||
export const codecForAddExchangeRequest = (): Codec<AddExchangeRequest> =>
|
||||
makeCodecForObject<AddExchangeRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
buildCodecForObject<AddExchangeRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.build("AddExchangeRequest");
|
||||
|
||||
export interface GetExchangeTosRequest {
|
||||
@ -45,8 +45,8 @@ export interface GetExchangeTosRequest {
|
||||
}
|
||||
|
||||
export const codecForGetExchangeTosRequest = (): Codec<GetExchangeTosRequest> =>
|
||||
makeCodecForObject<GetExchangeTosRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
buildCodecForObject<GetExchangeTosRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.build("GetExchangeTosRequest");
|
||||
|
||||
export interface AcceptManualWithdrawalRequest {
|
||||
@ -57,9 +57,9 @@ export interface AcceptManualWithdrawalRequest {
|
||||
export const codecForAcceptManualWithdrawalRequet = (): Codec<
|
||||
AcceptManualWithdrawalRequest
|
||||
> =>
|
||||
makeCodecForObject<AcceptManualWithdrawalRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
.property("amount", codecForString)
|
||||
buildCodecForObject<AcceptManualWithdrawalRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.property("amount", codecForString())
|
||||
.build("AcceptManualWithdrawalRequest");
|
||||
|
||||
export interface GetWithdrawalDetailsForAmountRequest {
|
||||
@ -75,17 +75,17 @@ export interface AcceptBankIntegratedWithdrawalRequest {
|
||||
export const codecForAcceptBankIntegratedWithdrawalRequest = (): Codec<
|
||||
AcceptBankIntegratedWithdrawalRequest
|
||||
> =>
|
||||
makeCodecForObject<AcceptBankIntegratedWithdrawalRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
.property("talerWithdrawUri", codecForString)
|
||||
buildCodecForObject<AcceptBankIntegratedWithdrawalRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.property("talerWithdrawUri", codecForString())
|
||||
.build("AcceptBankIntegratedWithdrawalRequest");
|
||||
|
||||
export const codecForGetWithdrawalDetailsForAmountRequest = (): Codec<
|
||||
GetWithdrawalDetailsForAmountRequest
|
||||
> =>
|
||||
makeCodecForObject<GetWithdrawalDetailsForAmountRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
.property("amount", codecForString)
|
||||
buildCodecForObject<GetWithdrawalDetailsForAmountRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.property("amount", codecForString())
|
||||
.build("GetWithdrawalDetailsForAmountRequest");
|
||||
|
||||
export interface AcceptExchangeTosRequest {
|
||||
@ -94,9 +94,9 @@ export interface AcceptExchangeTosRequest {
|
||||
}
|
||||
|
||||
export const codecForAcceptExchangeTosRequest = (): Codec<AcceptExchangeTosRequest> =>
|
||||
makeCodecForObject<AcceptExchangeTosRequest>()
|
||||
.property("exchangeBaseUrl", codecForString)
|
||||
.property("etag", codecForString)
|
||||
buildCodecForObject<AcceptExchangeTosRequest>()
|
||||
.property("exchangeBaseUrl", codecForString())
|
||||
.property("etag", codecForString())
|
||||
.build("AcceptExchangeTosRequest");
|
||||
|
||||
export interface ApplyRefundRequest {
|
||||
@ -104,8 +104,8 @@ export interface ApplyRefundRequest {
|
||||
}
|
||||
|
||||
export const codecForApplyRefundRequest = (): Codec<ApplyRefundRequest> =>
|
||||
makeCodecForObject<ApplyRefundRequest>()
|
||||
.property("talerRefundUri", codecForString)
|
||||
buildCodecForObject<ApplyRefundRequest>()
|
||||
.property("talerRefundUri", codecForString())
|
||||
.build("ApplyRefundRequest");
|
||||
|
||||
export interface GetWithdrawalDetailsForUriRequest {
|
||||
@ -115,8 +115,8 @@ export interface GetWithdrawalDetailsForUriRequest {
|
||||
export const codecForGetWithdrawalDetailsForUri = (): Codec<
|
||||
GetWithdrawalDetailsForUriRequest
|
||||
> =>
|
||||
makeCodecForObject<GetWithdrawalDetailsForUriRequest>()
|
||||
.property("talerWithdrawUri", codecForString)
|
||||
buildCodecForObject<GetWithdrawalDetailsForUriRequest>()
|
||||
.property("talerWithdrawUri", codecForString())
|
||||
.build("GetWithdrawalDetailsForUriRequest");
|
||||
|
||||
export interface AbortProposalRequest {
|
||||
@ -124,8 +124,8 @@ export interface AbortProposalRequest {
|
||||
}
|
||||
|
||||
export const codecForAbortProposalRequest = (): Codec<AbortProposalRequest> =>
|
||||
makeCodecForObject<AbortProposalRequest>()
|
||||
.property("proposalId", codecForString)
|
||||
buildCodecForObject<AbortProposalRequest>()
|
||||
.property("proposalId", codecForString())
|
||||
.build("AbortProposalRequest");
|
||||
|
||||
export interface PreparePayRequest {
|
||||
@ -133,8 +133,8 @@ export interface PreparePayRequest {
|
||||
}
|
||||
|
||||
const codecForPreparePayRequest = (): Codec<PreparePayRequest> =>
|
||||
makeCodecForObject<PreparePayRequest>()
|
||||
.property("talerPayUri", codecForString)
|
||||
buildCodecForObject<PreparePayRequest>()
|
||||
.property("talerPayUri", codecForString())
|
||||
.build("PreparePay");
|
||||
|
||||
export interface ConfirmPayRequest {
|
||||
@ -143,9 +143,9 @@ export interface ConfirmPayRequest {
|
||||
}
|
||||
|
||||
export const codecForConfirmPayRequest = (): Codec<ConfirmPayRequest> =>
|
||||
makeCodecForObject<ConfirmPayRequest>()
|
||||
.property("proposalId", codecForString)
|
||||
.property("sessionId", makeCodecOptional(codecForString))
|
||||
buildCodecForObject<ConfirmPayRequest>()
|
||||
.property("proposalId", codecForString())
|
||||
.property("sessionId", codecOptional(codecForString()))
|
||||
.build("ConfirmPay");
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user