Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-25 15:32:01 +03:00
commit 57f3a55298
88 changed files with 4510 additions and 68 deletions

View file

@ -8,14 +8,17 @@ import com.tangem.data.common.currency.UserTokensSaver
import com.tangem.data.tokens.repository.DefaultCurrenciesRepository
import com.tangem.data.tokens.repository.DefaultCurrencyChecksRepository
import com.tangem.data.tokens.repository.DefaultPolkadotAccountHealthCheckRepository
import com.tangem.data.tokens.repository.DefaultTokenReceiveWarningsViewedRepository
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.datasource.local.token.TokenReceiveWarningActionStore
import com.tangem.datasource.local.token.UserTokensResponseStore
import com.tangem.datasource.local.userwallet.UserWalletsStore
import com.tangem.domain.tokens.repository.CurrenciesRepository
import com.tangem.domain.tokens.repository.CurrencyChecksRepository
import com.tangem.domain.tokens.repository.PolkadotAccountHealthCheckRepository
import com.tangem.domain.tokens.repository.TokenReceiveWarningsViewedRepository
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
@ -83,4 +86,14 @@ internal object TokensDataModule {
dispatchers = dispatchers,
)
}
@Provides
@Singleton
fun provideTokenReceiveWarningsViewedRepository(
tokenReceiveWarningActionStore: TokenReceiveWarningActionStore,
): TokenReceiveWarningsViewedRepository {
return DefaultTokenReceiveWarningsViewedRepository(
tokenReceiveWarningActionStore = tokenReceiveWarningActionStore,
)
}
}

View file

@ -0,0 +1,17 @@
package com.tangem.data.tokens.repository
import com.tangem.datasource.local.token.TokenReceiveWarningActionStore
import com.tangem.domain.tokens.repository.TokenReceiveWarningsViewedRepository
internal class DefaultTokenReceiveWarningsViewedRepository(
private val tokenReceiveWarningActionStore: TokenReceiveWarningActionStore,
) : TokenReceiveWarningsViewedRepository {
override suspend fun getViewedWarnings(): Set<String> {
return tokenReceiveWarningActionStore.getSync()
}
override suspend fun view(symbol: String) {
tokenReceiveWarningActionStore.store(symbol)
}
}

View file

@ -6,6 +6,7 @@ import com.tangem.blockchain.blockchains.near.NearWalletManager
import com.tangem.blockchain.common.Blockchain
import com.tangem.blockchain.common.NameResolver
import com.tangem.blockchain.common.ResolveAddressResult
import com.tangem.blockchain.common.ReverseResolveAddressResult
import com.tangem.blockchainsdk.utils.toBlockchain
import com.tangem.domain.models.network.Network
import com.tangem.domain.models.wallet.UserWalletId
@ -22,6 +23,40 @@ class DefaultWalletAddressServiceRepository(
private val dispatchers: CoroutineDispatcherProvider,
) : WalletAddressServiceRepository {
override suspend fun getEns(userWalletId: UserWalletId, network: Network, address: String): String? {
return withContext(dispatchers.io) {
val blockchain = network.toBlockchain()
val walletManager = walletManagersFacade.getOrCreateWalletManager(
userWalletId = userWalletId,
blockchain = blockchain,
derivationPath = network.derivationPath.value,
)
walletManager?.wallet?.ens
}
}
override suspend fun reverseResolveAddress(
userWalletId: UserWalletId,
network: Network,
address: String,
): ReverseResolveAddressResult {
return withContext(dispatchers.io) {
val blockchain = network.toBlockchain()
val walletManager = walletManagersFacade.getOrCreateWalletManager(
userWalletId = userWalletId,
blockchain = blockchain,
derivationPath = network.derivationPath.value,
)
if (walletManager is NameResolver) {
walletManager.reverseResolve(address.toByteArray())
} else {
ReverseResolveAddressResult.NotSupported
}
}
}
override suspend fun resolveAddress(
userWalletId: UserWalletId,
network: Network,