diff --git a/app/src/main/assets/ftm_tokens.json b/app/src/main/assets/ftm_tokens.json new file mode 100644 index 0000000000..561b36dfdf --- /dev/null +++ b/app/src/main/assets/ftm_tokens.json @@ -0,0 +1,282 @@ +[ + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x6a07A792ab2965C72a5B8088d3a069A7aC3a993B/logo.png", + "symbol": "AAVE", + "name": "Aave", + "contractAddress": "0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xf99d58e463A2E07e5692127302C20A191861b4D6.png", + "symbol": "ANY", + "name": "Anyswap", + "contractAddress": "0xddcb3ffd12750b45d32e084887fdf1aabab34239" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/bandprotocol_32.png", + "symbol": "BAND", + "name": "Band Protocol", + "contractAddress": "0x46e7628e8b4350b2716ab470ee0ba1fa9e76c6c5" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xFbdd194376de19a88118e84E279b977f165d01b8.png", + "symbol": "BIFI", + "name": "Beefy.Finance", + "contractAddress": "0xd6070ae98b8069de6b494332d1a1a81b6179d960" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xF24Bcf4d1e507740041C9cFd2DddB29585aDCe1e.png", + "symbol": "BEETS", + "name": "Beethoven X", + "contractAddress": "0xf24bcf4d1e507740041c9cfd2dddb29585adce1e" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8/logo.png", + "symbol": "LINK", + "name": "Chainlink", + "contractAddress": "0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/cover_32.png", + "symbol": "COVER", + "name": "Cover Protocol", + "contractAddress": "0xb01e8419d842beebf1b70a7b5f7142abbaf7159d" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/CreamFinance_32.png", + "symbol": "CREAM", + "name": "Cream", + "contractAddress": "0x657a1861c15a3ded9af0b6799a195a249ebdcbc6" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x1E4F97b9f9F913c46F1632781732927B9019C68b/logo.png", + "symbol": "CRV", + "name": "Curve DAO Token", + "contractAddress": "0x1e4f97b9f9f913c46f1632781732927b9019c68b" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E/logo.png", + "symbol": "DAI", + "name": "Dai", + "contractAddress": "0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/fUSD_32.png", + "symbol": "FUSD", + "name": "Fantom USD", + "contractAddress": "0xad84341756bf337f5a0164515b1f6f993d194e1f" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355/logo.png", + "symbol": "FRAX", + "name": "Frax", + "contractAddress": "0xdc301622e621166bd8e82f2ca0a26c13ad0be355" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x7d016eec9c25232b01F23EF992D98ca97fc2AF5a/logo.png", + "symbol": "FXS", + "name": "Frax Share", + "contractAddress": "0x7d016eec9c25232b01f23ef992d98ca97fc2af5a" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x07E6332dD090D287d3489245038daF987955DCFB.png", + "symbol": "GDAI", + "name": "Geist Dai", + "contractAddress": "0x07e6332dd090d287d3489245038daf987955dcfb" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x25c130B2624CF12A4Ea30143eF50c5D68cEFA22f.png", + "symbol": "GETH", + "name": "Geist ETH", + "contractAddress": "0x25c130b2624cf12a4ea30143ef50c5d68cefa22f" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x39B3bd37208CBaDE74D0fcBDBb12D606295b430a.png", + "symbol": "GFTM", + "name": "Geist FTM", + "contractAddress": "0x39b3bd37208cbade74d0fcbdbb12d606295b430a" + }, + { + "decimalCount": 6, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xe578C856933D8e1082740bf7661e379Aa2A30b26.png", + "symbol": "GUSDC", + "name": "Geist USDC", + "contractAddress": "0xe578c856933d8e1082740bf7661e379aa2a30b26" + }, + { + "decimalCount": 8, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x38aCa5484B8603373Acc6961Ecd57a6a594510A3.png", + "symbol": "GWBTC", + "name": "Geist WBTC", + "contractAddress": "0x38aca5484b8603373acc6961ecd57a6a594510a3" + }, + { + "decimalCount": 6, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x940F41F0ec9ba1A34CF001cc03347ac092F5F6B5.png", + "symbol": "GFUSDT", + "name": "Geist fUSDT", + "contractAddress": "0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/hegic_32.png", + "symbol": "HEGIC", + "name": "Hegic", + "contractAddress": "0x44b26e839eb3572c5e959f994804a5de66600349" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/kp3r_32.png", + "symbol": "KP3R", + "name": "Keep3rV1", + "contractAddress": "0x2a5062d22adcfaafbd5c541d4da82e4b450d4212" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x82f0B8B456c1A451378467398982d4834b6829c1/logo.png", + "symbol": "MIM", + "name": "Magic Internet Money", + "contractAddress": "0x82f0b8b456c1a451378467398982d4834b6829c1" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/sushiswap/assets/master/blockchains/ethereum/assets/0xf16e81dce15B08F326220742020379B855B87DF9/logo.png", + "symbol": "ICE", + "name": "Popsicle Finance", + "contractAddress": "0xf16e81dce15b08f326220742020379b855b87df9" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xe0654C8e6fd4D733349ac7E09f6f23DA256bF475.png", + "symbol": "SCREAM", + "name": "Scream", + "contractAddress": "0xe0654c8e6fd4d733349ac7e09f6f23da256bf475" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x468003B688943977e6130F4F68F23aad939a1040/logo.png", + "symbol": "SPELL", + "name": "Spell Token", + "contractAddress": "0x468003b688943977e6130f4f68f23aad939a1040" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x5Cc61A78F164885776AA610fb0FE1257df78E59B.png", + "symbol": "SPIRIT", + "name": "SpiritSwap", + "contractAddress": "0x5cc61a78f164885776aa610fb0fe1257df78e59b" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x841FAD6EAe12c286d1Fd18d1d525DFfA75C7EFFE.png", + "symbol": "BOO", + "name": "Spookyswap", + "contractAddress": "0x841fad6eae12c286d1fd18d1d525dffa75c7effe" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC/logo.png", + "symbol": "SUSHI", + "name": "Sushi", + "contractAddress": "0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x56ee926bD8c72B2d5fa1aF4d9E4Cbb515a1E3Adc/logo.png", + "symbol": "SNX", + "name": "Synthetix Network Token", + "contractAddress": "0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0xC5e2B037D30a390e62180970B3aa4E91868764cD.png", + "symbol": "TAROT", + "name": "Tarot", + "contractAddress": "0xc5e2b037d30a390e62180970b3aa4e91868764cd" + }, + { + "decimalCount": 6, + "customIconUrl": "https://raw.githubusercontent.com/sushiswap/assets/master/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png", + "symbol": "USDT", + "name": "Tether", + "contractAddress": "0x049d68029688eabf473097a2fc38ef61633a3c7a" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/plasmadlt/token-list/master/assets/0x6c021Ae822BEa943b2E66552bDe1D2696a53fbB7.png", + "symbol": "TOMB", + "name": "Tomb", + "contractAddress": "0x6c021ae822bea943b2e66552bde1d2696a53fbb7" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x4cdF39285D7Ca8eB3f090fDA0C069ba5F4145B37/logo.png", + "symbol": "TSHARE", + "name": "Tomb Shares", + "contractAddress": "0x4cdf39285d7ca8eb3f090fda0c069ba5f4145b37" + }, + { + "decimalCount": 6, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x04068DA6C83AFCFA0e13ba15A6696662335D5B75/logo.png", + "symbol": "USDC", + "name": "USD Coin", + "contractAddress": "0x04068da6c83afcfa0e13ba15a6696662335d5b75" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/wETH_32.png", + "symbol": "WETH", + "name": "WETH", + "contractAddress": "0x74b23882a30290451a17c44f4f05243b6b58c76d" + }, + { + "decimalCount": 18, + "customIconUrl": "https://tokens.pancakeswap.finance/images/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c.png", + "symbol": "WBNB", + "name": "Wrapped BNB", + "contractAddress": "0xd67de0e0a0fd7b15dc8348bb9be742f3c5850454" + }, + { + "decimalCount": 8, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x321162Cd933E2Be498Cd2267a90534A804051b11/logo.png", + "symbol": "WBTC", + "name": "Wrapped Bitcoin", + "contractAddress": "0x321162cd933e2be498cd2267a90534a804051b11" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83/logo.png", + "symbol": "WFTM", + "name": "Wrapped Fantom", + "contractAddress": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83" + }, + { + "decimalCount": 18, + "customIconUrl": "https://ftmscan.com/token/images/sUSD_32.png", + "symbol": "SUSD", + "name": "sUSD", + "contractAddress": "0x0e1694483ebb3b74d3054e383840c6cf011e518e" + }, + { + "decimalCount": 18, + "customIconUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/fantom/assets/0x29b0Da86e484E1C0029B56e817912d778aC0EC69/logo.png", + "symbol": "YFI", + "name": "yearn.finance", + "contractAddress": "0x29b0da86e484e1c0029b56e817912d778ac0ec69" + } +] \ No newline at end of file diff --git a/app/src/main/assets/ftm_tokens_testnet.json b/app/src/main/assets/ftm_tokens_testnet.json new file mode 100644 index 0000000000..0652536386 --- /dev/null +++ b/app/src/main/assets/ftm_tokens_testnet.json @@ -0,0 +1,16 @@ +[ + { + "decimalCount": 18, + "customIconUrl": "https://cdn.worldvectorlogo.com/logos/usd-1.svg", + "symbol": "FUSD", + "name": "Fantom USD", + "contractAddress": "0x91ea991bd52EE3C40EdA2509701d905e1Ee54074" + }, + { + "decimalCount": 18, + "customIconUrl": "https://cryptologos.cc/logos/fantom-ftm-logo.svg?v=003", + "symbol": "WFTM", + "name": "Wrapped Fantom", + "contractAddress": "0xf1277d1Ed8AD466beddF92ef448A132661956621" + } +] \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt index 182461aa4c..d5eb4f5e8a 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt @@ -41,6 +41,10 @@ fun View.getString(@StringRes id: Int): String { return context.getString(id) } +fun View.getString(@StringRes id: Int, vararg formatArgs: String): String { + return context.getString(id, *formatArgs) +} + fun View.getResourceName(): String { return try { resources.getResourceEntryName(id) 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 114746a06f..bb1d5c74bc 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 @@ -15,6 +15,7 @@ import com.tangem.tap.domain.extensions.getCustomIconUrl import com.tangem.tap.domain.extensions.setCustomIconUrl import com.tangem.tap.features.demo.DemoHelper import com.tangem.tap.network.createMoshi +import timber.log.Timber class CurrenciesRepository(val context: Application) { @@ -122,16 +123,21 @@ class CurrenciesRepository(val context: Application) { getSupportedTokens() } - val blockchainTokens = supportedTokens.map { - fromJsonToTokensDao(loadTokensJson(it), it) + val blockchainTokens = supportedTokens.mapNotNull { blockchain -> + loadTokensJson(blockchain)?.let { fromJsonToTokensDao(it, blockchain) } } val tokens = blockchainTokens.flatten().map { it.toToken() } return tokens } - private fun loadTokensJson(blockchain: Blockchain): String { + private fun loadTokensJson(blockchain: Blockchain): String? { val fileName = getFileName(blockchain) - return context.assets.readJsonFileToString(fileName) + return try { + context.assets.readJsonFileToString(fileName) + } catch (ex: Exception) { + Timber.e(ex, "Tokens with the file name %s not found", fileName) + null + } } private fun getFileName(blockchain: Blockchain): String { @@ -148,12 +154,12 @@ class CurrenciesRepository(val context: Application) { private fun getSupportedTokens(): List { return listOf( - Blockchain.Avalanche, - Blockchain.Binance, - Blockchain.BSC, Blockchain.Ethereum, + Blockchain.BSC, + Blockchain.Binance, Blockchain.Polygon, - Blockchain.Solana, + Blockchain.Avalanche, + Blockchain.Fantom, ) } @@ -169,10 +175,11 @@ class CurrenciesRepository(val context: Application) { return excludeUnsupportedBlockchains(blockchains) } + // Use this list to temporarily exclude a blockchain from the list of tokens. private fun excludeUnsupportedBlockchains(blockchains: List): List { return blockchains.toMutableList().apply { removeAll(listOf( -// Blockchain.Fantom, Blockchain.FantomTestnet +// Any blockchain )) } } @@ -187,6 +194,13 @@ class CurrenciesRepository(val context: Application) { } } +fun Blockchain.getTokensName(): String { + return when (this) { + Blockchain.Fantom -> "Fantom Opera" + else -> this.fullName + } +} + @JsonClass(generateAdapter = true) data class TokenDao( val name: String, diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt index f80e04df6b..8f51995b2a 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt @@ -102,7 +102,45 @@ class DemoConfig { ?: Amount(BigDecimal.ZERO, blockchain).copy() private val releaseDemoCardIds = mutableListOf( - +// Tangem Wallet: + "AC01000000041100", + "AC01000000042462", + "AC01000000041647", + "AC01000000041621", + "AC01000000041217", + "AC01000000041225", + "AC01000000041209", + "AC01000000041092", + "AC01000000041472", + "AC01000000041662", + "AC01000000045754", + "AC01000000045960", +// Tangem Note BTC: + "AB0100000046530", + "AB0100000046720", + "AB0100000046746", + "AB0100000046498", + "AB0100000046753", + "AB0100000049608", + "AB0100000046761", + "AB0100000049574", + "AB0100000046605", + "AB0100000046571", + "AB0100000046704", + "AB0100000046647", +// Tangem Note Ethereum: + "AB02000000051000", + "AB02000000050986", + "AB02000000051026", + "AB02000000051042", + "AB02000000051091", + "AB02000000051083", + "AB02000000050960", + "AB02000000051034", + "AB02000000050911", + "AB02000000051133", + "AB02000000051158", + "AB02000000051059", ) private val testDemoCardIds = listOf( diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/CurrencyListItem.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/CurrencyListItem.kt index 475cffff6c..8f242ed6c7 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/CurrencyListItem.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/CurrencyListItem.kt @@ -23,12 +23,11 @@ sealed class CurrencyListItem { blockchains: List, tokens: List, ): List { - return createBlockchainList(blockchains) + - createTokensList(R.string.add_tokens_subtitle_ethereum_tokens, Blockchain.Ethereum, tokens) + - createTokensList(R.string.add_tokens_subtitle_bsc_tokens, Blockchain.BSC, tokens) + - createTokensList(R.string.add_tokens_subtitle_binance_tokens, Blockchain.Binance, tokens) + - createTokensList(R.string.add_tokens_subtitle_polygon_tokens, Blockchain.Polygon, tokens) + - createTokensList(R.string.add_tokens_subtitle_avalanche_tokens, Blockchain.Avalanche, tokens) + val blockchainsItemList = createBlockchainList(blockchains) + val tokenItemsLists = tokens.groupBy { it.blockchain }.map { + createTokensList(R.string.add_tokens_subtitle_format, it.key, it.value) + } + return blockchainsItemList + tokenItemsLists.flatten() } private fun createBlockchainList(blockchains: List): List { diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt index 69f9a8940e..123e5c25ff 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt @@ -49,8 +49,7 @@ class TokensMiddleware { cardFirmware = scanResponse.card.firmwareVersion, isTestNet = isTestcard ).sortedBy { it.fullName } - val currencies = - CurrencyListItem.createListOfCurrencies(blockchains, tokens).toMutableList() + val currencies = CurrencyListItem.createListOfCurrencies(blockchains, tokens) store.dispatch(TokensAction.LoadCurrencies.Success(currencies)) } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt index bc2b3177ae..379d5c0498 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt @@ -15,6 +15,7 @@ import com.tangem.tap.common.extensions.hide import com.tangem.tap.common.extensions.loadCurrenciesIcon import com.tangem.tap.common.extensions.show import com.tangem.tap.domain.tokens.CardCurrencies +import com.tangem.tap.domain.tokens.getTokensName import com.tangem.tap.features.tokens.redux.CurrencyListItem import com.tangem.tap.features.tokens.redux.TokensAction import com.tangem.tap.store @@ -211,12 +212,11 @@ class CurrenciesAdapter : ListAdapter } } - class TitleViewHolder(val view: View) : - RecyclerView.ViewHolder(view) { + class TitleViewHolder(val view: View) : RecyclerView.ViewHolder(view) { fun bind(title: CurrencyListItem.TitleListItem) { - view.tv_subtitle.text = view.getString(title.titleResId).uppercase() - if (title.blockchain != null) { + val subtitle = view.getString(title.titleResId, title.blockchain.getTokensName()) + view.tv_subtitle.text = subtitle.uppercase() view.cl_subtitle_container.setOnClickListener { val rotation = if (title.isContentShown) -90f else 90f store.dispatch(TokensAction.ToggleShowTokensForBlockchain( @@ -228,6 +228,7 @@ class CurrenciesAdapter : ListAdapter } showArrow(view, title.isContentShown) } else { + view.tv_subtitle.text = view.getString(title.titleResId).uppercase() view.iv_toggle_sublist_visibility.hide() } } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9581d6c26c..94ce1b19d2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -214,11 +214,7 @@ Блокчейн Управление токенами Блокчейны - Ethereum токены - Binance Smart Chain токены - Binance Chain токены - Avalanche C-Chain токены - Polygon токены + %s токены Копировать Поделиться + Добавить токены diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml index f746827108..40ba641e70 100644 --- a/app/src/main/res/values/strings_untranslated.xml +++ b/app/src/main/res/values/strings_untranslated.xml @@ -98,11 +98,7 @@ Manage tokens Blockchains - Ethereum tokens - Binance Smart Chain tokens - Binance Chain tokens - Avalanche C-Chain tokens - Polygon tokens + %s tokens Copy Share + Add tokens