diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index b7cc837f73..a9bc17a583 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -984,7 +984,6 @@
Überprüfe deine Netzwerkverbindung
Informationen zur Netzwerkgebühr nicht erreichbar
Sie senden
- Von
Von %s
Grenzwert Gasgebühr
Dies ist die maximale Gasgebühr, die für den Abschluss einer Transaktion oder eines Vertrags ausgegeben wird. Ein Gaslimit verhindert unerwartete oder unbegrenzte Gebühren bei der Ausführung einer Transaktion.
@@ -1141,7 +1140,7 @@
Um mit dem Staking bei TON zu beginnen, führe zunächst eine ausgehende Transaktion in beliebiger Höhe durch – dadurch wird Deine Wallet aktiviert.
Für den Abschluss der Transaktion können zusätzlich zur Netzwerkgebühr bis zu 0,2 TON erforderlich sein. Nicht genutzte Beträge werden zurückerstattet.
Für diesen Vorgang sind zusätzlich zur Netzwerkgebühr 0,2 TON erforderlich. Bitte lade Dein Guthaben auf.
- 0,2 Ton reserviert
+ TON-Reserve erforderlich
Durch diese Aktion werden andere Positionen geschlossen oder gemäß den Netzwerkregeln in den Auszahlungsstatus versetzt.
Positionsstatus
Entsperre dein Geld, um es aus dem Staking-Prozess abzuheben. Das Freischalten nimmt %s.
diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml
index 16cac3a4f8..31e91c7d59 100644
--- a/core/res/src/main/res/values-es/strings.xml
+++ b/core/res/src/main/res/values-es/strings.xml
@@ -196,7 +196,7 @@
Sincronizar direcciones
Ir al proveedor
Ir al token
- Entiendo
+ Entendido
Ocultar
hora
Importe
@@ -880,8 +880,7 @@
Memo
Compruebe su conexión de red
Información de tarifa de red no accesible
- Envía
- Desde
+ Usted envía
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.
@@ -895,7 +894,7 @@
Cobertura de tarifa de red
Nonce
Número único para cada transacción. Utilícelo para reenviar o cancelar una transacción pendiente.
- Introduzca nonce..
+ 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.
@@ -950,6 +949,8 @@
Cantidad no válida
La tarifa excede el saldo
La cantidad total excede el saldo
+ ¿Está seguro que desea cambiar el token a recibir? Esto restablecerá los datos introducidos previamente.
+ Cambio de token
Intercambiar y enviar
¿Continuar con la conversión? Esto borrará sus datos anteriores.
Confirmar Conversión
@@ -961,6 +962,7 @@
Cantidad a recibir
El destinatario recibe %s
¿Seguro que desea cancelar la conversión? Se borrarán sus datos anteriores.
+ Eliminar conversión
Enviar con swap
Transacción enviada
Escanee la tarjeta/anillo que quiere configurar
@@ -968,10 +970,10 @@
Esto eliminará la wallet de la aplicación. La wallet en sí puede\nañadirse de nuevo.
Nombre
Haga que su token trabaje para Ud.
- El monto del staking debe ser al menos %s
- El monto del staking se redondeará a %1$s TRX debido a las reglas de la red.
+ La cantidad del staking debe ser al menos %s
+ La cantidad de staking se redondeará a %1$s TRX debido a las reglas de la red.
El monto de cancelación del staking se redondeará a %1$s TRX debido a las reglas de la red.
- Unstaking de la reclamación
+ Reclamar lo que no está en staking
Tarifa de staking de la cuenta
Una cuenta de staking es una cuenta especial donde se almacenan los tokens SOL de staking. Se crea cuando delegas sus tokens a un validador para participar en la validación de transacciones y ganar recompensas. Se cobra una pequeña tarifa por crear la cuenta de staking, que se devuelve una vez que se completa el staking.
Porcentaje de rendimiento anual
@@ -1007,7 +1009,7 @@
No hay validadores activos disponibles para hacer staking en este momento. Por favor, inténtalo de nuevo más tarde.
Al hacer staking en la red Cardano, se utiliza todo su saldo. Se reservarán 2 ADA adicionales y se devolverán después del staking. Su ADA permanece desbloqueado mientras hace staking.
Detalles del staking de ADA
- Recomp. won se le enviará y estará disponible para su uso inmediato
+ Las recompensas obtenidas se enviarán a su billetera y estarán disponibles para su uso inmediato
Haga staking de forma segura y comience a ganar recompensas
Tangem permite a los usuarios hacer staking de sus criptomonedas
Tangem permite a los usuarios hacer staking de sus criptomonedas
@@ -1034,7 +1036,7 @@
Para empezar a hacer staking en TON, realice primero una transacción de salida de cualquier importe - esto activará su billetera.
Es posible que se requieran hasta 0.2 TON además de la tarifa de red para completar la transacción. Cualquier cantidad no utilizada será reembolsada.
Se requieren 0.2 TON para realizar esta operación, además de la tarifa de red. Por favor, recargue su saldo.
- 0.2 Ton Reservado
+ Se requiere reserva de TON
Esta acción cerrará otras posiciones o las cambiará al estado de retiro, de acuerdo con las reglas de la red.
Estado de las posiciones
Desbloquee su dinero para retirarlo del proceso de staking. El desbloqueo demora %s minuto.
@@ -1044,9 +1046,9 @@
Hacer staking en la red Tron con un nuevo validador transferirá automáticamente todos los fondos de staking a este validador.
Preparando
Listo para retirar
- Reunir
- Haga el staking de nuevo
- Restaking de las recompensas
+ Volver a unir
+ Hacer staking de nuevo
+ Hacer restaking de las recompensas
Revocar
Revotar
Auto
@@ -1080,7 +1082,7 @@
La cantidad para el unstaking debe ser al menos %s
El monto excede el saldo apostado
Sin staking
- Unstaking
+ Deshacer el staking
Detenando el staking de activos %s
Validador
Validadores
@@ -1195,7 +1197,7 @@
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.
+ Por favor, inténtelo de nuevo más tarde. Si el problema persiste, póngase en contacto con el servicio de soporte.
¡Algo salió mal!
Hemos encontrado un error. Código de error: %s. Póngase en contacto con nuestro servicio de soporte.
Use %s o escanee una tarjeta/anillo para tener acceso a su billetera
@@ -1334,10 +1336,10 @@
Su opinión nos motiva a hacer Tangem Wallet aún mejor
¿Disfrutando de Tangem?
Deba asociar su token antes de recibir tokens
- Debe abrir una trustline para su token antes de recibirlo
+ Debe abrir una trustline (línea de confianza) para su token antes de recibirlo
Se requiere tarifa de alquiler de red
Acción requerida
- ¿Se puso en contacto con el servicio de soporte a través de la app en los 7 días posteriores a la creación de la billetera? Si lo hiciste o no estás seguro, pulse en \"Sí\" y complete las instrucciones.
+ ¿Se puso en contacto con el servicio de soporte a través de la app en los 7 días posteriores a la creación de la billetera? Si lo hizo o no está seguro, pulse en \"Sí\" y complete las instrucciones.
¡Gracias! ¡Todo listo! No se requieren más acciones.
Ahora será redirigido al sitio web oficial de Tangem. Por favor, lea y siga las instrucciones allí indicadas.
¿Alguna vez contactó al equipo de soporte de Tangem directamente desde esta aplicación?
@@ -1355,11 +1357,11 @@
Solo para fines de prueba
El saldo podría estar desactualizado. Actualice la página.
No hay suficiente %1$s. Recargue su cuenta %2$s para asociar este token
- Habilitar Trustline
+ Habilitar Trustline (línea de confianza)
Una trustline (línea de confianza) debe estar habilitada para recibir este token. La red requiere un %1$s %2$s reserva.
Se requiere trustline (línea de confianza)
- La red requerida %s no está añadida a su portafolio. Añádala primero y luego continúe con la conexión.
- Agregue red al portafolio
+ La red requerida %s no está agregada a su portafolio. Agréguela primero y luego continúe con la conexión.
+ Agregar red al portafolio
Dominio malicioso
Dominio desconocido
Conectarse de todas formas
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index 0d2ee7b831..2b20ddae59 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -854,7 +854,6 @@
Vérifiez votre connexion réseau
Informations sur les frais de réseau inaccessibles
Vous envoyez
- De
De %s
Limite de gaz
Il s\'agit du montant maximal de gaz qui sera dépensé pour effectuer une transaction ou un contrat. Une limite de gaz empêche des frais imprévus ou illimités lors de l\'exécution d\'une transaction.
@@ -1011,7 +1010,7 @@
Pour commencer à staker TON, effectuez d\'abord une transaction sortante de n\'importe quel montant — cela activera votre portefeuille.
Jusqu\'à 0,2 TON peuvent être requis en plus des frais de réseau pour terminer la transaction. Tout montant non utilisé sera remboursé.
0,2 TON requis pour effectuer cette opération, en plus des frais de réseau. Veuillez recharger votre solde.
- 0,2 Ton réservés
+ Réserve de TON requise
Cette action fermera d\'autres positions ou les fera passer au statut de retrait, conformément aux règles du réseau.
Statut des positions
Débloquez votre argent pour le retirer du processus de staking. Le déverrouillage prend %s.
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index ff93a67733..5205787420 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -35,6 +35,7 @@
アカウントを追加
アカウントを編集
%1$s ( %2$s内)
+ メインアカウント
アカウントが回復しました
アカウントを長押しして並べ替える
編集を続ける
@@ -179,6 +180,7 @@
許可する
金額
アナリティクス
+ そして
適用する
承認
承認
@@ -242,6 +244,7 @@
終了
無料
アドレスを同期する
+ はじめる
プロバイダーへ移動
トークンへ移動
わかりました
@@ -250,6 +253,7 @@
インポート
進行中
後で
+ もっと詳しく
残り%1$s
レガシービットコイン
ロックされています
@@ -387,6 +391,7 @@
デフォルトアドレス
レガシーアドレス
資金を受け取る
+ %sアドレス
他のネットワークで資産を送金すると、永久に失われます。
%sネットワーク
下記のみを使用して資金を送金する
@@ -410,7 +415,7 @@
%sによる交換
返金を受けるには、プロバイダーのウェブサイトにアクセスしてください。
プロバイダーによる操作が失敗しました。
- スワップに予想以上の時間がかかっています。プロバイダーサポートにお問い合わせください。
+ スワップは通常より時間がかかっておりますが、資金は完全に安全であり、送金されます。ご不明な点がございましたら、プロバイダーのサポートチームまでお問い合わせください。
長い取引時間
OKXまたはブリッジのルールにより、取引金額は%1$sでウォレットに返金されました。%2$s
金額は %1$s(%2$sネットワーク)で返金されました
@@ -495,6 +500,7 @@
新しいウォレットを作成する
Tangemを注文
Tangemをスキャン
+ 「Tangem」に生体認証の使用を許可しますか?\n本人確認とアプリの起動のために使用されます。
%sへ
%sネットワーク
アクセスコードの作成プロセスを終了してもよろしいですか?
@@ -786,6 +792,7 @@
追加しようとしているカードには、すでに別のウォレットが作成されています。このウォレットに資金がある場合は、それを引き出してからこのカードをリセットし、バックアップとして追加してください。
ウォレットを保存する
バックアップの作成
+ 生体認証を使用する
シードフレーズについてもっと読む
- これらの %d 単語を以下の順番通りに書き留め、安全かつ秘密の場所に保管してください。
@@ -837,6 +844,7 @@
アクセスコードの復元
同一のカード
アクセスコード
+ すべてのオファー
%sで利用可能
プロバイダーが取引を促進します
国で検索
@@ -844,13 +852,22 @@
その他の通貨
人気の法定通貨
通貨で検索
+ 即時
オンランプ機能を使用することにより、プロバイダの%1$sおよび%2$sに同意するものとします
買付金額は%s以下にしてください
買付金額は少なくとも%sである必要があります
この通貨で利用可能なプロバイダーはありません
+ 最速
支払う
+ 支払方法
最大 %s まで使用可能
%s 以上で利用可能
+
+ - %dプロバイダー
+
+ プロバイダー
+ 最近使用した
+ 推奨
サードパーティプロバイダー%sで取引を完了できます。
%sにリダイレクトしています...
この国では当社のサービスはご利用いただけません
@@ -859,7 +876,13 @@
正確なお支払い方法とサービスを確保するため、正しい国を選択してください。
設定
この画面を閉じて、トークンの詳細画面で取引状況を確認できます。
+
+ - 最大%d日
+
+ %s分
+ 以下が手に入ります。
この画面を閉じて、トークンの詳細画面で取引状況を確認できます。
+ 最大
経由
支払い
グループ
@@ -970,7 +993,6 @@
ネットワーク接続を確認してください
ネットワーク手数料についての情報にアクセスできません
送信する
- より
%sから
ガス上限
これは、取引または契約を完了するために使用されるガスの最大額です。ガス上限を設定することで、取引実行時に予期せぬ請求や無制限の請求を防ぐことができます。
@@ -1014,7 +1036,7 @@
有効なアドレスではありません
トークンの損失を避けるために、受信ウォレットアドレスが** %sネットワーク**上にあることを確認してください
%s に送信
- %sネットワークアドレスを確認してください。エラーが発生すると転送が失われる可能性があります。
+ %sネットワーク上のアドレスに送信していることを確認してください。エラーが発生すると資金が失われる可能性があります。
送金先
メモ/宛先タグは、同じネットワーク上の同じ受信者に送信された取引を区別するためのユニークなIDです。注意:メモを省略すると、資金の行き違いにつながる可能性があります。
メモ / 宛先タグは、暗号資産ネットワーク内の共有受信者への取引を分離するコードです。
@@ -1025,7 +1047,7 @@
送金中...
変更するには任意の箇所をタップしてください
%sを送金する
- **%1$s** を送金する (ネットワーク手数料%2$sを含む)
+ %2$sのネットワーク料を含む**%1$s**を送信しています。
**%1$s** と %2$s を送金しています。
** %1$s ** を送信しています
ネットワーク手数料は%1$sエネルギーを使用してカバーされます
@@ -1127,7 +1149,7 @@
TONでステーキングを開始するには、まず任意の金額の送金を行ってください。これにより、ウォレットがアクティブになります。
取引を完了するには、ネットワーク手数料に加えて最大0.2TONが必要になる場合があります。未使用分は返金されます。
この操作を続行するには、ネットワーク手数料に加えて0.2 TONが必要です。残高を補充してください。
- 0.2 TON保留済み
+ TONの準備金が必要です
このアクションは、ネットワークのルールに従って、他のポジションをクローズするか、引き出しステータスに切り替えます。
ポジション状況
資金をステーキングから引き出すには、ロックを解除してください。ロック解除には%sかかります。
@@ -1601,4 +1623,64 @@
いいえ、すべて送信します
%s XTZを減らす
次回ウォレットにチャージするときに手数料の増加を避けるには、金額を%s XTZ減らしてください。
+ 承認する
+ 前回の承認に問題があったため、新しい承認が必要です。手続き方法を選択してください。
+ 承認が必要
+ 手数料が差し引かれ、あなたの資産は再び貸し出されます。
+ 引き続き収益を得るには承認が必要です。
+ 承認を確定する
+ 資産残高
+ あなたの%sはAaveに預けられています
+ %s%を獲得
+ 利用可能
+ 現在のAPY
+ 私の資金
+ あなたの%1$sはAaveに預けられ、利息が付きます。あなたは%2$sトークンを保有しており、これは残高を表し、時間の経過とともに増加します。入金すると、資金はAaveに預け入れられ、取引手数料を差し引いた利息が付きます。
+ アクティブ
+ 利回りを得る
+ 総収益
+ Aaveへの送金
+ 資産はプロトコル内に保管されています
+ Aaveの詳細を見る
+ あなたの%sはAaveに預けられています
+ これは%sの現在の供給手数料です。実際のコストは受取画面に表示されます。
+ 現在の手数料
+ 今後の%sの入金はすべて、取引手数料が差し引かれて自動的にAaveに供給されます。
+ ネットワーク手数料が上限手数料を超えた場合、手数料が下がるまで取引は成立しません。この制限は後で変更できます。
+ 最大手数料
+ 手数料ポリシー
+ ここに説明文を入力してください。1〜3行が理想的です。
+ トークン承認が必要
+ アカウントへの入金はすべて自動的にAaveに貸し出されます。
+ 残高は自動的に計算されます
+ いつでも、即座に資金を送信、交換、売却できます。
+ すぐに現金化
+ 使い方
+ Aaveは世界中で何百万人もの人々に信頼されています。総貸付額は104億ドルです。
+ 分散型・自己管理型
+ サービスを使用することにより、プロバイダーに同意したものとみなされます
+ 年間%s%の収益
+ Aave • 変動金利
+ Aave
+ 平均%s
+ 昨年のリターン
+ 現在の金利は常に変動し、リアルタイムの需要と供給に基づいて、AAVEオンチェーンスマートコントラクトによって自動的に計算されます。
+ 提供
+ 金利は変動します
+ 入金すると、資金は自動的にAaveに送金され、利息が付き始めます。取引手数料として%s相当の少額の手数料が差し引かれます。
+ 利息の獲得を開始
+ %sはAaveに供給され、すぐに利用可能になります
+ 手数料ポリシーを見る
+ 次回の入金は自動的にAaveに供給されます。
+ 収益を停止する
+ オフにすると、Aaveから資金が引き出され、ウォレットの%sに戻され、報酬の獲得が停止されます。
+ 出金金額からネットワーク手数料が差し引かれます。
+ APY
+ あなたの資産を眠らせない — 残高を運用して利息を得ましょう。
+ 保有資産から報酬を得る
+ 入金の処理中
+ 年間%1$s%%の収益
+ 自動
+ 取引のネットワーク手数料をカバーするために、 %1$s %2$sを入金してください
+ %s手数料を支払えません
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 34e2073bb1..58186b2510 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -142,6 +142,7 @@
Подтвердить
Подключение
Продолжить
+ Конвертировать
Копировать
Скопировать адрес
Создать
@@ -236,6 +237,7 @@
Отправить
Успешно
Поддержка
+ Поддерживаемые сети
Обменять
условия участия
Условиями использования
@@ -743,6 +745,7 @@
Восстановление кода доступа
Идентичные карты
Код доступа
+ Все предложения
Доступно с %s
Tangem предоставляет доступ к покупке через сторонних провайдеров в соответствии с их правилами
Поиск по стране
@@ -750,13 +753,25 @@
Другие валюты
Популярные фиаты
Поиск по валюте
+ Моментально
Пользуясь сервисом покупки, вы соглашаетесь с %1$s и %2$s
Сумма покупки не может быть больше, чем %s
Сумма покупки должна составлять минимум %s
Нет доступных провайдеров для выбранной валюты
+ Самый быстрый
Оплата с
+ Платежный метод
Доступно до %s
Доступно от %s
+
+ - %d провайдер
+ - %d провайдера
+ - %d провайдеров
+ - %d провайдеров
+
+ Провайдеры
+ Ранее используемый
+ Рекомендуемый
Вы сможете продолжить транзакцию через сервис стороннего провайдера, %s
Переход к %s...
Наши сервисы недоступны в данной стране
@@ -765,8 +780,18 @@
Пожалуйста, укажите правильную страну, чтобы обеспечить точность доступных способов оплаты и услуг.
Настройки
You can close this screen and check the transaction status on the token details screen.
+
+ - до %d дня
+ - до %d дней
+ - до %d дней
+ - до %d дней
+
+ %s мин
+ Вы получите
Вы можете закрыть этот экран и проверить статус транзакции на экране информации о токене.
+ До
Через
+ Вы заплатите
Группы
По балансу
Упорядочить токены
@@ -854,6 +879,7 @@
Вы указали комиссию ниже рекомендуемой, это может привести к задержке исполнения вашей транзакции. Продолжить?
Причина: %1$s\nКод: %2$s
Транзакция не выполнена
+ Конвертировать в другой токен
Сумма
Вы можете установить комиссию за транзакцию, изменив значение в поле Satoshi per vByte.
Комиссия, которая будет взята за вашу транзакцию. Вы можете выставить своё собственное значение.
@@ -879,7 +905,7 @@
Проверьте своё интернет соединение
Информация о комиссии сети недоступна
Вы отправляете
- Из
+ Из %s
Лимит газа
Это максимальное количество газа, которое будет потрачено на выполнение транзакции или контракта. Лимит газа предотвращает неожиданные или неограниченные расходы при выполнении транзакции.
Цена газа
@@ -920,6 +946,7 @@
Получатель
Неверный адрес
Убедитесь, что вы отправляете средства на адрес кошелька %s. Ошибки могут привести к потере ваших токенов.
+ Убедитесь, что отправляете на адрес в сети %s, ошибки могут привести к потере средств.
Отправить
Мемо/ Код назначения - это код, разделяющий транзакции к общему получателю в сети криптовалют. Внимание: отсутствие мемо может привести к потере средств.
Memo / Destination Tag — это код, разделяющий транзакции, отправляемые одному и тому же получателю в криптовалютной сети.
@@ -948,10 +975,13 @@
Обмен и отправка
Продолжить с обменом? Это действие удалит предыдущие данные
Подтвердить конвертацию
+ Отправка любой другой валюты приведёт к её безвозвратной потере.
+ Выберите правильную сеть получателя
Выберите любой токен к получению. Ваш адресат получит ровно то, что вы выбрали — без лишних сложностей.
Будет получено
Получателю
Сумма к получению
+ К получению %s
Вы уверены, что хотите отменить конвертацию? Ваши предыдущие данные будут удалены.
Убрать конвертацию
Отправка с обменом
@@ -1026,7 +1056,7 @@
Чтобы начать стейкинг в TON, сначала осуществите исходящую транзакцию на любую сумму — это активирует ваш кошелек.
До 0.2 TON может потребоваться сверх сетевой комиссии для завершения транзакции. Неиспользованная часть будет возвращена.
Для выполнения операции требуется дополнительно 0.2 TON, помимо сетевой комиссии. Пожалуйста, пополните баланс.
- Зарезервировано 0.2 TON
+ Требуется резерв TON
Это действие закроет другие позиции или переведёт их в статус вывода средств в соответствии с правилами сети.
Статус позиций
Разблокируйте свои средства, чтобы вывести их из стейкинга. Разблокировка займёт %s.
@@ -1187,6 +1217,7 @@
Tangem Twin
Это действие необратимо. У вас не будет доступа к старому кошельку.
Приложите twin-карту с номером %s и не убирайте до окончания операции
+ Пожалуйста, попробуйте позже. Если проблема сохранится, обратитесь в поддержку.
Произошла ошибка. Код ошибки: %s. Попробуйте, пожалуйста, снова. Если проблема будет продолжать возникать — обратитесь в службу поддержки.
Используйте %s или отсканируйте карту/кольцо, чтобы получить доступ к своему кошельку
Соединение не удалось: это dApp использует Wallet Connect версии 1.0, которая не поддерживается. Убедитесь, что dApp поддерживает Wallet Connect версии 2.0 для успешного подключения.
diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml
index 33db0a745b..8ef3fe2fc2 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -134,6 +134,7 @@
Підтвердити
Підключення
Продовжити
+ Конвертувати
Копіювати
Скопіювати адресу
Створити
@@ -836,6 +837,7 @@
Ви вказали комісію нижче рекомендованої, це може спричинити затримку вашої транзакції. Продовжити?
Причина: %1$s\nКод: %2$s
Транзакція не завершена
+ Конвертувати в інший токен
Сума
Ви можете встановити розмір комісії за транзакцію, налаштувавши значення в полі Satoshi per vByte.
Комісія, яка буде стягнута за вашу транзакцію. Ви можете встановити власне значення.
@@ -861,7 +863,6 @@
Перевірте підключення до мережі
Інформація щодо комісії в мережі недоступна
Ви надсилаєте
- Із
Ліміт газу
Це максимальна кількість газу, яка буде витрачена на здійснення транзакції чи контракту. Ліміт газу запобігає несподіваним або необмеженим стягненням під час виконання транзакції.
Вартість газу
@@ -902,6 +903,7 @@
Одержувач
Недійсна адреса
Переконайтеся, що адреса гаманця одержувача знаходиться в мережі %s, щоб уникнути втрати ваших токенів
+ Переконайтеся, що ви надсилаєте на адресу в мережі %s. Помилка може призвести до втрати коштів.
Надіслати до
Memo/ Тег призначення — це унікальний ідентифікатор для розрізнення транзакцій, надісланих тому самому одержувачу в тій самій мережі. Застереження: відсутність тегу може призвести до втрати коштів.
Мемо / Destination Tag — це код, що розділяє транзакції до спільного одержувача в криптовалютній мережі.
@@ -926,7 +928,21 @@
Недопустима сума
Комісія перевищує залишок
Сума, що відправляється, перевищує залишок
+ Ви впевнені, що хочете змінити токен отримання? Це призведе до скидання раніше введених даних.
+ Зміна токену
+ Обмін та надсилання
+ Продовжити обмін? Це очистить ваші попередні дані.
+ Підтвердити конвертацію
+ Надсилання будь-якої іншої валюти призведе до її незворотної втрати.
+ Виберіть правильну мережу одержувача
Виберіть будь-який токен. Той, кому ви його надішлете, отримає саме те, що ви обрали — без жодних ускладнень.
+ Буде отримано
+ Отримувачу
+ Сума для отримання
+ До отримання %s
+ Ви впевнені, що хочете скасувати конвертацію? Ваші попередні дані будуть видалені.
+ Прибрати конвертацію
+ Надіслати з обміном
Трансакцію надіслано
Підготуйтеся до сканування кільця або картки, яку ви хочете налаштувати.
Забути гаманець
@@ -999,7 +1015,7 @@
Щоб почати стейкінг в TON, спочатку здійсніть вихідну транзакцію на будь-яку суму — це активує ваш гаманець.
До 0.2 TON може знадобитися додатково мережевої комісії для завершення транзакції. Невикористана частина буде повернута.
Для виконання операції потребується додатково 0.2 TON, крім мережевої комісії. Будь ласка, поповніть баланс.
- Зарезервовано 0.2 TON
+ Потрібен резерв TON
Ця дія закриє інші позиції або переведе їх у статус виведення, відповідно до правил мережі.
Статус позицій
Розблокуйте свої кошти, щоб вивести їх зі стейкінгу. Розблокування займе %s.
@@ -1159,6 +1175,7 @@
Tangem Twin
Ця дія є незворотною. Ви не матимете доступу до старого гаманця.
Прикладіть twin-картку з номером %s та не прибирайте її до завершення операції
+ Спробуйте ще раз пізніше. Якщо проблема залишиться, зверніться до служби підтримки.
Виникла помилка. Код помилки: %s. Спробуйте, будь ласка, знову. Якщо проблема знову виникає — зверніться до нашої служби підтримки.
Використовуйте %s або відскануйте картку/кільце, щоб отримати доступ до свого гаманця
Не вдалося встановити з\'єднання: Цей dApp використовує Wallet Connect версії 1.0, яка не підтримується. Будь ласка, переконайтеся, що dApp підтримує Wallet Connect версії 2.0 для успішного підключення.
@@ -1383,6 +1400,7 @@
Відомий ризик безпеки
Відкрийте програму Web3 та виберіть опцію WalletConnect
Запит від
+ Підписати все одно
Тип підпису
Для підключення dApp потрібна принаймні одна мережа
Вкажіть вибрані мережі
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index c3d240ace5..1faf5263e0 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -249,6 +249,7 @@
Finish
Free
Synchronize addresses
+ Get started
Go to provider
Go to token
Got it
@@ -1055,7 +1056,7 @@
Not a valid address
Ensure the receiving wallet address is on **the %s network** to avoid losing your tokens
send to %s
- Ensure you %s network address, as errors may result in lost transfers
+ Make sure you are sending to an address on the %s network. An error may result in the loss of funds.
Send to
A Memo/Destination Tag is a unique ID for differentiating transactions sent to the same recipient on the same network. Caution: Omitting a memo may lead to misplaced funds
Memo / Destination Tag is a code separating transactions to a shared recipient in a crypto network.
@@ -1092,7 +1093,7 @@
Recipient will receive
To recipient
Amount to receive
- Recipient get %s
+ Recipient gets %s
Are you sure you want to cancel the conversion? Your previous data will be cleared.
Remove Conversion
Send with swap
@@ -1168,7 +1169,7 @@
To start staking in TON, first make an outgoing transaction of any amount — this will activate your wallet.
Up to 0.2 TON may be required in addition to the network fee to complete the transaction. Any unused amount will be refunded.
0.2 TON is required to proceed with this operation, in addition to the network fee. Please top up your balance.
- 0.2 Ton Reserved
+ TON reserve required
This action will close other positions or switch them to withdrawal status, according to network rules.
Positions status
Unlock your money to withdraw it from staking process. Unlocking takes %s.
@@ -1693,7 +1694,7 @@
To avoid paying an increased commission the next time you top up your wallet, reduce the amount by %s XTZ
Give Approve
Something went wrong with your previous approval, so we need a new one. Choose how you’d like to proceed.
- Approve nedeed
+ Approve needed
The fee will be taken out, and your assets will be lent again.
To continue earning, approval is required.
Confirm approval
@@ -1704,16 +1705,12 @@
Current APY
My Funds
Your %1$s is now deposited in Aave and earning interest. You hold a%2$s token, which represents your balance and grows over time. When you top up, funds go to Aave to earn interest, minus a transaction fee.
- Read more
Active
- Stop earning
Earn
Total earnings
- Automatic
Transfers to Aave
Text explaining that your savings are located in the protocol
Explore Aave
- Explore default
Your %s is deposited in Aave
This is the current supply fee on %s. The live cost will be shown on the Receive Screen.
Current fee
@@ -1731,28 +1728,28 @@
Aave is trusted by millions worldwide. Total lended value is $10.4B.
Decentralized and self-custodial
By using service, you agree with provider
- Maximize your savings
+ Earn %s% yearly
Aave • Variable Interest Rate
Aave
Avg %s
Last year returns
Current interest rate is always variable and automatically computed by AAVE on-chain smart-contract based on real-time supply and demand.
+ Powered by
Interest rate is variable
When you top up, your funds will be automatically sent to Aave to start earning interest. A small fee equal to %s will be deducted to cover the transaction.
- Start earning
+ Start earning
Your %s will be supplied to Aave and will stay instantly available
See fee policy
- Network fee
Your next deposits will be automatically supplied to Aave.
- Start earning
+ Stop earning
Turning off will withdraw your funds from Aave, return them to %s in your wallet, and stop earning rewards.
The network fee will be deducted from the amount you withdraw.
- Stop earning
APY
Make your money work — earn interest on your balance.
Earning on your balance
Processing your deposit
- Earn %s% per year
+ Earn %1$s%% per year
+ Automatic
Deposit some %1$s %2$s to cover the network fee for transactions
Unable to cover %s fee
diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/analytics/OnrampAnalyticsEvent.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/analytics/OnrampAnalyticsEvent.kt
index cf54baee5b..7dd1e1a772 100644
--- a/domain/onramp/src/main/java/com/tangem/domain/onramp/analytics/OnrampAnalyticsEvent.kt
+++ b/domain/onramp/src/main/java/com/tangem/domain/onramp/analytics/OnrampAnalyticsEvent.kt
@@ -163,4 +163,35 @@ sealed class OnrampAnalyticsEvent(
ERROR_DESCRIPTION to errorDescription,
),
)
+
+ data class FastestBuyMethodClicked(
+ private val tokenSymbol: String,
+ private val providerName: String,
+ private val paymentMethod: String,
+ ) : OnrampAnalyticsEvent(
+ event = "Fastest Method Clicked",
+ params = mapOf(
+ TOKEN_PARAM to tokenSymbol,
+ PROVIDER to providerName,
+ PAYMENT_METHOD to paymentMethod,
+ ),
+ )
+
+ data class BestRateClicked(
+ private val tokenSymbol: String,
+ private val providerName: String,
+ private val paymentMethod: String,
+ ) : OnrampAnalyticsEvent(
+ event = "Best Rate Clicked",
+ params = mapOf(
+ TOKEN_PARAM to tokenSymbol,
+ PROVIDER to providerName,
+ PAYMENT_METHOD to paymentMethod,
+ ),
+ )
+
+ data object AllOffersClicked : OnrampAnalyticsEvent(
+ event = "Button - All Offers",
+ params = emptyMap(),
+ )
}
\ No newline at end of file
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersIntents.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersIntents.kt
index 4d2bbcec90..2f3739e450 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersIntents.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersIntents.kt
@@ -1,12 +1,13 @@
package com.tangem.features.onramp.alloffers.entity
import com.tangem.domain.onramp.model.OnrampProviderWithQuote
+import com.tangem.features.onramp.mainv2.entity.OnrampOfferAdvantagesUM
-interface AllOffersIntents {
+internal interface AllOffersIntents {
fun onPaymentMethodClicked(paymentMethodId: String)
- fun onBuyClick(quote: OnrampProviderWithQuote.Data)
+ fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM)
fun onBackClicked()
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersStateFactory.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersStateFactory.kt
index 67878d0738..351cd1a5aa 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersStateFactory.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/entity/AllOffersStateFactory.kt
@@ -1,10 +1,12 @@
package com.tangem.features.onramp.alloffers.entity
import com.tangem.common.ui.notifications.NotificationUM
+import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.format.bigdecimal.crypto
import com.tangem.core.ui.format.bigdecimal.format
import com.tangem.core.ui.format.bigdecimal.percent
+import com.tangem.domain.onramp.analytics.OnrampAnalyticsEvent
import com.tangem.domain.onramp.model.*
import com.tangem.domain.onramp.model.error.OnrampError
import com.tangem.features.onramp.mainv2.entity.OnrampOfferAdvantagesUM
@@ -16,6 +18,7 @@ import kotlinx.collections.immutable.toPersistentList
import java.math.BigDecimal
internal class AllOffersStateFactory(
+ private val analyticsEventHandler: AnalyticsEventHandler,
private val currentStateProvider: Provider,
private val allOffersIntents: AllOffersIntents,
) {
@@ -59,6 +62,7 @@ internal class AllOffersStateFactory(
fun getPaymentsState(): AllOffersStateUM {
return when (val currentState = currentStateProvider.invoke()) {
is AllOffersStateUM.Content -> {
+ analyticsEventHandler.send(OnrampAnalyticsEvent.PaymentMethodsScreenOpened)
currentState.copy(currentMethod = null)
}
AllOffersStateUM.Loading,
@@ -133,12 +137,13 @@ internal class AllOffersStateFactory(
},
onBuyClicked = {
allOffersIntents.onBuyClick(
- OnrampProviderWithQuote.Data(
+ quote = OnrampProviderWithQuote.Data(
provider = quote.provider,
paymentMethod = quote.paymentMethod,
toAmount = quote.toAmount,
fromAmount = quote.fromAmount,
),
+ onrampOfferAdvantagesUM = mapOfferAdvantagesDTOtoUM(offer.advantages),
)
},
),
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/model/AllOffersModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/model/AllOffersModel.kt
index 19e69d6696..bd6674ad34 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/model/AllOffersModel.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/alloffers/model/AllOffersModel.kt
@@ -11,6 +11,7 @@ import com.tangem.features.onramp.alloffers.AllOffersComponent
import com.tangem.features.onramp.alloffers.entity.AllOffersIntents
import com.tangem.features.onramp.alloffers.entity.AllOffersStateFactory
import com.tangem.features.onramp.alloffers.entity.AllOffersStateUM
+import com.tangem.features.onramp.mainv2.entity.OnrampOfferAdvantagesUM
import com.tangem.utils.Provider
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.Job
@@ -30,6 +31,7 @@ internal class AllOffersModel @Inject constructor(
private val stateFactory: AllOffersStateFactory by lazy(LazyThreadSafetyMode.NONE) {
AllOffersStateFactory(
+ analyticsEventHandler = analyticsEventHandler,
currentStateProvider = Provider { state.value },
allOffersIntents = this,
)
@@ -42,6 +44,8 @@ internal class AllOffersModel @Inject constructor(
init {
subscribeOnAllOffers()
+ analyticsEventHandler.send(OnrampAnalyticsEvent.PaymentMethodsScreenOpened)
+ analyticsEventHandler.send(OnrampAnalyticsEvent.AllOffersClicked)
}
fun dismiss() {
@@ -51,10 +55,13 @@ internal class AllOffersModel @Inject constructor(
override fun onPaymentMethodClicked(paymentMethodId: String) {
val contentState = state.value as? AllOffersStateUM.Content ?: return
val method = contentState.methods.firstOrNull { it.methodConfig.method.id == paymentMethodId } ?: return
+ analyticsEventHandler.send(
+ event = OnrampAnalyticsEvent.OnPaymentMethodChosen(paymentMethod = method.methodConfig.method.name),
+ )
_state.update { contentState.copy(currentMethod = method) }
}
- override fun onBuyClick(quote: OnrampProviderWithQuote.Data) {
+ override fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM) {
analyticsEventHandler.send(
OnrampAnalyticsEvent.OnBuyClick(
providerName = quote.provider.info.name,
@@ -62,6 +69,11 @@ internal class AllOffersModel @Inject constructor(
tokenSymbol = params.cryptoCurrency.symbol,
),
)
+ onrampOfferAdvantagesUM.toAnalyticsEvent(
+ cryptoCurrencySymbol = params.cryptoCurrency.symbol,
+ providerName = quote.provider.info.name,
+ paymentMethodName = quote.paymentMethod.name,
+ )?.let { analyticsEventHandler.send(it) }
params.openRedirectPage(quote)
}
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/OnrampIntents.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/OnrampIntents.kt
index 6ed094c0cb..5654a17174 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/OnrampIntents.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/OnrampIntents.kt
@@ -10,5 +10,4 @@ interface OnrampIntents {
fun openProviders()
fun onRefresh()
fun onLinkClick(link: String)
- fun onContinueClick()
}
\ No newline at end of file
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt
index f78daf8e79..71399a3ce4 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt
@@ -289,8 +289,6 @@ internal class OnrampMainComponentModel @Inject constructor(
override fun onLinkClick(link: String) = urlOpener.openUrl(link)
- override fun onContinueClick() = Unit
-
override fun onDestroy() {
modelScope.launch { clearOnrampCacheUseCase.invoke() }
quotesTaskScheduler.cancelTask()
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampOfferBlockUM.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampOfferBlockUM.kt
index 5e41b49346..54ea1f1451 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampOfferBlockUM.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampOfferBlockUM.kt
@@ -2,6 +2,7 @@ package com.tangem.features.onramp.mainv2.entity
import androidx.compose.runtime.Immutable
import com.tangem.core.ui.extensions.TextReference
+import com.tangem.domain.onramp.analytics.OnrampAnalyticsEvent
import com.tangem.domain.onramp.model.OnrampPaymentMethod
import kotlinx.collections.immutable.ImmutableList
@@ -43,7 +44,27 @@ internal enum class OnrampOfferCategoryUM {
}
internal enum class OnrampOfferAdvantagesUM {
- Default, BestRate, Fastest
+ Default, BestRate, Fastest;
+
+ fun toAnalyticsEvent(
+ cryptoCurrencySymbol: String,
+ providerName: String,
+ paymentMethodName: String,
+ ): OnrampAnalyticsEvent? {
+ return when (this) {
+ BestRate -> OnrampAnalyticsEvent.BestRateClicked(
+ tokenSymbol = cryptoCurrencySymbol,
+ providerName = providerName,
+ paymentMethod = paymentMethodName,
+ )
+ Fastest -> OnrampAnalyticsEvent.FastestBuyMethodClicked(
+ tokenSymbol = cryptoCurrencySymbol,
+ providerName = providerName,
+ paymentMethod = paymentMethodName,
+ )
+ Default -> null
+ }
+ }
}
internal data class OnrampAllOffersButtonConfig(
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampV2Intents.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampV2Intents.kt
new file mode 100644
index 0000000000..a9f65922cd
--- /dev/null
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/OnrampV2Intents.kt
@@ -0,0 +1,13 @@
+package com.tangem.features.onramp.mainv2.entity
+
+import com.tangem.domain.onramp.model.OnrampProviderWithQuote
+
+internal interface OnrampV2Intents {
+ fun onAmountValueChanged(value: String)
+ fun openSettings()
+ fun openCurrenciesList()
+ fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM)
+ fun openProviders()
+ fun onRefresh()
+ fun onContinueClick()
+}
\ No newline at end of file
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/converter/OnrampV2AmountFieldChangeConverter.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/converter/OnrampV2AmountFieldChangeConverter.kt
index e0947e34b5..ec94be047d 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/converter/OnrampV2AmountFieldChangeConverter.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/converter/OnrampV2AmountFieldChangeConverter.kt
@@ -8,7 +8,6 @@ import com.tangem.core.ui.format.bigdecimal.crypto
import com.tangem.core.ui.format.bigdecimal.format
import com.tangem.core.ui.utils.parseBigDecimalOrNull
import com.tangem.domain.models.currency.CryptoCurrency
-import com.tangem.features.onramp.main.entity.OnrampIntents
import com.tangem.features.onramp.mainv2.entity.*
import com.tangem.features.onramp.mainv2.entity.factory.OnrampAmountButtonUMStateFactory
import com.tangem.utils.Provider
@@ -18,7 +17,7 @@ import java.math.BigDecimal
internal class OnrampV2AmountFieldChangeConverter(
private val currentStateProvider: Provider,
private val onrampAmountButtonUMStateFactory: OnrampAmountButtonUMStateFactory,
- private val onrampIntents: OnrampIntents,
+ private val onrampIntents: OnrampV2Intents,
private val cryptoCurrency: CryptoCurrency,
) : Converter {
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampOffersStateFactory.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampOffersStateFactory.kt
index 377c5987d4..966893cab7 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampOffersStateFactory.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampOffersStateFactory.kt
@@ -7,7 +7,6 @@ import com.tangem.core.ui.format.bigdecimal.format
import com.tangem.core.ui.format.bigdecimal.percent
import com.tangem.domain.onramp.model.*
import com.tangem.features.onramp.impl.R
-import com.tangem.features.onramp.main.entity.OnrampIntents
import com.tangem.features.onramp.mainv2.entity.*
import com.tangem.utils.Provider
import com.tangem.utils.StringsSigns.MINUS
@@ -15,7 +14,7 @@ import kotlinx.collections.immutable.toPersistentList
internal class OnrampOffersStateFactory(
private val currentStateProvider: Provider,
- private val onrampIntents: OnrampIntents,
+ private val onrampIntents: OnrampV2Intents,
) {
fun getOnShowOffersState(offers: List): OnrampV2MainComponentUM {
@@ -65,6 +64,7 @@ internal class OnrampOffersStateFactory(
toAmount = currentQuote.toAmount,
fromAmount = currentQuote.fromAmount,
),
+ onrampOfferAdvantagesUM = mapOfferAdvantagesDTOtoUM(offer.advantages),
)
},
),
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2AmountStateFactory.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2AmountStateFactory.kt
index 3c7a477fd1..0e1dc10b5b 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2AmountStateFactory.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2AmountStateFactory.kt
@@ -15,7 +15,6 @@ import com.tangem.domain.onramp.model.OnrampQuote
import com.tangem.domain.onramp.model.error.OnrampError
import com.tangem.domain.tokens.model.AmountType
import com.tangem.features.onramp.impl.R
-import com.tangem.features.onramp.main.entity.OnrampIntents
import com.tangem.features.onramp.mainv2.entity.*
import com.tangem.features.onramp.mainv2.entity.converter.OnrampV2AmountFieldChangeConverter
import com.tangem.utils.Provider
@@ -24,7 +23,7 @@ import java.math.BigDecimal
internal class OnrampV2AmountStateFactory(
private val currentStateProvider: Provider,
private val analyticsEventHandler: AnalyticsEventHandler,
- private val onrampIntents: OnrampIntents,
+ private val onrampIntents: OnrampV2Intents,
private val cryptoCurrency: CryptoCurrency,
private val onrampAmountButtonUMStateFactory: OnrampAmountButtonUMStateFactory,
) {
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2StateFactory.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2StateFactory.kt
index 8e37235b44..e39a2078b2 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2StateFactory.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/entity/factory/OnrampV2StateFactory.kt
@@ -20,7 +20,6 @@ import com.tangem.domain.tokens.model.Amount
import com.tangem.domain.tokens.model.AmountType
import com.tangem.domain.tokens.model.convertToAmount
import com.tangem.features.onramp.impl.R
-import com.tangem.features.onramp.main.entity.OnrampIntents
import com.tangem.features.onramp.mainv2.entity.*
import com.tangem.utils.Provider
import java.math.BigDecimal
@@ -29,7 +28,7 @@ internal class OnrampV2StateFactory(
private val currentStateProvider: Provider,
private val onrampAmountButtonUMStateFactory: OnrampAmountButtonUMStateFactory,
private val cryptoCurrency: CryptoCurrency,
- private val onrampIntents: OnrampIntents,
+ private val onrampIntents: OnrampV2Intents,
) {
fun getInitialState(
diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/model/OnrampV2MainComponentModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/model/OnrampV2MainComponentModel.kt
index abead667d7..57cdbcf6b6 100644
--- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/model/OnrampV2MainComponentModel.kt
+++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/mainv2/model/OnrampV2MainComponentModel.kt
@@ -15,7 +15,6 @@ import com.tangem.domain.onramp.model.OnrampProviderWithQuote
import com.tangem.domain.onramp.model.OnrampQuote
import com.tangem.domain.onramp.model.error.OnrampError
import com.tangem.domain.wallets.usecase.GetWalletsUseCase
-import com.tangem.features.onramp.main.entity.OnrampIntents
import com.tangem.features.onramp.main.entity.OnrampLastUpdate
import com.tangem.features.onramp.mainv2.OnrampV2MainComponent
import com.tangem.features.onramp.mainv2.entity.*
@@ -48,7 +47,7 @@ internal class OnrampV2MainComponentModel @Inject constructor(
private val getOnrampOffersUseCase: GetOnrampOffersUseCase,
paramsContainer: ParamsContainer,
getWalletsUseCase: GetWalletsUseCase,
-) : Model(), OnrampIntents {
+) : Model(), OnrampV2Intents {
val params = paramsContainer.require()
@@ -126,7 +125,7 @@ internal class OnrampV2MainComponentModel @Inject constructor(
bottomSheetNavigation.activate(OnrampV2MainBottomSheetConfig.CurrenciesList)
}
- override fun onBuyClick(quote: OnrampProviderWithQuote.Data) {
+ override fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM) {
val currentContentState = state.value as? OnrampV2MainComponentUM.Content ?: return
analyticsEventHandler.send(
OnrampAnalyticsEvent.OnBuyClick(
@@ -135,6 +134,11 @@ internal class OnrampV2MainComponentModel @Inject constructor(
tokenSymbol = params.cryptoCurrency.symbol,
),
)
+ onrampOfferAdvantagesUM.toAnalyticsEvent(
+ cryptoCurrencySymbol = params.cryptoCurrency.symbol,
+ providerName = quote.provider.info.name,
+ paymentMethodName = quote.paymentMethod.name,
+ )?.let { analyticsEventHandler.send(it) }
params.openRedirectPage(quote)
}
@@ -159,10 +163,6 @@ internal class OnrampV2MainComponentModel @Inject constructor(
}
}
- override fun onLinkClick(link: String) {
- // TODO in [REDACTED_TASK_KEY] will be deleted
- }
-
override fun onContinueClick() {
val currentState = _state.value
if (currentState is OnrampV2MainComponentUM.Content) {