From ea3cbd06484333e782e0944d91bd5bdcafeef8c5 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 20 May 2025 16:37:36 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../SimpleNetworkStatusConverter.kt | 8 +------ .../networks/models/SimpleNetworkStatus.kt | 17 +++---------- .../DefaultMultiNetworkStatusProducer.kt | 2 +- .../store/DefaultNetworksStatusesStoreV2.kt | 24 +++++++------------ .../networks/store/NetworkStatusesStoreExt.kt | 2 +- .../networks/store/NetworksStatusesStoreV2.kt | 4 ++-- .../tangem/data/networks/NetworkStatusExt.kt | 7 +----- .../SimpleNetworkStatusConverterTest.kt | 10 ++------ 8 files changed, 20 insertions(+), 54 deletions(-) diff --git a/data/networks/src/main/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverter.kt b/data/networks/src/main/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverter.kt index c9e794c53d..ba31e46281 100644 --- a/data/networks/src/main/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverter.kt +++ b/data/networks/src/main/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverter.kt @@ -40,12 +40,6 @@ internal object SimpleNetworkStatusConverter : Converter val network = getNetwork( - networkId = status.id.networkId, + networkId = status.id, derivationPath = status.id.derivationPath, scanResponse = userWallet.scanResponse, excludedBlockchains = excludedBlockchains, diff --git a/data/networks/src/main/java/com/tangem/data/networks/store/DefaultNetworksStatusesStoreV2.kt b/data/networks/src/main/java/com/tangem/data/networks/store/DefaultNetworksStatusesStoreV2.kt index 0aad1fb5c6..b32d47057c 100644 --- a/data/networks/src/main/java/com/tangem/data/networks/store/DefaultNetworksStatusesStoreV2.kt +++ b/data/networks/src/main/java/com/tangem/data/networks/store/DefaultNetworksStatusesStoreV2.kt @@ -56,16 +56,14 @@ internal class DefaultNetworksStatusesStoreV2( } override suspend fun getSyncOrNull(userWalletId: UserWalletId, network: Network): SimpleNetworkStatus? { - val simpleStatusId = SimpleNetworkStatus.Id(network = network) - - return runtimeStore.getSyncOrNull()?.get(userWalletId.stringValue)?.firstOrNull { it.id == simpleStatusId } + return runtimeStore.getSyncOrNull()?.get(userWalletId.stringValue)?.firstOrNull { it.id == network.id } } override suspend fun updateStatusSource( userWalletId: UserWalletId, network: Network, source: StatusSource, - ifNotFound: (SimpleNetworkStatus.Id) -> SimpleNetworkStatus?, + ifNotFound: (Network.ID) -> SimpleNetworkStatus?, ) { updateStatusSource( userWalletId = userWalletId, @@ -79,7 +77,7 @@ internal class DefaultNetworksStatusesStoreV2( userWalletId: UserWalletId, networks: Set, source: StatusSource, - ifNotFound: (SimpleNetworkStatus.Id) -> SimpleNetworkStatus?, + ifNotFound: (Network.ID) -> SimpleNetworkStatus?, ) { if (networks.isEmpty()) { Timber.d("Nothing to update: networks is empty") @@ -101,18 +99,16 @@ internal class DefaultNetworksStatusesStoreV2( private suspend fun updateInRuntime( userWalletId: UserWalletId, networks: Set, - ifNotFound: (SimpleNetworkStatus.Id) -> SimpleNetworkStatus? = { null }, + ifNotFound: (Network.ID) -> SimpleNetworkStatus? = { null }, update: (SimpleNetworkStatus) -> SimpleNetworkStatus, ) { - val simpleStatusIds = networks.map(SimpleNetworkStatus::Id) - runtimeStore.update(default = emptyMap()) { stored -> stored.toMutableMap().apply { val storedStatuses = this[userWalletId.stringValue].orEmpty() - val statuses = simpleStatusIds.mapNotNullTo(hashSetOf()) { simpleStatusId -> - val status = storedStatuses.firstOrNull { it.id == simpleStatusId } - ?: ifNotFound(simpleStatusId) + val statuses = networks.mapNotNullTo(hashSetOf()) { network -> + val status = storedStatuses.firstOrNull { it.id == network.id } + ?: ifNotFound(network.id) ?: return@mapNotNullTo null update(status) @@ -126,14 +122,12 @@ internal class DefaultNetworksStatusesStoreV2( } private suspend fun storeInRuntime(userWalletId: UserWalletId, status: NetworkStatus) { - val simpleStatusId = SimpleNetworkStatus.Id(network = status.network) - runtimeStore.update(default = emptyMap()) { stored -> stored.toMutableMap().apply { - val simpleStatus = SimpleNetworkStatus(id = simpleStatusId, value = status.value) + val simpleStatus = SimpleNetworkStatus(status = status) val updatedStatuses = this[userWalletId.stringValue].orEmpty() - .addOrReplace(simpleStatus) { it.id == simpleStatusId } + .addOrReplace(simpleStatus) { it.id == simpleStatus.id } put(key = userWalletId.stringValue, value = updatedStatuses) } diff --git a/data/networks/src/main/java/com/tangem/data/networks/store/NetworkStatusesStoreExt.kt b/data/networks/src/main/java/com/tangem/data/networks/store/NetworkStatusesStoreExt.kt index cf4c4f1d15..9a3a71099b 100644 --- a/data/networks/src/main/java/com/tangem/data/networks/store/NetworkStatusesStoreExt.kt +++ b/data/networks/src/main/java/com/tangem/data/networks/store/NetworkStatusesStoreExt.kt @@ -99,6 +99,6 @@ internal suspend fun NetworksStatusesStoreV2.setSourceAsOnlyCache(userWalletId: ) } -private fun createUnreachableStatus(id: SimpleNetworkStatus.Id): SimpleNetworkStatus { +private fun createUnreachableStatus(id: Network.ID): SimpleNetworkStatus { return SimpleNetworkStatus(id = id, value = NetworkStatus.Unreachable(address = null)) } \ No newline at end of file diff --git a/data/networks/src/main/java/com/tangem/data/networks/store/NetworksStatusesStoreV2.kt b/data/networks/src/main/java/com/tangem/data/networks/store/NetworksStatusesStoreV2.kt index d3f9613cca..7a80a1ac84 100644 --- a/data/networks/src/main/java/com/tangem/data/networks/store/NetworksStatusesStoreV2.kt +++ b/data/networks/src/main/java/com/tangem/data/networks/store/NetworksStatusesStoreV2.kt @@ -24,7 +24,7 @@ internal interface NetworksStatusesStoreV2 { userWalletId: UserWalletId, network: Network, source: StatusSource, - ifNotFound: (SimpleNetworkStatus.Id) -> SimpleNetworkStatus? = { null }, + ifNotFound: (Network.ID) -> SimpleNetworkStatus? = { null }, ) /** Update [source] of [networks] by [userWalletId]. If the status is not found, create a new one by [ifNotFound] */ @@ -32,7 +32,7 @@ internal interface NetworksStatusesStoreV2 { userWalletId: UserWalletId, networks: Set, source: StatusSource, - ifNotFound: (SimpleNetworkStatus.Id) -> SimpleNetworkStatus? = { null }, + ifNotFound: (Network.ID) -> SimpleNetworkStatus? = { null }, ) /** diff --git a/data/networks/src/test/java/com/tangem/data/networks/NetworkStatusExt.kt b/data/networks/src/test/java/com/tangem/data/networks/NetworkStatusExt.kt index f82fcb835c..eaaf7590aa 100644 --- a/data/networks/src/test/java/com/tangem/data/networks/NetworkStatusExt.kt +++ b/data/networks/src/test/java/com/tangem/data/networks/NetworkStatusExt.kt @@ -5,12 +5,7 @@ import com.tangem.data.networks.models.SimpleNetworkStatus import com.tangem.datasource.local.network.entity.NetworkStatusDM import com.tangem.domain.tokens.model.NetworkStatus -internal fun NetworkStatus.toSimple(): SimpleNetworkStatus { - return SimpleNetworkStatus( - id = SimpleNetworkStatus.Id(network = network), - value = value, - ) -} +internal fun NetworkStatus.toSimple() = SimpleNetworkStatus(status = this) internal fun NetworkStatus.toDataModel(): NetworkStatusDM? { return NetworkStatusDataModelConverter.convert(value = this) diff --git a/data/networks/src/test/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverterTest.kt b/data/networks/src/test/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverterTest.kt index a2de3f12fe..ebbb924634 100644 --- a/data/networks/src/test/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverterTest.kt +++ b/data/networks/src/test/java/com/tangem/data/networks/converters/SimpleNetworkStatusConverterTest.kt @@ -70,10 +70,7 @@ internal class SimpleNetworkStatusConverterTest { ), ), expected = SimpleNetworkStatus( - id = SimpleNetworkStatus.Id( - networkId = network.id, - derivationPath = Network.DerivationPath.Card(value = "card"), - ), + id = network.id, value = NetworkStatus.Verified( address = NetworkAddress.Selectable( defaultAddress = NetworkAddress.Address( @@ -133,10 +130,7 @@ internal class SimpleNetworkStatusConverterTest { errorMessage = "errorMessage", ), expected = SimpleNetworkStatus( - id = SimpleNetworkStatus.Id( - networkId = network.id, - derivationPath = Network.DerivationPath.Card(value = "card"), - ), + id = network.id, value = NetworkStatus.NoAccount( address = NetworkAddress.Selectable( defaultAddress = NetworkAddress.Address(