Updated on 2026-08-14
This commit is contained in:
commit
a9aead0411
24 changed files with 140 additions and 94 deletions
|
|
@ -660,7 +660,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction)
|
|||
// All cardIds may already be activated if the backup was skipped before.
|
||||
if (notActivatedCardIds.isEmpty()) {
|
||||
delay(1000)
|
||||
store.dispatch(BackupAction.BackupFinished(userWallet?.walletId))
|
||||
store.dispatchWithMain(BackupAction.BackupFinished(userWallet?.walletId))
|
||||
return@launch
|
||||
}
|
||||
|
||||
|
|
@ -669,7 +669,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction)
|
|||
store.state.globalState.onboardingState.onboardingManager?.finishActivation(notActivatedCardIds)
|
||||
handleFinishBackup(requireNotNull(scanResponse))
|
||||
delay(1000)
|
||||
store.dispatch(BackupAction.BackupFinished(userWalletId = userWallet?.walletId))
|
||||
store.dispatchWithMain(BackupAction.BackupFinished(userWalletId = userWallet?.walletId))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.transition.TransitionManager
|
||||
import by.kirich1409.viewbindingdelegate.viewBinding
|
||||
|
|
@ -574,22 +575,28 @@ class OnboardingWalletFragment :
|
|||
}
|
||||
|
||||
animator.showSuccess {
|
||||
flCardsContainer.hide()
|
||||
imvCardBackground.hide()
|
||||
showConfetti(true)
|
||||
imvSuccess.alpha = 0f
|
||||
imvSuccess.show()
|
||||
imvSuccess.animate()?.alpha(1f)?.duration = 400
|
||||
if (lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) {
|
||||
flCardsContainer.hide()
|
||||
imvCardBackground.hide()
|
||||
showConfetti(true)
|
||||
imvSuccess.alpha = 0f
|
||||
imvSuccess.show()
|
||||
imvSuccess.animate()?.alpha(1f)?.duration = 400
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun showConfetti(show: Boolean) = with(binding.vConfetti) {
|
||||
lavConfetti.show(show)
|
||||
internal fun showConfetti(show: Boolean) {
|
||||
if (lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) {
|
||||
with(binding.vConfetti) {
|
||||
lavConfetti.show(show)
|
||||
|
||||
if (show) {
|
||||
lavConfetti.playAnimation()
|
||||
} else {
|
||||
lavConfetti.cancelAnimation()
|
||||
if (show) {
|
||||
lavConfetti.playAnimation()
|
||||
} else {
|
||||
lavConfetti.cancelAnimation()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@
|
|||
android:id="@+id/tv_body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="64dp"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="64dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:textColor="@color/text_secondary"
|
||||
android:textAlignment="center"
|
||||
tools:text="Body"
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ private fun ApprovalBottomSheetInfo(data: GiveTxPermissionState.ReadyForRequest)
|
|||
}
|
||||
SpacerH16()
|
||||
FooterContainer(
|
||||
footer = stringResource(id = R.string.give_permission_fee_footer),
|
||||
footer = data.footerText.resolveReference(),
|
||||
modifier = Modifier.padding(horizontal = TangemTheme.dimens.spacing16),
|
||||
) {
|
||||
FeeItem(fee = data.fee)
|
||||
|
|
@ -321,6 +321,7 @@ private val previewData = GiveTxPermissionBottomSheetConfig(
|
|||
onChangeApproveType = { ApproveType.LIMITED },
|
||||
subtitle = resourceReference(R.string.give_permission_staking_subtitle, wrappedList("1")),
|
||||
dialogText = resourceReference(R.string.give_permission_staking_footer),
|
||||
footerText = resourceReference(R.string.swap_give_permission_fee_footer),
|
||||
),
|
||||
onCancel = {},
|
||||
)
|
||||
|
|
@ -15,6 +15,7 @@ sealed class GiveTxPermissionState {
|
|||
data class ReadyForRequest(
|
||||
val subtitle: TextReference,
|
||||
val dialogText: TextReference,
|
||||
val footerText: TextReference,
|
||||
val currency: String,
|
||||
val amount: String,
|
||||
val walletAddress: String,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<string name="app_settings_enable_biometrics_description">Gehe zu den Einstellungen, um die biometrische Authentifizierung in der Tangem-App zu aktivieren</string>
|
||||
<string name="app_settings_enable_biometrics_title">Biometrische Authentifizierung aktivieren</string>
|
||||
<string name="app_settings_off_saved_access_code_alert_message">Dadurch werden alle gespeicherten Zugangscodes für die Wallet gelöscht. Jede weitere Operation mit der Wallet erfordert die Übermittlung des Zugangscodes.</string>
|
||||
<string name="app_settings_off_saved_wallet_alert_message">Durch das Entfernen der gespeicherten Karte oder Ring werden alle gespeicherten Wallets und deren Zugangscodes aus der App gelöscht.</string>
|
||||
<string name="app_settings_off_saved_wallet_alert_message">Durch das Entfernen der gespeicherten Geräte werden alle gespeicherten Wallets und deren Zugangscodes aus der App gelöscht.</string>
|
||||
<string name="app_settings_saved_access_codes">Zugangscode speichern</string>
|
||||
<string name="app_settings_saved_access_codes_footer">Bei Interaktionen mit deiner Karte oder Ring wird anstelle des Zugangscodes eine biometrische Authentifizierung abgefragt.</string>
|
||||
<string name="app_settings_saved_wallet">Behalte die Wallet in der App</string>
|
||||
|
|
@ -41,8 +41,8 @@
|
|||
<string name="button_start_backup_process">Backup-Prozess starten</string>
|
||||
<string name="buy_token_description">Verwende eine Bankkarte oder eine andere Zahlungsmethode</string>
|
||||
<plurals name="card_label_card_count">
|
||||
<item quantity="one">%d Karte oder Ring</item>
|
||||
<item quantity="other">%d Karten oder Ringe</item>
|
||||
<item quantity="one">%d Gerät</item>
|
||||
<item quantity="other">%d Geräte</item>
|
||||
</plurals>
|
||||
<string name="card_settings_access_code_recovery_disabled_description">Deaktiviere diese Option, wenn du nicht möchtest, dass diese Karte oder Ring zum Zurücksetzen von Zugangscodes auf anderen Karten oder Ringe in dieser Wallets verwendet wird. Bitte beachte, dass du dann auch den Zugangscode auf dieser Karte oder Ring nicht zurücksetzen kannst.</string>
|
||||
<string name="card_settings_access_code_recovery_enabled_description">Ermöglicht die Verwendung dieser Karte oder Ring zum Zurücksetzen des Zugangscodes auf anderen Karten oder Ringe in dieser Brieftasche</string>
|
||||
|
|
@ -51,15 +51,15 @@
|
|||
<string name="card_settings_action_sheet_title">Möchtest du das wirklich tun?</string>
|
||||
<string name="card_settings_change_access_code">Zugangscode ändern</string>
|
||||
<string name="card_settings_change_access_code_footer">Der Zugangscode wird nur auf dieser Karte oder Ring geändert</string>
|
||||
<string name="card_settings_completed_reset_alert_message">Alle Karten oder Ringe der ausgewählten Wallet wurden auf die Werkseinstellungen zurückgesetzt. Du kannst nun eine neue Wallet aufsetzen.</string>
|
||||
<string name="card_settings_completed_reset_alert_message">Alle Tangem Geräte der ausgewählten Wallet wurden auf die Werkseinstellungen zurückgesetzt. Du kannst nun eine neue Wallet aufsetzen.</string>
|
||||
<string name="card_settings_completed_reset_alert_title">Komplett zurücksetzen</string>
|
||||
<string name="card_settings_continue_reset_alert_message">Möchtest du die nächste Karte oder Ring in dieser Wallet zurücksetzen?</string>
|
||||
<string name="card_settings_continue_reset_alert_message">Möchtest du die nächsten geräte in dieser Wallet zurücksetzen?</string>
|
||||
<string name="card_settings_continue_reset_alert_title">Karte oder Ring zurücksetzen</string>
|
||||
<string name="card_settings_interrupted_reset_alert_message">Wir empfehlen dir, den Zurücksetzungsprozess für alle Karten oder Ringe in dieser Wallet abzuschließen</string>
|
||||
<string name="card_settings_interrupted_reset_alert_title">Du hast nicht alle deine Karten oder Ringe zurückgesetzt</string>
|
||||
<string name="card_settings_interrupted_reset_alert_message">Wir empfehlen dir, den Zurücksetzungsprozess für aller Geräte in dieser Wallet abzuschließen</string>
|
||||
<string name="card_settings_interrupted_reset_alert_title">Du hast nicht alle deine Geräte zurückgesetzt</string>
|
||||
<string name="card_settings_reset_card_to_factory">Auf Werkseinstellungen zurücksetzen</string>
|
||||
<string name="card_settings_security_mode">Sicherheitsmodus</string>
|
||||
<string name="card_settings_title">Karten oder Ring-Einstellungen</string>
|
||||
<string name="card_settings_title">Geräteeinstellungen</string>
|
||||
<string name="cardano_coin_will_be_send_with_token_description">Zusätzlich zu den Netzwerkgebühren erhebt das Cardano-Netzwerk %1$s ADA bei Transaktionen mit dem Token %2$s </string>
|
||||
<string name="cardano_coin_will_be_send_with_token_title">Cardano-Transaktionsanforderungen</string>
|
||||
<string name="cardano_insufficient_balance_to_send_token_description">Um eine %1$s Transaktion durchzuführen, musst du einen gewissen ADA-Betrag einzahlen, um die Netzwerkgebühr und den ADA-Mindestwert zu decken (5 ADA werden empfohlen).</string>
|
||||
|
|
@ -219,7 +219,7 @@
|
|||
<string name="details_referral_title">Empfehlungsprogramm</string>
|
||||
<string name="details_row_description_flip_to_hide">Flippe den Bildschirm deines Geräts nach unten, um Salden schnell ein- und auszublenden</string>
|
||||
<string name="details_row_subtitle_signed_hashes_format">%s Hasch</string>
|
||||
<string name="details_row_title_cid">Karten- oder Ring-ID</string>
|
||||
<string name="details_row_title_cid">Geräte-ID</string>
|
||||
<string name="details_row_title_contact_to_support">Kontakt zum Support</string>
|
||||
<string name="details_row_title_create_backup">Weitere Karten oder Ringe verknüpfen</string>
|
||||
<string name="details_row_title_currency">App Währung</string>
|
||||
|
|
@ -298,17 +298,16 @@
|
|||
<string name="feedback_subject_tx_failed">Eine Transaktion kann nicht gesendet werden</string>
|
||||
<string name="feedback_token_description_error">Fehler in der Coinbeschreibung</string>
|
||||
<string name="give_permission_current_transaction">Nur diese</string>
|
||||
<string name="give_permission_fee_footer">Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Sie die Verwendung Ihres Tokens für den Swap genehmigen.</string>
|
||||
<string name="give_permission_policy_type_footer">Gib das Genehmigungslimit für das ausgewählte Token an</string>
|
||||
<string name="give_permission_rows_amount">Betrag %s</string>
|
||||
<string name="give_permission_staking_footer">Die Genehmigungsfunktion ist erforderlich, um einer anderen Adresse die Berechtigung zur Verwendung einer bestimmten Menge Ihrer Token zu erteilen. Standardmäßig können Smart Contracts nicht auf deine Token zugreifen, es sei denn, du stimmen zu. Indem du deine Token \"freischaltest\", autorisierst du den StakeKit Smart Contract, sie zu verwenden. Die Miner des Netzwerks erhalten eine Gasgebühr (von dir bezahlt), um diese Aktion in der Blockchain aufzuzeichnen. Du kannst deine Token einsetzen, nachdem du die Genehmigung erteilt hast.</string>
|
||||
<string name="give_permission_staking_subtitle">Um fortzufahren, musst du StakeKit Smart Contract erlauben, deine %s zu verwenden</string>
|
||||
<string name="give_permission_staking_subtitle">Um fortzufahren, musst du Polygon Smart Contract erlauben, deine %s zu verwenden</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">Um fortzufahren, erteile %1s Smart Contracts die Berechtigung, dein zu %2s verwenden.</string>
|
||||
<string name="give_permission_title">Erlaubnis erteilen</string>
|
||||
<string name="give_permission_unlimited">Unbegrenzt</string>
|
||||
<string name="home_button_order">Karte oder Ring bestellen</string>
|
||||
<string name="home_button_scan">Karte oder Ring scannen</string>
|
||||
<string name="information_generated_with_ai">Diese Informationen wurden mithilfe von KI generiert.\n Tippe hier, wenn Du Fehler finden.</string>
|
||||
<string name="information_generated_with_ai">Diese Informationen wurden mithilfe von KI generiert.\nTippe hier, wenn Du Fehler finden.</string>
|
||||
<string name="initial_message_change_access_code_body">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.</string>
|
||||
<string name="initial_message_change_passcode_body">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.</string>
|
||||
<string name="initial_message_create_wallet_body">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.</string>
|
||||
|
|
@ -455,11 +454,11 @@
|
|||
<string name="markets_tooltip_message">Rufe dies auf oder tippe auf die Suchleiste, um Token direkt vom Markt hinzuzufügen</string>
|
||||
<string name="markets_tooltip_title">Token hinzufügen</string>
|
||||
<string name="nfc_error_unavailable">NFC ist auf deinem Gerät nicht verfügbar</string>
|
||||
<string name="onboarding_access_code_feature_1_description">Du musst einen einzigen Zugangscode einrichten, um alle deine Karten oder Ringe zu schützen</string>
|
||||
<string name="onboarding_access_code_feature_1_description">Du musst einen einzigen Zugangscode einrichten, um alle deine Geräte zu schützen</string>
|
||||
<string name="onboarding_access_code_feature_1_title">Schützen</string>
|
||||
<string name="onboarding_access_code_feature_2_description">Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten</string>
|
||||
<string name="onboarding_access_code_feature_2_title">Personalisieren</string>
|
||||
<string name="onboarding_access_code_feature_3_description">Stelle den Zugangscode mit einer verknüpften Karte oder einem Ring wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf.</string>
|
||||
<string name="onboarding_access_code_feature_3_description">Stelle den Zugangscode mit einem verknüpften Gerät wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf.</string>
|
||||
<string name="onboarding_access_code_feature_3_title">Wiederherstellen</string>
|
||||
<string name="onboarding_access_code_hint">Wähle ein beliebiges Wort, eine Phrase oder eine Zahl als Zugangscode</string>
|
||||
<string name="onboarding_access_code_intro_title">Zugangscode erstellen</string>
|
||||
|
|
@ -525,16 +524,16 @@
|
|||
<string name="onboarding_subtitle_scan_primary_card_format">Bereite die primäre Karte oder Ring mit der Nummer %s vor.</string>
|
||||
<string name="onboarding_subtitle_scan_ring">Bereite den Ring vor und drücke unten die Scan-Taste</string>
|
||||
<string name="onboarding_subtitle_success_tangem_wallet_onboarding">Deine Tangem-Karte oder Ring ist konfiguriert und einsatzbereit.</string>
|
||||
<string name="onboarding_subtitle_two_backup_cards">Maximale Anzahl an Karten oder Ringe hinzugefügt. Schließe den Sicherungsvorgang ab.</string>
|
||||
<string name="onboarding_subtitle_two_backup_cards">Maximale Anzahl an Geräten hinzugefügt. Schließe den Sicherungsvorgang ab.</string>
|
||||
<string name="onboarding_title">Karte oder Ring aktivieren</string>
|
||||
<string name="onboarding_title_backup_card">Sicherungs-Karte oder Ring</string>
|
||||
<string name="onboarding_title_backup_card_format">Sicherungskarte oder Ring Nr. %d</string>
|
||||
<string name="onboarding_title_backup_ring">Sicherungs-Ring</string>
|
||||
<string name="onboarding_title_no_backup_cards">Keine Sicherungskarten oder Sicherungsring</string>
|
||||
<string name="onboarding_title_no_backup_cards">Keine Sicherungsgeräte</string>
|
||||
<string name="onboarding_title_notifications">Benachrichtigungen</string>
|
||||
<string name="onboarding_title_one_backup_card">Eine Backup-Karte oder Ring hinzugefügt</string>
|
||||
<string name="onboarding_title_one_backup_card">Eine Backupgerät hinzugefügt</string>
|
||||
<string name="onboarding_title_scan_origin_card">Bereite deine Karte oder Ring vor</string>
|
||||
<string name="onboarding_title_two_backup_cards">Zwei Backup-Karten oder Ring hinzugefügt</string>
|
||||
<string name="onboarding_title_two_backup_cards">Zweis Backupgerät hinzugefügt</string>
|
||||
<string name="onboarding_top_up_body">Um zu beginnen, lade einfach die wallet mit einem beliebigen Betrag auf</string>
|
||||
<string name="onboarding_top_up_body_no_account_error">Um zu beginnen, lade die Wallet einfach mit mehr als %1$s %2$s auf.</string>
|
||||
<string name="onboarding_top_up_button_but_crypto">Krypto kaufen</string>
|
||||
|
|
@ -609,7 +608,7 @@
|
|||
<string name="save_user_wallet_agreement_header_biometrics">Möchtest du Biometrie nutzen?</string>
|
||||
<string name="save_user_wallet_agreement_notice">Beachte, dass für Transaktionen mit deinem Guthaben weiterhin deine Karte oder Ring erforderlich ist</string>
|
||||
<string name="scan_card_settings_button">Karte oder Ring scannen</string>
|
||||
<string name="scan_card_settings_message">Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Karten oder Ringe.</string>
|
||||
<string name="scan_card_settings_message">Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Geräte.</string>
|
||||
<string name="scan_card_settings_title">Halte deine Karte oder Ring bereit!</string>
|
||||
<string name="send_additional_field_already_included">Bereits in der eingegebenen Adresse enthalten</string>
|
||||
<string name="send_alert_fee_too_high_text">Der Provisionsbetrag ist %s mal der empfohlene Betrag. Stelle sicher, dass die benutzerdefinierten Einstellungen korrekt sind.</string>
|
||||
|
|
@ -794,6 +793,7 @@
|
|||
<string name="story_meet_title">Lerne Tangem kennen</string>
|
||||
<string name="story_web3_description">Tausche, kaufen Sie NFTs, vergebe Kredite und tätige Einlagen bei mehr als 100 verschiedenen dezentralen Diensten</string>
|
||||
<string name="story_web3_title">Web 3.0-kompatibel</string>
|
||||
<string name="swap_give_permission_fee_footer">Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Sie die Verwendung Ihres Tokens für den Swap genehmigen.</string>
|
||||
<string name="swap_promo_text">Tausche mehr Token zu besseren Kursen direkt in deiner Brieftasche.</string>
|
||||
<string name="swap_promo_title">Neuer Swap-Anbieter verfügbar!</string>
|
||||
<string name="swapping_alert_cex_description">Der Betrag umfasst:\n- Gebühr des Dienstanbieters\n- Netzgebühr für die Rücksendung von %s von der Vermittlungsstelle an die Adresse des Nutzers.</string>
|
||||
|
|
@ -880,6 +880,7 @@
|
|||
<string name="wallet_connect_create_tx_message">Antrag auf Erstellung einer Transaktion für %1$s\n%2$s\n\nBetrag: %3$s\nGebühr: %4$s\nGesamt: %5$s\nSaldo: %6$s</string>
|
||||
<string name="wallet_connect_create_tx_not_enough_funds">Die Transaktion kann nicht gesendet werden. Nicht genügend Guthaben.</string>
|
||||
<string name="wallet_connect_error_failed_to_connect">WalletConnect Sitzung konnte nicht aufgebaut werden. Bitte versuche es später noch einmal.</string>
|
||||
<string name="wallet_connect_error_missing_blockchains">Nicht alle Token wurden zu Deiner Liste hinzugefügt. Bitte füge sie zuerst hinzu und versuche es erneut. Fehlende Token: \n</string>
|
||||
<string name="wallet_connect_error_sing_failed">Nachricht konnte nicht signiert werden.\nBitte, versuche es erneut</string>
|
||||
<string name="wallet_connect_error_timeout">WalletConnect-Sitzung konnte nicht aufgebaut werden: Timeout-Fehler. Bitte versuche es später noch einmal.</string>
|
||||
<string name="wallet_connect_error_unsupported_blockchains">Sitzungsanfrage enthält nicht unterstützte Blockchains für WalletConnect-Verbindung. Nicht unterstützte Blockchains:\n</string>
|
||||
|
|
@ -987,7 +988,7 @@
|
|||
<string name="welcome_interrupted_backup_alert_message">Du hast eine unterbrochene Sicherung. Möchtest du diese fortsetzen?</string>
|
||||
<string name="welcome_interrupted_backup_alert_resume">Ja, fortsetzen</string>
|
||||
<string name="welcome_interrupted_backup_discard_discard">Verwerfen</string>
|
||||
<string name="welcome_interrupted_backup_discard_message">Wenn du das Backup jetzt abbrichst, musst du die Karten oder Ringe auf die Werkseinstellungen zurücksetzen, um von vorne zu beginnen</string>
|
||||
<string name="welcome_interrupted_backup_discard_message">Wenn du das Backup jetzt abbrichst, musst du die Geräte auf die Werkseinstellungen zurücksetzen, um von vorne zu beginnen</string>
|
||||
<string name="welcome_interrupted_backup_discard_resume">Sicherung fortsetzen</string>
|
||||
<string name="welcome_interrupted_backup_discard_title">Dies ist eine unwiderrufliche Aktion</string>
|
||||
<string name="welcome_unlock">Anmelden mit %s</string>
|
||||
|
|
|
|||
|
|
@ -83,10 +83,12 @@
|
|||
<string name="common_buy_currency">Ir a %1$s</string>
|
||||
<string name="common_camera_denied_alert_message">No ha otorgado acceso a su cámara, cambie su configuración de privacidad</string>
|
||||
<string name="common_cancel">Cancelar</string>
|
||||
<string name="common_change">Cambie</string>
|
||||
<string name="common_choose_action">Elige una acción</string>
|
||||
<string name="common_claim">Reclamar</string>
|
||||
<string name="common_claim_rewards">Reclame recompensas</string>
|
||||
<string name="common_close">Cerrar</string>
|
||||
<string name="common_confirm">confirme</string>
|
||||
<string name="common_continue">Continuar</string>
|
||||
<string name="common_copy">Copiar</string>
|
||||
<string name="common_copy_address">Copiar la dirección</string>
|
||||
|
|
@ -148,7 +150,7 @@
|
|||
<string name="common_rename">Renombrar</string>
|
||||
<string name="common_save">Guarde</string>
|
||||
<string name="common_save_changes">Guardar cambios</string>
|
||||
<string name="common_search">Buscar en el mercado</string>
|
||||
<string name="common_search">Buscar</string>
|
||||
<string name="common_search_tokens">Buscar tokens</string>
|
||||
<string name="common_second_no_param">sec</string>
|
||||
<string name="common_seed_phrase">Seed phrase</string>
|
||||
|
|
@ -298,11 +300,10 @@
|
|||
<string name="feedback_subject_tx_failed">No se puede completar una transacción</string>
|
||||
<string name="feedback_token_description_error">Error de descripción de moneda</string>
|
||||
<string name="give_permission_current_transaction">Esta transacción</string>
|
||||
<string name="give_permission_fee_footer">La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap.</string>
|
||||
<string name="give_permission_policy_type_footer">Especifique el límite aprobado para el token seleccionado.</string>
|
||||
<string name="give_permission_rows_amount">Montante %s</string>
|
||||
<string name="give_permission_staking_footer">La función Aprobar es necesaria para otorgar permiso a otra dirección para usar una cantidad específica de sus tokens. Por diseño, los contratos inteligentes no pueden acceder a sus tokens sin su aprobación. Al \"desbloquear\" sus tokens, autoriza al contrato inteligente de StakeKit a usarlos. Los mineros de la red reciben una tarifa de gas (pagada por usted) por registrar esta acción en la cadena de bloques. Puede apostar su token después de dar su aprobación.</string>
|
||||
<string name="give_permission_staking_subtitle">Para continuar, debe autorizar el contrato inteligente de StakeKit para utilizar su %s</string>
|
||||
<string name="give_permission_staking_subtitle">Para continuar, debe autorizar el contrato inteligente de Polygon para utilizar su %s</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">Para continuar, de autorización a los smart contracts de %1s para usar su %2s</string>
|
||||
<string name="give_permission_title">Dar autorización</string>
|
||||
<string name="give_permission_unlimited">Ilimitado</string>
|
||||
|
|
@ -550,6 +551,9 @@
|
|||
<string name="onboarding_wallet_info_title_fourth">Restaurar código de acceso</string>
|
||||
<string name="onboarding_wallet_info_title_second">Tarjetas idénticas</string>
|
||||
<string name="onboarding_wallet_info_title_third">Código de acceso</string>
|
||||
<string name="onramp_residency_bottomsheet_country_not_supported">Nuestros servicios no están disponibles en este país</string>
|
||||
<string name="onramp_residency_bottomsheet_country_subtitle">Cámbielo o confírmelo</string>
|
||||
<string name="onramp_residency_bottomsheet_title">Su residencia ha sido identificada como</string>
|
||||
<string name="organize_tokens_group">Agrupar</string>
|
||||
<string name="organize_tokens_sort_by_balance">Por saldo</string>
|
||||
<string name="organize_tokens_title">Organizar tokens</string>
|
||||
|
|
@ -710,13 +714,14 @@
|
|||
<string name="staking_details_reward_claiming">Reclamo de recompensa</string>
|
||||
<string name="staking_details_reward_claiming_info">Método para recibir recompensas por apuesta.\nPuede ser automático, donde la recompensa se acredita en tu dirección, o manual, donde debes retirar la recompensa creando una transacción para recibirla.</string>
|
||||
<string name="staking_details_reward_schedule">Calendario de recompensas</string>
|
||||
<string name="staking_details_reward_schedule_info">Este es un cronograma que determina cuándo los participantes reciben sus recompensas.</string>
|
||||
<string name="staking_details_reward_schedule_info">Este es un cronograma que determina cuándo los participantes reciben sus recompensas. La duración de la distribución de recompensas puede variar ligeramente según el validador y la carga de la red.</string>
|
||||
<string name="staking_details_rewards_to_claim">Recompensas para reclamar: %s</string>
|
||||
<string name="staking_details_title">Staking %s</string>
|
||||
<string name="staking_details_unbonding_period">Periodo de disociación</string>
|
||||
<string name="staking_details_unbonding_period_info">El período que debes esperar después de solicitar el retiro de fondos del staking antes de que los tokens estén disponibles.</string>
|
||||
<string name="staking_details_warmup_period">Periodo de calentamiento</string>
|
||||
<string name="staking_details_warmup_period_info">El tiempo permitido para activar la participación en la apuesta.</string>
|
||||
<string name="staking_give_permission_fee_footer">La red cobrará una tarifa de aprobación de token para verificar que usted está autorizando el uso de su token para el staking.</string>
|
||||
<string name="staking_legal">Al utilizar la función de staking, usted acepta %1$s y %2$s del proveedor</string>
|
||||
<string name="staking_locked">Bloqueado</string>
|
||||
<string name="staking_migrate">Migrar</string>
|
||||
|
|
@ -775,6 +780,7 @@
|
|||
<string name="staking_unbonding">Desunión</string>
|
||||
<string name="staking_unlocked_locked">Desbloquear</string>
|
||||
<string name="staking_unlocking">Desbloqueando</string>
|
||||
<string name="staking_unstake_amount_validation_error">El monto excede el saldo apostado</string>
|
||||
<string name="staking_unstaked">Sin staking</string>
|
||||
<string name="staking_unstaking">Unstaking</string>
|
||||
<string name="staking_unstaking_item_name">Detenando el staking de activos %s</string>
|
||||
|
|
@ -796,6 +802,7 @@
|
|||
<string name="story_meet_title">Descubra Tangem</string>
|
||||
<string name="story_web3_description">Intercambie, compre NFT, haga préstamos y depósitos en más de 100 servicios descentralizados diferentes</string>
|
||||
<string name="story_web3_title">Compatible con Web 3.0</string>
|
||||
<string name="swap_give_permission_fee_footer">La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap.</string>
|
||||
<string name="swap_promo_text">Intercambie más tokens a mejores tasas directamente en su billetera.</string>
|
||||
<string name="swap_promo_title">¡Nuevo proveedor de intercambio disponible!</string>
|
||||
<string name="swapping_alert_cex_description">El monto incluye:\n• Tarifas del proveedor de servicios\n• Tarifas de red por enviar %s desde el intercambio a la dirección del usuario.</string>
|
||||
|
|
|
|||
|
|
@ -83,10 +83,12 @@
|
|||
<string name="common_buy_currency">Aller à %1$s</string>
|
||||
<string name="common_camera_denied_alert_message">Vous n\'avez pas octroyé l\'accès à votre caméra, veuillez modifier vos paramètres de confidentialité</string>
|
||||
<string name="common_cancel">Annuler</string>
|
||||
<string name="common_change">Changez</string>
|
||||
<string name="common_choose_action">Choisissez une action</string>
|
||||
<string name="common_claim">Réclamer</string>
|
||||
<string name="common_claim_rewards">Réclamez des récompenses</string>
|
||||
<string name="common_close">Fermer</string>
|
||||
<string name="common_confirm">Confirmez</string>
|
||||
<string name="common_continue">Continuer</string>
|
||||
<string name="common_copy">Copier</string>
|
||||
<string name="common_copy_address">Copier l\'adresse</string>
|
||||
|
|
@ -298,11 +300,10 @@
|
|||
<string name="feedback_subject_tx_failed">Impossible d\'effectuer une transaction</string>
|
||||
<string name="feedback_token_description_error">Erreur de description de la pièce</string>
|
||||
<string name="give_permission_current_transaction">Cette transaction</string>
|
||||
<string name="give_permission_fee_footer">Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange.</string>
|
||||
<string name="give_permission_policy_type_footer">Spécifiez la limite approuvée pour le jeton sélectionné</string>
|
||||
<string name="give_permission_rows_amount">Montant %s</string>
|
||||
<string name="give_permission_staking_footer">La fonction Approuver est nécessaire pour accorder la permission à une autre adresse d\'utiliser une quantité spécifique de vos jetons. De par leur conception, les contrats intelligents ne peuvent pas accéder à vos jetons sans votre approbation. En « déverrouillant » vos jetons, vous autorisez le contrat intelligent StakeKit à les utiliser. Les mineurs du réseau reçoivent des frais de gaz (payés par vous) pour enregistrer cette action sur la blockchain. Vous pouvez staker votre jeton après avoir donné votre approbation.</string>
|
||||
<string name="give_permission_staking_subtitle">Pour continuer, vous devez autoriser le contrat intelligent StakeKit à utiliser votre %s</string>
|
||||
<string name="give_permission_staking_subtitle">Pour continuer, vous devez autoriser le contrat intelligent Polygon à utiliser votre %s</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">Pour continuer, accordez aux smart contracts de %1s l\'autorisation d\'utiliser votre %2s</string>
|
||||
<string name="give_permission_title">Donner l\'autorisation</string>
|
||||
<string name="give_permission_unlimited">Illimité</string>
|
||||
|
|
@ -550,6 +551,9 @@
|
|||
<string name="onboarding_wallet_info_title_fourth">Restauration du code d\'accès</string>
|
||||
<string name="onboarding_wallet_info_title_second">Cartes identiques</string>
|
||||
<string name="onboarding_wallet_info_title_third">Code d\'accès</string>
|
||||
<string name="onramp_residency_bottomsheet_country_not_supported">Nos services ne sont pas disponibles dans ce pays</string>
|
||||
<string name="onramp_residency_bottomsheet_country_subtitle">Modifiez-le ou confirmez-le</string>
|
||||
<string name="onramp_residency_bottomsheet_title">Votre résidence a été identifiée comme</string>
|
||||
<string name="organize_tokens_group">Grouper</string>
|
||||
<string name="organize_tokens_sort_by_balance">Par solde</string>
|
||||
<string name="organize_tokens_title">Organiser les jetons</string>
|
||||
|
|
@ -710,13 +714,14 @@
|
|||
<string name="staking_details_reward_claiming">Réclamation de récompense</string>
|
||||
<string name="staking_details_reward_claiming_info">Méthode de réception des récompenses de staking.\nElle peut être automatique, où la récompense est créditée sur votre adresse, ou manuelle, où vous devez retirer la récompense en créant une transaction pour la recevoir.</string>
|
||||
<string name="staking_details_reward_schedule">Calendrier de récompenses</string>
|
||||
<string name="staking_details_reward_schedule_info">Il s\'agit d\'un calendrier qui détermine le moment où les participants au staking reçoivent leurs récompenses.</string>
|
||||
<string name="staking_details_reward_schedule_info">Il s\'agit d\'un calendrier qui détermine le moment où les participants au staking reçoivent leurs récompenses. La durée de distribution des récompenses peut varier légèrement en fonction du validateur et de la charge du réseau.</string>
|
||||
<string name="staking_details_rewards_to_claim">Récompenses à réclamer: %s</string>
|
||||
<string name="staking_details_title">Staking %s</string>
|
||||
<string name="staking_details_unbonding_period">Période de dissociation</string>
|
||||
<string name="staking_details_unbonding_period_info">La période que vous devez attendre après avoir demandé le retrait des fonds du staking avant que les jetons ne soient disponibles.</string>
|
||||
<string name="staking_details_warmup_period">Période d\'échauffement</string>
|
||||
<string name="staking_details_warmup_period_info">Le temps imparti pour activer la participation au staking.</string>
|
||||
<string name="staking_give_permission_fee_footer">Le réseau facturera des frais d’approbation de jeton pour vérifier que vous autorisez l’utilisation de votre jeton pour le jalonnement.</string>
|
||||
<string name="staking_legal">En utilisant la fonctionnalité de staking, vous acceptez les %1$s et %2$s du fournisseur</string>
|
||||
<string name="staking_locked">Bloqué</string>
|
||||
<string name="staking_migrate">Migrer</string>
|
||||
|
|
@ -775,6 +780,7 @@
|
|||
<string name="staking_unbonding">Dissociation</string>
|
||||
<string name="staking_unlocked_locked">Débloquer</string>
|
||||
<string name="staking_unlocking">Déverrouillage</string>
|
||||
<string name="staking_unstake_amount_validation_error">Le montant dépasse le solde misé</string>
|
||||
<string name="staking_unstaked">Non-staké</string>
|
||||
<string name="staking_unstaking">Unstaking</string>
|
||||
<string name="staking_unstaking_item_name">En train de destaker les actifs %s</string>
|
||||
|
|
@ -796,6 +802,7 @@
|
|||
<string name="story_meet_title">Découvrez Tangem</string>
|
||||
<string name="story_web3_description">Échangez, achetez des NFT, faites des prêts et des dépôts dans plus de 100 services décentralisés différents</string>
|
||||
<string name="story_web3_title">Compatible avec Web 3.0</string>
|
||||
<string name="swap_give_permission_fee_footer">Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange.</string>
|
||||
<string name="swap_promo_text">Échangez plus de jetons à de meilleurs taux directement dans votre portefeuille.</string>
|
||||
<string name="swap_promo_title">Nouveau fournisseur d\'échange disponible !</string>
|
||||
<string name="swapping_alert_cex_description">Le montant comprend :\n• les frais du fournisseur de services\n• les frais de réseau pour l\'envoi de %s depuis l\'échange vers l\'adresse de l\'utilisateur.</string>
|
||||
|
|
|
|||
|
|
@ -297,11 +297,10 @@
|
|||
<string name="feedback_subject_tx_failed">取引を送信できません</string>
|
||||
<string name="feedback_token_description_error">コインの説明エラー</string>
|
||||
<string name="give_permission_current_transaction">取引</string>
|
||||
<string name="give_permission_fee_footer">ネットワークは、あなたがトークンのスワップを承認していることを確認するために、トークン承認手数料を請求します。</string>
|
||||
<string name="give_permission_policy_type_footer">選択したトークンの承認制限を指定します</string>
|
||||
<string name="give_permission_rows_amount">金額%s</string>
|
||||
<string name="give_permission_staking_footer">承認機能は、別のアドレスに特定の量のトークンを使用する許可を与えるために必要です。設計上スマートコントラクトは、承認しない限りトークンにアクセスできません。トークンを「ロック解除」すると、StakeKitスマート コントラクトがトークンを使用する権限が与えられます。ネットワークのマイナーは、このアクションをブロックチェーンに記録するためにガス料金(あなたが支払う)を受け取ります。承認後、トークンをステーキングできます。</string>
|
||||
<string name="give_permission_staking_subtitle">続行するには、StakeKitスマートコントラクトが%sを使用することを許可する必要があります</string>
|
||||
<string name="give_permission_staking_subtitle">続行するには、Polygonスマートコントラクトが%sを使用することを許可する必要があります</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">続行するには、%1sスマートコントラクトに%2sを使用する権限を付与してください</string>
|
||||
<string name="give_permission_title">許可を与える</string>
|
||||
<string name="give_permission_unlimited">無制限</string>
|
||||
|
|
@ -712,6 +711,7 @@
|
|||
<string name="staking_details_unbonding_period_info">ステーキングから資金の引き出しを要求した後、トークンが利用可能になるまでの待機期間。</string>
|
||||
<string name="staking_details_warmup_period">ウォームアップ期間</string>
|
||||
<string name="staking_details_warmup_period_info">ステーキングへの参加を有効にするために割り当てられた時間。</string>
|
||||
<string name="staking_give_permission_fee_footer">ネットワークは、ステーキングのためにトークンの使用を承認していることを確認するために、トークン承認手数料を請求します。</string>
|
||||
<string name="staking_legal">ステーキング機能を使用すると、プロバイダーの%1$sと%2$sに同意したことになります</string>
|
||||
<string name="staking_locked">ロック中</string>
|
||||
<string name="staking_migrate">移行</string>
|
||||
|
|
@ -770,6 +770,7 @@
|
|||
<string name="staking_unbonding">ステーキング解約中</string>
|
||||
<string name="staking_unlocked_locked">ロック解除</string>
|
||||
<string name="staking_unlocking">ロック解除中</string>
|
||||
<string name="staking_unstake_amount_validation_error">金額がステーキング残高を超えています</string>
|
||||
<string name="staking_unstaked">ステーキングされていない</string>
|
||||
<string name="staking_unstaking">ステーキング解除</string>
|
||||
<string name="staking_unstaking_item_name">ステーキング解除中の資産%s</string>
|
||||
|
|
@ -791,6 +792,7 @@
|
|||
<string name="story_meet_title">Tangemのご紹介</string>
|
||||
<string name="story_web3_description">100種類以上の分散型サービスで、NFTの交換・購入や、借入・預金を行うことができます。</string>
|
||||
<string name="story_web3_title">Web3.0対応</string>
|
||||
<string name="swap_give_permission_fee_footer">ネットワークは、あなたがトークンのスワップを承認していることを確認するために、トークン承認手数料を請求します。</string>
|
||||
<string name="swap_promo_text">より多くのトークンをより良いレートで、ウォレット内にて直接交換します。</string>
|
||||
<string name="swap_promo_title">新しいスワッププロバイダーが利用可能になりました!</string>
|
||||
<string name="swapping_alert_cex_description">この金額には以下が含まれます:\n- サービスプロバイダーの手数料\n- 取引所からユーザーのアドレスに%s を送り返すためのネットワーク手数料。</string>
|
||||
|
|
|
|||
|
|
@ -305,11 +305,10 @@
|
|||
<string name="feedback_subject_tx_failed">Не могу отправить транзакцию</string>
|
||||
<string name="feedback_token_description_error">Ошибка в описании монеты</string>
|
||||
<string name="give_permission_current_transaction">Транзакция</string>
|
||||
<string name="give_permission_fee_footer">Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для обмена.</string>
|
||||
<string name="give_permission_policy_type_footer">Укажите лимит доступа к выбранному токену</string>
|
||||
<string name="give_permission_rows_amount">Количество %s</string>
|
||||
<string name="give_permission_staking_footer">Функция подтверждения необходима для предоставления другому адресу разрешения на использование определенного количества ваших токенов.По замыслу смарт-контракты не могут получить доступ к вашим токенам, если вы не одобрите доступ со своей стороны. «Разблокируя» свои токены, вы даете смарт-контракту StakeKit разрешение использовать ваши активы. Майнеры сети получают компенсацию за газ (оплачиваемый вами) за запись этого действия в блокчейне. Как только разрешение будет предоставлено, вы сможете осуществить стейкинг токена.</string>
|
||||
<string name="give_permission_staking_subtitle">Чтобы продолжить, вам необходимо разрешить смарт контракту StakeKit использовать ваш %s</string>
|
||||
<string name="give_permission_staking_subtitle">Чтобы продолжить, вам необходимо разрешить смарт контракту Polygon использовать ваш %s</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">Чтобы продолжить, вам нужно разрешить смарт-контракту %1s использовать ваш %2s</string>
|
||||
<string name="give_permission_title">Дать разрешение</string>
|
||||
<string name="give_permission_unlimited">Безлимитно</string>
|
||||
|
|
@ -519,7 +518,7 @@
|
|||
</plurals>
|
||||
<string name="onboarding_seed_generate_title">Ваша seed-фраза</string>
|
||||
<plurals name="onboarding_seed_generate_words_count">
|
||||
<item quantity="one"></item>
|
||||
<item quantity="one">%d </item>
|
||||
<item quantity="few">%d слова</item>
|
||||
<item quantity="many">%d слов</item>
|
||||
<item quantity="other">%d слов</item>
|
||||
|
|
@ -730,13 +729,14 @@
|
|||
<string name="staking_details_reward_claiming">Способ вознаграждения</string>
|
||||
<string name="staking_details_reward_claiming_info">Способ получения вознаграждений за стейкинг. Оно может зачисляться автоматически на ваш адрес или вручную, когда вознаграждение нужно вывести, создав транзакцию на её получение.</string>
|
||||
<string name="staking_details_reward_schedule">Период вознагражения</string>
|
||||
<string name="staking_details_reward_schedule_info">Это период, определяющий, когда участники стейкинга получат свои вознаграждения.</string>
|
||||
<string name="staking_details_reward_schedule_info">Это график, который определяет, когда участники стейкинга получают свои награды. Время распределения наград может немного варьироваться в зависимости от валидатора и нагрузки сети.</string>
|
||||
<string name="staking_details_rewards_to_claim">Вознаграждение для получения: %s</string>
|
||||
<string name="staking_details_title">Стейкинг %s</string>
|
||||
<string name="staking_details_unbonding_period">Период отзыва</string>
|
||||
<string name="staking_details_unbonding_period_info">Период, который необходимо подождать после запроса на вывод средств из стейкинга, прежде чем токены станут доступны.</string>
|
||||
<string name="staking_details_warmup_period">Период прогрева</string>
|
||||
<string name="staking_details_warmup_period_info">Время, необходимое для начала процесса стейкинга и активации процесса начисления наград</string>
|
||||
<string name="staking_give_permission_fee_footer">Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для стейкинга.</string>
|
||||
<string name="staking_legal">Пользуясь стейкинг сервисом, вы соглашаетесь с %1$s и %2$s</string>
|
||||
<string name="staking_locked">Заблокировано</string>
|
||||
<string name="staking_migrate">Переместить</string>
|
||||
|
|
@ -794,6 +794,7 @@
|
|||
<string name="staking_unbonding">Отзыв</string>
|
||||
<string name="staking_unlocked_locked">Разблокировать</string>
|
||||
<string name="staking_unlocking">Разблокировка</string>
|
||||
<string name="staking_unstake_amount_validation_error">Сумма превышает застейканный баланс</string>
|
||||
<string name="staking_unstaked">Вывод из стейкинга</string>
|
||||
<string name="staking_unstaking">Завершение стейкинга</string>
|
||||
<string name="staking_unstaking_item_name">Завершение стейкинга %s</string>
|
||||
|
|
@ -815,6 +816,7 @@
|
|||
<string name="story_meet_title">Встречайте Tangem</string>
|
||||
<string name="story_web3_description">Обменивайте, покупайте NFT, получайте займы и делайте вклады в более чем 100 различных децентрализованных сервисах</string>
|
||||
<string name="story_web3_title">Поддержка Web 3.0</string>
|
||||
<string name="swap_give_permission_fee_footer">Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для обмена.</string>
|
||||
<string name="swap_promo_text">Обменивайте больше токенов по лучшим курсам прямо в вашем кошельке.</string>
|
||||
<string name="swap_promo_title">Новый провайдер обмена!</string>
|
||||
<string name="swapping_alert_cex_description">В сумму включено: \n• комиссия провайдера сервиса\n• комиссия сети за отправку %s от биржи обратно на адрес пользователя.</string>
|
||||
|
|
|
|||
|
|
@ -85,10 +85,12 @@
|
|||
<string name="common_buy_currency">Перейдіть до %1$s</string>
|
||||
<string name="common_camera_denied_alert_message">Ви не надали доступ до камери, будь ласка, змініть налаштування конфіденційності</string>
|
||||
<string name="common_cancel">Скасувати</string>
|
||||
<string name="common_change">Змінити</string>
|
||||
<string name="common_choose_action">Виберіть дію</string>
|
||||
<string name="common_claim">Отримати</string>
|
||||
<string name="common_claim_rewards">Отримати винагороди</string>
|
||||
<string name="common_close">Закрити</string>
|
||||
<string name="common_confirm">Підтвердити</string>
|
||||
<string name="common_continue">Продовжити</string>
|
||||
<string name="common_copy">Копіювати</string>
|
||||
<string name="common_copy_address">Скопіювати адресу</string>
|
||||
|
|
@ -304,11 +306,10 @@
|
|||
<string name="feedback_subject_tx_failed">Не вдається відправити транзакцію</string>
|
||||
<string name="feedback_token_description_error">Помилка в описі монети</string>
|
||||
<string name="give_permission_current_transaction">Транзакція</string>
|
||||
<string name="give_permission_fee_footer">Мережа стягує комісію за схвалення токену за підтвердження, що саме ви дозволяєте використовувати ваш токен для обміну.</string>
|
||||
<string name="give_permission_policy_type_footer">Вкажіть ліміт доступу для обраного токена</string>
|
||||
<string name="give_permission_rows_amount">Кількість %s</string>
|
||||
<string name="give_permission_staking_footer">Функція підтвердження необхідна для надання дозволу іншій адресі на використання певної кількості ваших токенів. За задумом, смарт-контракти не можуть отримати доступ до ваших токенів без вашого схвалення. \"Розблоковуючи\" свої токени, ви дозволяєте смарт-контракту StakeKit використовувати їх. Майнери мережі отримують плату за газ (сплачену вами), щоб зафіксувати цю дію в блокчейні. Ви зможете застейкати свій токен після того, як дасте дозвіл.</string>
|
||||
<string name="give_permission_staking_subtitle">Щоб продовжити, вам потрібно дозволити смарт-контракту StakeKit використовувати ваш %s</string>
|
||||
<string name="give_permission_staking_subtitle">Щоб продовжити, вам потрібно дозволити смарт-контракту Polygon використовувати ваш %s</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">Щоб продовжити, вам потрібно дозволити смарт-контракту %1s використовувати ваш %2s</string>
|
||||
<string name="give_permission_title">Надати дозвіл</string>
|
||||
<string name="give_permission_unlimited">Необмежено</string>
|
||||
|
|
@ -344,7 +345,7 @@
|
|||
<string name="manage_tokens_list_header_title">Ринкова капіталізація</string>
|
||||
<string name="manage_tokens_network_selector_native_subtitle">Спочатку був створений блокчейн криптовалюти</string>
|
||||
<string name="manage_tokens_network_selector_native_title">Основна мережа</string>
|
||||
<string name="manage_tokens_network_selector_non_native_info">Використання неосновних мереж для токенів дозволяє забезпечити крос-блокчейн інтероперабельність, що дає змогу використовувати активи в різноманітних децентралізованих додатках та смарт-контрактах на різних платформах. Однак це часто вимагає наявності кастодіана або смарт-контракту для безпечного зберігання оригінального активу, що вводить централізацію та ризик контрагента.</string>
|
||||
<string name="manage_tokens_network_selector_non_native_info">Використання нерідних мереж для токенів забезпечує сумісність між блокчейнами, дозволяючи використовувати активи в різноманітних децентралізованих програмах і смарт-контрактах на різних платформах. Однак для цього часто використовується зберігач або смарт-контракт для надійного зберігання оригінального активу, вводячи централізацію та ризик контрагента.</string>
|
||||
<string name="manage_tokens_network_selector_non_native_subtitle">Не оригінальний або первинний блокчейн, на якому розміщено токен</string>
|
||||
<string name="manage_tokens_network_selector_non_native_title">Неосновні мережі</string>
|
||||
<string name="manage_tokens_network_selector_title">Оберіть мережі</string>
|
||||
|
|
@ -519,7 +520,7 @@
|
|||
</plurals>
|
||||
<string name="onboarding_seed_generate_title">Ваша seed-фраза</string>
|
||||
<plurals name="onboarding_seed_generate_words_count">
|
||||
<item quantity="one"></item>
|
||||
<item quantity="one">%d слово</item>
|
||||
<item quantity="few">%d слова</item>
|
||||
<item quantity="many">%d слів</item>
|
||||
<item quantity="other">%d слів</item>
|
||||
|
|
@ -566,6 +567,9 @@
|
|||
<string name="onboarding_wallet_info_title_fourth">Відновлення коду доступу</string>
|
||||
<string name="onboarding_wallet_info_title_second">Ідентичні картки</string>
|
||||
<string name="onboarding_wallet_info_title_third">Код доступу</string>
|
||||
<string name="onramp_residency_bottomsheet_country_not_supported">Наші сервіси недоступні в цій країні</string>
|
||||
<string name="onramp_residency_bottomsheet_country_subtitle">Змінити або підтвердити</string>
|
||||
<string name="onramp_residency_bottomsheet_title">Ваше місце проживання визначено як</string>
|
||||
<string name="organize_tokens_group">Групами</string>
|
||||
<string name="organize_tokens_sort_by_balance">За балансом</string>
|
||||
<string name="organize_tokens_title">Сортування токенів</string>
|
||||
|
|
@ -730,13 +734,14 @@
|
|||
<string name="staking_details_reward_claiming">Отримати винагороду</string>
|
||||
<string name="staking_details_reward_claiming_info">Метод отримання винагород за стейкінг.\nВін може зараховуватися автоматично на вашу адресу або вручну, коли винагороду треба вивести, створивши транзакцію на її отримання.</string>
|
||||
<string name="staking_details_reward_schedule">Розклад винагород</string>
|
||||
<string name="staking_details_reward_schedule_info">Це період, який визначає, коли учасники стейкінгу отримують свої винагороди.</string>
|
||||
<string name="staking_details_reward_schedule_info">Це графік, який визначає, коли учасники стейкінгу отримують свої винагороди. Час розподілу винагород може дещо відрізнятися залежно від валідатора та навантаження на мережу.</string>
|
||||
<string name="staking_details_rewards_to_claim">Нагороди для отримання: %s</string>
|
||||
<string name="staking_details_title">Стейкінг %s</string>
|
||||
<string name="staking_details_unbonding_period">Період розблокування</string>
|
||||
<string name="staking_details_unbonding_period_info">Період, який ви повинні чекати після запиту на виведення коштів зі стейкінгу, перш ніж токени стануть доступними.</string>
|
||||
<string name="staking_details_warmup_period">Період блокування</string>
|
||||
<string name="staking_details_warmup_period_info">Відведений час для активації участі в стейкінгу.</string>
|
||||
<string name="staking_give_permission_fee_footer">Комісія мережі за схвалення токену, щоб верифікувати, що саме ви даєте дозвіл на використання вашого токена для стейкінгу.</string>
|
||||
<string name="staking_legal">Використовуючи функцію стейкінгу, ви погоджуєтесь з %1$s та %2$s</string>
|
||||
<string name="staking_locked">Заблоковано</string>
|
||||
<string name="staking_migrate">Перемістити</string>
|
||||
|
|
@ -795,6 +800,7 @@
|
|||
<string name="staking_unbonding">Розблокування</string>
|
||||
<string name="staking_unlocked_locked">Розблокувати</string>
|
||||
<string name="staking_unlocking">Розблокування</string>
|
||||
<string name="staking_unstake_amount_validation_error">Сума перевищує баланс стейкінгу</string>
|
||||
<string name="staking_unstaked">Вивід зі стейкінгу</string>
|
||||
<string name="staking_unstaking">Зняти зі стейкінгу</string>
|
||||
<string name="staking_unstaking_item_name">Виведення зі стейкінгу %s</string>
|
||||
|
|
@ -816,6 +822,7 @@
|
|||
<string name="story_meet_title">Зустрічайте Tangem</string>
|
||||
<string name="story_web3_description">Обмінюйте, купуйте NFT, отримуйте позики та робіть депозити у понад 100 різних децентралізованих сервісах</string>
|
||||
<string name="story_web3_title">Web 3.0 сумісність</string>
|
||||
<string name="swap_give_permission_fee_footer">Мережа стягує комісію за схвалення токену за підтвердження, що саме ви дозволяєте використовувати ваш токен для обміну.</string>
|
||||
<string name="swap_promo_text">Обмінюйте більше токенів за вигіднішим курсом прямо у своєму гаманці.</string>
|
||||
<string name="swap_promo_title">З\'явився новий провайдер обмінів!</string>
|
||||
<string name="swapping_alert_cex_description">Сума включає: \n• комісію постачальника послуг\n• комісію мережі за відправлення %s з біржі назад на адресу користувача.</string>
|
||||
|
|
@ -902,6 +909,7 @@
|
|||
<string name="wallet_connect_create_tx_message">Запит на створення транзакції для %1$s\n%2$s\n\nСума: %3$s\nКомісія: %4$s\nВсього: %5$s\nБаланс: %6$s</string>
|
||||
<string name="wallet_connect_create_tx_not_enough_funds">Неможливо відправити транзакцію. Недостатньо коштів.</string>
|
||||
<string name="wallet_connect_error_failed_to_connect">Не вдалося встановити сеанс WalletConnect. Будь ласка, спробуйте пізніше.</string>
|
||||
<string name="wallet_connect_error_missing_blockchains">Не всі токени додано до вашого списку. Будь ласка, додайте їх спочатку і спробуйте ще раз. Відсутні токени:\n</string>
|
||||
<string name="wallet_connect_error_sing_failed">Не вдалося підписати повідомлення.\nБудь ласка, спробуйте ще раз</string>
|
||||
<string name="wallet_connect_error_timeout">Не вдалося створити сеанс WalletConnect за відведений час. Будь ласка, спробуйте пізніше.</string>
|
||||
<string name="wallet_connect_error_unsupported_blockchains">Запит на підключення сеансу WalletConnect містить непідтримувані блокчейни. Непідтримувані блокчейни:\n</string>
|
||||
|
|
|
|||
|
|
@ -300,11 +300,10 @@
|
|||
<string name="feedback_subject_tx_failed">Can\'t send a transaction</string>
|
||||
<string name="feedback_token_description_error">Coin description error</string>
|
||||
<string name="give_permission_current_transaction">Transaction</string>
|
||||
<string name="give_permission_fee_footer">The network will charge a token approval fee to verify that you are authorizing the use of your token for the swap.</string>
|
||||
<string name="give_permission_policy_type_footer">Specify the approve limit for the selected token</string>
|
||||
<string name="give_permission_rows_amount">Amount %s</string>
|
||||
<string name="give_permission_staking_footer">The Approve function is needed to grant permission to another address to use a specific amount of your tokens. By design, smart contracts can\'t access your tokens unless you approve. By \"unlocking\" your tokens, you authorize the StakeKit smart contract to use them. The network\'s miners receive a gas fee (paid by you) to record this action on the blockchain. You can stake your token after giving approval.</string>
|
||||
<string name="give_permission_staking_subtitle">To continue you need to allow StakeKit smart contract to use your %s</string>
|
||||
<string name="give_permission_staking_subtitle">To continue you need to allow Polygon smart contract to use your %s</string>
|
||||
<string name="give_permission_swap_subtitle" formatted="false">To continue, grant %1s smart contracts permission to use your %2s</string>
|
||||
<string name="give_permission_title">Give Permission</string>
|
||||
<string name="give_permission_unlimited">Unlimited</string>
|
||||
|
|
@ -507,7 +506,7 @@
|
|||
</plurals>
|
||||
<string name="onboarding_seed_generate_title">Your seed phrase</string>
|
||||
<plurals name="onboarding_seed_generate_words_count">
|
||||
<item quantity="one"></item>
|
||||
<item quantity="one">%d word</item>
|
||||
<item quantity="other">%d words</item>
|
||||
</plurals>
|
||||
<string name="onboarding_seed_import_message">To import your wallet, enter your seed phrase in the field below</string>
|
||||
|
|
@ -722,6 +721,7 @@
|
|||
<string name="staking_details_unbonding_period_info">The period you must wait after requesting to withdraw funds from staking before the tokens become available.</string>
|
||||
<string name="staking_details_warmup_period">Warmup period</string>
|
||||
<string name="staking_details_warmup_period_info">The allocated time for activating participation in staking.</string>
|
||||
<string name="staking_give_permission_fee_footer">The network will charge a token approval fee to verify that you are authorizing the use of your token for the staking.</string>
|
||||
<string name="staking_legal">By using staking functionality, you agree with provider’s %1$s and %2$s</string>
|
||||
<string name="staking_locked">Locked</string>
|
||||
<string name="staking_migrate">Migrate</string>
|
||||
|
|
@ -780,6 +780,7 @@
|
|||
<string name="staking_unbonding">Unbonding</string>
|
||||
<string name="staking_unlocked_locked">Unlock</string>
|
||||
<string name="staking_unlocking">Unlocking</string>
|
||||
<string name="staking_unstake_amount_validation_error">Amount exceeds staked balance</string>
|
||||
<string name="staking_unstaked">Unstaked</string>
|
||||
<string name="staking_unstaking">Unstaking</string>
|
||||
<string name="staking_unstaking_item_name">Unstaking assets %s</string>
|
||||
|
|
@ -801,6 +802,7 @@
|
|||
<string name="story_meet_title">Meet Tangem</string>
|
||||
<string name="story_web3_description">Exchange, buy NFT\'s, make loans and deposits in more than 100 different decentralized services</string>
|
||||
<string name="story_web3_title">Web 3.0 Compatible</string>
|
||||
<string name="swap_give_permission_fee_footer">The network will charge a token approval fee to verify that you are authorizing the use of your token for the swap.</string>
|
||||
<string name="swap_promo_text">Exchange more tokens at better rates directly in your wallet.</string>
|
||||
<string name="swap_promo_title">New Swap Provider Available!</string>
|
||||
<string name="swapping_alert_cex_description">The amount includes:\n• service provider\'s fee\n• network fee for sending %s from the exchange back to the user\'s address.</string>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ fun FiatIcon(
|
|||
size: Dp,
|
||||
isGrayscale: Boolean,
|
||||
modifier: Modifier = Modifier,
|
||||
@DrawableRes fallbackResId: Int = R.drawable.ic_shape_circle,
|
||||
@DrawableRes fallbackResId: Int = R.drawable.ic_shape_circle_40,
|
||||
) {
|
||||
val iconData: Any = if (url.isNullOrBlank()) fallbackResId else url
|
||||
val alpha = if (isGrayscale) GRAY_SCALE_ALPHA else 1f
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
|
||||
<size
|
||||
android:width="40dp"
|
||||
android:height="40dp" />
|
||||
|
||||
</shape>
|
||||
9
core/ui/src/main/res/drawable/ic_shape_circle_40.xml
Normal file
9
core/ui/src/main/res/drawable/ic_shape_circle_40.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="40dp"
|
||||
android:height="40dp"
|
||||
android:viewportWidth="40"
|
||||
android:viewportHeight="40">
|
||||
<path
|
||||
android:pathData="M20,20m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"
|
||||
android:fillColor="#D9D9D9"/>
|
||||
</vector>
|
||||
|
|
@ -16,12 +16,19 @@ class ValidateTokenFormUseCase(
|
|||
networkId: Network.ID,
|
||||
formValues: AddCustomTokenForm.Raw,
|
||||
): EitherNel<CustomTokenFormValidationException, AddCustomTokenForm.Validated> = either {
|
||||
if (formValues.name.isBlank() && formValues.symbol.isBlank() && formValues.decimals.isBlank()) {
|
||||
val contractAddress = withError({ nonEmptyListOf(it) }) {
|
||||
ensureIsContractAddressValid(formValues.contractAddress, networkId)
|
||||
}
|
||||
if (formValues.name.isBlank() &&
|
||||
formValues.symbol.isBlank() &&
|
||||
formValues.decimals.isBlank()
|
||||
) {
|
||||
if (formValues.contractAddress.isBlank()) {
|
||||
AddCustomTokenForm.Validated.Empty
|
||||
} else {
|
||||
val contractAddress = withError({ nonEmptyListOf(it) }) {
|
||||
ensureIsContractAddressValid(formValues.contractAddress, networkId)
|
||||
}
|
||||
|
||||
AddCustomTokenForm.Validated.ContractAddress(contractAddress)
|
||||
AddCustomTokenForm.Validated.ContractAddressOnly(contractAddress)
|
||||
}
|
||||
} else {
|
||||
zipOrAccumulate(
|
||||
{ ensureIsContractAddressValid(formValues.contractAddress, networkId) },
|
||||
|
|
@ -43,10 +50,6 @@ class ValidateTokenFormUseCase(
|
|||
contractAddress: String,
|
||||
networkId: Network.ID,
|
||||
): String {
|
||||
ensure(contractAddress.isNotBlank()) {
|
||||
CustomTokenFormValidationException.ContractAddress.Empty
|
||||
}
|
||||
|
||||
val isValid = catch({ repository.validateContractAddress(contractAddress, networkId) }) {
|
||||
raise(CustomTokenFormValidationException.DataError(it))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ sealed class AddCustomTokenForm {
|
|||
|
||||
sealed class Validated : AddCustomTokenForm() {
|
||||
|
||||
data class ContractAddress(
|
||||
data object Empty : Validated()
|
||||
|
||||
data class ContractAddressOnly(
|
||||
val contractAddress: String,
|
||||
) : Validated()
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ sealed class CustomTokenFormValidationException {
|
|||
|
||||
sealed class ContractAddress : CustomTokenFormValidationException() {
|
||||
|
||||
data object Empty : ContractAddress()
|
||||
|
||||
data object Invalid : ContractAddress()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,15 +61,9 @@ internal class CustomTokenFormModel @Inject constructor(
|
|||
|
||||
if (params.network.canHandleTokens) {
|
||||
observeTokenFormUpdates()
|
||||
} else {
|
||||
modelScope.launch {
|
||||
customCurrencyValidator.createCoin(
|
||||
userWalletId = params.userWalletId,
|
||||
networkId = params.network.id,
|
||||
derivationPath = getDerivationPath(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
createCoin()
|
||||
}
|
||||
|
||||
private fun getInitialState(): CustomTokenFormUM {
|
||||
|
|
@ -112,6 +106,7 @@ internal class CustomTokenFormModel @Inject constructor(
|
|||
}
|
||||
.distinctUntilChanged()
|
||||
.sample(periodMillis = 1_000)
|
||||
.drop(count = 1) // Skip initial state
|
||||
.onEach { formValues ->
|
||||
customCurrencyValidator.validateForm(
|
||||
userWalletId = params.userWalletId,
|
||||
|
|
@ -151,6 +146,14 @@ internal class CustomTokenFormModel @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
private fun createCoin() = modelScope.launch {
|
||||
customCurrencyValidator.createCoin(
|
||||
userWalletId = params.userWalletId,
|
||||
networkId = params.network.id,
|
||||
derivationPath = getDerivationPath(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun updateStateWithCurrency(
|
||||
currency: CryptoCurrency,
|
||||
fillForm: Boolean,
|
||||
|
|
|
|||
|
|
@ -75,9 +75,12 @@ internal class CustomCurrencyValidator @Inject constructor(
|
|||
is AddCustomTokenForm.Validated.All -> {
|
||||
findOrCreateCurrency(userWalletId, networkId, derivationPath, validatedForm)
|
||||
}
|
||||
is AddCustomTokenForm.Validated.ContractAddress -> {
|
||||
is AddCustomTokenForm.Validated.ContractAddressOnly -> {
|
||||
findToken(userWalletId, networkId, derivationPath, validatedForm)
|
||||
}
|
||||
is AddCustomTokenForm.Validated.Empty -> {
|
||||
createCoin(userWalletId, networkId, derivationPath)
|
||||
}
|
||||
}
|
||||
}.saveInAndJoin(validateFormJobHolder)
|
||||
}
|
||||
|
|
@ -132,7 +135,7 @@ internal class CustomCurrencyValidator @Inject constructor(
|
|||
userWalletId: UserWalletId,
|
||||
networkId: Network.ID,
|
||||
derivationPath: Network.DerivationPath,
|
||||
validatedForm: AddCustomTokenForm.Validated.ContractAddress,
|
||||
validatedForm: AddCustomTokenForm.Validated.ContractAddressOnly,
|
||||
) {
|
||||
updateStatus(Status.SearchingToken)
|
||||
|
||||
|
|
|
|||
|
|
@ -94,9 +94,6 @@ internal fun CustomTokenFormUM.updateWithContractAddressException(
|
|||
val updatedFields = fields.mutate {
|
||||
it[Field.CONTRACT_ADDRESS] = it.getValue(Field.CONTRACT_ADDRESS).copy(
|
||||
error = when (exception) {
|
||||
CustomTokenFormValidationException.ContractAddress.Empty -> {
|
||||
null // Should not display this error
|
||||
}
|
||||
CustomTokenFormValidationException.ContractAddress.Invalid -> {
|
||||
resourceReference(R.string.custom_token_creation_error_invalid_contract_address)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ internal class ShowApprovalBottomSheetTransformer(
|
|||
formatArgs = wrappedList(cryptoCurrency.symbol),
|
||||
),
|
||||
dialogText = resourceReference(R.string.give_permission_staking_footer),
|
||||
footerText = resourceReference(R.string.staking_give_permission_fee_footer),
|
||||
onChangeApproveType = prevState.clickIntents::onApproveTypeChange,
|
||||
),
|
||||
onCancel = onDismiss,
|
||||
|
|
|
|||
|
|
@ -1190,6 +1190,7 @@ internal class StateBuilder(
|
|||
formatArgs = wrappedList(providerName, permissionDataState.currency),
|
||||
),
|
||||
dialogText = resourceReference(R.string.swapping_approve_information_text),
|
||||
footerText = resourceReference(R.string.swap_give_permission_fee_footer),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ markdownComposeView = "0.5.4"
|
|||
# endregion Other libraries
|
||||
|
||||
# region Tangem
|
||||
tangemBlockchainSdk = "release-app_5.17-830"
|
||||
tangemBlockchainSdk = "release-app_5.17-831"
|
||||
#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 ^
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue