commit bb8bf3cb5596fe615359e4b984d6a7f51560e92b parent b73accfe4a5a328fbbebcc9bdfd9b4740af90058 Author: Florian Dold <florian@dold.me> Date: Tue, 14 Feb 2023 13:18:33 +0100 wallet-core: more details in refresh transaction Diffstat:
4 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/packages/taler-util/src/transactions-types.ts b/packages/taler-util/src/transactions-types.ts @@ -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; } /** diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts @@ -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 === diff --git a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx @@ -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, diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx @@ -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,