From 8176ce803236c0e9cc43eecb452d36364d1636bb Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 30 May 2022 16:38:53 +0400 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle | 2 +- app/src/main/assets/tangem-app-config | 2 +- .../tap/domain/tokens/CurrenciesRepository.kt | 1 + .../tap/domain/tokens/models/BlockchainDao.kt | 3 +++ .../domain/tokens/models/BlockchainNetwork.kt | 9 +++---- domain/build.gradle | 2 +- .../common/extensions/TangemTechService.kt | 27 +++++++++++++++++++ .../addCustomToken/AddCustomTokenService.kt | 1 + .../api/tangemTech/TangemTechService.kt | 22 +++++---------- 9 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 domain/src/main/java/com/tangem/domain/common/extensions/TangemTechService.kt diff --git a/app/build.gradle b/app/build.gradle index 3dcd68f4e8..addaddcc5c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,7 +93,7 @@ dependencies { implementation 'com.google.android.play:core-ktx:1.8.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' - implementation 'com.tangem:blockchain:develop-83' + implementation 'com.tangem:blockchain:develop-84' // implementation 'com.tangem:blockchain:0.0.1' implementation 'com.tangem.tangem-sdk-kotlin:core:develop-142' implementation 'com.tangem.tangem-sdk-kotlin:android:develop-142' diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index 64ae04d208..7f058ec409 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit 64ae04d2086e5a605dd4da3cba4af32a60d46c79 +Subproject commit 7f058ec409b4eaaf8688ecd4bf944ef8d58d3564 diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt index 74e1c47a52..cd4e2c9d0e 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt @@ -9,6 +9,7 @@ import com.tangem.blockchain.common.DerivationStyle import com.tangem.blockchain.common.Token import com.tangem.common.card.FirmwareVersion import com.tangem.common.services.Result +import com.tangem.domain.common.extensions.getTokens import com.tangem.domain.common.extensions.toNetworkId import com.tangem.network.api.tangemTech.TangemTechService import com.tangem.network.common.MoshiConverter diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainDao.kt b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainDao.kt index f8704f04cb..73eef228ad 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainDao.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainDao.kt @@ -4,6 +4,7 @@ import com.squareup.moshi.Json import com.squareup.moshi.JsonClass import com.tangem.blockchain.common.Blockchain +@Deprecated("The class is used only for migration from older versions of the app") @JsonClass(generateAdapter = true) data class BlockchainDao( @Json(name = "key") @@ -11,6 +12,7 @@ data class BlockchainDao( @Json(name = "testnet") val isTestNet: Boolean ) { + @Deprecated("The method is used only for migration from older versions of the app") fun toBlockchain(): Blockchain { val blockchain = Blockchain.values().find { it.name.lowercase() == name.lowercase() } ?: throw Exception("Invalid BlockchainDao") @@ -19,6 +21,7 @@ data class BlockchainDao( } companion object { + @Deprecated("The method is used only for migration from older versions of the app") fun fromBlockchain(blockchain: Blockchain): BlockchainDao { val name = blockchain.name.removeSuffix("Testnet").lowercase() return BlockchainDao(name, blockchain.isTestnet()) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt index c6d64bb386..36e376a08b 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt @@ -5,6 +5,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.Token import com.tangem.blockchain.common.WalletManager import com.tangem.common.card.Card +import com.tangem.common.extensions.calculateHashCode import com.tangem.domain.common.TapWorkarounds.derivationStyle @JsonClass(generateAdapter = true) @@ -39,11 +40,9 @@ data class BlockchainNetwork( return true } - override fun hashCode(): Int { - var result = blockchain.hashCode() - result = 31 * result + (derivationPath?.hashCode() ?: 0) - return result - } + override fun hashCode(): Int = calculateHashCode( + blockchain.hashCode(), derivationPath?.hashCode() ?: 0 + ) companion object { fun fromWalletManager(walletManager: WalletManager): BlockchainNetwork { diff --git a/domain/build.gradle b/domain/build.gradle index bb6f9ae760..db9f1b15b3 100644 --- a/domain/build.gradle +++ b/domain/build.gradle @@ -59,7 +59,7 @@ dependencies { implementation implementation(project(path: ':network')) implementation implementation(project(path: ':common')) - implementation 'com.tangem:blockchain:develop-83' + implementation 'com.tangem:blockchain:develop-84' // implementation 'com.tangem:blockchain:0.0.1' implementation 'com.tangem.tangem-sdk-kotlin:core:develop-142' implementation 'com.tangem.tangem-sdk-kotlin:android:develop-142' diff --git a/domain/src/main/java/com/tangem/domain/common/extensions/TangemTechService.kt b/domain/src/main/java/com/tangem/domain/common/extensions/TangemTechService.kt new file mode 100644 index 0000000000..f841679ffb --- /dev/null +++ b/domain/src/main/java/com/tangem/domain/common/extensions/TangemTechService.kt @@ -0,0 +1,27 @@ +package com.tangem.domain.common.extensions + +import com.tangem.common.services.Result +import com.tangem.network.api.tangemTech.CoinsResponse +import com.tangem.network.api.tangemTech.TangemTechService + +suspend fun TangemTechService.getTokens( + contractAddress: String, + networkId: String? = null, + active: Boolean? = null, +): Result = coins( + contractAddress = contractAddress, + networkIds = networkId, + active = active + ) + +suspend fun TangemTechService.getListOfCoins( + networkIds: List, + searchText: String? = null, + offset: Int? = null, + limit: Int? = null +): Result = coins( + networkIds = networkIds.joinToString(","), + searchText = searchText, + offset = offset, + limit = limit + ) \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/features/addCustomToken/AddCustomTokenService.kt b/domain/src/main/java/com/tangem/domain/features/addCustomToken/AddCustomTokenService.kt index 807fa627f8..502452e476 100644 --- a/domain/src/main/java/com/tangem/domain/features/addCustomToken/AddCustomTokenService.kt +++ b/domain/src/main/java/com/tangem/domain/features/addCustomToken/AddCustomTokenService.kt @@ -1,6 +1,7 @@ package com.tangem.domain.features.addCustomToken import com.tangem.common.services.Result +import com.tangem.domain.common.extensions.getTokens import com.tangem.network.api.tangemTech.CoinsResponse import com.tangem.network.api.tangemTech.TangemTechService diff --git a/network/src/main/java/com/tangem/network/api/tangemTech/TangemTechService.kt b/network/src/main/java/com/tangem/network/api/tangemTech/TangemTechService.kt index 2cfac4a830..5790bdac3a 100644 --- a/network/src/main/java/com/tangem/network/api/tangemTech/TangemTechService.kt +++ b/network/src/main/java/com/tangem/network/api/tangemTech/TangemTechService.kt @@ -18,29 +18,19 @@ class TangemTechService { private var api: TangemTechApi = createApi() - suspend fun getTokens( - contractAddress: String, - networkId: String? = null, + suspend fun coins( + contractAddress: String? = null, + networkIds: String? = null, active: Boolean? = null, - ): Result = withContext(Dispatchers.IO) { - performRequest { - api.coins( - contractAddress = contractAddress, - networkIds = networkId, - active = active - ) - } - } - - suspend fun getListOfCoins( - networkIds: List, searchText: String? = null, offset: Int? = null, limit: Int? = null ): Result = withContext(Dispatchers.IO) { performRequest { api.coins( - networkIds = networkIds.joinToString(","), + contractAddress = contractAddress, + networkIds = networkIds, + active = active, searchText = searchText, offset = offset, limit = limit