From 5d0837913901a2947c66209d64855b324824757d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 16 Sep 2022 11:06:55 -0300 Subject: working on #7357 getTransactionById is introduced: with that we move all transaction information building into a function transactionId was added in every response that creates a tx --- packages/taler-util/src/time.ts | 10 ++++++++++ packages/taler-util/src/transactionsTypes.ts | 9 +++++++++ packages/taler-util/src/walletTypes.ts | 26 +++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) (limited to 'packages/taler-util/src') diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts index 1e79b943b..c3f1b30bd 100644 --- a/packages/taler-util/src/time.ts +++ b/packages/taler-util/src/time.ts @@ -56,6 +56,16 @@ export namespace TalerProtocolTimestamp { t_s: s, }; } + export function min(t1: TalerProtocolTimestamp, t2: TalerProtocolTimestamp): TalerProtocolTimestamp { + if (t1.t_s === "never") { + return { t_s: t2.t_s }; + } + if (t2.t_s === "never") { + return { t_s: t2.t_s }; + } + return { t_s: Math.min(t1.t_s, t2.t_s) }; + } + } export interface Duration { diff --git a/packages/taler-util/src/transactionsTypes.ts b/packages/taler-util/src/transactionsTypes.ts index a46f304d1..e5b0695f8 100644 --- a/packages/taler-util/src/transactionsTypes.ts +++ b/packages/taler-util/src/transactionsTypes.ts @@ -505,6 +505,15 @@ export interface TransactionDeposit extends TransactionCommon { amountEffective: AmountString; } +export interface TransactionByIdRequest { + transactionId: string; +} + +export const codecForTransactionByIdRequest = (): Codec => + buildCodecForObject() + .property("transactionId", codecForString()) + .build("TransactionByIdRequest"); + export const codecForTransactionsRequest = (): Codec => buildCodecForObject() .property("currency", codecOptional(codecForString())) diff --git a/packages/taler-util/src/walletTypes.ts b/packages/taler-util/src/walletTypes.ts index 701049c26..7fcb752b1 100644 --- a/packages/taler-util/src/walletTypes.ts +++ b/packages/taler-util/src/walletTypes.ts @@ -138,11 +138,12 @@ export enum ConfirmPayResultType { export interface ConfirmPayResultDone { type: ConfirmPayResultType.Done; contractTerms: ContractTerms; + transactionId: string; } export interface ConfirmPayResultPending { type: ConfirmPayResultType.Pending; - + transactionId: string; lastError: TalerErrorDetail | undefined; } @@ -152,12 +153,14 @@ export const codecForConfirmPayResultPending = (): Codec => buildCodecForObject() .property("lastError", codecForAny()) + .property("transactionId", codecForString()) .property("type", codecForConstString(ConfirmPayResultType.Pending)) .build("ConfirmPayResultPending"); export const codecForConfirmPayResultDone = (): Codec => buildCodecForObject() .property("type", codecForConstString(ConfirmPayResultType.Done)) + .property("transactionId", codecForString()) .property("contractTerms", codecForContractTerms()) .build("ConfirmPayResultDone"); @@ -334,6 +337,10 @@ export interface PrepareTipResult { expirationTimestamp: TalerProtocolTimestamp; } +export interface AcceptTipResponse { + transactionId: string; +} + export const codecForPrepareTipResult = (): Codec => buildCodecForObject() .property("accepted", codecForBoolean()) @@ -462,6 +469,7 @@ export interface BankWithdrawDetails { export interface AcceptWithdrawalResponse { reservePub: string; confirmTransferUrl?: string; + transactionId: string; } /** @@ -864,6 +872,8 @@ export interface AcceptManualWithdrawalResult { * Public key of the newly created reserve. */ reservePub: string; + + transactionId: string; } export interface ManualWithdrawalDetails { @@ -1252,6 +1262,8 @@ export const codecForWithdrawTestBalance = export interface ApplyRefundResponse { contractTermsHash: string; + transactionId: string; + proposalId: string; amountEffectivePaid: AmountString; @@ -1273,6 +1285,7 @@ export const codecForApplyRefundResponse = (): Codec => .property("contractTermsHash", codecForString()) .property("pendingAtExchange", codecForBoolean()) .property("proposalId", codecForString()) + .property("transactionId", codecForString()) .property("info", codecForOrderShortInfo()) .build("ApplyRefundResponse"); @@ -1374,6 +1387,7 @@ export const codecForCreateDepositGroupRequest = export interface CreateDepositGroupResponse { depositGroupId: string; + transactionId: string; } export interface TrackDepositGroupRequest { @@ -1539,6 +1553,7 @@ export interface InitiatePeerPushPaymentResponse { mergePriv: string; contractPriv: string; talerUri: string; + transactionId: string; } export const codecForInitiatePeerPushPaymentRequest = @@ -1586,6 +1601,13 @@ export interface AcceptPeerPushPaymentRequest { */ peerPushPaymentIncomingId: string; } +export interface AcceptPeerPushPaymentResponse { + transactionId: string; +} + +export interface AcceptPeerPullPaymentResponse { + transactionId: string; +} export const codecForAcceptPeerPushPaymentRequest = (): Codec => @@ -1629,4 +1651,6 @@ export interface InitiatePeerPullPaymentResponse { * that was requested. */ talerUri: string; + + transactionId: string; } -- cgit v1.2.3