From 29d2d89fbaa0dedb78fa02c8ab1513204cd0c8f3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 3 Nov 2022 21:51:40 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../features/tokens/redux/TokensMiddleware.kt | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt index fe47a2b2bf..04eb4ac5b0 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt @@ -10,7 +10,6 @@ import com.tangem.common.extensions.toMapKey import com.tangem.common.hdWallet.DerivationPath import com.tangem.common.services.Result import com.tangem.domain.DomainWrapped -import com.tangem.domain.common.KeyWalletPublicKey import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.domain.common.TapWorkarounds.isTestCard @@ -205,19 +204,17 @@ class TokensMiddleware { when (result) { is CompletionResult.Success -> { val newDerivedKeys = result.data.entries - val updatedDerivedKeys = - mutableMapOf() + val oldDerivedKeys = scanResponse.derivedKeys - newDerivedKeys.forEach { entry -> - val derivationData = derivationDataList.find { - it.mapKeyOfWalletPublicKey == entry.key - } ?: return@forEach - updatedDerivedKeys[entry.key] = - ExtendedPublicKeysMap(derivationData.alreadyDerivedKeys + entry.value) + val walletKeys = (newDerivedKeys.keys + oldDerivedKeys.keys).toSet() + + val updatedDerivedKeys = walletKeys.associateWith { walletKey -> + val oldDerivations = ExtendedPublicKeysMap(oldDerivedKeys[walletKey] ?: emptyMap()) + val newDerivations = newDerivedKeys[walletKey] ?: ExtendedPublicKeysMap(emptyMap()) + ExtendedPublicKeysMap(oldDerivations + newDerivations) } - val updatedScanResponse = scanResponse.copy( - derivedKeys = updatedDerivedKeys + derivedKeys = updatedDerivedKeys, ) store.dispatchOnMain(GlobalAction.SaveScanNoteResponse(updatedScanResponse)) delay(DELAY_SDK_DIALOG_CLOSE)