From 8049eaa014f854a2028649c1d562fa7818234fd8 Mon Sep 17 00:00:00 2001 From: Cuteivist Date: Wed, 8 May 2024 11:46:57 +0200 Subject: [PATCH] fix(wallet): Update currency format on startup (#14623) --- .../wallet_section/activity/controller.nim | 3 +++ .../main/wallet_section/activity/entry.nim | 20 +++++++++++++++---- .../main/wallet_section/activity/model.nim | 7 ++++++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/app/modules/main/wallet_section/activity/controller.nim b/src/app/modules/main/wallet_section/activity/controller.nim index 06021fe9ae..e2962c97b9 100644 --- a/src/app/modules/main/wallet_section/activity/controller.nim +++ b/src/app/modules/main/wallet_section/activity/controller.nim @@ -244,6 +244,9 @@ QtObject: let args = SavedAddressArgs(e) self.model.refreshItemsContainingAddress(args.address) + events.on(SIGNAL_TOKENS_LIST_UPDATED) do(e:Args): + self.model.refreshAmountCurrency(self.currencyService) + # setup other event handlers self.eventsHandler.onFilteringDone(proc (jsonObj: JsonNode) = self.processResponse(jsonObj) diff --git a/src/app/modules/main/wallet_section/activity/entry.nim b/src/app/modules/main/wallet_section/activity/entry.nim index 63686f3cf8..3fedbaae82 100644 --- a/src/app/modules/main/wallet_section/activity/entry.nim +++ b/src/app/modules/main/wallet_section/activity/entry.nim @@ -88,17 +88,29 @@ QtObject: if metadata.symbolOut.isSome() or metadata.amountOut > 0: result.outAmount = currencyService.parseCurrencyValue(metadata.symbolOut.get(""), metadata.amountOut) - proc newActivityEntry*(backendEntry: backend.ActivityEntry, addresses: seq[string], currencyService: Service): ActivityEntry = - var ae: entry.ActivityEntry + proc buildExtraData(backendEntry: backend.ActivityEntry, currencyService: Service): ExtraData = + var extraData: ExtraData + case backendEntry.getPayloadType(): + of MultiTransaction: + extraData = buildMultiTransactionExtraData(backendEntry, currencyService) + of SimpleTransaction, PendingTransaction: + extraData = buildTransactionExtraData(backendEntry, currencyService) + return extraData + + proc newActivityEntry*(backendEntry: backend.ActivityEntry, addresses: seq[string], currencyService: Service): ActivityEntry = + var ae: entry.ActivityEntry + let extraData = buildExtraData(backendEntry, currencyService) case backendEntry.getPayloadType(): of MultiTransaction: - let extraData = buildMultiTransactionExtraData(backendEntry, currencyService) ae = newMultiTransactionActivityEntry(backendEntry, extraData, currencyService) of SimpleTransaction, PendingTransaction: - let extraData = buildTransactionExtraData(backendEntry, currencyService) ae = newTransactionActivityEntry(backendEntry, addresses, extraData, currencyService) return ae + proc resetAmountCurrency*(self: ActivityEntry, service: Service) = + self.extraData = buildExtraData(self.metadata, service) + self.amountCurrency = self.extractCurrencyAmount(service) + proc isMultiTransaction*(self: ActivityEntry): bool {.slot.} = return self.metadata.getPayloadType() == backend.PayloadType.MultiTransaction diff --git a/src/app/modules/main/wallet_section/activity/model.nim b/src/app/modules/main/wallet_section/activity/model.nim index 5211f68b8a..6395734611 100644 --- a/src/app/modules/main/wallet_section/activity/model.nim +++ b/src/app/modules/main/wallet_section/activity/model.nim @@ -3,6 +3,7 @@ import NimQml, Tables, strutils, stew/shims/strformat, sequtils, logging, option import ./entry import app/modules/shared_models/currency_amount +import app_service/service/currency/service import backend/activity as backend import backend/backend as importing_transactionidentity_comp @@ -153,4 +154,8 @@ QtObject: cmpIgnoreCase(self.entries[i].getRecipient(), address) == 0: let index = self.createIndex(i, 0, nil) defer: index.delete - self.dataChanged(index, index, @[ModelRole.ActivityEntryRole.int]) \ No newline at end of file + self.dataChanged(index, index, @[ModelRole.ActivityEntryRole.int]) + + proc refreshAmountCurrency*(self: Model, currencyService: Service) = + for i in 0..self.entries.high: + self.entries[i].resetAmountCurrency(currencyService) \ No newline at end of file