diff --git a/backend/accounts/transaction_test.go b/backend/accounts/transaction_test.go index ed792f921b..6c2ebcb828 100644 --- a/backend/accounts/transaction_test.go +++ b/backend/accounts/transaction_test.go @@ -277,6 +277,14 @@ func TestOrderedTransactionsDeductedAmount(t *testing.T) { Amount: amount, Fee: &fee, }, + { + // timestamp is nil, deductedAmount is still set + Timestamp: nil, + Height: 15, + Type: TxTypeSend, + Amount: amount, + Fee: &fee, + }, } orderedTxs := NewOrderedTransactions(txs) @@ -285,4 +293,5 @@ func TestOrderedTransactionsDeductedAmount(t *testing.T) { requireAmountIsEqualTo(t, orderedTxs[1].DeductedAmount, 10) requireAmountIsEqualTo(t, orderedTxs[2].DeductedAmount, 0) requireAmountIsEqualTo(t, orderedTxs[3].DeductedAmount, 100) + requireAmountIsEqualTo(t, orderedTxs[4].DeductedAmount, 110) } diff --git a/backend/coins/btc/handlers/handlers.go b/backend/coins/btc/handlers/handlers.go index d8dfc5149d..e49f8e6db9 100644 --- a/backend/coins/btc/handlers/handlers.go +++ b/backend/coins/btc/handlers/handlers.go @@ -121,14 +121,18 @@ func (handlers *Handlers) formatAmountAsJSON(amount coin.Amount, isFee bool) For func (handlers *Handlers) formatAmountAtTimeAsJSON(amount coin.Amount, timeStamp *time.Time) FormattedAmount { accountCoin := handlers.account.Coin() - conversions, estimated := coin.ConversionsAtTime( - amount, - handlers.account.Coin(), - false, - handlers.account.Config().RateUpdater, - util.FormatBtcAsSat(handlers.account.Config().BtcCurrencyUnit), - timeStamp, - ) + conversions := map[string]string{} + estimated := false + if timeStamp != nil { + conversions, estimated = coin.ConversionsAtTime( + amount, + handlers.account.Coin(), + false, + handlers.account.Config().RateUpdater, + util.FormatBtcAsSat(handlers.account.Config().BtcCurrencyUnit), + timeStamp, + ) + } return FormattedAmount{ Amount: accountCoin.FormatAmount(amount, false), Unit: accountCoin.GetFormatUnit(false), @@ -195,12 +199,12 @@ func (handlers *Handlers) getTxInfoJSON(txInfo *accounts.TransactionData, detail timestamp = txInfo.CreatedTimestamp } - var deductedAmountAtTime FormattedAmount + deductedAmountAtTime := handlers.formatAmountAtTimeAsJSON(txInfo.DeductedAmount, timestamp) + if timestamp != nil { t := timestamp.Format(time.RFC3339) formattedTime = &t amountAtTime = handlers.formatAmountAtTimeAsJSON(txInfo.Amount, timestamp) - deductedAmountAtTime = handlers.formatAmountAtTimeAsJSON(txInfo.DeductedAmount, timestamp) } addresses := []string{} diff --git a/frontends/web/src/components/amount/conversion-amount.tsx b/frontends/web/src/components/amount/conversion-amount.tsx index 29be973649..ccd5ddb286 100644 --- a/frontends/web/src/components/amount/conversion-amount.tsx +++ b/frontends/web/src/components/amount/conversion-amount.tsx @@ -54,7 +54,7 @@ export const ConversionAmount = ({ return ( - {conversion && amountToShow ? ( + {(conversion || sendToSelf) && amountToShow ? ( <> {sendToSelf && (