Updated on 2026-08-14

This commit is contained in:
Tangem 2023-02-01 10:35:30 +03:00
commit 702041224f
3 changed files with 37 additions and 56 deletions

View file

@ -39,7 +39,7 @@ class ConfigManager {
fun load(configLoader: Loader<ConfigModel>, onComplete: ((config: Config) -> Unit)? = null) {
configLoader.load { configModel ->
setupFeature(configModel.features)
setupKey(configModel.configValues)
setupConfigValues(configModel.configValues)
onComplete?.invoke(config)
}
}
@ -77,67 +77,43 @@ class ConfigManager {
)
}
@Suppress("LongMethod")
private fun setupKey(configValues: ConfigValueModel?) {
private fun setupConfigValues(configValues: ConfigValueModel?) {
val values = configValues ?: return
config = config.copy(
coinMarketCapKey = values.coinMarketCapKey,
moonPayApiKey = values.moonPayApiKey,
moonPayApiSecretKey = values.moonPayApiSecretKey,
mercuryoWidgetId = values.mercuryoWidgetId,
mercuryoSecret = values.mercuryoSecret,
config = createConfig(config, values)
defaultConfig = config.copy()
}
private fun createConfig(config: Config, configValues: ConfigValueModel): Config {
return config.copy(
coinMarketCapKey = configValues.coinMarketCapKey,
moonPayApiKey = configValues.moonPayApiKey,
moonPayApiSecretKey = configValues.moonPayApiSecretKey,
mercuryoWidgetId = configValues.mercuryoWidgetId,
mercuryoSecret = configValues.mercuryoSecret,
blockchainSdkConfig = BlockchainSdkConfig(
blockchairCredentials = BlockchairCredentials(
apiKey = values.blockchairApiKeys,
authToken = values.blockchairAuthorizationToken,
apiKey = configValues.blockchairApiKeys,
authToken = configValues.blockchairAuthorizationToken,
),
blockcypherTokens = values.blockcypherTokens,
blockcypherTokens = configValues.blockcypherTokens,
quickNodeCredentials = QuickNodeCredentials(
apiKey = values.quiknodeApiKey,
subdomain = values.quiknodeSubdomain,
apiKey = configValues.quiknodeApiKey,
subdomain = configValues.quiknodeSubdomain,
),
bscQuickNodeCredentials = QuickNodeCredentials(
apiKey = values.bscQuiknodeApiKey,
subdomain = values.bscQuiknodeSubdomain,
apiKey = configValues.bscQuiknodeApiKey,
subdomain = configValues.bscQuiknodeSubdomain,
),
infuraProjectId = values.infuraProjectId,
tronGridApiKey = values.tronGridApiKey,
saltPayAuthToken = values.saltPay.credentials.token,
infuraProjectId = configValues.infuraProjectId,
tronGridApiKey = configValues.tronGridApiKey,
saltPayAuthToken = configValues.saltPay.credentials.token,
),
appsFlyerDevKey = values.appsFlyer.appsFlyerDevKey,
amplitudeApiKey = values.amplitudeApiKey,
shopify = values.shopifyShop,
zendesk = values.zendesk,
saltPayConfig = values.saltPay,
)
defaultConfig = defaultConfig.copy(
coinMarketCapKey = values.coinMarketCapKey,
moonPayApiKey = values.moonPayApiKey,
moonPayApiSecretKey = values.moonPayApiSecretKey,
mercuryoWidgetId = values.mercuryoWidgetId,
mercuryoSecret = values.mercuryoSecret,
blockchainSdkConfig = BlockchainSdkConfig(
blockchairCredentials = BlockchairCredentials(
apiKey = values.blockchairApiKeys,
authToken = values.blockchairAuthorizationToken,
),
blockcypherTokens = values.blockcypherTokens,
quickNodeCredentials = QuickNodeCredentials(
apiKey = values.quiknodeApiKey,
subdomain = values.quiknodeSubdomain,
),
bscQuickNodeCredentials = QuickNodeCredentials(
apiKey = values.bscQuiknodeApiKey,
subdomain = values.bscQuiknodeSubdomain,
),
infuraProjectId = values.infuraProjectId,
saltPayAuthToken = values.saltPay.credentials.token,
),
appsFlyerDevKey = values.appsFlyer.appsFlyerDevKey,
amplitudeApiKey = values.amplitudeApiKey,
shopify = values.shopifyShop,
zendesk = values.zendesk,
saltPayConfig = values.saltPay,
appsFlyerDevKey = configValues.appsFlyer.appsFlyerDevKey,
amplitudeApiKey = configValues.amplitudeApiKey,
shopify = configValues.shopifyShop,
zendesk = configValues.zendesk,
saltPayConfig = configValues.saltPay,
)
}

View file

@ -26,6 +26,7 @@ import com.tangem.tap.domain.TapError
import com.tangem.tap.domain.extensions.makePrimaryWalletManager
import com.tangem.tap.domain.model.builders.UserWalletIdBuilder
import com.tangem.tap.domain.twins.TwinCardsManager
import com.tangem.tap.features.home.RUSSIA_COUNTRY_CODE
import com.tangem.tap.features.onboarding.OnboardingHelper
import com.tangem.tap.features.home.RUSSIA_COUNTRY_CODE
import com.tangem.tap.features.wallet.models.Currency
@ -331,6 +332,6 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
scanResponse = action.scanResponse,
)
}
else -> {}
else -> Unit
}
}

View file

@ -34,6 +34,7 @@ import com.tangem.blockchain.common.Blockchain
import com.tangem.core.ui.extensions.getActiveIconRes
import com.tangem.domain.common.extensions.fromNetworkId
import com.tangem.tap.common.extensions.getGreyedOutIconRes
import com.tangem.tap.domain.tokens.Contract
import com.tangem.tap.domain.tokens.Currency
import com.tangem.tap.features.tokens.redux.TokenWithBlockchain
import com.tangem.tap.features.tokens.ui.compose.CurrencyPlaceholderIcon
@ -141,7 +142,7 @@ private fun NetworksRow(
addedBlockchains = addedBlockchains,
)
} else {
val isAdded = addedTokens.map { it.token.contractAddress }.contains(contract.address)
val isAdded = addedTokens.any(contract::isInclude)
val iconResId = if (isAdded) {
getActiveIconRes(contract.blockchain.id)
} else {
@ -206,4 +207,7 @@ private fun BlockchainNetworkItem(
}
Spacer(modifier = Modifier.size(5.dp))
}
}
}
private fun Contract.isInclude(addedToken: TokenWithBlockchain): Boolean =
address == addedToken.token.contractAddress && blockchain == addedToken.blockchain