diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt
index 075ca14999..b006532804 100644
--- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt
+++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt
@@ -19,8 +19,8 @@ import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_IDS
import com.tangem.domain.models.scan.CardDTO.Companion.RING_BATCH_PREFIX
import com.tangem.domain.models.scan.ScanResponse
import com.tangem.domain.wallets.builder.UserWalletBuilder
-import com.tangem.domain.wallets.legacy.UserWalletsListManager
import com.tangem.domain.wallets.builder.UserWalletIdBuilder
+import com.tangem.domain.wallets.legacy.UserWalletsListManager
import com.tangem.domain.wallets.models.Artwork
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.feature.onboarding.data.model.CreateWalletResponse
@@ -641,6 +641,8 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction)
)
}
} else {
+ delay(HIDE_PROGRESS_DELAY)
+
readCard { newScanResponse ->
scanResponse = newScanResponse
userWallet = createUserWallet(newScanResponse, backupState)
diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index 51282f72a9..91ac04b5bf 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -308,7 +308,7 @@
Unbegrenzt
Karte oder Ring bestellen
Karte oder Ring scannen
- Diese Informationen wurden mithilfe von KI generiert. \n Tippe hier, wenn Du Fehler finden.
+ Diese Informationen wurden mithilfe von KI generiert.\n Tippe hier, wenn Du Fehler finden.
Um den Zugangscode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
Um den Passcode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
Um die Wallet zu erstellen, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
@@ -391,8 +391,8 @@
Beliebt
Über %s
- - %d Börse
- - %d Börsen
+ - %d börse
+ - %d börsen
- Bewertung, basierend auf %d
diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml
index 58676a38b9..ca139eb0a7 100644
--- a/core/res/src/main/res/values-es/strings.xml
+++ b/core/res/src/main/res/values-es/strings.xml
@@ -308,7 +308,7 @@
Ilimitado
Ordenar
Escanee
- Esta información fue generada con IA
+ Esta información fue generada con IA.\nPulse aquí si encuentra algún error.
Toque para cambiar la contraseña
Toque para cambiar la contraseña
Para crear la billetera, toque la tarjeta como se muestra arriba y no la retire hasta el final de la operación
@@ -391,8 +391,8 @@
Tendencias
Acerca de %s
- - intercambio
- - intercambios
+ - %d intercambio
+ - %d intercambios
- Basado en %d evaluación
@@ -882,6 +882,7 @@
Solicitud para crear una transacción para %1$s\n%2$s\n\nMontante: %3$s\nComisión: %4$s\nTotal: %5$s\nSaldo: %6$s
No se puede completar la transacción. Fondos insuficientes.
Error al establecer la sesión de WalletConnect. Por favor, inténtelo más tarde.
+ No todos los tokens se han agregado a su lista. Añádelos primero y vuelve a intentarlo. Tokens faltantes :\n
Error al firmar el mensaje.\nPor favor, inténtalo de nuevo
Error al establecer la sesión de WalletConnect: error de tiempo de espera. Por favor, inténtelo más tarde.
La solicitud de sesión contiene blockchains no compatibles para la conexión WalletConnect. Blockchains no compatibles:\n
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index c01b0abd75..23a43e7ff8 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -308,7 +308,7 @@
Illimité
Commandez
Scannez
- Ces informations ont été générées avec l\'IA
+ Ces informations ont été générées avec l\'IA.\nAppuyez ici si vous trouvez des erreurs.
Touchez, pour modifier le code d\'accès
Touchez, pour modifier le mot de passe
Pour créer le portefeuille, appuyez sur la carte comme indiqué ci-dessus et ne la retirez pas jusqu\'à la fin de l\'opération
@@ -391,8 +391,8 @@
Tendances
À propos de %s
- - échange
- - échanges
+ - %d échange
+ - %d échanges
- Basé sur %d évaluation
@@ -882,6 +882,7 @@
Demande de création d\'une transaction pour %1$s\n%2$s\n\nMontant : %3$s\nFrais : %4$s\nTotal : %5$s\nSolde : %6$s
Impossible d\'effectuer la transaction. Fonds insuffisants.
Échec de l\'établissement de la session WalletConnect. Veuillez réessayer plus tard.
+ Tous les jetons n\'ont pas été ajoutés à votre liste. Veuillez d\'abord les ajouter et essayez à nouveau. Jetons manquants :\n
Échec de la signature du message. Veuillez réessayer
Échec de l\'établissement de la session WalletConnect : erreur de délai d\'attente. Veuillez réessayer plus tard.
La demande de session contient des blockchains non prises en charge pour la connexion WalletConnect. Blockchains non prises en charge :\n
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index 034ee6ecc4..9daec072f7 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -82,10 +82,12 @@
%1$sへ移動
カメラへのアクセスを許可していません。プライバシー設定を調整してください。
キャンセル
+ 変更
アクションを選択
請求
報酬を受け取る
閉じる
+ 確認
続ける
コピー
アドレスをコピー
@@ -542,6 +544,9 @@
アクセスコードの復元
同一のカード
アクセスコード
+ この国では当社のサービスはご利用いただけません
+ 変更または確認
+ あなたの住居は次のように識別されています
グループ
残高順
トークンを整理する
@@ -746,7 +751,7 @@
%sごと
毎日
%s日ごと
- 毎%1$s
+ 毎
エポック毎
時代毎
毎時間
@@ -872,6 +877,7 @@
%1$sの取引を作成するリクエスト\n%2$s\n\n金額: %3$s\n手数料: %4$s\n合計: %5$s\n残高: %6$s
取引を送信できません。資金が足りません。
WalletConnect セッションを確立できませんでした。しばらくしてからもう一度お試しください。
+ すべてのトークンがリストには追加されませんでした。まず追加してから、もう一度お試しください。不足しているトークン: \n
メッセージの署名に失敗しました。\nもう一度お試しください。
WalletConnectセッションの確立に失敗しました:タイムアウトエラー。しばらくしてもう一度お試しください。
セッションリクエストには、WalletConnect接続でサポートされていないブロックチェーンが含まれています。サポートされていないブロックチェーン: \n
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 3e346d67a4..1d7f48e667 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -89,6 +89,7 @@
Получить
Вывести награду
Закрыть
+ Подтвердить
Продолжить
Копировать
Скопировать адрес
@@ -518,7 +519,7 @@
Ваша seed-фраза
- - %d слово
+
- %d слова
- %d слов
- %d слов
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 520382b7eb..c7e208ecb6 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -519,7 +519,7 @@
Ваша seed-фраза
- - %d слово
+
- %d слова
- %d слів
- %d слів
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index ff9ddc76d8..7bb68fb3cf 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -83,10 +83,12 @@
Go to %1$s
You have not given access to your camera, please adjust your privacy settings
Cancel
+ Change
Choose action
Claim
Claim rewards
Close
+ Confirm
Continue
Copy
Copy address
@@ -550,6 +552,9 @@
Access code restore
Identical cards
Access code
+ Our services are not available in this country
+ Change or confirm it
+ Your residence has been identified as
Group
By balance
Organize tokens
diff --git a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt
index 6dd0f53745..2c07ae8ea0 100644
--- a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt
+++ b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt
@@ -42,7 +42,8 @@ class InvalidatePendingTransactionsUseCase(
newBalancesId: Int,
pendingData: List>,
): Pair, List> {
- val balances = realData.associateBy { BalanceIdentity(it.groupId, it.type, it.amount, it.date) }
+ val balances = realData.groupBy { BalanceIdentity(it.groupId, it.type, it.amount, it.date) }
+ .mapValues { it.value.toMutableList() }
.toMutableMap()
val transactionsToRemove = mutableListOf()
@@ -56,28 +57,34 @@ class InvalidatePendingTransactionsUseCase(
transactionsToRemove.add(pendingTransaction)
}
balances.containsKey(key) -> {
- balances[key] = balanceItem
+ val removed = balances[key]?.removeIf { !it.isPending } ?: false
+ if (removed) {
+ balances[key]?.add(balanceItem)
+ }
}
else -> {
val groupId = UUID.randomUUID().toString()
val now = DateTime.now()
+
balances[BalanceIdentity(groupId, BalanceType.STAKED, pendingTransaction.amount, now)] =
- BalanceItem(
- groupId = groupId,
- type = pendingTransaction.type,
- amount = pendingTransaction.amount,
- rawCurrencyId = pendingTransaction.rawCurrencyId,
- validatorAddress = pendingTransaction.validator?.address,
- date = null,
- pendingActions = emptyList(),
- token = pendingTransaction.token,
- isPending = true,
+ mutableListOf(
+ BalanceItem(
+ groupId = groupId,
+ type = pendingTransaction.type,
+ amount = pendingTransaction.amount,
+ rawCurrencyId = pendingTransaction.rawCurrencyId,
+ validatorAddress = pendingTransaction.validator?.address,
+ date = null,
+ pendingActions = emptyList(),
+ token = pendingTransaction.token,
+ isPending = true,
+ ),
)
balances.entries.find {
it.key.type == BalanceType.STAKED &&
it.key.amount == pendingTransaction.amount &&
- !it.value.isPending
+ !it.value.any { it.isPending }
}
?.key
?.let { balances.remove(it) }
@@ -85,7 +92,7 @@ class InvalidatePendingTransactionsUseCase(
}
}
- return balances.values.toList() to transactionsToRemove
+ return balances.values.flatten() to transactionsToRemove
}
private data class BalanceIdentity(
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt
index 920e6ce4cc..a57023584b 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/analytics/StakingAnalyticsEvents.kt
@@ -154,7 +154,7 @@ internal sealed class StakingAnalyticsEvents(
event = "Errors",
params = mapOf(
AnalyticsParam.TOKEN_PARAM to token,
- AnalyticsParam.ERROR_DESCRIPTION to errorType,
+ "ErrorType" to errorType,
),
)
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
index 0571fbf65e..6087adb8c2 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
@@ -236,7 +236,9 @@ internal class SetInitialDataStateTransformer(
}
private fun getAprRange(validators: List): TextReference {
- val aprValues = validators.mapNotNull { it.apr }
+ val aprValues = validators
+ .filter { it.preferred }
+ .mapNotNull { it.apr }
val minApr = aprValues.min()
val maxApr = aprValues.max()
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt
index b5631913ad..47745c4c89 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/approval/ShowApprovalBottomSheetTransformer.kt
@@ -52,7 +52,7 @@ internal class ShowApprovalBottomSheetTransformer(
data = GiveTxPermissionState.ReadyForRequest(
currency = cryptoCurrency.symbol,
amount = amountState.amountTextField.value,
- approveType = ApproveType.LIMITED,
+ approveType = ApproveType.UNLIMITED,
walletAddress = walletAddress,
spenderAddress = validatorAddress,
fee = resourceReference(
diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt
index 82d07f7000..46e771d72d 100644
--- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt
+++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/Wallet2CobrandImage.kt
@@ -37,6 +37,12 @@ internal enum class Wallet2CobrandImage(
batchIds = setOf("AF09"),
),
+ BitcoinGold(
+ cards2ResId = R.drawable.ill_bitcoingold_card2_120_106,
+ cards3ResId = R.drawable.ill_bitcoingold_card3_120_106,
+ batchIds = setOf("AF71"),
+ ),
+
BitcoinPizzaDay(
cards2ResId = R.drawable.ill_pizza_day_card2_120_106,
cards3ResId = R.drawable.ill_pizza_day_card3_120_106,
@@ -91,6 +97,12 @@ internal enum class Wallet2CobrandImage(
batchIds = setOf("AF31"),
),
+ Kaspa3(
+ cards2ResId = R.drawable.ill_kaspa3_card2_120_106,
+ cards3ResId = R.drawable.ill_kaspa3_card3_120_106,
+ batchIds = setOf("AF73"),
+ ),
+
KishuInu(
cards2ResId = R.drawable.ill_kishu_inu_card2_120_106,
cards3ResId = R.drawable.ill_kishu_inu_card3_120_106,
diff --git a/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp
new file mode 100644
index 0000000000..514ee528e9
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card2_120_106.webp differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card3_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card3_120_106.webp
new file mode 100644
index 0000000000..e24eb358d1
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_bitcoingold_card3_120_106.webp differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png b/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png
deleted file mode 100644
index 3f71b06f0e..0000000000
Binary files a/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.png and /dev/null differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp
new file mode 100644
index 0000000000..c937ff1dfa
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_card2_with_ring_120_106.webp differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.png b/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.png
deleted file mode 100644
index adee5dfbc2..0000000000
Binary files a/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.png and /dev/null differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.webp
new file mode 100644
index 0000000000..b4618c08b8
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_card_with_ring_120_106.webp differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card2_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card2_120_106.webp
new file mode 100644
index 0000000000..1eb50c47e7
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card2_120_106.webp differ
diff --git a/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card3_120_106.webp b/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card3_120_106.webp
new file mode 100644
index 0000000000..3cbda287b1
Binary files /dev/null and b/features/wallet/impl/src/main/res/drawable/ill_kaspa3_card3_120_106.webp differ
diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml
index fffbaabb5d..a939b22dfe 100644
--- a/gradle/dependencies.toml
+++ b/gradle/dependencies.toml
@@ -89,7 +89,7 @@ markdownComposeView = "0.5.4"
# endregion Other libraries
# region Tangem
-tangemBlockchainSdk = "release-app_5.17-827"
+tangemBlockchainSdk = "release-app_5.17-828"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "release-app_5.17-392"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^