wallet-core: more details in refresh transaction

This commit is contained in:
Florian Dold 2023-02-14 13:18:33 +01:00
parent b73accfe4a
commit bb8bf3cb55
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
4 changed files with 18 additions and 0 deletions

View File

@ -535,8 +535,15 @@ export interface TransactionRefresh extends TransactionCommon {
/**
* Fees, i.e. the effective, negative effect of the refresh
* on the balance.
*
* Only applicable for stand-alone refreshes, and zero for
* other refreshes where the transaction itself accounts for the
* refresh fee.
*/
amountEffective: AmountString;
refreshInputAmount: AmountString;
refreshOutputAmount: AmountString;
}
/**

View File

@ -596,6 +596,11 @@ function buildTransactionForRefresh(
default:
extendedStatus = ExtendedStatus.Pending;
}
const inputAmount = Amounts.sumOrZero(
refreshGroupRecord.currency,
refreshGroupRecord.inputPerCoin,
).amount;
const outputAmount = Amounts.sumOrZero(refreshGroupRecord.currency, refreshGroupRecord.estimatedOutputPerCoin).amount;
return {
type: TransactionType.Refresh,
refreshReason: refreshGroupRecord.reason,
@ -605,6 +610,8 @@ function buildTransactionForRefresh(
amountRaw: Amounts.stringify(
Amounts.zeroOfCurrency(refreshGroupRecord.currency),
),
refreshInputAmount: Amounts.stringify(inputAmount),
refreshOutputAmount: Amounts.stringify(outputAmount),
extendedStatus:
refreshGroupRecord.operationStatus === RefreshOperationStatus.Finished ||
refreshGroupRecord.operationStatus ===

View File

@ -102,6 +102,8 @@ const exampleData = {
refresh: {
...commonTransaction(),
type: TransactionType.Refresh,
refreshInputAmount: "USD:1",
refreshOutputAmount: "USD:0.5",
exchangeBaseUrl: "http://exchange.taler",
refreshReason: RefreshReason.PayMerchant,
} as TransactionRefresh,

View File

@ -126,6 +126,8 @@ const exampleData = {
refresh: {
...commonTransaction,
type: TransactionType.Refresh,
refreshInputAmount: "KUDOS:1",
refreshOutputAmount: "KUDOS:0.5",
exchangeBaseUrl: "http://exchange.taler",
refreshReason: RefreshReason.Manual,
} as TransactionRefresh,