diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt index 2d1295d3b6..b733c77ec7 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt @@ -8,7 +8,7 @@ import com.reown.android.relay.ConnectionType import com.reown.walletkit.client.Wallet import com.reown.walletkit.client.WalletKit import com.tangem.core.analytics.api.AnalyticsEventHandler -import com.tangem.data.walletconnect.pair.unsupportedDApps +import com.tangem.data.walletconnect.pair.UnsupportedDApps import com.tangem.domain.walletconnect.WcPairService import com.tangem.domain.walletconnect.model.WcPairRequest import com.tangem.domain.walletconnect.model.legacy.Account @@ -216,7 +216,7 @@ internal class DefaultLegacyWalletConnectRepository( Timber.i("sessionProposal: $sessionProposal") this@DefaultLegacyWalletConnectRepository.sessionProposal = sessionProposal - if (sessionProposal.name in unsupportedDApps) { + if (sessionProposal.name in UnsupportedDApps.list) { Timber.i("Unsupported DApp") scope.launch { _events.emit( diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index f369cd7218..2ad0dfb2fe 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -1,5 +1,14 @@ + Ohne Zugangscode ist Deine Wallet nicht geschützt. + Trotzdem überspringen + Zugangscode nicht festgelegt + Zugangscode eingeben + Bestätige Deinen zuvor eingegebenen Code, um fortzufahren + Zugangscode erneut eingeben + Lege einen %s -stelligen Zugangscode fest, um Deine Wallet zu entsperren. + Zugangscode erstellen + Zugangscode Du kannst Deinen Token nicht finden? Gehe zum Bereich „Markt“ auf der Hauptseite und fügen diesen zum kaufen im Portfolio hinzu. Du kannst Deinen Token nicht finden? Gehe zum Bereich „Markt“ auf der Hauptseite und fügen diesen zum verkaufen im Portfolio hinzu. Verkaufen @@ -49,6 +58,19 @@ Systemstandard Thema App Einstellungen + Du hast Deine Wallet erfolgreich gesichert. + Diese Wörter können bei Verlust nicht wiederhergestellt werden. Bewahre diese an einem sicheren Ort auf. + Sicherung abgeschlossen + Deine geheime Wiederherstellungsphrase ist ein fester Satz von %s Zufällige Wörter, die für den Zugriff auf und die Wiederherstellung Deiner Wallet verwendet werden. + Diese Wörter können bei Verlust nicht wiederhergestellt werden. Bewahre diese an einem sicheren Ort auf. + Sicher aufbewahren + Bewahre diese %s Wörter an einem sicheren Ort auf , z. B. in einem Passwort-Manager, und teile diese niemals mit Dritten. + Keine Wiederherstellung möglich + Wiederherstellungsphrase + Gebe diese Wörter niemals weiter. Jeder, der sie erfährt, kann Deine gesamten Kryptowährungen stehlen. Tangem wird Dich niemals danach fragen. Die folgenden %s Wörter sind die Wiederherstellungsphrase Deiner Wallets. Mit dieser Phrase kannst Du Deine Wallet wiederherstellen, falls Du Dein Gerät verlierst. + Schreibe diese %s Wörter der Reihe nach auf und bewahre sie sicher und vertraulich auf + Die volle Verantwortung für die Sicherheit und Sicherung der Wallet und der Wiederherstellungsphrase liegt beim Benutzer, nicht bei Tangem. + Wiederherstellungsphrase Um deine Kontostände ein- oder auszublenden, flippe einfach das Display deines Geräts nach unten, oder schalte es in den Einstellungen aus. Nicht mehr anzeigen Verstanden @@ -103,6 +125,7 @@ Genehmigung Genehmigen Achtung + Sicherungskopie Bilanz: %s Saldo biometrische Authentifizierung @@ -119,10 +142,12 @@ Beanspruchen Stakingbelohnungen beanspruchen Schließen + Demnächst verfügbar Bestätigen Kontakt zum Tangem-Support Kontakt zum Visa-Support Weiter + Umwandeln Kopieren Adresse kopieren Erstellen @@ -154,6 +179,7 @@ Langsam Gebühren Beenden + Kostenlos Adressen synchronisieren Zum Anbieter gehen Zum Token @@ -206,6 +232,7 @@ Mehr anzeigen Signieren Signieren und senden + Überspringen Staken Staking Start @@ -226,6 +253,7 @@ Nicht erreichbar Staking beenden Aufgrund der Beschränkungen von %1$s können nur %2$d UTXOs in eine einzige Transaktion passen. Das bedeutet, dass du nur %3$s oder weniger senden kannst. Du musst den Betrag reduzieren. + Wert kopiert woche mit Ja @@ -308,7 +336,7 @@ KYC-Überprüfung durch den Anbieter erforderlich Gekauft Einkaufen - Einkaufen... + Warten auf Kauf... Transaktion abgebrochen Anzahlung bestätigt Warten auf Bestätigung @@ -386,6 +414,23 @@ Karte oder Ring scannen An %s Im %s Netzwerk + Jetzt sichern + Um die Einrichtung abzuschließen, sicher Deine Wallet und sicher den App-Zugriff mit einem Access Code. + Jetzt beenden + Wallet-Aktivierung abschließen + Stelle eine vorhandene Wallet wieder her, die in Deinem iCloud-Backup gespeichert ist + iCloud-Sicherung + Gehe zum Backup + Um Deine Wallet mit einem Zugangscode zu sichern, führe zuerst die Sicherung durch. + Sicherung zuerst beenden + Kein Backup + Physische Karten, die Deine Kryptowährung sicher offline speichern. + Wiederherstellungs-Phrase + Über eingehende Transaktionen benachrichtigt werden + Schlüssel werden in der App gespeichert + Bleibe über die neuesten Funktionen und Neuigkeiten auf dem Laufenden + Sicherung der Seed-Phrase + Mobile Wallet erstellen Diese Informationen wurden mithilfe von KI generiert.\nTippe 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. @@ -631,6 +676,7 @@ Schlüssel anonym generieren Deine Karte oder Ring ist aktiviert und einsatzbereit Erfolgreich! + Deine Wallet ist eingerichtet und einsatzbereit! In diesem Fall musst du ganz von vorne anfangen. Möchtest du den Aktivierungsprozess abbrechen? Erste Schritte @@ -797,7 +843,9 @@ Du hast eine Kommission angegeben, die unter dem empfohlenen Betrag liegt, was zu einer Verzögerung Ihrer Transaktion führen könnte. Weiter? Grund: %1$s\nCode: %2$s Die Transaktion ist nicht abgeschlossen + In ein anderes Token umwandeln Betrag + Wird an den Empfänger gesendet Du kannst deine Transaktionsgebühr festlegen, indem du den Wert im Feld Satoshi pro vByte anpasst. Die Gebühr, die für deine Transaktion erhoben wird. Du kannst einen eigenen Wert festlegen. Maximale Gebühr @@ -843,6 +891,7 @@ Die individuelle Gebühr ist hoch Aufgrund der Besonderheiten des Netzes %1$s ist die Gebühr für die Überweisung des gesamten Guthabens höher. Um die Kommission zu reduzieren, Kannst du %2$s verlassen. Die Gebühr ist höher + Das Empfängerkonto ist nicht aktiviert. Der Mindestbetrag der Übertragung muss gleich oder höher sein als der mietfreie Restbetrag: %1$s. Dein Kontostand darf nicht niedriger sein als die Miete. Bitte halte mindestens %1$s auf Deinem Konto oder ziehe den gesamten Betrag ab. Die enthaltene Kommission übersteigt den Überweisungsbetrag, was zu einem negativen Wert führt Ungültige Menge @@ -861,7 +910,7 @@ Jüngste Empfänger Keine gültige Adresse - Vergewisser dich, dass die empfangende Wallet-Adresse im %s Netzwerk ist, damit du deine Token nicht verlierst. + Stelle sicher, dass sich die empfangende Wallet-Adresse im ** %s -Netzwerk** befindet, um den Verlust Deiner Token zu vermeiden. senden an %s Stelle sicher, dass Du %s Netzwerkadresse hast, da Fehler zu verlorenen Übertragungen führen können Senden an @@ -889,8 +938,10 @@ Ungültiger Betrag Die Gebühr geht über die Bilanz hinaus Der Gesamtbetrag geht über die Bilanz hinaus + Tauschen und senden Sende uns ein Token, und wir konvertieren es unterwegs. Dein Empfänger erhält genau das, was er braucht – nahtlos. Wird an den Empfänger gesendet + Zu erhaltender Betrag Senden mit Swap Transaktion gesendet Bereite das Scannen der Karte oder Ring vor, die du einrichten möchtest. @@ -1046,6 +1097,7 @@ Unschlagbare Preise Problemlos und intuitiv, sodass Deine Token mit nur wenigen Handgriffen getauscht werden können Einfach bequem + Tausch über Anbieter 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. Der Betrag beinhaltet:\n• Honorar des Dienstleisters\n• Netzwerkgebühr für das Senden %1$s von der Börse zurück an die Adresse des Benutzers. \n\n Provider-Slippage kann bis zu %2$s Der Betrag enthält die Gebühren des Dienstleisters. @@ -1153,6 +1205,7 @@ Das wird nicht lange dauern. Wir richten gerade Dein Konto ein. Das wird nicht lange dauern. Wir schließen die Aktivierung ab. Alles wird vorbereitet! + PIN-Code erstellen PIN wurde nicht akzeptiert. Versuche es erneut oder verwende einen anderen Code. Ungültige PIN: Sequenzen oder Wiederholungen vermeiden Schon kann es losgehen! @@ -1201,6 +1254,29 @@ Mit dApps verbinden WalletConnect Das Herstellen der Verbindung kann einige Sekunden dauern + Von %s + Kaufe eine Tangem Wallet – physische Karten, die Deine Kryptowährungen sicher offline speichern. + Hardware-Wallet + Eine sichere Wallet wird in Sekundenschnelle auf Deinem Telefon erstellt. + Mobile Wallet + Was soll ich wählen? + Besitzt Du bereits eine Tangem Wallet? + Jetzt scannen + Wähle, wie Du Deine Wallet erstellen möchten + Möchtest Du eine Tangem-Wallet kaufen? + Jetzt kaufen + Eine vorhandene Wallet wiederherstellen, die Deinem Google Drive-Backup gespeichert ist + Importieren aus Google Drive + Vorhandenes Wallet hinzufügen + Physische Karten, die Deine Kryptowährung sicher offline speichern. + Scanne eine Tangem-Wallet + Deine Seed-Phrase, um Deine Wallet wiederherzustellen + Wallet importieren + Importieren einer Wiederherstellungsphrase + Du hast Deine Wallet erfolgreich gesichert. + Wallet importieren + Import abgeschlossen + Wallet importieren %s Marktpreis letzte 24h %s Netzwerk @@ -1209,6 +1285,8 @@ Jetzt mit 10 % Rabatt kaufen Greife auf 13.000+ Kryptowährungen zu. Kaufe, verkaufe, tausche und stake Sie mit einem einzigen Fingertipp.\nVerbinde bis zu drei Karten für ein Backup. Entdecke die Tangem Wallet + Geheimcode zum Schutz dieser Wallet. Wird für Anmeldung und Signaturen verwendet. + Zugangscode festlegen/ändern Bleib stets über eingehende Wallet-Transaktionen und Tangem-Updates auf dem Laufenden. Transaktionsbenachrichtigungen Wallet-Einstellungen @@ -1298,13 +1376,15 @@ Wischen Sie nach unten, um zu aktualisieren, oder versuchen Sie es später erneut. Einige Netzwerke sind nicht erreichbar Einige Token-Guthaben konnten nicht aktualisiert werden + Nicht genug %s. Lade Dein XLM-Konto auf, um dieses Token zu verknüpfen Dies ist eine Testnet-Karte. Sie kann keine Transaktionen verarbeiten und sollte nur zu Test- und Entwicklungszwecken verwendet werden. Nur für Testzwecke Der Kontostand ist möglicherweise veraltet. Aktualisiere bittre die Seite. - Nicht genug %1$s. Lade Dein XLM-Konto auf, um dieses Token zu verknüpfen + Nicht genügend %1$s. Lade Dein %2$s -Konto auf, um dieses Token zu verknüpfen Trustline aktivieren Um dieses Token zu erhalten, muss eine Trustline aktiviert sein. Das Netzwerk benötigt eine Reserve von %1$s %2$s. Trustline erforderlich + Bösartige/ verdächtige Domäne Unbekannte Domäne Trotzdem verbinden Zeitüberschreitungsfehler. Bitte versuche es später erneut. diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index 46aea2ae3b..c2084479a7 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -6,7 +6,7 @@ Esto puede tardar unos segundos. Inténtelo de nuevo más tarde. Los datos aún no se han cargado. La acción no está disponible actualmente. Inténtalo de nuevo más tarde o actualiza los datos deslizando el dedo hacia abajo en la pantalla. - No disponible + La acción no está disponible Elige el token ¿No encuentra el token en tu billetera? Consulte los mercados para encontrarlo y agregarlo al intercambio No hay tokens disponibles para intercambiar con el token seleccionado. Por favor elige otro. @@ -49,6 +49,17 @@ Predeterminado del sistema Tema Ajustes de la app + Copia de seguridad de tu billetera realizada con éxito. + Copia de seguridad completada + Su frase secreta de recuperación es un conjunto fijo de %s palabras aleatorias que se utilizan para acceder a tu billetera y recuperarla. + Estas palabras no pueden recuperarse si se pierden. Asegúrate de guardarlas en un lugar seguro. + Mantenlo seguro + Guarda estas %s palabras en un lugar seguro, como un administrador de contraseñas, y nunca las compartas con nadie. + No hay recuperación posible + Frase de recuperación + Escribe estas palabras %s en orden y guárdalas en un lugar seguro y privado + La responsabilidad total de la seguridad y la copia de seguridad de la billetera y la frase de recuperación recae en el usuario, no en Tangem. + Frase de recuperación Para ocultar o mostrar tus saldos, simplemente gira la pantalla de tu dispositivo hacia abajo, o desactívalo en Ajustes No mostrar de nuevo Entendido @@ -65,6 +76,10 @@ %d tarjeta %d tarjetas + + %s token + %s tokens + Desactive esta opción si no quiere que esta tarjeta se use para reiniciar códigos de acceso en otras tarjetas de esta billetera. Tenga en cuenta que esto también evitará que reinicie el código de acceso en esta tarjeta. Permite usar esta tarjeta para reiniciar el código de acceso en otras tarjetas de esta billetera Recuperación de código de acceso @@ -110,12 +125,17 @@ Cancelar Cambie Elige una acción + Elegir red Elige token Reclamar Reclame recompensas Cerrar + Próximamente Confirme + Contacte con el soporte de Tangem + Contacte con el soporte de Visa Continuar + Convertir Copiar Copiar la dirección Crear @@ -150,6 +170,7 @@ Sincronizar direcciones Ir al proveedor Ir al token + Entiendo Ocultar hora Importe @@ -194,6 +215,7 @@ El servidor no está disponible, por favor inténtelo de nuevo más tarde Compartir Compartir enlace + Mostrar menos Mostrar más Firme Firme y envíe @@ -203,6 +225,7 @@ Enviar Con éxito Soporte + Redes compatibles Swap términos y condiciones Condiciones de uso @@ -216,6 +239,7 @@ Inaccesible Termine el staking Debido a limitaciónes sobre %1$s, solos %2$d UTXO pueden caber en una sola transacción. Esto significa que solo puedes enviar %3$s o menos. Debe reducir la cantidad. + Valor copiado semana con @@ -262,6 +286,7 @@ %s hashes ID del dispositivo Contactar con el equipo de soporte + Abrir chat de soporte Vincular más tarjetas Moneda de la aplicación Girar para ocultar saldos @@ -278,7 +303,8 @@ No se puede intercambiar por %s Proporcionado por Estado - Tangem ofrece swaps de tokens a través de proveedores externos según los términos de cada proveedor + Elegir proveedor + Tangem ofrece swaps de tokens a través de proveedores externos Elija proveedor Ha ocurrido un error. Código: %s Error %1$s. El proveedor seleccionado no puede procesar la transacción especificada. Por favor, redondee el valor a %2$s o cámbielo @@ -294,37 +320,39 @@ El monto fue reembolsado en %1$s (red %2$s) Visite el sitio web del proveedor para la verificación Verificación KYC requerida por el proveedor - Comprado - Comprando + Compra completada + A la espera de la compra Comprando... - Cancelado - Confirmado + Transacción cancelada + Depósito confirmado Esperando confirmación - En proceso de confirmación - Intercambio - En intercambio - En intercambio - Fallido - En pausa + Esperando confirmación... + Intercambio completado + A la espera del intercambio + Esperando el intercambio... + Intercambio fallido + Intercambio en pausa Depósito recibido Esperando depósito Esperando depósito - Reembolsado + Reembolso completado + A la espera del reembolso Transfiriendo a su cuenta - Enviando... - Enviado + Enviando fondos... + Fondos enviados Datos proporcionados por el proveedor. La cantidad estimada puede cambiar debido a las condiciones del mercado. Estado del intercambio Verificación requerida Esperando hash de transacción Lista de todos los tokens agregados a su billetera - Buscando las mejores tarifas… + Buscar tarifas actuales... Tasa flotante Al utilizar la función de intercambio, acepta el %s Al utilizar la función de intercambio, aceptas las condiciones de %1$s y %2$s del proveedor - Próximamente habrá más proveedores.\n¡Estén atentos! + Pronto habrá más proveedores disponibles Proveedor Mejor tarifa + Lista de advertencias de la FCA Disponible hasta %s Disponible desde %s No disponible para este par @@ -336,6 +364,9 @@ Ocultar esta transacción Una vez oculto, el estado de la transacción no se puede volver a ver. En su lugar, basta con deslizar el dedo para descartarla. ¿Ocultar el estado de la transacción? + Este token no es compatible. Por favor, elige un token diferente para intercambiar. + %s no es compatible + Intercambiar con No se encontraron fichas. Por favor intenta con otra solicitud ID : %s ID de transacción copiado @@ -363,6 +394,8 @@ Para continuar, de autorización a los smart contracts de %1s para usar su %2s Dar autorización Ilimitado + Agregar billetera existente + Crear nueva billetera Pedir Tangem Escanee a %s @@ -418,6 +451,7 @@ Este activo no está disponible en la billetera Este activo no está disponible para esta billetera Añadir + APY %s Redes disponibles Mi portafolio Mercado @@ -671,7 +705,7 @@ Tarjetas idénticas Código de acceso Disponible con %s - La compra de criptomonedas en Tangem se lleva a cabo utilizando proveedores externos usando sus propios términos. + La compra de criptomonedas en Tangem se lleva a cabo utilizando proveedores externos. Buscar por país Indisponible Otras monedas @@ -698,6 +732,13 @@ Por saldo Organizar tokens Desagrupar + Más información + Puedes activar las Notificaciones para Tangem en Ajustes. + Activar más tarde + Ajustes + Activar notificaciones + Reciba alertas de transacciones entrantes en las redes compatibles + Notificaciones de transacciones Seleccione de la galería Ajustes No ha dado acceso a su cámara @@ -770,7 +811,9 @@ Ha especificado una comisión inferior a la cantidad recomendada, lo que podría provocar un retraso en su transacción. ¿Continuar? Razón: %1$s\nCódigo: %2$s La transacción está incompleta + Convertir a otro token Montante + Se enviará al destinatario Puede establecer tu tarifa de transacción ajustando el valor en el campo\nSatoshi por vByte. La tarifa que se cobrará por tu transacción. Puedes establecer tu propio valor. Tarifa máxima @@ -794,6 +837,7 @@ Compruebe su conexión de red Información de tarifa de red no accesible Desde + De %s Límite de gas Este es el máximo de gas que se gastará para completar una transacción o contrato. Un límite de gas evita cargos inesperados o ilimitados al ejecutar una transacción. Precios del gas @@ -801,8 +845,12 @@ Max Importe máximo Tarifa hasta + Memo: %s Memo no válido Cobertura de tarifa de red + Nonce + Número único para cada transacción. Utilízalo para reenviar o cancelar una transacción pendiente. + Introduzca nonce.. Fondos insuficientes para la transferencia, ya que el total de la tarifa y el importe de la transferencia supera el saldo existente El total supera el saldo Se requiere un saldo de al menos %s para mantener su cuenta en blockchain para evitar riesgos de seguridad. Este monto permanecerá en su saldo y no podrá retirarse. @@ -830,6 +878,8 @@ Destinatario No es una dirección válida Asegúrese de que la dirección de la billetera receptora esté en la red %s para evitar perder sus tokens + enviar a %s + Asegúrese de que %s dirección de red, ya que los errores pueden resultar en transferencias perdidas Destinatario Un Memo/ID de destino es un ID único para diferenciar transacciones enviadas al mismo destinatario en la misma red. Precaución: Omitir un memo puede llevar a la pérdida de fondos Memo / Destination Tag es un código que separa las transacciones dirigidas a un destinatario compartido en una red de criptomonedas. @@ -846,6 +896,7 @@ La tarifa de red se cubrirá al usar %1$s energía La tarifa de red se reducirá al usar %1$s energía incluida una tarifa de red de %1$s + A la dirección La transacción se firmó con éxito y se envió al nodo blockchain. El saldo de la billetera se actualizará después de un tiempo. %1$s es un activo en la red Tron. Para calcular la tarifa y realizar una transacción, deba depositar algo de Tron (TRX) en su cuenta. El monto excede el saldo @@ -854,6 +905,10 @@ Cantidad no válida La tarifa excede el saldo El monto total excede el saldo + Envía cualquier token y lo convertiremos en el camino. Su destinatario obtiene exactamente lo que necesita, sin problemas. + Se enviará un destinatario + Cantidad a recibir + Enviar con swap Transacción enviada Escanee la tarjeta/anillo que quiere configurar Olvidar la billetera @@ -872,7 +927,7 @@ Las recompensas se acumulan automáticamente en su saldo de apustaking esta cada día. Disponible Tasa de recompensa promedio - ¿Qué es el Staking? + ¿Cómo funciona el staking? %s beneficio estimado Calificación de mercado Métrica @@ -901,14 +956,14 @@ Detalles del staking de ADA Recomp. won se le enviará y estará disponible para su uso inmediato Haga staking de forma segura y comience a ganar recompensas - Haga de forma segura y comience a ganar recompensas diarias - Haga staking de forma segura y comience a ganar recompensas por hora - Haga staking de forma segura y comience a ganar recompensas mensuales - El staking le permite ganar %1$s. Sus recompensas por apostar llegan todos los días. - El staking le permite ganar %1$s. Sus recompensas del staking llegan cada hora. - El staking le permite ganar %1$s. Sus recompensas del staking llegan todos los meses. - El staking le permite ganar %1$s. Sus recompensas por apostar llegan todas las semanas. - Haga staking de forma segura y comience a ganar recompensas semanales + Tangem permite a los usuarios hacer staking de sus criptomonedas + Tangem permite a los usuarios hacer staking de sus criptomonedas + Tangem permite a los usuarios hacer staking de sus criptomonedas + El staking le permite ganar %1$s. Sus recompensas por staking llegan cada día. + El staking le permite ganar %1$s. Sus recompensas por staking llegan cada hora. + El staking le permite ganar %1$s. Sus recompensas por staking llegan cada mes. + El staking le permite ganar %1$s. Sus recompensas por staking llegan cada semana. + Tangem permite a los usuarios hacer staking de sus criptomonedas Gane recompensas por staking Su saldo de staking será demasiado bajo para cancelar el staking. Necesitará hacer staking más para alcanzar la cantidad mínima para cancelarlo. Saldo de staking bajo @@ -994,6 +1049,7 @@ Compatible con Web 3.0 Se requiere una transacción entrante de al menos %1$s para proceder Fondos insuficientes + Tasa fija La red cobrará una tarifa de aprobación de token para verificar que está autorizando el uso de su token para el swap. Intercambie más tokens a mejores tasas directamente en su billetera. ¡Nuevo proveedor de intercambio disponible! @@ -1007,6 +1063,7 @@ Tarifas inmejorables Sencillo e intuitivo, permite cambiar tokens con solo unos cuantos toques Simplemente cómodo + Intercambio a través del proveedor La cantidad incluye:\n• Tarifas del proveedor de servicios\n• Tarifas de red por enviar %s desde el intercambio a la dirección del usuario. El monto incluye:\n• tarifas del proveedor de servicios\n• tarifas de red por enviar %1$s desde el intercambio a la dirección del usuario. \n\nEl slippage del proveedor puede alcanzar el %2$s El importe incluye los honorarios del proveedor de servicios. @@ -1067,8 +1124,12 @@ desde: %s a: %s validador: %s + Las notificaciones están activadas, pero no funcionarán hasta que permitas las notificaciones en la configuración de tu dispositivo. + Notificaciones de transacciones Mínimo %s El monto mínimo para realizar esta transacción es %1$s. + Las tarifas de la red Tron para tokens populares pueden ser más altas. Hacer staking de TRX puede ayudar a reducir los costos de transacción. + Ahorra en las tarifas de la red Tron Inténtelo de nuevo Ha escaneado la misma tarjeta. Para crear una billetera gemela, necesite escanear la tarjeta con no. %d Ha escaneado la tarjeta gemela incorrecta. Por favor, intente con otra @@ -1081,14 +1142,17 @@ Tangem Twin Esta acción es irreversible. No tendrá acceso la billetera antigua. Toque la tarjeta gemela con el número %s y no la retira hasta el final de la operación + Por favor, inténtelo de nuevo más tarde. Si el problema persiste, póngase en contacto con el servicio de asistencia. + ¡Algo salió mal! Hemos encontrado un error. Código de error: %s. Póngase en contacto con nuestro servicio de asistencia. Use %s o escanee una tarjeta/anillo para tener acceso a su billetera Error de conexión: Esta dApp utiliza la versión 1.0 de Wallet Connect, que no es compatible. Asegúrese de que la dApp sea compatible con la versión 2.0 de Wallet Connect para conectarse correctamente. Manténgase actualizado con las últimas funciones y noticias + Recibir notificaciones de las transacciones entrantes Sea el primero en enterarte de nuevas promociones ¿Quiere utilizar\nnotificaciones push? Agregar una nueva billetera - ¿Está seguro(a) de que quieres eliminar esta billetera? + ¿Estás seguro de que deseas olvidar esta billetera? Ha ocurrido un error, por favor escanee su tarjeta o anillo para iniciar sesión Esta billetera ya se ha guardado, puede agregar otro La billetera con el nombre %s ya existe @@ -1131,6 +1195,10 @@ Conectar a dApps WalletConnect La conexión puede tardar unos segundos. + Importar billetera + La copia de seguridad de tu billetera se realizó con éxito. + Importar billetera + Importación completada %s Precio de mercado últimas 24h %s red @@ -1139,6 +1207,8 @@ Consíguelo ahora con un 10 % de descuento Accede a más de 13 000 criptomonedas. Compra, vende, intercambia y realiza staking con un solo toque.\nVincula hasta tres tarjetas para hacer copias de seguridad. Descubre Tangem Wallet + Manténteinformado sobre las transacciones entrantes de la billetera y las actualizaciones de Tangem. + Notificaciones de transacciones Ajustes de la wallet Tangem Use %s o escanee una tarjeta/anillo para desbloquear el acceso a su billetera @@ -1209,6 +1279,7 @@ Su opinión nos motiva a hacer Tangem Wallet aún mejor ¿Disfrutando de Tangem? Deba asociar su token antes de recibir tokens + Debes abrir una línea de confianza para tu token antes de recibirlo Se requiere tarifa de alquiler de red Acción requerida ¿Te pusiste en contacto con el servicio de asistencia a través de la aplicación o por correo electrónico en los 7 días posteriores a la creación de la billetera? Si lo hiciste o no estás seguro, sigue y completa las instrucciones. @@ -1224,9 +1295,58 @@ Deslice hacia abajo para refrescar o inténtelo de nuevo más tarde. Algunas redes no están disponibles No se han podido actualizar los saldos de algunos tokens + No hay suficiente %s. Recarga tu cuenta XLM para asociar este token Esta es una tarjeta de Testnet. No puede procesar transacciones y solo deba usarse para pruebas y desarrollo. Solo para fines de prueba El saldo podría estar desactualizado. Actualice la página. + No hay suficiente %1$s. Recarga tu %2$s cuenta para asociar este token + Habilitar línea de confianza + Una línea de confianza debe estar habilitada para recibir este token. La red requiere un %1$s %2$s reserva. + Se requiere línea de confianza + Dominio malicioso + Dominio desconocido + Este dominio no puede ser verificado. Compruebe cuidadosamente la solicitud de aprobación. + Vuelva a su navegador y vuelva a conectarse a través de WalletConnect. + Firmar de todos modos + Código de error: %s. Si el problema persiste - no dude en ponerse en contacto con nuestro soporte. + Si el problema persiste, no dudes en ponerte en contacto con nuestro soporte. + Código de error: 8 005. Si el problema persiste, no dudes en contactar con nuestro soporte. + Hemos encontrado un error desconocido + Actualmente, Tangem no es compatible con una red requerida por %s. + Tangem soporta una red requerida por %s + Se seleccionó una tarjeta o un anillo incorrectos en la app + Permitir gastar + Dirección + Conectar + Cargando + Red + Redes + Ilimitado + Billetera + Redes conectadas + Ver el saldo y la actividad de su billetera + Firmar transacciones sin previo aviso + Solicitar aprobación para transacciones + No podrá + Me gustaría + Solicitud de conexión + Contenido + Copiar datos + Asignación personalizada + Cambios estimados en la billetera + La transacción no ha podido ser simulada. Por favor, proceda con precaución. + Transacción maliciosa + Añada la red %s a su perfil para esta billetera + La billetera no tiene las redes requeridas + Este dominio está marcado como no seguro por varios proveedores de seguridad. Salga de inmediato para proteger sus activos + Riesgo de seguridad conocido + Solicitud de + Tipo de firma + A + Solicitud de transacción + Solicitud de transacción + Cantidad ilimitada + Wallet connect Ignorar Tiene un backup interrumpido. ¿Quiere reanudarlo? Sí, reanudar diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 731aa8038e..b828454968 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -59,6 +59,7 @@ テーマ アプリ設定 ウォレットのバックアップが正常に完了しました。 + これらの単語は紛失した場合、復元できません。必ず安全な場所に保管してください。 バックアップが完了しました シークレットリカバリーフレーズは、ウォレットへのアクセスと復元のために使用される%sのランダムな単語のセットです。 これらの単語は紛失した場合、復元できません。必ず安全な場所に保管してください。 @@ -408,6 +409,10 @@ Tangemをスキャン %sへ %sネットワーク + 今すぐバックアップ + セットアップを完了するには、ウォレットをバックアップし、アクセスコードを使用してアプリへのアクセスを保護します。 + 今すぐ実施 + ウォレットのアクティベーションを完了する iCloudバックアップに保存されている既存のウォレットを復元する iCloudバックアップ バックアップへ移動 @@ -1156,6 +1161,7 @@ Tangemツイン この操作は元に戻せません。古いウォレットにはアクセスできなくなります。 番号%sのツインカードをタップし、操作が終了するまで取り外さないでください。 + しばらくしてからもう一度お試しください。問題が解決しない場合は、サポートにお問い合わせください。 問題が発生しました。 エラーが発生しました。エラー コード:%s。サポートにお問い合わせください。 %sを使用するか、カード / リングをスキャンしてウォレットにアクセスしてください @@ -1349,17 +1355,15 @@ 下にスワイプして更新するか、後でもう一度お試しください。 一部のネットワークにアクセスできません 一部のトークン残高を更新できませんでした - トラストラインを有効にする %sが足りません。このトークンを関連付けるには、XLMアカウントに資金を追加してください。 - このトークンを受け取るには、トラストラインを有効にする必要があります。ネットワークには 0.5 XLMの準備金が必要です。 - トラストラインが必要 これはテストネットカードです。取引処理はできませんので、テストおよび開発目的でのみご利用ください。 テスト目的のみ 残高が古い可能性があります。ページを更新してください。 - %1$sが足りません。このトークンを関連付けるには、XLMアカウントにチャージしてください。 + %1$sが足りません。このトークンを関連付けるには、 %2$sアカウントにチャージしてください。 トラストラインを有効にする このトークンを受け取るには、トラストラインを有効にする必要があります。ネットワークには%1$s %2$s予備金が必要です。 トラストラインが必要 + 悪意のあるドメイン 不明なドメイン とにかく接続する タイムアウトエラーが発生しました。しばらくしてからもう一度お試しください。 diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 4c4ce1336a..32178f4574 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -166,7 +166,7 @@ Заблокирован Основная сеть месяц - Сетевая комиссия + Комиссия сети Сумма отправки будет уменьшена на %1$s (%2$s) для покрытия выбранного уровня комиссии Далее NFT @@ -532,7 +532,7 @@ Потяните вверх или коснитесь поисковой строки, чтобы добавить токены напрямую из рынка Добавить токены Функция NFC недоступна на вашем устройстве - Об NFT + О NFT NFT %d NFT @@ -1261,9 +1261,6 @@ Свайпните вниз для обновления или попробуйте позже. Некоторые сети недоступны Некоторые балансы токенов не удалось обновить - Открыть Trustline - Чтобы получить этот токен, необходимо открыть Trustline. Сеть удержит резерв в размере 0.5 XLM. - Откройте Trustline Это Testnet карта. Он не может обрабатывать транзакции и используется только в целях тестирования и разработки. Только для целей тестирования Возможно, баланс устарел. Обновите страницу. diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index cbdeae4e30..d6919003f0 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -59,13 +59,15 @@ Theme App settings You successfully backed up your wallet. + These words can’t be recovered if lost. Make sure to keep it somewhere secure. Backup Completed Your Secret Recovery Phrase is a fixed set of %s random words used to access and recover your wallet. - These words can’t be recovered if lost. Make sure to keep it somewhere secure. + These words can’t be recovered if lost. Make sure to keep it somewhere secure. Keep It Safe Save these %s words in a secure location, such as a password manager, and never share them with anyone. No Recovery Possible Recovery phrase + Never share these words. Anyone who learns them can steal all of your crypto. Tangem will never ask you for them. The %s words below are your wallet\'s recovery phrase. This phrase lets you recover your wallet if you lose your device. Write down these %s words in order and keep them safe and private Full responsibility for the security and backup of the wallet and recovery phrase lies with the user, not with Tangem. Recovery phrase @@ -937,6 +939,7 @@ Invalid amount Fee exceeds balance Total amount exceeds balance + Swap and send Send any token, and we’ll convert it on the way. Your recipient gets exactly what they need—seamlessly. Will be sent a recipient Amount to receive @@ -1417,10 +1420,7 @@ Swipe down to refresh or try again later. Some networks are unreachable Some token balances could not be updated - Enable Trustline Not enough %s. Top up your XLM account to associate this token - A Trustline must be enabled to receive this token. The network requires a 0.5 XLM reserve. - Trustline Required This is a Testnet card. It cannot process transactions and should only be used for testing and development purposes. For testing purposes only Balance may be outdated. Refresh the page. @@ -1440,6 +1440,8 @@ Error code: %s. If the problem persists — feel free to contact our support. If the problem persists — feel free to contact our support. We\'ve encountered unknown error + Tangem Wallet currently doesn’t support %s. + Unsupported dApp Error code: 8 005. If the problem persists — feel free to contact our support. We\'ve encountered unknown error Tangem does not currently support a required network by %s. diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt index 3e01f6c9c3..4d2b72fc1e 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt @@ -37,14 +37,16 @@ internal class AssociateNetworksDelegate( // remove duplicates .subtract(requiredNamespaces) - return userWallets - .associateWith { wallet -> mapNetworksForWallet(wallet, requiredNamespaces, optionalNamespaces) } + return userWallets.associateWith { wallet -> + mapNetworksForWallet(wallet, requiredNamespaces, optionalNamespaces, sessionProposal) + } } private suspend fun mapNetworksForWallet( wallet: UserWallet, requiredNamespaces: Set, optionalNamespaces: Set, + sessionProposal: Wallet.Model.SessionProposal, ): ProposalNetwork { val walletNetworks = getWalletNetworks(wallet) @@ -78,7 +80,9 @@ internal class AssociateNetworksDelegate( notAdded.add(wcNetwork) } } - if (unknownRequired.isNotEmpty()) throw WcPairError.UnsupportedBlockchains(unknownRequired) + if (unknownRequired.isNotEmpty()) { + throw WcPairError.UnsupportedBlockchains(unknownRequired, sessionProposal.name) + } return ProposalNetwork( wallet = wallet, missingRequired = missingRequired, diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt index 784290a509..885f896a41 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt @@ -24,8 +24,6 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.* import timber.log.Timber -val unsupportedDApps = listOf("dYdX", "dYdX v4", "Apex Pro", "The Sandbox") - @Suppress("LongParameterList") internal class DefaultWcPairUseCase @AssistedInject constructor( private val sessionsManager: WcSessionsManager, @@ -54,9 +52,9 @@ internal class DefaultWcPairUseCase @AssistedInject constructor( .getOrNull() ?: return@flow // check unsupported dApps, just local constant for now, finish if unsupported - if (sdkSessionProposal.name in unsupportedDApps) { + if (UnsupportedDApps.list.any { sdkSessionProposal.url.contains(it, ignoreCase = true) }) { Timber.tag(WC_TAG).i("Unsupported DApp ${sdkSessionProposal.name}") - val error = WcPairState.Error(WcPairError.UnsupportedDApp) + val error = WcPairState.Error(WcPairError.UnsupportedDApp(sdkSessionProposal.name)) emit(error) return@flow } diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/UnsupportedDApps.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/UnsupportedDApps.kt new file mode 100644 index 0000000000..953c2c2e62 --- /dev/null +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/UnsupportedDApps.kt @@ -0,0 +1,16 @@ +package com.tangem.data.walletconnect.pair + +/** + * These dApps are not supported by WC due to various issues with signing formats + * @see Documentation + */ +object UnsupportedDApps { + val list = listOf( + "dydx.trade", + "dydx.exchange", + "pro.apex.exchange", + "services.dfx.swiss", + "sandbox.game", + "app.paradex.trade", + ) +} \ No newline at end of file diff --git a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt index fecea507d0..81dd6ad575 100644 --- a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt +++ b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt @@ -58,8 +58,8 @@ internal class DefaultWcPairUseCaseTest { relayData = "", ) - private val unsupportedDApp = "Apex Pro" - private val unsupportedSdkProposal get() = sdkProposal.copy(name = unsupportedDApp) + private val unsupportedDAppUrl = "dydx.trade" + private val unsupportedSdkProposal get() = sdkProposal.copy(url = unsupportedDAppUrl) private val sessionForApprove: WcSessionApprove get() = WcSessionApprove( @@ -196,7 +196,7 @@ internal class DefaultWcPairUseCaseTest { @Test fun `success pair and reject unsupported dApp`() = runTest { coEvery { sdkDelegate.pair(url) } returns unsupportedSdkProposal.right() - val unsupportedDAppError = WcPairState.Error(WcPairError.UnsupportedDApp) + val unsupportedDAppError = WcPairState.Error(WcPairError.UnsupportedDApp(unsupportedSdkProposal.name)) val useCase = useCaseFactory() useCase.invoke().test { diff --git a/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcPairError.kt b/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcPairError.kt index 7d896a8539..f04de6251a 100644 --- a/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcPairError.kt +++ b/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcPairError.kt @@ -8,8 +8,8 @@ sealed class WcPairError( data class UriAlreadyUsed(override val message: String) : WcPairError("107 001 001") data class PairingFailed(override val message: String) : WcPairError("107 001 002") data object InvalidDomainURL : WcPairError("107 001 003") - data object UnsupportedDApp : WcPairError("107 001 004") - data class UnsupportedBlockchains(val chains: Set) : WcPairError("107 001 005") + data class UnsupportedDApp(val appName: String) : WcPairError("107 001 004") + data class UnsupportedBlockchains(val chains: Set, val appName: String) : WcPairError("107 001 005") data object InvalidConnectionRequest : WcPairError("107 002 001") data object ProposalExpired : WcPairError("107 002 002") diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcPairComponent.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcPairComponent.kt index 60ffc2ab45..fec34771be 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcPairComponent.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcPairComponent.kt @@ -55,9 +55,14 @@ internal class WcPairComponent( } private fun onChildBack() { - when (contentStack.value.active.configuration) { - WcAppInfoRoutes.AppInfo -> dismiss() - is WcAppInfoRoutes.Alert, + when (val config = contentStack.value.active.configuration) { + is WcAppInfoRoutes.AppInfo -> dismiss() + is Alert -> when (config.type) { + is Alert.Type.UnsupportedDApp, + is Alert.Type.UnsupportedNetwork, + -> dismiss() + else -> model.stackNavigation.pop() + } is WcAppInfoRoutes.SelectNetworks, is WcAppInfoRoutes.SelectWallet, -> model.stackNavigation.pop() @@ -108,8 +113,10 @@ internal class WcPairComponent( private fun createBottomSheetMessageUM(alertType: Alert.Type): MessageBottomSheetUMV2 { return when (alertType) { is Alert.Type.Verified -> WcAlertsFactory.createVerifiedDomainAlert(alertType.appName) - Alert.Type.UnknownDomain -> WcAlertsFactory.createUnknownDomainAlert(model::connectFromAlert) - Alert.Type.UnsafeDomain -> WcAlertsFactory.createUnsafeDomainAlert(model::connectFromAlert) + is Alert.Type.UnknownDomain -> WcAlertsFactory.createUnknownDomainAlert(model::connectFromAlert) + is Alert.Type.UnsafeDomain -> WcAlertsFactory.createUnsafeDomainAlert(model::connectFromAlert) + is Alert.Type.UnsupportedDApp -> WcAlertsFactory.createUnsupportedDomainAlert(alertType.appName) + is Alert.Type.UnsupportedNetwork -> WcAlertsFactory.createUnsupportedChainAlert(alertType.appName) } } diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcPairModel.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcPairModel.kt index 4b6d7923bb..40353377db 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcPairModel.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcPairModel.kt @@ -1,9 +1,7 @@ package com.tangem.features.walletconnect.connections.model import androidx.compose.runtime.Stable -import com.arkivanov.decompose.router.stack.StackNavigation -import com.arkivanov.decompose.router.stack.pop -import com.arkivanov.decompose.router.stack.pushNew +import com.arkivanov.decompose.router.stack.* import com.domain.blockaid.models.dapp.CheckDAppResult import com.tangem.core.decompose.di.ModelScoped import com.tangem.core.decompose.model.Model @@ -79,7 +77,6 @@ internal class WcPairModel @Inject constructor( } private fun loadDAppInfo() { - fun errorToast(error: WcPairError) = messageSender.send(ToastMessage(message = stringReference(error.message))) wcPairUseCase() .onEach { pairState -> when (pairState) { @@ -90,14 +87,14 @@ internal class WcPairModel @Inject constructor( appInfoUiState.transformerUpdate( WcConnectButtonProgressTransformer(showProgress = false), ) - pairState.result.onLeft(::errorToast) + pairState.result.onLeft(::processError) router.pop() } is WcPairState.Error -> { appInfoUiState.transformerUpdate( WcConnectButtonProgressTransformer(showProgress = false), ) - errorToast(pairState.error) + processError(pairState.error) } is WcPairState.Loading -> appInfoUiState.update { createLoadingState() } is WcPairState.Proposal -> { @@ -179,6 +176,19 @@ internal class WcPairModel @Inject constructor( stackNavigation.pushNew(WcAppInfoRoutes.Alert(WcAppInfoRoutes.Alert.Type.Verified(appName))) } + private fun processError(error: WcPairError) { + when (error) { + is WcPairError.UnsupportedDApp -> { + WcAppInfoRoutes.Alert.Type.UnsupportedDApp(error.appName) + } + is WcPairError.UnsupportedBlockchains -> { + WcAppInfoRoutes.Alert.Type.UnsupportedNetwork(error.appName) + } + else -> null + }?.let { stackNavigation.pushNew(WcAppInfoRoutes.Alert(it)) } + ?: run { messageSender.send(ToastMessage(message = stringReference(error.message))) } + } + override fun onWalletSelected(userWalletId: UserWalletId) { val selectedUserWallet = sessionProposal.proposalNetwork.keys.first { it.walletId == userWalletId } proposalNetwork = sessionProposal.proposalNetwork.getValue(selectedUserWallet) diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/routes/WcAppInfoRoutes.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/routes/WcAppInfoRoutes.kt index 6c83d5ac07..8c4da73668 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/routes/WcAppInfoRoutes.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/routes/WcAppInfoRoutes.kt @@ -32,6 +32,8 @@ internal sealed class WcAppInfoRoutes : TangemBottomSheetConfigContent, Route { data class Verified(val appName: String) : Type() data object UnknownDomain : Type() data object UnsafeDomain : Type() + data class UnsupportedDApp(val appName: String) : Type() + data class UnsupportedNetwork(val appName: String) : Type() } } } \ No newline at end of file diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcAlertsFactory.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcAlertsFactory.kt index 21c8ac3960..84fe664270 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcAlertsFactory.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/utils/WcAlertsFactory.kt @@ -72,6 +72,40 @@ internal object WcAlertsFactory { } } + fun createUnsupportedDomainAlert(appName: String): MessageBottomSheetUMV2 { + return messageBottomSheetUM { + infoBlock { + icon(R.drawable.ic_wallet_connect_24) { + type = MessageBottomSheetUMV2.Icon.Type.Informative + backgroundType = MessageBottomSheetUMV2.Icon.BackgroundType.SameAsTint + } + title = resourceReference(R.string.wc_alert_unsupported_dapps_title) + body = resourceReference(R.string.wc_alert_unsupported_dapps_description, wrappedList(appName)) + } + primaryButton { + text = resourceReference(R.string.common_got_it) + onClick { closeBs() } + } + } + } + + fun createUnsupportedChainAlert(appName: String): MessageBottomSheetUMV2 { + return messageBottomSheetUM { + infoBlock { + icon(R.drawable.ic_network_new_24) { + type = MessageBottomSheetUMV2.Icon.Type.Informative + backgroundType = MessageBottomSheetUMV2.Icon.BackgroundType.SameAsTint + } + title = resourceReference(R.string.wc_alert_unsupported_networks_title) + body = resourceReference(R.string.wc_alert_unsupported_networks_description, wrappedList(appName)) + } + primaryButton { + text = resourceReference(R.string.common_got_it) + onClick { closeBs() } + } + } + } + private fun createUnknownErrorAlert(errorMessage: String?, onDismiss: () -> Unit): MessageBottomSheetUMV2 { return messageBottomSheetUM { infoBlock {