diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index cbf3127021..ddf5455028 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -258,6 +258,7 @@
Aktivieren
Aktiviert
Fehler
+ Geschätzte Gebühr
Umtausch
Erkunden
Transaktionsverlauf einsehen
@@ -1194,7 +1195,7 @@
Jährlicher prozentualer Ertrag
APY zeigt den jährlichen prozentualen Ertrag des Validators basierend auf seiner Leistung
Effektiver Jahreszins
- Effektiver Jahreszins
+ APY
Belohnungen sammeln sich täglich automatisch in deinem Staking-Konto an.
Verfügbar
Durchschnittliche Belohnungsquote
@@ -1384,12 +1385,14 @@
Google Wallet öffnen
Richte Tangem Pay mit wenigen Klicks ein und bezahlen mit Google Pay.
Karte zu Google Pay hinzufügen
+ Karte zu Apple Pay hinzufügen
Google Wallet öffnen
Tippe auf „Karte hinzufügen“.
Gebe die Kartendaten manuell ein
Verifiziere die Karte mit dem Einmalpasswort (OPT), das an Dein Gerät gesendet wird.
Alles erledigt! Deine Karte ist einsatzbereit.
Karte zu Google Pay hinzufügen
+ Karte zu Apple Pay hinzufügen
Teile Deine Adresse mit oder zeig den QR-Code.
Es wurden technische Probleme festgestellt. Bitte versuche es später erneut oder kontaktiere den Support.
Empfangen ist jetzt nicht verfügbar
diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml
index a84c13660c..1a1ad0aad3 100644
--- a/core/res/src/main/res/values-es/strings.xml
+++ b/core/res/src/main/res/values-es/strings.xml
@@ -182,6 +182,7 @@
Activar
Activado
Error
+ Comisión de red por recarga
Intercambiar
Explore
Explore historial de transacciones
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index 4d0bd4f6aa..1da9dfb319 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -160,6 +160,7 @@
Activer
Activé
Erreur
+ Frais estimés
Echanger
Explorez
Explorez l\'historique des transactions
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index 77b2d58b3b..9a4215ccc4 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -253,6 +253,7 @@
有効にする
有効
エラー
+ ネットワーク手数料
スワップ
移動する
取引履歴を調べる
@@ -268,7 +269,7 @@
無料
送信元
アドレスを同期する
- はじめる
+ もっと詳しく
トークンを取得
プロバイダーへ移動
トークンへ移動
@@ -369,6 +370,7 @@
利用可能なネットワーク
このトークンの導出パスが%1$sの導出パスと一致しています。トークンはこのアカウントに追加されます。
導出パスは別のアカウントに属します。
+ トークンが%1$sアカウントに追加されました
コントラクトアドレス
コントラクトアドレスが無効です
ネットワークを選択してください
@@ -564,10 +566,12 @@
現在のウォレットをアップグレードする
バックアップへ移動
アクセスコードを作成する前にウォレットをバックアップしてください。
+ まずバックアップを完了する
まずバックアップを完了する
その他の方法
秘密鍵をオフラインで安全に保存する物理デバイス。
リカバリーフレーズ
+ アクセスコードを使用してウォレットを保護するには、まずバックアップを完了してください。
ウォレットをハードウェアにアップグレードするには、まずバックアップしてください。
鍵はアプリに保存されます
シードフレーズのバックアップ
@@ -1333,6 +1337,7 @@
受け取る
トークンを選択
利用不可
+ カードが凍結されています
入金
異議申し立て
取引を表示
@@ -1340,15 +1345,20 @@
手数料
カードを紛失したり盗まれたりしても、資金を安全に保てます。一時停止はいつでも解除できます。
カードを一時停止しますか?
+ カードを凍結できませんでした。しばらくしてからもう一度お試しください。
一時停止
+ カードが凍結されています
サポートを受ける
完了
拒否
保留中
+ 利用規約・手数料・利用制限
銀行がこの取引リクエストを拒否しました。
この手数料は、送金処理にかかるコストをカバーするためのものです。
資金は引き続き使用できます。いつでも一時停止できます。
カードの一時停止を解除しますか?
+ カードの凍結解除に失敗しました。しばらくしてからもう一度お試しください。
+ カードの凍結が解除されました
出金
資金を追加
入金オプション
@@ -1361,12 +1371,14 @@
Googleウォレットを開く
数回タップするだけでTangem Payの設定完了。Google Payですぐに支払いを始めましょう。
Google Payにカードを追加する
+ Apple Payにカードを追加する
Googleウォレットを開く
「カードを追加」をタップします
カードの詳細を手動で入力してください
お使いの端末に送信されたワンタイムパスワード(OTP)でカードを認証してください。
準備完了!カードはすぐに使用できます。
Google Payにカードを追加する
+ Apple Payにカードを追加する
アドレスを共有するか、QRコードを表示してください。
技術的な問題が検出されました。しばらくしてからもう一度お試しいただくか、サポートにお問い合わせください。
現在、受け取りは利用できません
@@ -1379,12 +1391,12 @@
ステータスを表示
Tangem PayのKYC手続き進行中
カードをGET
- ウォレットに追加して、どこでもスマートフォンで支払いができます。
- Apple Pay & Google Pay
- USDC残高を使用して、毎日のお買い物をシームレスに支払います。
- 日常の買い物
- カードの詳細は保護されており、アプリ内で完全に制御できます。
- 内蔵セキュリティ
+ どこでも暗号資産を使える
+ Apple PayとGoogle Payに対応したデジタルカード付き
+ 購入時に追加手数料はかかりません。
+ 余計な費用なしで、表示金額のみを支払う
+ あなたの住所や資産を開示することなく、個別の支払い用アカウントが作成されます。
+ 他に類を見ないプライバシー
無料のCryptoカード\nを数分で入手しましょう
Tangem Pay
これは私のウォレットです
@@ -1800,7 +1812,7 @@
利息モードを有効にすると、このアドレスへの今後のすべての入金はAaveに送られます。ただし、資金の管理は引き続き自由に行えます。
%sはAaveに供給されています
Aaveへの%1$s %2$sの供給は保留中です
- 承認する
+ 承認
トークンの承認は取り消されました。サービス機能を再開するには、再度承認を行ってください。
承認が必要
手数料が差し引かれ、あなたの資産は再び貸し出されます。
@@ -1829,7 +1841,7 @@
最大手数料
最小金額は、ネットワーク手数料がチャージ額の4%を超えないように現在の手数料に基づいて計算されます。その結果、最小金額は%1$s(%2$s)となります。
最低入金額
- 手数料ポリシー
+ 入金手数料ポリシー
Tangemはまた、得られた利回りに対して15%のサービス手数料を差し引きます。
ネットワーク手数料が下がるか、残高が最低必要額に達すると、資金は自動的にAaveに供給されます。
過去のリターン
@@ -1856,7 +1868,7 @@
入金すると、資金は自動的にAaveに送金され、利息が付き始めます。%sが取引手数料として差し引かれます。
資産を供給する
%sはAaveに供給されますが、管理可能な状態のままになります。
- 手数料ポリシーを見る
+ 入金手数料ポリシーを見る
次回の入金は自動的にAaveに供給されます。
アクティブ
停止中
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index a4f1af4013..1df2916b57 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -186,6 +186,7 @@
Включить
Включено
Ошибка
+ Комиссия сети
Обменять
Обозреватель
Посмотреть историю транзакций
@@ -1615,7 +1616,7 @@
Максимальная комиссия
Минимальная сумма рассчитывается исходя из текущей комиссии сети, чтобы она не превышала 4%% от суммы пополнения, что составляет минимум %1$s (%2$s).
Минимальный депозит
- Политика комиссий
+ Политика комиссий за пополнение
Tangem взимает комиссию за обслуживание в размере 15% от полученного дохода.
Ваши средства будут автоматически переведены в Aave, как только комиссия сети снизится или баланс достигнет минимально необходимой суммы.
Историческая доходность
diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml
index eb74113ec1..35f9ffc00b 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -160,6 +160,7 @@
Увімкнути
Увімкнено
Помилка
+ Комісія мережі за поповнення
Обміняти
Оглядач
Переглянути історію транзакцій
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 9c03a1494f..11fdaf6304 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -258,7 +258,7 @@
Enable
Enabled
Error
- Estimated fee
+ Top-up network fee
Swap
Explore
Explore transaction history
@@ -274,7 +274,7 @@
Free
From
Synchronize addresses
- Learn more
+ Get started
Get token
Go to provider
Go to token
@@ -378,6 +378,7 @@
Available networks
Derivation of your token matches the derivation of %1$s. Your token will be added to this account.
Derivation belongs to another account.
+ Token added to %1$s account
Contract address
Contract address is invalid
Please select the network
@@ -1360,6 +1361,7 @@
Choose token
not available
Card frozen
+ Card payment
Deposit
Dispute
Explore transaction
@@ -1371,9 +1373,11 @@
Freeze
Your card is frozen.
Get Help
+ Other
Completed
Declined
Pending
+ Terms, Fees & Limits
The bank rejected this transaction request.
This fee goes to cover the cost of handling your transfer.
Keep using your money. You can freeze anytime.
@@ -1383,25 +1387,36 @@
Withdrawal
Add funds
Top-up options
+ Card Number
Change PIN
The card is fully ready for payments.
PIN code created
+ CVC
Failed to load data. Try again later.
+ Expiry
Freeze Card
+ Hide details
Hide
Open Google Wallet
Set up Tangem Pay in a few taps and start paying with Google Pay.
Add your card to Google Pay
+ Add your card to Apple Pay
Open Google Wallet
+ Tap “+” button on the top right
+ Open
+ Apple Wallet
Tap “Add a card”
+ Tap “Debit or Credit Card”
Enter the card details manually
Verify card using the OTP sent to your device.
All set! Your card is ready to use.
Add card to Google Pay
+ Add card to Apple Pay
Share your address or show QR-code
Technical issues detected. Please try again later or contact support.
Receive unavailable now
Reveal
+ Show details
Swap any asset in your portfolio for card
Card details
Unfreeze Card
@@ -1410,13 +1425,15 @@
View Status
KYC in progress for Tangem Pay
Get card
- Add to your wallet and pay with your phone anywhere.
- Apple Pay & Google Pay
- Use your USDC balance to pay for everyday purchases seamlessly.
- Everyday purchases
- Your card details are protected — full control in the app.
- Built-in security
+ Spend your crypto anywhere
+ With digital card that works with Apple Pay and Google Pay
+ There are no additional fees for purchases
+ Pay exactly what you see
+ A separate payment account will be created without disclosing your addresses and assets
+ Unrivaled privacy
Get your free Crypto Card\nin minutes
+ We’re fixing a technical issue. Please try again later.
+ Service temporarily unavailable
Tangem Pay
This is my wallet
Balances hidden
@@ -1880,7 +1897,7 @@
With Yield mode active, all future deposits to this address will go to Aave. You can still manage your funds freely.
Your %s is supplied to Aave
Supplying %1$s %2$s to Aave is pending
- Give Approve
+ Approve
Your token’s approval has been revoked. Grant it again to resume service functionality.
Approve needed
The fee will be taken out, and your assets will be lent again.
@@ -1909,7 +1926,7 @@
Maximum fee
The minimum amount is calculated based on the current network fee so that it does not exceed 4%% of the top-up amount, which makes the minimum %1$s (%2$s).
Minimum top-up
- Fee policy
+ Top-up fee policy
Tangem also takes a 15% service fee on yield earned.
Your funds will be automatically supplied to Aave once network fees are lower or your balance meets the minimum required amount.
Historical returns
@@ -1950,7 +1967,7 @@
Interest accrues automatically.
Interest accrues automatically
Yield mode
- Processing your deposit
+ Processing your top-up
Yield Mode
Automatic
Deposit some %1$s %2$s to cover the network fee for transactions
diff --git a/data/yield-supply/src/main/java/com/tangem/data/yield/supply/DefaultYieldSupplyRepository.kt b/data/yield-supply/src/main/java/com/tangem/data/yield/supply/DefaultYieldSupplyRepository.kt
index 48badf6ec8..75f2634213 100644
--- a/data/yield-supply/src/main/java/com/tangem/data/yield/supply/DefaultYieldSupplyRepository.kt
+++ b/data/yield-supply/src/main/java/com/tangem/data/yield/supply/DefaultYieldSupplyRepository.kt
@@ -24,6 +24,7 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.withContext
+import timber.log.Timber
import java.util.concurrent.ConcurrentHashMap
internal class DefaultYieldSupplyRepository(
@@ -138,7 +139,7 @@ internal class DefaultYieldSupplyRepository(
override suspend fun getTokenPendingStatus(
userWalletId: UserWalletId,
cryptoCurrencyStatus: CryptoCurrencyStatus,
- ): YieldSupplyEnterStatus? {
+ ): YieldSupplyEnterStatus? = try {
val cryptoCurrency = cryptoCurrencyStatus.currency
val walletManager = walletManagersFacade.getOrCreateWalletManager(
userWalletId = userWalletId,
@@ -152,11 +153,14 @@ internal class DefaultYieldSupplyRepository(
val hasRecentYieldEnterTxs = pendingTxs.hasYieldEnterTransactions(yieldAddress)
val hasRecentYieldExitTxs = pendingTxs.hasYieldExitTransactions()
- return when {
+ when {
hasRecentYieldEnterTxs -> YieldSupplyEnterStatus.Enter
hasRecentYieldExitTxs -> YieldSupplyEnterStatus.Exit
else -> null
}
+ } catch (e: Exception) {
+ Timber.e(e, "Failed to get pending yield supply status")
+ null
}
private fun Set.hasYieldEnterTransactions(yieldAddress: String) = any {
diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt
index 108d706b1d..e21b971fe1 100644
--- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt
+++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt
@@ -36,7 +36,6 @@ import com.tangem.feature.wallet.child.wallet.model.intents.WalletClickIntents
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.account.AccountDependencies
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletNotification
-import com.tangem.features.yield.supply.api.YieldSupplyFeatureToggles
import com.tangem.lib.crypto.BlockchainUtils.isBitcoin
import com.tangem.utils.extensions.addIf
import com.tangem.utils.extensions.isPositive
@@ -62,7 +61,6 @@ internal class GetMultiWalletWarningsFactory @Inject constructor(
private val onrampSepaAvailableUseCase: OnrampSepaAvailableUseCase,
private val getOnrampCountryUseCase: GetOnrampCountryUseCase,
private val notificationsRepository: NotificationsRepository,
- private val yieldSupplyFeatureToggles: YieldSupplyFeatureToggles,
private val accountDependencies: AccountDependencies,
) {
@@ -134,7 +132,8 @@ internal class GetMultiWalletWarningsFactory @Inject constructor(
!notificationsRepository.isUserAllowToSubscribeOnPushNotifications(),
)
- addYieldSupplyNotifications(flattenCurrencies)
+ // Remove in first iteration of yield supply feature
+ // addYieldSupplyNotifications(flattenCurrencies)
val hasCriticalOrWarning = any { notification ->
notification is WalletNotification.Critical || notification is WalletNotification.Warning
@@ -319,14 +318,14 @@ internal class GetMultiWalletWarningsFactory @Inject constructor(
)
}
- private fun MutableList.addYieldSupplyNotifications(
- flattenCurrencies: Lce>,
- ) {
- addIf(
- element = WalletNotification.Warning.YeildSupplyApprove,
- condition = flattenCurrencies.hasTokensWithActivatedSupplyWithoutApprove(),
- )
- }
+ // private fun MutableList.addYieldSupplyNotifications(
+ // flattenCurrencies: Lce>,
+ // ) {
+ // addIf(
+ // element = WalletNotification.Warning.YeildSupplyApprove,
+ // condition = flattenCurrencies.hasTokensWithActivatedSupplyWithoutApprove(),
+ // )
+ // }
private fun MutableList.addWarningNotifications(
cardTypesResolver: CardTypesResolver?,
@@ -371,13 +370,14 @@ internal class GetMultiWalletWarningsFactory @Inject constructor(
return flattenCurrencies.any { it.value is CryptoCurrencyStatus.Unreachable }
}
- private fun Lce>.hasTokensWithActivatedSupplyWithoutApprove(): Boolean {
- val flattenCurrencies = getOrNull(isPartialContentAccepted = false) ?: return false
- val yieldSupplyEnabled = yieldSupplyFeatureToggles.isYieldSupplyFeatureEnabled
- return yieldSupplyEnabled && flattenCurrencies.any {
- it.value.yieldSupplyStatus?.isAllowedToSpend == false
- }
- }
+ // Remove in first iteration of yield supply feature
+ // private fun Lce>.hasTokensWithActivatedSupplyWithoutApprove(): Boolean {
+ // val flattenCurrencies = getOrNull(isPartialContentAccepted = false) ?: return false
+ // val yieldSupplyEnabled = yieldSupplyFeatureToggles.isYieldSupplyFeatureEnabled
+ // return yieldSupplyEnabled && flattenCurrencies.any {
+ // it.value.yieldSupplyStatus?.isAllowedToSpend == false
+ // }
+ // }
private fun MutableList.addRateTheAppNotification(
isReadyToShowRating: Boolean,
diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
index d83e344df8..f73b643b1b 100644
--- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
+++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
@@ -72,6 +72,7 @@ internal class YieldSupplyModel @Inject constructor(
val bottomSheetNavigation: SlotNavigation = SlotNavigation()
+ private val handleNavigation = params.handleNavigation
private val cryptoCurrency = params.cryptoCurrency
var userWallet: UserWallet by Delegates.notNull()
@@ -91,8 +92,13 @@ internal class YieldSupplyModel @Inject constructor(
init {
checkIfYieldSupplyIsAvailable()
- params.handleNavigation?.let { handle ->
- if (handle) {
+
+ val protocolStatus = yieldSupplyRepository.getTokenProtocolStatus(
+ userWalletId = params.userWalletId,
+ cryptoCurrency = cryptoCurrency,
+ )
+ if (handleNavigation != null && protocolStatus == null) {
+ if (handleNavigation) {
modelScope.launch {
delay(timeMillis = 1000)
bottomSheetNavigation.activate(Unit)
diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/ui/YieldSupplyBlockContent.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/ui/YieldSupplyBlockContent.kt
index d4414727ef..df2c84d279 100644
--- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/ui/YieldSupplyBlockContent.kt
+++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/ui/YieldSupplyBlockContent.kt
@@ -71,7 +71,7 @@ private fun SupplyAvailable(supplyUM: YieldSupplyUM.Available, modifier: Modifie
modifier = modifier,
button = {
SecondaryButton(
- text = stringResourceSafe(R.string.common_get_started),
+ text = stringResourceSafe(R.string.common_learn_more),
onClick = supplyUM.onClick,
size = TangemButtonSize.WideAction,
modifier = Modifier.fillMaxWidth(),