diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 83717a3ab1..324a1a41ba 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -882,6 +882,8 @@
На этой карте осталось всего %s подписей. Вам следует вывести все ваши средства.
Малое количество подписей
Токены на разных сетях могут иметь разные адреса. Пожалуйста, убедитесь при переводе средств, что ваш адрес соответствует сети.
+ Миграция MATIC в POL
+ Токен MATIC мигрирует на POL. Однако крайний срок не установлен, и MATIC пока не устарел. Вы можете спокойно продолжать использовать токен MATIC или воспользоваться биржами, чтобы обменять его на POL.
- Используйте вашу карту, чтобы получить адрес для %d сети
- Используйте вашу карту, чтобы получить адреса для %d сетей
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 784a17bf0f..957150188b 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -875,6 +875,8 @@
Only %s signatures are left on this card. You must withdraw all of your funds.
Low signature count
Tokens on different networks can have different addresses. Double-check that your address matches the network when you transfer funds.
+ MATIC to POL Migration
+ MATIC is being migrated to POL. However there is no deadline set and MATIC isn\'t being deprecated yet. You can safely continue using MATIC token or use exchanges to swap it for POL.
- Use your card to get an address for %d network
- Use your card to get an addresses for %d networks
diff --git a/domain/tokens/models/src/main/java/com/tangem/domain/tokens/model/warnings/CryptoCurrencyWarning.kt b/domain/tokens/models/src/main/java/com/tangem/domain/tokens/model/warnings/CryptoCurrencyWarning.kt
index 2fa13a5018..4c4473250c 100644
--- a/domain/tokens/models/src/main/java/com/tangem/domain/tokens/model/warnings/CryptoCurrencyWarning.kt
+++ b/domain/tokens/models/src/main/java/com/tangem/domain/tokens/model/warnings/CryptoCurrencyWarning.kt
@@ -48,6 +48,8 @@ sealed class CryptoCurrencyWarning {
data object BeaconChainShutdown : CryptoCurrencyWarning()
+ data object MigrationMaticToPol : CryptoCurrencyWarning()
+
/**
* Shows a warning about an available fee resource for a transaction in several blockchains (ex. Koinos)
*/
diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt
index 03c0debc06..fc77aa776b 100644
--- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt
+++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt
@@ -76,6 +76,7 @@ class GetCurrencyWarningsUseCase(
getNetworkNoAccountWarning(currencyStatus),
getBeaconChainShutdownWarning(currency.network.id),
getAssetRequirementsWarning(userWalletId = userWalletId, currency = currency),
+ getMigrationFromMaticToPolWarning(currency),
)
}.flowOn(dispatchers.io)
}
@@ -304,7 +305,19 @@ class GetCurrencyWarningsUseCase(
}
}
+ private fun getMigrationFromMaticToPolWarning(currency: CryptoCurrency): CryptoCurrencyWarning? {
+ return if (currency.symbol == MATIC_SYMBOL && !BlockchainUtils.isPolygonChain(currency.network.id.value)) {
+ CryptoCurrencyWarning.MigrationMaticToPol
+ } else {
+ null
+ }
+ }
+
private fun BigDecimal?.isZero(): Boolean {
return this?.signum() == 0
}
+
+ companion object {
+ private const val MATIC_SYMBOL = "MATIC"
+ }
}
\ No newline at end of file
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/analytics/TokenDetailsNotificationsAnalyticsSender.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/analytics/TokenDetailsNotificationsAnalyticsSender.kt
index 300083d876..e46cc3f47c 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/analytics/TokenDetailsNotificationsAnalyticsSender.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/analytics/TokenDetailsNotificationsAnalyticsSender.kt
@@ -49,6 +49,7 @@ internal class TokenDetailsNotificationsAnalyticsSender(
is TokenDetailsNotification.NetworkShutdown,
is TokenDetailsNotification.HederaAssociateWarning,
is TokenDetailsNotification.KoinosMana,
+ is TokenDetailsNotification.MigrationMaticToPol,
-> null
}
}
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
index a09065820b..69b5beb389 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/components/TokenDetailsNotification.kt
@@ -201,4 +201,9 @@ internal sealed class TokenDetailsNotification(val config: NotificationConfig) {
formatArgs = wrappedList(manaBalanceAmount, maxManaBalanceAmount),
),
)
+
+ data object MigrationMaticToPol : Warning(
+ title = resourceReference(id = R.string.warning_matic_migration_title),
+ subtitle = resourceReference(id = R.string.warning_matic_migration_message),
+ )
}
\ No newline at end of file
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt
index fd828b47d0..0722f5a792 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt
@@ -122,6 +122,7 @@ internal class TokenDetailsNotificationConverter(
""
},
)
+ is CryptoCurrencyWarning.MigrationMaticToPol -> MigrationMaticToPol
}
}
diff --git a/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt b/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt
index 35b8386cd9..30767aeb4b 100644
--- a/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt
+++ b/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt
@@ -55,4 +55,10 @@ object BlockchainUtils {
val blockchain = Blockchain.fromId(networkId)
return blockchain == Blockchain.Binance || blockchain == Blockchain.BinanceTestnet
}
+
+ /** If current [networkId] is Polygon */
+ fun isPolygonChain(networkId: String): Boolean {
+ val blockchain = Blockchain.fromId(networkId)
+ return blockchain == Blockchain.Polygon || blockchain == Blockchain.PolygonTestnet
+ }
}
\ No newline at end of file