diff options
author | Sebastian <sebasjm@gmail.com> | 2022-11-08 13:00:34 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-11-08 13:00:34 -0300 |
commit | 5c742afbdf9aaa767c3e4617c48a98439e400fa2 (patch) | |
tree | 336aa5fc9bc02879e989aef4fe2a82a7b167ef8d /packages/taler-util/src | |
parent | 43c7cff75055f72c7d59a7180ae8da2554456d8d (diff) | |
download | wallet-core-5c742afbdf9aaa767c3e4617c48a98439e400fa2.tar.xz |
feature: 7440 add expiration to p2p
Diffstat (limited to 'packages/taler-util/src')
-rw-r--r-- | packages/taler-util/src/payto.ts | 11 | ||||
-rw-r--r-- | packages/taler-util/src/taler-types.ts | 11 | ||||
-rw-r--r-- | packages/taler-util/src/types-test.ts | 2 | ||||
-rw-r--r-- | packages/taler-util/src/wallet-types.ts | 59 |
4 files changed, 61 insertions, 22 deletions
diff --git a/packages/taler-util/src/payto.ts b/packages/taler-util/src/payto.ts index 3073b991c..8eb0b88a8 100644 --- a/packages/taler-util/src/payto.ts +++ b/packages/taler-util/src/payto.ts @@ -139,12 +139,13 @@ export function parsePaytoUri(s: string): PaytoUri | undefined { let iban: string | undefined = undefined; let bic: string | undefined = undefined; if (parts.length === 1) { - iban = parts[0] - } if (parts.length === 2) { - bic = parts[0] - iban = parts[1] + iban = parts[0]; + } + if (parts.length === 2) { + bic = parts[0]; + iban = parts[1]; } else { - iban = targetPath + iban = targetPath; } return { isKnown: true, diff --git a/packages/taler-util/src/taler-types.ts b/packages/taler-util/src/taler-types.ts index d4f96f5cd..292ace94b 100644 --- a/packages/taler-util/src/taler-types.ts +++ b/packages/taler-util/src/taler-types.ts @@ -1297,7 +1297,7 @@ export const codecForProduct = (): Codec<Product> => .property("price", codecOptional(codecForString())) .build("Tax"); -export const codecForContractTerms = (): Codec<MerchantContractTerms> => +export const codecForMerchantContractTerms = (): Codec<MerchantContractTerms> => buildCodecForObject<MerchantContractTerms>() .property("order_id", codecForString()) .property("fulfillment_url", codecOptional(codecForString())) @@ -1329,7 +1329,14 @@ export const codecForContractTerms = (): Codec<MerchantContractTerms> => .property("products", codecOptional(codecForList(codecForProduct()))) .property("extra", codecForAny()) .property("minimum_age", codecOptional(codecForNumber())) - .build("ContractTerms"); + .build("MerchantContractTerms"); + +export const codecForPeerContractTerms = (): Codec<PeerContractTerms> => + buildCodecForObject<PeerContractTerms>() + .property("summary", codecForString()) + .property("amount", codecForString()) + .property("purse_expiration", codecForTimestamp) + .build("PeerContractTerms"); export const codecForMerchantRefundPermission = (): Codec<MerchantAbortPayRefundDetails> => diff --git a/packages/taler-util/src/types-test.ts b/packages/taler-util/src/types-test.ts index 2915106c2..6acd2c26e 100644 --- a/packages/taler-util/src/types-test.ts +++ b/packages/taler-util/src/types-test.ts @@ -15,7 +15,7 @@ */ import test from "ava"; -import { codecForContractTerms } from "./taler-types.js"; +import { codecForMerchantContractTerms as codecForContractTerms } from "./taler-types.js"; test("contract terms validation", (t) => { const c = { diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts index daeac73fd..4e1563e27 100644 --- a/packages/taler-util/src/wallet-types.ts +++ b/packages/taler-util/src/wallet-types.ts @@ -53,13 +53,15 @@ import { TalerErrorCode } from "./taler-error-codes.js"; import { AmountString, AuditorDenomSig, - codecForContractTerms, + codecForMerchantContractTerms, CoinEnvelope, MerchantContractTerms, + PeerContractTerms, DenominationPubKey, DenomKeyType, ExchangeAuditor, UnblindedSignature, + codecForPeerContractTerms, } from "./taler-types.js"; import { AbsoluteTime, @@ -253,7 +255,7 @@ export const codecForConfirmPayResultDone = (): Codec<ConfirmPayResultDone> => buildCodecForObject<ConfirmPayResultDone>() .property("type", codecForConstString(ConfirmPayResultType.Done)) .property("transactionId", codecForString()) - .property("contractTerms", codecForContractTerms()) + .property("contractTerms", codecForMerchantContractTerms()) .build("ConfirmPayResultDone"); export const codecForConfirmPayResult = (): Codec<ConfirmPayResult> => @@ -383,7 +385,7 @@ export const codecForPreparePayResultPaymentPossible = buildCodecForObject<PreparePayResultPaymentPossible>() .property("amountEffective", codecForAmountString()) .property("amountRaw", codecForAmountString()) - .property("contractTerms", codecForContractTerms()) + .property("contractTerms", codecForMerchantContractTerms()) .property("proposalId", codecForString()) .property("contractTermsHash", codecForString()) .property("noncePriv", codecForString()) @@ -1738,9 +1740,26 @@ export interface PayCoinSelection { customerDepositFees: AmountString; } -export interface InitiatePeerPushPaymentRequest { +export interface PreparePeerPushPaymentRequest { + exchangeBaseUrl?: string; amount: AmountString; - partialContractTerms: any; +} + +export const codecForPreparePeerPushPaymentRequest = + (): Codec<PreparePeerPushPaymentRequest> => + buildCodecForObject<PreparePeerPushPaymentRequest>() + .property("exchangeBaseUrl", codecOptional(codecForString())) + .property("amount", codecForAmountString()) + .build("InitiatePeerPushPaymentRequest"); + +export interface PreparePeerPushPaymentResponse { + amountRaw: AmountString; + amountEffective: AmountString; +} + +export interface InitiatePeerPushPaymentRequest { + exchangeBaseUrl?: string; + partialContractTerms: PeerContractTerms; } export interface InitiatePeerPushPaymentResponse { @@ -1755,8 +1774,7 @@ export interface InitiatePeerPushPaymentResponse { export const codecForInitiatePeerPushPaymentRequest = (): Codec<InitiatePeerPushPaymentRequest> => buildCodecForObject<InitiatePeerPushPaymentRequest>() - .property("amount", codecForAmountString()) - .property("partialContractTerms", codecForAny()) + .property("partialContractTerms", codecForPeerContractTerms()) .build("InitiatePeerPushPaymentRequest"); export interface CheckPeerPushPaymentRequest { @@ -1768,13 +1786,13 @@ export interface CheckPeerPullPaymentRequest { } export interface CheckPeerPushPaymentResponse { - contractTerms: any; + contractTerms: PeerContractTerms; amount: AmountString; peerPushPaymentIncomingId: string; } export interface CheckPeerPullPaymentResponse { - contractTerms: any; + contractTerms: PeerContractTerms; amount: AmountString; peerPullPaymentIncomingId: string; } @@ -1843,21 +1861,34 @@ export const codecForAcceptPeerPullPaymentRequest = .property("peerPullPaymentIncomingId", codecForString()) .build("AcceptPeerPllPaymentRequest"); +export interface PreparePeerPullPaymentRequest { + exchangeBaseUrl: string; + amount: AmountString; +} +export const codecForPreparePeerPullPaymentRequest = + (): Codec<PreparePeerPullPaymentRequest> => + buildCodecForObject<PreparePeerPullPaymentRequest>() + .property("amount", codecForAmountString()) + .property("exchangeBaseUrl", codecForString()) + .build("PreparePeerPullPaymentRequest"); + +export interface PreparePeerPullPaymentResponse { + amountRaw: AmountString; + amountEffective: AmountString; +} export interface InitiatePeerPullPaymentRequest { /** * FIXME: Make this optional? */ exchangeBaseUrl: string; - amount: AmountString; - partialContractTerms: any; + partialContractTerms: PeerContractTerms; } export const codecForInitiatePeerPullPaymentRequest = (): Codec<InitiatePeerPullPaymentRequest> => buildCodecForObject<InitiatePeerPullPaymentRequest>() - .property("partialContractTerms", codecForAny()) - .property("amount", codecForAmountString()) - .property("exchangeBaseUrl", codecForAmountString()) + .property("partialContractTerms", codecForPeerContractTerms()) + .property("exchangeBaseUrl", codecForString()) .build("InitiatePeerPullPaymentRequest"); export interface InitiatePeerPullPaymentResponse { |