From 633186da8f16d01bf63b7fe7559eccfb69805732 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 30 Mar 2021 10:10:50 +0300 Subject: [PATCH 1/4] Updated on 2026-08-14 --- .../tangem/tap/common/extensions/Blockchain.kt | 10 +++++----- app/src/main/res/drawable/ic_ducatus.png | Bin 0 -> 27573 bytes 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/drawable/ic_ducatus.png diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Blockchain.kt b/app/src/main/java/com/tangem/tap/common/extensions/Blockchain.kt index e03e96133b..dc12172a82 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Blockchain.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Blockchain.kt @@ -7,15 +7,15 @@ import com.tangem.wallet.R @DrawableRes fun Blockchain.getIconRes(): Int { return when (this) { - Blockchain.Unknown, Blockchain.Ducatus, Blockchain.BitcoinTestnet, Blockchain.EthereumTestnet, - Blockchain.BinanceTestnet -> 1 - Blockchain.Bitcoin -> R.drawable.ic_btc + Blockchain.Unknown -> R.drawable.shape_circle + Blockchain.Ducatus -> R.drawable.ic_ducatus + Blockchain.Bitcoin, Blockchain.BitcoinTestnet,-> R.drawable.ic_btc Blockchain.BitcoinCash -> R.drawable.ic_btc_cash Blockchain.Litecoin -> R.drawable.ic_ltc - Blockchain.Ethereum -> R.drawable.ic_eth + Blockchain.Ethereum, Blockchain.EthereumTestnet, -> R.drawable.ic_eth Blockchain.RSK -> R.drawable.ic_rsk Blockchain.Cardano, Blockchain.CardanoShelley -> R.drawable.ic_cardano - Blockchain.Binance -> R.drawable.ic_binance + Blockchain.Binance, Blockchain.BinanceTestnet -> R.drawable.ic_binance Blockchain.Tezos -> R.drawable.ic_tezos Blockchain.XRP -> R.drawable.ic_xrp Blockchain.Stellar -> R.drawable.ic_stellar diff --git a/app/src/main/res/drawable/ic_ducatus.png b/app/src/main/res/drawable/ic_ducatus.png new file mode 100644 index 0000000000000000000000000000000000000000..cfae76f29ff832b062f3310b4fef7bcc76261dcb GIT binary patch literal 27573 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 c!L~2?f5>j=@%UCgmjD0&07*qoM6N<$f Date: Tue, 30 Mar 2021 10:24:22 +0300 Subject: [PATCH 2/4] Updated on 2026-08-14 --- .../com/tangem/tap/domain/TapWalletManager.kt | 2 +- .../redux/middlewares/WalletMiddleware.kt | 24 +++++++------------ .../wallet/ui/wallet/SingleWalletView.kt | 5 ++++ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 0d6662d4f0..38fe7aec61 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -168,7 +168,7 @@ class TapWalletManager { .mapNotNull { walletManagerFactory.makeWalletManager(data.card, it) } val otherBlockhains = savedCurrencies.blockchains - val activeTokens = walletManagers.first { it.wallet.blockchain == Blockchain.Ethereum} + val activeTokens = walletManagers.first { it.wallet.blockchain == Blockchain.Ethereum } .presetTokens.toList() val tokens = activeTokens + savedCurrencies.tokens diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 54a51ff45e..8570250b54 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -126,22 +126,16 @@ class WalletMiddleware { is WalletAction.Scan -> { scope.launch { val result = tangemSdkManager.scanNote(FirebaseAnalyticsHandler) - when (result) { - is CompletionResult.Success -> { - tangemSdkManager.changeDisplayedCardIdNumbersCount(result.data.card) - globalState?.tapWalletManager - ?.onCardScanned(result.data, true) - if (walletState?.twinCardsState != null) { - val showOnboarding = !preferencesStorage.wasTwinsOnboardingShown() - if (showOnboarding) { - store.dispatch(NavigationAction.NavigateTo(AppScreen.TwinsOnboarding)) - } + scope.launch(Dispatchers.Main) { + when (result) { + is CompletionResult.Success -> { + tangemSdkManager.changeDisplayedCardIdNumbersCount(result.data.card) + globalState?.tapWalletManager + ?.onCardScanned(result.data, true) + store.dispatch(WalletAction.ScanCardFinished()) } - store.dispatch(WalletAction.ScanCardFinished()) - } - is CompletionResult.Failure -> { - if (result.error !is TangemSdkError.UserCancelled) { - scope.launch(Dispatchers.Main) { + is CompletionResult.Failure -> { + if (result.error !is TangemSdkError.UserCancelled) { store.dispatch(WalletAction.ScanCardFinished(result.error)) if (store.state.walletState.scanCardFailsCounter >= 2) { store.dispatch(WalletAction.ShowDialog.ScanFails) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt index cc14fa932e..c513331351 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt @@ -6,6 +6,8 @@ import android.view.ViewGroup import android.widget.Button import androidx.recyclerview.widget.LinearLayoutManager import com.tangem.tap.common.extensions.* +import com.tangem.tap.common.redux.navigation.AppScreen +import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.twins.TwinCardNumber import com.tangem.tap.features.wallet.models.PendingTransaction import com.tangem.tap.features.wallet.redux.* @@ -105,6 +107,9 @@ class SingleWalletView : WalletView { this.tv_twin_card_number.hide() this.iv_twin_card.hide() } + if (twinCardsState?.showTwinOnboarding == true) { + store.dispatch(NavigationAction.NavigateTo(AppScreen.TwinsOnboarding)) + } } } From 8ac90772f902bf1fca89c5d2ba9436a916fd7b14 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 30 Mar 2021 15:31:47 +0300 Subject: [PATCH 3/4] Updated on 2026-08-14 --- .../features/send/redux/SendScreenAction.kt | 2 ++ .../send/redux/middlewares/SendMiddleware.kt | 4 ++-- .../send/redux/reducers/SendScreenReducer.kt | 5 +++-- .../redux/middlewares/WalletMiddleware.kt | 18 ++++++++++-------- .../main/res/layout/item_currency_wallet.xml | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt index 8a87b6108f..36e7ae943b 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt @@ -3,6 +3,7 @@ package com.tangem.tap.features.send.redux import com.tangem.Message import com.tangem.blockchain.common.Amount import com.tangem.blockchain.common.Blockchain +import com.tangem.blockchain.common.WalletManager import com.tangem.tap.common.redux.ErrorAction import com.tangem.tap.common.redux.ToastNotificationAction import com.tangem.tap.domain.TapError @@ -25,6 +26,7 @@ object ReleaseSendState : Action data class PrepareSendScreen( val coinAmount: Amount?, val coinRate: BigDecimal?, + val walletManager: WalletManager?, val tokenAmount: Amount? = null, val tokenRate: BigDecimal? = null ) : SendScreenAction diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 115c1c2033..b24e7916db 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -56,8 +56,8 @@ private fun verifyAndSendTransaction( action: SendActionUi.SendAmountToRecipient, appState: AppState?, dispatch: (Action) -> Unit, ) { val sendState = appState?.sendState ?: return - val walletManager = appState.globalState.scanNoteResponse?.walletManager ?: return - val card = appState.globalState.scanNoteResponse.card + val walletManager = sendState.walletManager ?: return + val card = appState.globalState.scanNoteResponse?.card ?: return val destinationAddress = sendState.addressPayIdState.destinationWalletAddress ?: return val typedAmount = sendState.amountState.amountToExtract ?: return val feeAmount = sendState.feeState.currentFee ?: return diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt index 527d3f6545..e6ab87ef01 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt @@ -60,14 +60,15 @@ private class EmptyReducer : SendInternalReducer { private class PrepareSendScreenStatesReducer : SendInternalReducer { override fun handle(action: SendScreenAction, sendState: SendState): SendState { val prepareAction = action as PrepareSendScreen - val walletManager = store.state.globalState.scanNoteResponse!!.walletManager!! + val walletManager = action.walletManager + ?: store.state.globalState.scanNoteResponse!!.walletManager!! val amountToExtract = prepareAction.tokenAmount ?: prepareAction.coinAmount!! val decimals = amountToExtract.decimals return sendState.copy( walletManager = walletManager, coinConverter = action.coinRate?.let { CurrencyConverter(it, decimals) }, - tokenConverter = action.tokenRate?. let { CurrencyConverter(it, decimals) }, + tokenConverter = action.tokenRate?.let { CurrencyConverter(it, decimals) }, amountState = sendState.amountState.copy( amountToExtract = amountToExtract, typeOfAmount = amountToExtract.type, diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 8570250b54..af6ceb3d2d 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -193,13 +193,14 @@ class WalletMiddleware { private fun prepareSendAction(amount: Amount?, state: WalletState?): Action { val selectedWalletData = state?.getSelectedWalletData() val currency = selectedWalletData?.currencyData?.currencySymbol - val wallet = currency?.let { state.getWalletManager(currency)?.wallet } + val walletManager = state?.getWalletManager(currency) + val wallet = walletManager?.wallet return if (amount != null) { if (amount.type is AmountType.Token) { - prepareSendActionForToken(amount, state, selectedWalletData, wallet) + prepareSendActionForToken(amount, state, selectedWalletData, wallet, walletManager) } else { - PrepareSendScreen(amount, selectedWalletData?.fiatRate) + PrepareSendScreen(amount, selectedWalletData?.fiatRate, walletManager) } } else { val amounts = wallet?.amounts?.toSendableAmounts() @@ -207,23 +208,24 @@ class WalletMiddleware { val amountToSend = amounts?.find { it.currencySymbol == currency } ?: return WalletAction.Send.ChooseCurrency(amounts) if (amountToSend.type is AmountType.Token) { - prepareSendActionForToken(amount, state, selectedWalletData, wallet) + prepareSendActionForToken(amount, state, selectedWalletData, wallet, walletManager) } else { - PrepareSendScreen(amountToSend, selectedWalletData.fiatRate) + PrepareSendScreen(amountToSend, selectedWalletData.fiatRate, walletManager) } } else { if (amounts?.size ?: 0 > 1) { WalletAction.Send.ChooseCurrency(amounts) } else { val amountToSend = amounts?.first() - PrepareSendScreen(amountToSend, selectedWalletData?.fiatRate) + PrepareSendScreen(amountToSend, selectedWalletData?.fiatRate, walletManager) } } } } private fun prepareSendActionForToken( - amount: Amount?, state: WalletState?, selectedWalletData: WalletData?, wallet: Wallet? + amount: Amount?, state: WalletState?, selectedWalletData: WalletData?, wallet: Wallet?, + walletManager: WalletManager? ): PrepareSendScreen { val coinRate = state?.getWalletData(wallet?.blockchain?.currency)?.fiatRate val tokenRate = if (state?.isMultiwalletAllowed == true) { @@ -232,7 +234,7 @@ class WalletMiddleware { selectedWalletData?.currencyData?.token?.fiatRate } return PrepareSendScreen( - wallet?.amounts?.get(AmountType.Coin), coinRate, + wallet?.amounts?.get(AmountType.Coin), coinRate, walletManager, amount, tokenRate) } } diff --git a/app/src/main/res/layout/item_currency_wallet.xml b/app/src/main/res/layout/item_currency_wallet.xml index 09b7dd4cc9..be3b049566 100644 --- a/app/src/main/res/layout/item_currency_wallet.xml +++ b/app/src/main/res/layout/item_currency_wallet.xml @@ -124,7 +124,7 @@ android:textColor="@color/darkGray2" android:textSize="14sp" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="@id/tv_exchange_rate" + app:layout_constraintBottom_toBottomOf="@id/iv_currency" tools:text="0.43 USD" /> From 2e70d660f6507d6effddbc1e7fc7e04ff3a6637d Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 30 Mar 2021 15:47:57 +0300 Subject: [PATCH 4/4] Updated on 2026-08-14 --- app/src/main/assets/erc20_tokens.json | 914 ++++++++++++++++++ app/src/main/assets/tangem-android-config | 1 + .../tangem/tap/domain/configurable/Loader.kt | 2 +- 3 files changed, 916 insertions(+), 1 deletion(-) create mode 100644 app/src/main/assets/erc20_tokens.json create mode 160000 app/src/main/assets/tangem-android-config diff --git a/app/src/main/assets/erc20_tokens.json b/app/src/main/assets/erc20_tokens.json new file mode 100644 index 0000000000..9b29c198bb --- /dev/null +++ b/app/src/main/assets/erc20_tokens.json @@ -0,0 +1,914 @@ +[ + { + "decimalCount" : 18, + "symbol" : "ZRX", + "name" : "0x", + "contractAddress" : "0xE41d2489571d322189246DaFA5ebDe1F4699F498" + }, + { + "decimalCount" : 18, + "symbol" : "AAVE", + "name" : "Aave", + "contractAddress" : "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9" + }, + { + "decimalCount" : 18, + "symbol" : "LEND", + "name" : "Aave (OLD)", + "contractAddress" : "0x80fB784B7eD66730e8b1DBd9820aFD29931aab03" + }, + { + "decimalCount" : 18, + "symbol" : "ADX", + "name" : "AdEx", + "contractAddress" : "0xADE00C28244d5CE17D72E40330B1c318cD12B7c3" + }, + { + "decimalCount" : 9, + "symbol" : "ADT", + "name" : "adToken", + "contractAddress" : "0xD0D6D6C5Fe4a677D343cC433536BB717bAe167dD" + }, + { + "decimalCount" : 18, + "symbol" : "ELF", + "name" : "Aelf", + "contractAddress" : "0xbf2179859fc6d5bee9bf9158632dc51678a4100e" + }, + { + "decimalCount" : 8, + "symbol" : "ARN", + "name" : "Aeron", + "contractAddress" : "0xBA5F11b16B155792Cf3B2E6880E8706859A8AEB6" + }, + { + "decimalCount" : 18, + "symbol" : "AE", + "name" : "Aeternity", + "contractAddress" : "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d" + }, + { + "decimalCount" : 8, + "symbol" : "AION", + "name" : "Aion", + "contractAddress" : "0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466" + }, + { + "decimalCount" : 4, + "symbol" : "AST", + "name" : "Airswap", + "contractAddress" : "0x27054b13b1b798b345b591a4d22e6562d47ea75a" + }, + { + "decimalCount" : 18, + "symbol" : "AMB", + "name" : "Amber", + "contractAddress" : "0x4dc3643dbc642b72c158e7f3d2ff232df61cb6ce" + }, + { + "decimalCount" : 18, + "symbol" : "AMLT", + "name" : "AMLT by Coinfirm", + "contractAddress" : "0xca0e7269600d353f70b14ad118a49575455c0f2f" + }, + { + "decimalCount" : 18, + "symbol" : "APPC", + "name" : "AppCoins", + "contractAddress" : "0x1a7a8bd9106f2b8d977e08582dc7d24c723ab0db" + }, + { + "decimalCount" : 18, + "symbol" : "ANT", + "name" : "Aragon", + "contractAddress" : "0xa117000000f279d81a1d3cc75430faa017fa5a2e" + }, + { + "decimalCount" : 18, + "symbol" : "ABT", + "name" : "ArcBlock", + "contractAddress" : "0xb98d4c97425d9908e66e53a6fdf673acca0be986" + }, + { + "decimalCount" : 18, + "symbol" : "ATMI", + "name" : "Atonomi", + "contractAddress" : "0x97aeb5066e1a590e868b511457beb6fe99d329f5" + }, + { + "decimalCount" : 18, + "symbol" : "REP", + "name" : "Augur", + "contractAddress" : "0x1985365e9f78359a9B6AD760e32412f4a445E862" + }, + { + "decimalCount" : 18, + "symbol" : "AVM", + "name" : "AVM Ecosystem", + "contractAddress" : "0x74004a7227615fb52b82d17ffabfa376907d8a4d" + }, + { + "decimalCount" : 18, + "symbol" : "BNT", + "name" : "Bancor", + "contractAddress" : "0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C" + }, + { + "decimalCount" : 18, + "symbol" : "BAT", + "name" : "Basic Attention", + "contractAddress" : "0x0D8775F648430679A709E98d2b0Cb6250d2887EF" + }, + { + "decimalCount" : 18, + "symbol" : "BNB", + "name" : "Binance Coin", + "contractAddress" : "0xb8c77482e45f1f44de1745f52c74426c631bdd52" + }, + { + "decimalCount" : 18, + "symbol" : "BUSD", + "name" : "Binance USD", + "contractAddress" : "0x4fabb145d64652a948d72533023f6e7a623c7c53" + }, + { + "decimalCount" : 18, + "symbol" : "STU", + "name" : "bitJob", + "contractAddress" : "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372" + }, + { + "decimalCount" : 18, + "symbol" : "BIX", + "name" : "BIX Token", + "contractAddress" : "0xb3104b4b9da82025e8b9f8fb28b3553ce2f67069" + }, + { + "decimalCount" : 18, + "symbol" : "VEE", + "name" : "BLOCKv", + "contractAddress" : "0x340d2bde5eb28c1eed91b2f790723e3b160613b7" + }, + { + "decimalCount" : 18, + "symbol" : "BLZ", + "name" : "Bluzelle", + "contractAddress" : "0x5732046a883704404f284ce41ffadd5b007fd668" + }, + { + "decimalCount" : 18, + "symbol" : "BRD", + "name" : "BRD Token", + "contractAddress" : "0x558ec3152e2eb2174905cd19aea4e34a23de9ad6" + }, + { + "decimalCount" : 8, + "symbol" : "BTM", + "name" : "Bytom", + "contractAddress" : "0xcb97e65f07da24d46bcdd078ebebd7c6e6e3d750" + }, + { + "decimalCount" : 18, + "symbol" : "CAS", + "name" : "Cashaa", + "contractAddress" : "0xe8780b48bdb05f928697a5e8155f672ed91462f7" + }, + { + "decimalCount" : 18, + "symbol" : "CSP", + "name" : "Caspian", + "contractAddress" : "0xa6446d655a0c34bc4f05042ee88170d056cbaf45" + }, + { + "decimalCount" : 18, + "symbol" : "LINK", + "name" : "ChainLink", + "contractAddress" : "0x514910771af9ca656af840dff83e8264ecf986ca" + }, + { + "decimalCount" : 8, + "symbol" : "TIME", + "name" : "Chronobank", + "contractAddress" : "0x6531f133e6DeeBe7F2dcE5A0441aA7ef330B4e53" + }, + { + "decimalCount" : 18, + "symbol" : "CND", + "name" : "Cindicator", + "contractAddress" : "0xd4c435f5b09f855c3317c8524cb1f586e42795fa" + }, + { + "decimalCount" : 8, + "symbol" : "CVC", + "name" : "Civic", + "contractAddress" : "0x41e5560054824ea6b0732e656e3ad64e20e94e45" + }, + { + "decimalCount" : 18, + "symbol" : "CNN", + "name" : "CNN Token", + "contractAddress" : "0x8713d26637cf49e1b6b4a7ce57106aabc9325343" + }, + { + "decimalCount" : 18, + "symbol" : "CFI", + "name" : "Cofound.it", + "contractAddress" : "0x12FEF5e57bF45873Cd9B62E9DBd7BFb99e32D73e" + }, + { + "decimalCount" : 18, + "symbol" : "CCC", + "name" : "Container Crypto Coin", + "contractAddress" : "0x9e3359f862b6c7f5c660cfd6d1aa6909b1d9504d" + }, + { + "decimalCount" : 6, + "symbol" : "CS", + "name" : "Credits", + "contractAddress" : "0x46b9ad944d1059450da1163511069c718f699d31" + }, + { + "decimalCount" : 18, + "symbol" : "CRPT", + "name" : "Crypterium", + "contractAddress" : "0x08389495d7456e1951ddf7c3a1314a4bfb646d8b" + }, + { + "decimalCount" : 18, + "symbol" : "AUTO", + "name" : "CUBE", + "contractAddress" : "0x622dFfCc4e83C64ba959530A5a5580687a57581b" + }, + { + "decimalCount" : 18, + "symbol" : "CMT", + "name" : "CyberMiles", + "contractAddress" : "0xf85fEea2FdD81d51177F6b8F35F0e6734Ce45F5F" + }, + { + "decimalCount" : 18, + "symbol" : "DAI", + "name" : "Dai", + "contractAddress" : "0x6b175474e89094c44da98b954eedeac495271d0f" + }, + { + "decimalCount" : 18, + "symbol" : "MANA", + "name" : "Decentraland", + "contractAddress" : "0x0F5D2fB29fb7d3CFeE444a200298f468908cC942" + }, + { + "decimalCount" : 8, + "symbol" : "DENT", + "name" : "DENT", + "contractAddress" : "0x3597bfd533a99c9aa083587b074434e61eb0a258" + }, + { + "decimalCount" : 0, + "symbol" : "XJP", + "name" : "Digital JPY", + "contractAddress" : "0x39689fE671C01fcE173395f6BC45D4C332026666" + }, + { + "decimalCount" : 9, + "symbol" : "DGD", + "name" : "DigixDAO", + "contractAddress" : "0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A" + }, + { + "decimalCount" : 18, + "symbol" : "DNT", + "name" : "district0x", + "contractAddress" : "0x0abdace70d3790235af448c88547603b945604ea" + }, + { + "decimalCount" : 18, + "symbol" : "DOV", + "name" : "Dovu", + "contractAddress" : "0xac3211a5025414af2866ff09c23fc18bc97e79b1" + }, + { + "decimalCount" : 18, + "symbol" : "DRGN", + "name" : "Dragon", + "contractAddress" : "0x419c4db4b9e25d6db2ad9691ccb832c8d9fda05e" + }, + { + "decimalCount" : 0, + "symbol" : "EDG", + "name" : "Edgeless", + "contractAddress" : "0x08711D3B02C8758F2FB3ab4e80228418a7F8e39c" + }, + { + "decimalCount" : 18, + "symbol" : "EDO", + "name" : "Eidoo", + "contractAddress" : "0xced4e93198734ddaff8492d525bd258d49eb388e" + }, + { + "decimalCount" : 8, + "symbol" : "ENG", + "name" : "Enigma", + "contractAddress" : "0xf0ee6b27b759c9893ce4f094b49ad28fd15a23e4" + }, + { + "decimalCount" : 18, + "symbol" : "ENJ", + "name" : "EnjinCoin", + "contractAddress" : "0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c" + }, + { + "decimalCount" : 18, + "symbol" : "EOS", + "name" : "EOS", + "contractAddress" : "0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0" + }, + { + "decimalCount" : 2, + "symbol" : "EUR.AVM", + "name" : "EUR AVM", + "contractAddress" : "0xF01Cd2f1c9E42c509d309aC8C5b29B6dA8E64b1a" + }, + { + "decimalCount" : 18, + "symbol" : "XUC", + "name" : "Exchange Union", + "contractAddress" : "0xc324a2f6b05880503444451b8b27e6f9e63287cb" + }, + { + "decimalCount" : 18, + "symbol" : "1ST", + "name" : "FirstBlood", + "contractAddress" : "0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7" + }, + { + "decimalCount" : 18, + "symbol" : "FXC", + "name" : "Flexacoin", + "contractAddress" : "0x4a57E687b9126435a9B19E4A802113e266AdeBde" + }, + { + "decimalCount" : 8, + "symbol" : "FUN", + "name" : "FunFair", + "contractAddress" : "0x419D0d8BdD9aF5e606Ae2232ed285Aff190E711b" + }, + { + "decimalCount" : 18, + "symbol" : "FSN", + "name" : "Fusion", + "contractAddress" : "0xd0352a019e9ab9d757776f532377aaebd36fd541" + }, + { + "decimalCount" : 2, + "symbol" : "GUSD", + "name" : "Gemini Dollar", + "contractAddress" : "0x056fd409e1d7a124bd7017459dfea2f387b6d5cd" + }, + { + "decimalCount" : 9, + "symbol" : "GNX", + "name" : "Genaro Network", + "contractAddress" : "0x6ec8a24cabdc339a06a172f8223ea557055adaa5" + }, + { + "decimalCount" : 18, + "symbol" : "GVT", + "name" : "Genesis Vision", + "contractAddress" : "0x103c3A209da59d3E7C4A89307e66521e081CFDF0" + }, + { + "decimalCount" : 5, + "symbol" : "GTO", + "name" : "Gifto", + "contractAddress" : "0xc5bbae50781be1669306b9e001eff57a2957b09d" + }, + { + "decimalCount" : 8, + "symbol" : "GBX", + "name" : "Globitex", + "contractAddress" : "0x12fcd6463e66974cf7bbc24ffc4d40d6be458283" + }, + { + "decimalCount" : 18, + "symbol" : "GNO", + "name" : "Gnosis", + "contractAddress" : "0x6810e776880C02933D47DB1b9fc05908e5386b96" + }, + { + "decimalCount" : 18, + "symbol" : "GNT", + "name" : "Golem", + "contractAddress" : "0xa74476443119A942dE498590Fe1f2454d7D4aC0d" + }, + { + "decimalCount" : 18, + "symbol" : "HPB", + "name" : "HPBCoin", + "contractAddress" : "0x38c6a68304cdefb9bec48bbfaaba5c5b47818bb2" + }, + { + "decimalCount" : 18, + "symbol" : "HYDRO", + "name" : "Hydro", + "contractAddress" : "0xebbdf302c940c6bfd49c6b165f457fdb324649bc" + }, + { + "decimalCount" : 18, + "symbol" : "ICX", + "name" : "ICON", + "contractAddress" : "0xb5a5f22694352c15b00323844ad545abb2b11028" + }, + { + "decimalCount" : 18, + "symbol" : "ICN", + "name" : "ICONOMI", + "contractAddress" : "0x888666CA69E0f178DED6D75b5726Cee99A87D698" + }, + { + "decimalCount" : 9, + "symbol" : "RLC", + "name" : "iExec RLC", + "contractAddress" : "0x607F4C5BB672230e8672085532f7e901544a7375" + }, + { + "decimalCount" : 18, + "symbol" : "IOST", + "name" : "IOStoken", + "contractAddress" : "0xfa1a856cfa3409cfa145fa4e20eb270df3eb21ab" + }, + { + "decimalCount" : 18, + "symbol" : "ITC", + "name" : "IOT Chain", + "contractAddress" : "0x5e6b6d9abad9093fdc861ea1600eba1b355cd940" + }, + { + "decimalCount" : 8, + "symbol" : "IXT", + "name" : "iXledger", + "contractAddress" : "0xfca47962d45adfdfd1ab2d972315db4ce7ccf094" + }, + { + "decimalCount" : 18, + "symbol" : "KIN", + "name" : "Kin", + "contractAddress" : "0x818Fc6C2Ec5986bc6E2CBf00939d90556aB12ce5" + }, + { + "decimalCount" : 18, + "symbol" : "KNC", + "name" : "Kyber Network", + "contractAddress" : "0xdd974D5C2e2928deA5F71b9825b8b646686BD200" + }, + { + "decimalCount" : 18, + "symbol" : "LOOM", + "name" : "Loom", + "contractAddress" : "0xa4e8c3ec456107ea67d3075bf9e3df3a75823db0" + }, + { + "decimalCount" : 18, + "symbol" : "LRC", + "name" : "Loopring", + "contractAddress" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd" + }, + { + "decimalCount" : 18, + "symbol" : "LUN", + "name" : "Lunyr", + "contractAddress" : "0xfa05A73FfE78ef8f1a739473e462c54bae6567D9" + }, + { + "decimalCount" : 18, + "symbol" : "MKR", + "name" : "Maker", + "contractAddress" : "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2" + }, + { + "decimalCount" : 3, + "symbol" : "GUP", + "name" : "Matchpool", + "contractAddress" : "0xf7B098298f7C69Fc14610bf71d5e02c60792894C" + }, + { + "decimalCount" : 18, + "symbol" : "MAN", + "name" : "MATRIX AI Network", + "contractAddress" : "0xe25bcec5d3801ce3a794079bf94adf1b8ccd802d" + }, + { + "decimalCount" : 8, + "symbol" : "MTL", + "name" : "Metal", + "contractAddress" : "0xF433089366899D83a9f26A773D59ec7eCF30355e" + }, + { + "decimalCount" : 8, + "symbol" : "MCO", + "name" : "Monaco", + "contractAddress" : "0xB63B606Ac810a52cCa15e44bB630fd42D8d1d83d" + }, + { + "decimalCount" : 8, + "symbol" : "MYST", + "name" : "Mysterium", + "contractAddress" : "0xa645264C5603E96c3b0B078cdab68733794B0A71" + }, + { + "decimalCount" : 18, + "symbol" : "NAS", + "name" : "Nebulas", + "contractAddress" : "0x5d65D971895Edc438f465c17DB6992698a52318D" + }, + { + "decimalCount" : 18, + "symbol" : "NEXO", + "name" : "Nexo", + "contractAddress" : "0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206" + }, + { + "decimalCount" : 18, + "symbol" : "NCASH", + "name" : "Nucleus Vision", + "contractAddress" : "0x809826cceab68c387726af962713b64cb5cb3cca" + }, + { + "decimalCount" : 18, + "symbol" : "NULS", + "name" : "Nuls", + "contractAddress" : "0xb91318f35bdb262e9423bc7c7c2a3a93dd93c92c" + }, + { + "decimalCount" : 18, + "symbol" : "NMR", + "name" : "Numeraire", + "contractAddress" : "0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671" + }, + { + "decimalCount" : 18, + "symbol" : "OMG", + "name" : "OmiseGO", + "contractAddress" : "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07" + }, + { + "decimalCount" : 18, + "symbol" : "OXT", + "name" : "Orchid", + "contractAddress" : "0x4575f41308ec1483f3d399aa9a2826d74da13deb" + }, + { + "decimalCount" : 18, + "symbol" : "OST", + "name" : "OST", + "contractAddress" : "0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA" + }, + { + "decimalCount" : 18, + "symbol" : "PRL", + "name" : "Oyster Pearl", + "contractAddress" : "0x1844b21593262668b7248d0f57a220caaba46ab9" + }, + { + "decimalCount" : 8, + "symbol" : "PTOY", + "name" : "Patientory", + "contractAddress" : "0x8Ae4BF2C33a8e667de34B54938B0ccD03Eb8CC06" + }, + { + "decimalCount" : 18, + "symbol" : "PAX", + "name" : "Paxos Standard", + "contractAddress" : "0x8e870d67f660d95d5be530380d0ec0bd388289e1" + }, + { + "decimalCount" : 18, + "symbol" : "PMTN", + "name" : "Peer Mountain", + "contractAddress" : "0xe91df2bb9bccd18c45f01843cab88768d64f2d32" + }, + { + "decimalCount" : 8, + "symbol" : "POE", + "name" : "Po.et", + "contractAddress" : "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195" + }, + { + "decimalCount" : 18, + "symbol" : "PAL", + "name" : "PolicyPal Network", + "contractAddress" : "0xfeDAE5642668f8636A11987Ff386bfd215F942EE" + }, + { + "decimalCount" : 18, + "symbol" : "POLY", + "name" : "Polymath", + "contractAddress" : "0x9992eC3cF6A55b00978cdDF2b27BC6882d88D1eC" + }, + { + "decimalCount" : 8, + "symbol" : "PPT", + "name" : "Populous", + "contractAddress" : "0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a" + }, + { + "decimalCount" : 6, + "symbol" : "POWR", + "name" : "Power Ledger", + "contractAddress" : "0x595832f8fc6bf59c85c527fec3740a1b7a361269" + }, + { + "decimalCount" : 18, + "symbol" : "NPXS", + "name" : "Pundi X Token", + "contractAddress" : "0xa15c7ebe1f07caf6bff097d8a589fb8ac49ae5b3" + }, + { + "decimalCount" : 6, + "symbol" : "QASH", + "name" : "QASH", + "contractAddress" : "0x618e75ac90b12c6049ba3b27f5d5f8651b0037f6" + }, + { + "decimalCount" : 8, + "symbol" : "QRL", + "name" : "QRL", + "contractAddress" : "0x697beac28B09E122C4332D163985e8a73121b97F" + }, + { + "decimalCount" : 18, + "symbol" : "QSP", + "name" : "Quantstamp", + "contractAddress" : "0x99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d" + }, + { + "decimalCount" : 18, + "symbol" : "RDN", + "name" : "Raiden Network", + "contractAddress" : "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6" + }, + { + "decimalCount" : 18, + "symbol" : "RCC", + "name" : "Reality Clash", + "contractAddress" : "0x9b6443b0fb9c241a7fdac375595cea13e6b7807a" + }, + { + "decimalCount" : 6, + "symbol" : "RC1U03", + "name" : "RentalCoin 1.0", + "contractAddress" : "0x7384db1aaa06364d1e6e67f5434391d3eea2a038" + }, + { + "decimalCount" : 18, + "symbol" : "REQ", + "name" : "Request", + "contractAddress" : "0x8f8221aFbB33998d8584A2B05749bA73c37a938a" + }, + { + "decimalCount" : 0, + "symbol" : "REV", + "name" : "Revain", + "contractAddress" : "0x48f775efbe4f5ece6e0df2f7b5932df56823b990" + }, + { + "decimalCount" : 18, + "symbol" : "RCN", + "name" : "Ripio Credit", + "contractAddress" : "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6" + }, + { + "decimalCount" : 18, + "symbol" : "RVT", + "name" : "Rivetz", + "contractAddress" : "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244" + }, + { + "decimalCount" : 18, + "symbol" : "RUFF", + "name" : "RUFF", + "contractAddress" : "0xf278c1ca969095ffddded020290cf8b5c424ace2" + }, + { + "decimalCount" : 18, + "symbol" : "SAI", + "name" : "Sai", + "contractAddress" : "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359" + }, + { + "decimalCount" : 8, + "symbol" : "SALT", + "name" : "SALT", + "contractAddress" : "0x4156D3342D5c385a87D264F90653733592000581" + }, + { + "decimalCount" : 18, + "symbol" : "SAN", + "name" : "SAN", + "contractAddress" : "0x7C5A0CE9267ED19B22F8cae653F198e3E8daf098" + }, + { + "decimalCount" : 8, + "symbol" : "SENT", + "name" : "SENTinel", + "contractAddress" : "0xa44e5137293e855b1b7bc7e2c6f8cd796ffcb037" + }, + { + "decimalCount" : 0, + "symbol" : "SNGLS", + "name" : "Singular DTV", + "contractAddress" : "0xaeC2E87E0A235266D9C5ADc9DEb4b2E29b54D009" + }, + { + "decimalCount" : 8, + "symbol" : "AGI", + "name" : "SingularityNET", + "contractAddress" : "0x8eB24319393716668D768dCEC29356ae9CfFe285" + }, + { + "decimalCount" : 18, + "symbol" : "SRN", + "name" : "SIRIN", + "contractAddress" : "0x68d57c9a1C35f63E2c83eE8e49A64e9d70528D25" + }, + { + "decimalCount" : 18, + "symbol" : "SNM", + "name" : "SONM", + "contractAddress" : "0x983F6d60db79ea8cA4eB9968C6aFf8cfA04B3c63" + }, + { + "decimalCount" : 18, + "symbol" : "SNT", + "name" : "Status", + "contractAddress" : "0x744d70FDBE2Ba4CF95131626614a1763DF805B9E" + }, + { + "decimalCount" : 18, + "symbol" : "STK", + "name" : "STK", + "contractAddress" : "0xae73b38d1c9a8b274127ec30160a4927c4d71824" + }, + { + "decimalCount" : 18, + "symbol" : "STQ", + "name" : "Storiqa", + "contractAddress" : "0x5c3a228510d246b78a3765c20221cbf3082b44a4" + }, + { + "decimalCount" : 8, + "symbol" : "STORJ", + "name" : "Storj", + "contractAddress" : "0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC" + }, + { + "decimalCount" : 18, + "symbol" : "STORM", + "name" : "Storm", + "contractAddress" : "0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433" + }, + { + "decimalCount" : 18, + "symbol" : "STMX", + "name" : "StormX", + "contractAddress" : "0xbE9375C6a420D2eEB258962efB95551A5b722803" + }, + { + "decimalCount" : 18, + "symbol" : "STX", + "name" : "Stox", + "contractAddress" : "0x006BeA43Baa3f7A6f765F14f10A1a1b08334EF45" + }, + { + "decimalCount" : 18, + "symbol" : "SUB", + "name" : "Substratum", + "contractAddress" : "0x8D75959f1E61EC2571aa72798237101F084DE63a" + }, + { + "decimalCount" : 18, + "symbol" : "SNC", + "name" : "SunContract", + "contractAddress" : "0xF4134146AF2d511Dd5EA8cDB1C4AC88C57D60404" + }, + { + "decimalCount" : 18, + "symbol" : "SUSHI", + "name" : "SushiSwap", + "contractAddress" : "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2" + }, + { + "decimalCount" : 2, + "symbol" : "TEL", + "name" : "Telcoin", + "contractAddress" : "0x467bccd9d29f223bce8043b84e8c8b282827790f" + }, + { + "decimalCount" : 18, + "symbol" : "PAY", + "name" : "TenX", + "contractAddress" : "0xB97048628DB6B661D4C2aA833e95Dbe1A905B280" + }, + { + "decimalCount" : 6, + "symbol" : "USDT", + "name" : "Tether USD", + "contractAddress" : "0xdac17f958d2ee523a2206206994597c13d831ec7" + }, + { + "decimalCount" : 18, + "symbol" : "THETA", + "name" : "Theta Token", + "contractAddress" : "0x3883f5e181fccaf8410fa61e12b59bad963fb645" + }, + { + "decimalCount" : 6, + "symbol" : "TRX", + "name" : "TRON", + "contractAddress" : "0xf230b790e05390fc8295f4d3f60332c93bed42e2" + }, + { + "decimalCount" : 18, + "symbol" : "TUSD", + "name" : "TrueUSD", + "contractAddress" : "0x0000000000085d4780B73119b644AE5ecd22b376" + }, + { + "decimalCount" : 8, + "symbol" : "UCASH", + "name" : "UCASH", + "contractAddress" : "0x92e52a1a235d9a103d970901066ce910aacefd37" + }, + { + "decimalCount" : 18, + "symbol" : "UNI", + "name" : "Uniswap", + "contractAddress" : "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984" + }, + { + "decimalCount" : 6, + "symbol" : "USDC", + "name" : "USD Coin", + "contractAddress" : "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "decimalCount" : 18, + "symbol" : "VIB", + "name" : "Viberate", + "contractAddress" : "0x2C974B2d0BA1716E644c1FC59982a89DDD2fF724" + }, + { + "decimalCount" : 8, + "symbol" : "VGX", + "name" : "Voyager", + "contractAddress" : "0x5af2be193a6abca9c8817001f45744777db30756" + }, + { + "decimalCount" : 18, + "symbol" : "WTC", + "name" : "Waltonchain", + "contractAddress" : "0xb7cb1c96db6b22b0d3d9536e0108d062bd488f74" + }, + { + "decimalCount" : 8, + "symbol" : "WAX", + "name" : "WAX", + "contractAddress" : "0x39Bb259F66E1C59d5ABEF88375979b4D20D98022" + }, + { + "decimalCount" : 18, + "symbol" : "WPR", + "name" : "WePower", + "contractAddress" : "0x4CF488387F035FF08c371515562CBa712f9015d4" + }, + { + "decimalCount" : 18, + "symbol" : "WINGS", + "name" : "Wings", + "contractAddress" : "0x667088b212ce3d06a1b553a7221E1fD19000d9aF" + }, + { + "decimalCount" : 6, + "symbol" : "WRC", + "name" : "Worldcore", + "contractAddress" : "0x72adadb447784dd7ab1f472467750fc485e4cb2d" + }, + { + "decimalCount" : 18, + "symbol" : "ZLA", + "name" : "Zilla", + "contractAddress" : "0xfd8971d5e8e1740ce2d0a84095fca4de729d0c16" + }, + { + "decimalCount" : 0, + "symbol" : "GD", + "name" : "Zilla GD", + "contractAddress" : "0xb4cebdb66b3a5183fd4764a25cad1fc109535016" + }, + { + "decimalCount" : 12, + "symbol" : "ZIL", + "name" : "Zilliqa", + "contractAddress" : "0x05f4a42e251f2d52b8ed15E9FEdAacFcEF1FAD27" + } +] diff --git a/app/src/main/assets/tangem-android-config b/app/src/main/assets/tangem-android-config new file mode 160000 index 0000000000..9a731fcb5a --- /dev/null +++ b/app/src/main/assets/tangem-android-config @@ -0,0 +1 @@ +Subproject commit 9a731fcb5a58d53c90d7db79e5441bdf18e087fc diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/Loader.kt b/app/src/main/java/com/tangem/tap/domain/configurable/Loader.kt index e0d0a6a52c..3471ed78ee 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/Loader.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/Loader.kt @@ -10,7 +10,7 @@ interface Loader { companion object { const val featuresName = "features_${BuildConfig.CONFIG_ENVIRONMENT}" - const val configValuesName = "config_${BuildConfig.CONFIG_ENVIRONMENT}" + const val configValuesName = "tangem-android-config/config_${BuildConfig.CONFIG_ENVIRONMENT}" const val warnings = "warnings_${BuildConfig.CONFIG_ENVIRONMENT}" } } \ No newline at end of file