wallet-core: report pay-merchant DD37 state
This commit is contained in:
parent
16d30adf0d
commit
23fca6d867
@ -89,6 +89,8 @@ export enum TransactionMajorState {
|
||||
Aborting = "aborting",
|
||||
Aborted = "aborted",
|
||||
Suspended = "suspended",
|
||||
SuspendedDeletable = "suspended-deletable",
|
||||
Dialog = "dialog",
|
||||
SuspendedAborting = "suspended-aborting",
|
||||
Failed = "failed",
|
||||
// Only used for the notification, never in the transaction history
|
||||
@ -104,15 +106,22 @@ export enum TransactionMinorState {
|
||||
KycRequired = "kyc",
|
||||
AmlRequired = "aml",
|
||||
Track = "track",
|
||||
Pay = "pay",
|
||||
RebindSession = "rebind-session",
|
||||
Refresh = "refresh",
|
||||
Pickup = "pickup",
|
||||
AutoRefund = "auto-refund",
|
||||
User = "user",
|
||||
Bank = "bank",
|
||||
ClaimProposal = "claim-proposal",
|
||||
CheckRefunds = "check-refunds",
|
||||
Repurchase = "repurchase",
|
||||
BankRegisterReserve = "bank-register-reserve",
|
||||
BankConfirmTransfer = "bank-confirm-transfer",
|
||||
WithdrawCoins = "withdraw-coins",
|
||||
ExchangeWaitReserve = "exchange-wait-reserve",
|
||||
AbortingBank = "aborting-bank",
|
||||
Refused = "refused",
|
||||
}
|
||||
|
||||
export interface TransactionsResponse {
|
||||
|
@ -71,6 +71,8 @@ import {
|
||||
TalerErrorDetail,
|
||||
TalerProtocolTimestamp,
|
||||
TalerProtocolViolationError,
|
||||
TransactionMajorState,
|
||||
TransactionMinorState,
|
||||
TransactionState,
|
||||
TransactionType,
|
||||
URL,
|
||||
@ -2477,8 +2479,65 @@ export async function abortPay(
|
||||
});
|
||||
}
|
||||
|
||||
export function computeWithdrawalTransactionStatus(
|
||||
export function computePayMerchantTransactionState(
|
||||
purchaseRecord: PurchaseRecord,
|
||||
): TransactionState {
|
||||
throw Error("not implemented");
|
||||
switch (purchaseRecord.purchaseStatus) {
|
||||
case PurchaseStatus.DownloadingProposal:
|
||||
return {
|
||||
major: TransactionMajorState.Pending,
|
||||
minor: TransactionMinorState.ClaimProposal,
|
||||
};
|
||||
case PurchaseStatus.Paid:
|
||||
return {
|
||||
major: TransactionMajorState.Done,
|
||||
};
|
||||
case PurchaseStatus.PaymentAbortFinished:
|
||||
return {
|
||||
major: TransactionMajorState.Aborted,
|
||||
};
|
||||
case PurchaseStatus.Proposed:
|
||||
return {
|
||||
major: TransactionMajorState.Dialog,
|
||||
};
|
||||
case PurchaseStatus.ProposalDownloadFailed:
|
||||
return {
|
||||
major: TransactionMajorState.Failed,
|
||||
minor: TransactionMinorState.ClaimProposal,
|
||||
};
|
||||
case PurchaseStatus.RepurchaseDetected:
|
||||
return {
|
||||
major: TransactionMajorState.Failed,
|
||||
minor: TransactionMinorState.Repurchase,
|
||||
};
|
||||
case PurchaseStatus.AbortingWithRefund:
|
||||
return {
|
||||
major: TransactionMajorState.Aborting,
|
||||
};
|
||||
case PurchaseStatus.Paying:
|
||||
return {
|
||||
major: TransactionMajorState.Pending,
|
||||
minor: TransactionMinorState.Pay,
|
||||
};
|
||||
case PurchaseStatus.PayingReplay:
|
||||
return {
|
||||
major: TransactionMajorState.Pending,
|
||||
minor: TransactionMinorState.RebindSession,
|
||||
};
|
||||
case PurchaseStatus.ProposalRefused:
|
||||
return {
|
||||
major: TransactionMajorState.Failed,
|
||||
minor: TransactionMinorState.Refused,
|
||||
};
|
||||
case PurchaseStatus.QueryingAutoRefund:
|
||||
return {
|
||||
major: TransactionMajorState.Pending,
|
||||
minor: TransactionMinorState.AutoRefund,
|
||||
};
|
||||
case PurchaseStatus.QueryingRefund:
|
||||
return {
|
||||
major: TransactionMajorState.Pending,
|
||||
minor: TransactionMinorState.CheckRefunds,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -88,6 +88,7 @@ import {
|
||||
import { getExchangeDetails } from "./exchanges.js";
|
||||
import {
|
||||
abortPay,
|
||||
computePayMerchantTransactionState,
|
||||
expectProposalDownload,
|
||||
extractContractData,
|
||||
processPurchasePay,
|
||||
@ -1030,7 +1031,7 @@ async function buildTransactionForPurchase(
|
||||
|
||||
return {
|
||||
type: TransactionType.Payment,
|
||||
txState: mkTxStateUnknown(),
|
||||
txState: computePayMerchantTransactionState(purchaseRecord),
|
||||
amountRaw: Amounts.stringify(contractData.amount),
|
||||
amountEffective: Amounts.stringify(purchaseRecord.payInfo.totalPayCost),
|
||||
totalRefundRaw: Amounts.stringify(totalRefund.raw),
|
||||
|
Loading…
Reference in New Issue
Block a user