From 9fe23970c7a6e7f88e2bab88abe4e6346c732316 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Sun, 20 Sep 2026 02:40:48 +0200 Subject: [PATCH] V6.4.5 rc (#3639) * v6.4.5 Release candidate * Apply patches for BLE session, locktime prompt, and monero coincontrol on hww [skip ci] * include the fix for bluetooth prompt showing on app start * include the fix for bluetooth prompt showing on app start --- .../new-ui/changelog/text/changelog_ar.json | 2 +- .../new-ui/changelog/text/changelog_bg.json | 2 +- .../new-ui/changelog/text/changelog_cs.json | 2 +- .../new-ui/changelog/text/changelog_de.json | 2 +- .../new-ui/changelog/text/changelog_en.json | 10 +- .../new-ui/changelog/text/changelog_es.json | 2 +- .../new-ui/changelog/text/changelog_fa.json | 2 +- .../new-ui/changelog/text/changelog_fr.json | 2 +- .../new-ui/changelog/text/changelog_gn.json | 2 +- .../new-ui/changelog/text/changelog_ha.json | 2 +- .../new-ui/changelog/text/changelog_hi.json | 2 +- .../new-ui/changelog/text/changelog_hr.json | 2 +- .../new-ui/changelog/text/changelog_hy.json | 2 +- .../new-ui/changelog/text/changelog_id.json | 2 +- .../new-ui/changelog/text/changelog_it.json | 2 +- .../new-ui/changelog/text/changelog_ja.json | 2 +- .../new-ui/changelog/text/changelog_ko.json | 2 +- .../new-ui/changelog/text/changelog_my.json | 2 +- .../new-ui/changelog/text/changelog_nl.json | 2 +- .../new-ui/changelog/text/changelog_pl.json | 2 +- .../new-ui/changelog/text/changelog_pt.json | 2 +- .../new-ui/changelog/text/changelog_ru.json | 2 +- .../new-ui/changelog/text/changelog_th.json | 2 +- .../new-ui/changelog/text/changelog_tl.json | 2 +- .../new-ui/changelog/text/changelog_tr.json | 2 +- .../new-ui/changelog/text/changelog_uk.json | 2 +- .../new-ui/changelog/text/changelog_ur.json | 2 +- .../new-ui/changelog/text/changelog_vi.json | 2 +- .../new-ui/changelog/text/changelog_yo.json | 2 +- .../changelog/text/changelog_zh-cn.json | 2 +- cw_monero/lib/api/transaction_history.dart | 15 ++- cw_monero/lib/monero_wallet.dart | 66 ++++++++--- .../provider/exolix_exchange_provider.dart | 2 +- lib/new-ui/pages/send_page.dart | 19 ++++ .../proceed_on_device_message.dart | 21 +++- .../send_page/send_confirm_bottom_widget.dart | 9 +- .../trezor_connect_view_model.dart | 105 ++++++++++++++++-- .../wallet_hardware_restore_view_model.dart | 9 +- pubspec.lock | 16 +-- pubspec_base.yaml | 2 +- pubspec_overrides.yaml | 2 +- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 1 + res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fa.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_gn.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_hy.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_pt_BR.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_vi.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + scripts/android/app_env.sh | 8 +- scripts/ios/app_env.sh | 8 +- 74 files changed, 296 insertions(+), 85 deletions(-) diff --git a/assets/new-ui/changelog/text/changelog_ar.json b/assets/new-ui/changelog/text/changelog_ar.json index 83e71af67..9f045aab1 100644 --- a/assets/new-ui/changelog/text/changelog_ar.json +++ b/assets/new-ui/changelog/text/changelog_ar.json @@ -1 +1 @@ -[{"title":"تريزور أصلا لبيتكوين","description":"قم بإقران جهازك وتوقيع معاملات Bitcoin مباشرة في التطبيق"},{"title":"تحسينات Solana وNFTs","description":"أرسل Solana NFTs الخاصة بك، واحتفظ بالبطاقات المستوردة المحفوظة، واطلع في لمحة سريعة على تلك التي تحتوي عليها هذه المحفظة"},{"title":"تحسينات مزامنة مونيرو","description":"يستمر تقدم المزامنة في التحرك أثناء تسخين محفظتك، حتى تعرف دائمًا مكانها"},{"title":"إصلاحات الشوائب","description":"مزامنة جهات الاتصال، واختيار العقدة، وتسجيل الدخول إلى Cake Pay، والمزيد، تم سحقها جميعًا"}] \ No newline at end of file +[{"title":"تحسينات تريزور","description":"يمكنك الآن إدخال عبارة المرور الخاصة بك على جهاز Trezor نفسه"},{"title":"تحسينات الشراء/البيع","description":"شراء وبيع العملات المشفرة الخاصة بك بشكل أسهل وأكثر سلاسة"},{"title":"تحسينات مونيرو","description":"يستمر تقدم المزامنة في التحرك أثناء تسخين محفظتك، حتى تعرف دائمًا مكانها"},{"title":"إصلاحات الشوائب","description":"مزامنة جهات الاتصال، واختيار العقدة، وتسجيل الدخول إلى Cake Pay، والمزيد، تم سحقها جميعًا"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_bg.json b/assets/new-ui/changelog/text/changelog_bg.json index 751659dac..33f26dcfb 100644 --- a/assets/new-ui/changelog/text/changelog_bg.json +++ b/assets/new-ui/changelog/text/changelog_bg.json @@ -1 +1 @@ -[{"title":"Trezor първоначално за биткойн","description":"Сдвоете вашето устройство и подписвайте биткойн транзакции направо в приложението"},{"title":"Solana и подобрения на NFT","description":"Изпратете вашите Solana NFT, запазете импортираните и вижте с един поглед кои съхранява този портфейл"},{"title":"Подобрения в синхронизирането на Monero","description":"Прогресът на синхронизирането продължава да се движи, докато портфейлът ви загрява, така че винаги да знаете къде се намира"},{"title":"Поправки на грешки","description":"Синхронизиране на контакти, избор на възел, влизане в Cake Pay и други, всички смачкани"}] \ No newline at end of file +[{"title":"Подобрения на Trezor","description":"сега можете да въведете вашата парола на самото устройство Trezor"},{"title":"Подобрения за покупка/продаване","description":"Купувайте и продавайте вашата крипто по-лесно и по-гладко"},{"title":"Подобрения на Monero","description":"Прогресът на синхронизирането продължава да се движи, докато портфейлът ви загрява, така че винаги да знаете къде се намира"},{"title":"Поправки на грешки","description":"Синхронизиране на контакти, избор на възел, влизане в Cake Pay и други, всички смачкани"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_cs.json b/assets/new-ui/changelog/text/changelog_cs.json index f663d6d33..f199b9f9a 100644 --- a/assets/new-ui/changelog/text/changelog_cs.json +++ b/assets/new-ui/changelog/text/changelog_cs.json @@ -1 +1 @@ -[{"title":"Trezor nativně pro bitcoiny","description":"Spárujte své zařízení a podepište bitcoinové transakce přímo v aplikaci"},{"title":"Solana a vylepšení NFT","description":"Pošlete své Solana NFT, mějte importované uložené a na první pohled uvidíte, které z nich tato peněženka obsahuje"},{"title":"Vylepšení synchronizace Monero","description":"Zatímco se vaše peněženka zahřívá, postup synchronizace se neustále pohybuje, takže vždy víte, kde se nachází"},{"title":"Opravy chyb","description":"Synchronizace kontaktů, výběr uzlů, přihlášení do Cake Pay a další, vše zmačkané"}] \ No newline at end of file +[{"title":"Vylepšení Trezor","description":"nyní můžete zadat svou přístupovou frázi na samotném zařízení Trezor"},{"title":"Vylepšení nákupu/prodeje","description":"Nakupujte a prodávejte své kryptoměny snadněji a plynuleji"},{"title":"Vylepšení Monero","description":"Zatímco se vaše peněženka zahřívá, postup synchronizace se neustále pohybuje, takže vždy víte, kde se nachází"},{"title":"Opravy chyb","description":"Synchronizace kontaktů, výběr uzlů, přihlášení do Cake Pay a další, vše zmačkané"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_de.json b/assets/new-ui/changelog/text/changelog_de.json index c1e1ff3f4..2ae499bfb 100644 --- a/assets/new-ui/changelog/text/changelog_de.json +++ b/assets/new-ui/changelog/text/changelog_de.json @@ -1 +1 @@ -[{"title":"Trezor-Unterstützung für Bitcoin","description":"Verbinden Sie Ihr Gerät und signieren Sie Bitcoin-Transaktionen direkt in der App."},{"title":"Verbesserungen für Solana und NFTs","description":"Senden Sie Ihre Solana-NFTs, speichern Sie importierte NFTs dauerhaft und erkennen Sie auf einen Blick, welche NFTs sich in dieser Wallet befinden."},{"title":"Verbesserungen bei der Monero-Synchronisierung","description":"Der Synchronisierungsfortschritt wird weiterhin angezeigt, während Ihre Wallet initialisiert wird. So wissen Sie jederzeit, wie weit der Vorgang ist."},{"title":"Fehlerbehebungen","description":"Verbesserungen bei der Kontaktsynchronisierung, Knotenauswahl und Cake-Pay-Anmeldung sowie weitere Fehlerbehebungen."}] +[{"title":"Trezor-Verbesserungen","description":"Jetzt können Sie Ihre Passphrase auf dem Trezor-Gerät selbst eingeben"},{"title":"Verbesserungen beim Kauf/Verkauf","description":"Kaufen und verkaufen Sie Ihre Krypto einfacher und reibungsloser"},{"title":"Monero-Verbesserungen","description":"Der Synchronisierungsfortschritt läuft weiter, während sich Ihr Geldbeutel aufwärmt, sodass Sie immer wissen, wo er steht"},{"title":"Fehlerbehebungen","description":"Kontaktsynchronisierung, Knotenauswahl, Cake Pay-Anmeldung und mehr, alles gequetscht"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_en.json b/assets/new-ui/changelog/text/changelog_en.json index 8388cf1d0..d3ca89184 100644 --- a/assets/new-ui/changelog/text/changelog_en.json +++ b/assets/new-ui/changelog/text/changelog_en.json @@ -1,14 +1,14 @@ [ { - "title": "Trezor natively for Bitcoin", - "description": "Pair your device and sign Bitcoin transactions right in the app" + "title": "Trezor Enhancements", + "description": "now you can enter your passphrase on the Trezor device itself" }, { - "title": "Solana and NFTs Improvements", - "description": "Send your Solana NFTs, keep imported ones saved, and see at a glance which ones this wallet holds" + "title": "Buy/Sell improvements", + "description": "Buy and Sell your crypto easier and smoother" }, { - "title": "Monero sync improvements", + "title": "Monero improvements", "description": "Sync progress keeps moving while your wallet warms up, so you always know where it stands" }, { diff --git a/assets/new-ui/changelog/text/changelog_es.json b/assets/new-ui/changelog/text/changelog_es.json index 0732b13fb..a6ef294b4 100644 --- a/assets/new-ui/changelog/text/changelog_es.json +++ b/assets/new-ui/changelog/text/changelog_es.json @@ -1 +1 @@ -[{"title":"Trezor de forma nativa para Bitcoin","description":"Empareja tu dispositivo y firma transacciones de Bitcoin directamente en la aplicación"},{"title":"Mejoras en Solana y NFT","description":"Envíe sus NFT de Solana, guarde los importados y vea de un vistazo cuáles contiene esta billetera"},{"title":"Mejoras en la sincronización de Monero","description":"El progreso de la sincronización continúa mientras tu billetera se calienta, para que siempre sepas dónde se encuentra"},{"title":"Corrección de errores","description":"Sincronización de contactos, selección de nodos, inicio de sesión de Cake Pay y más, todo aplastado"}] \ No newline at end of file +[{"title":"Mejoras en Trezor","description":"ahora puede ingresar su contraseña en el dispositivo Trezor"},{"title":"Mejoras en Compra/Venta","description":"Compra y vende tus criptomonedas de forma más fácil y fluida"},{"title":"Mejoras en Monero","description":"El progreso de la sincronización continúa mientras tu billetera se calienta, para que siempre sepas dónde se encuentra"},{"title":"Corrección de errores","description":"Sincronización de contactos, selección de nodos, inicio de sesión de Cake Pay y más, todo aplastado"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_fa.json b/assets/new-ui/changelog/text/changelog_fa.json index 4ccdeaad1..387b9e725 100644 --- a/assets/new-ui/changelog/text/changelog_fa.json +++ b/assets/new-ui/changelog/text/changelog_fa.json @@ -1 +1 @@ -[{"title":"Trezor به صورت بومی برای بیت کوین","description":"دستگاه خود را جفت کنید و معاملات بیت کوین را مستقیماً در برنامه امضا کنید"},{"title":"بهبود سولانا و NFTs","description":"NFT های Solana خود را ارسال کنید، موارد وارداتی را ذخیره کنید و در یک نگاه ببینید که این کیف پول کدام یک را در خود جای می دهد."},{"title":"بهبود همگام سازی مونرو","description":"پیشرفت همگام‌سازی تا زمانی که کیف پول شما گرم می‌شود به حرکت خود ادامه می‌دهد، بنابراین همیشه می‌دانید کجا قرار دارد"},{"title":"رفع اشکال","description":"همگام‌سازی مخاطب، انتخاب گره، ورود به سیستم Cake Pay و موارد دیگر، همه له شده‌اند"}] \ No newline at end of file +[{"title":"بهبودهای ترزور","description":"اکنون می توانید عبارت عبور خود را در خود دستگاه Trezor وارد کنید"},{"title":"خرید/فروش بهبود","description":"ارز دیجیتال خود را راحت تر و روان تر بخرید و بفروشید"},{"title":"بهبودهای مونرو","description":"پیشرفت همگام‌سازی تا زمانی که کیف پول شما گرم می‌شود به حرکت خود ادامه می‌دهد، بنابراین همیشه می‌دانید کجا قرار دارد"},{"title":"رفع اشکال","description":"همگام‌سازی مخاطب، انتخاب گره، ورود به سیستم Cake Pay و موارد دیگر، همه له شده‌اند"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_fr.json b/assets/new-ui/changelog/text/changelog_fr.json index 6eb325e5d..e712afaaf 100644 --- a/assets/new-ui/changelog/text/changelog_fr.json +++ b/assets/new-ui/changelog/text/changelog_fr.json @@ -1 +1 @@ -[{"title":"Trezor nativement pour Bitcoin","description":"Associez votre appareil et signez des transactions Bitcoin directement dans l'application"},{"title":"Améliorations de Solana et des NFT","description":"Envoyez vos NFT Solana, conservez ceux importés et voyez en un coup d'œil lesquels contiennent ce portefeuille"},{"title":"Améliorations de la synchronisation Monero","description":"La progression de la synchronisation continue pendant que votre portefeuille se réchauffe, afin que vous sachiez toujours où il en est"},{"title":"Corrections de bugs","description":"Synchronisation des contacts, sélection des nœuds, connexion à Cake Pay et bien plus encore, le tout écrasé"}] \ No newline at end of file +[{"title":"Améliorations de Trezor","description":"vous pouvez maintenant saisir votre phrase secrète sur l'appareil Trezor lui-même"},{"title":"Améliorations d'achat/vente","description":"Achetez et vendez votre crypto plus facilement et plus facilement"},{"title":"Améliorations de Monero","description":"La progression de la synchronisation continue pendant que votre portefeuille se réchauffe, afin que vous sachiez toujours où il en est"},{"title":"Corrections de bugs","description":"Synchronisation des contacts, sélection des nœuds, connexion à Cake Pay et bien plus encore, le tout écrasé"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_gn.json b/assets/new-ui/changelog/text/changelog_gn.json index df6933ba6..68b2397a9 100644 --- a/assets/new-ui/changelog/text/changelog_gn.json +++ b/assets/new-ui/changelog/text/changelog_gn.json @@ -1 +1 @@ -[{"title":"Trezor nativamente Bitcoin-pe g̃uarã","description":"Embojoaju nde tembipuru ha efirma umi transacción Bitcoin rehegua pe app-pe voi"},{"title":"Solana ha NFTs Ñemyatyrõ","description":"Emondo nde NFT Solana, eñongatu umi ojeguerúva, ha ehecha peteĩ jesarekópe mávapa oguereko ko billetera"},{"title":"Monero sincronización ñemyatyrõ","description":"Progreso sincronización rehegua osegi omýi nde billetera oñembopiro’y aja, upéicha akóinte reikuaa moõpa oĩ"},{"title":"Umi mba’e’oka ñemyatyrõ","description":"Contacto ñembojoaju, nodo jeporavo, Cake Pay jeike ha hetave, opaite oñembotapykue"}] \ No newline at end of file +[{"title":"Trezor Ñembotuichave rehegua","description":"ko’áĝa ikatu emoinge ne ñe’ẽñemi Trezor tembipuru’ípe voi"},{"title":"Jogua/Ovende ñemyatyrõ","description":"Ejogua ha Evende nde cripto ndahasýi ha isãsove"},{"title":"Monero ñemyatyrõ","description":"Progreso sincronización rehegua omýi meme ne billetera oñembopiro’y aja, upéicha akóinte reikuaa moõpa oĩ"},{"title":"Umi mba’e’oka ñemyatyrõ","description":"Contacto ñembojoaju, nodo jeporavo, Cake Pay jeike ha hetave, opaite oñembotapykue"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_ha.json b/assets/new-ui/changelog/text/changelog_ha.json index ac90aaf7b..ef96a08d1 100644 --- a/assets/new-ui/changelog/text/changelog_ha.json +++ b/assets/new-ui/changelog/text/changelog_ha.json @@ -1 +1 @@ -[{"title":"Trezor na asali don Bitcoin","description":"Haɗa na'urarka kuma sanya hannu kan ma'amalar Bitcoin daidai a cikin ƙa'idar"},{"title":"Solana da NFTs Ingantawa","description":"Aika Solana NFT ɗinku, adana waɗanda aka shigo da su, sannan ku duba ɗaya daga cikin wallet ɗin."},{"title":"Monero sync inganta","description":"Ci gaban daidaitawa yana ci gaba da motsawa yayin da walat ɗin ku ke yin dumi, don haka koyaushe ku san inda yake tsaye"},{"title":"Gyaran kwaro","description":"Daidaita lamba, zaɓin kumburi, shigar da Biyan Kek da ƙari, duk an murƙushe"}] \ No newline at end of file +[{"title":"Trezor Enhancements","description":"yanzu zaku iya shigar da kalmar wucewar ku akan na'urar Trezor kanta"},{"title":"Sayi/sayar da haɓakawa","description":"Sayi da siyar da crypto ɗin ku cikin sauƙi da santsi"},{"title":"Monero ingantawa","description":"Ci gaban daidaitawa yana ci gaba da motsawa yayin da walat ɗin ku ke dumama, don haka koyaushe kuna san inda yake tsaye"},{"title":"Gyaran kwaro","description":"Daidaita lamba, zaɓin kumburi, shigar da Biyan Biyan Cake da ƙari, duk an murƙushe"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_hi.json b/assets/new-ui/changelog/text/changelog_hi.json index 25a54c5d7..cf8274b0d 100644 --- a/assets/new-ui/changelog/text/changelog_hi.json +++ b/assets/new-ui/changelog/text/changelog_hi.json @@ -1 +1 @@ -[{"title":"ट्रेज़ोर मूल रूप से बिटकॉइन के लिए है","description":"अपने डिवाइस को पेयर करें और ऐप में ही बिटकॉइन लेनदेन पर हस्ताक्षर करें"},{"title":"सोलाना और एनएफटी सुधार","description":"अपने सोलाना एनएफटी भेजें, आयातित एनएफटी को सहेज कर रखें और एक नज़र में देखें कि इस वॉलेट में कौन से एनएफटी हैं"},{"title":"मोनेरो सिंक में सुधार","description":"जब आपका बटुआ गर्म हो जाता है तो सिंक प्रगति चलती रहती है, इसलिए आप हमेशा जानते हैं कि यह कहां खड़ा है"},{"title":"कंप्यूटर प्रोग्राम या प्रणाली में बग को दूर करना","description":"संपर्क सिंकिंग, नोड चयन, केक पे साइन-इन और बहुत कुछ, सब खत्म हो गया"}] \ No newline at end of file +[{"title":"ट्रेज़ोर संवर्द्धन","description":"अब आप अपना पासफ़्रेज़ ट्रेज़ोर डिवाइस पर ही दर्ज कर सकते हैं"},{"title":"खरीदें/बेचें सुधार","description":"अपना क्रिप्टो खरीदना और बेचना आसान और आसान है"},{"title":"मोनेरो सुधार","description":"जब आपका बटुआ गर्म हो जाता है तो सिंक प्रगति चलती रहती है, इसलिए आप हमेशा जानते हैं कि यह कहां खड़ा है"},{"title":"कंप्यूटर प्रोग्राम या प्रणाली में बग को दूर करना","description":"संपर्क सिंकिंग, नोड चयन, केक पे साइन-इन और बहुत कुछ, सब खत्म हो गया"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_hr.json b/assets/new-ui/changelog/text/changelog_hr.json index 409f08526..3c0989973 100644 --- a/assets/new-ui/changelog/text/changelog_hr.json +++ b/assets/new-ui/changelog/text/changelog_hr.json @@ -1 +1 @@ -[{"title":"Trezor izvorno za Bitcoin","description":"Uparite svoj uređaj i potpisujte Bitcoin transakcije izravno u aplikaciji"},{"title":"Solana i poboljšanja NFT-a","description":"Pošaljite svoje Solana NFT-ove, sačuvajte uvezene i na prvi pogled pogledajte koje ovaj novčanik ima"},{"title":"Poboljšanja sinkronizacije Monera","description":"Napredak sinkronizacije nastavlja se kretati dok se vaš novčanik zagrijava, tako da uvijek znate gdje stoji"},{"title":"Ispravci grešaka","description":"Sinkronizacija kontakata, odabir čvora, Cake Pay prijava i više, sve zgnječeno"}] \ No newline at end of file +[{"title":"Trezor poboljšanja","description":"sada možete unijeti svoju šifru na samom Trezor uređaju"},{"title":"Poboljšanja kupnje/prodaje","description":"Kupujte i prodajte svoju kriptovalutu lakše i jednostavnije"},{"title":"Monero poboljšanja","description":"Napredak sinkronizacije nastavlja se kretati dok se vaš novčanik zagrijava, tako da uvijek znate gdje stoji"},{"title":"Ispravci grešaka","description":"Sinkronizacija kontakata, odabir čvora, Cake Pay prijava i više, sve zgnječeno"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_hy.json b/assets/new-ui/changelog/text/changelog_hy.json index 830d688fd..467cf92da 100644 --- a/assets/new-ui/changelog/text/changelog_hy.json +++ b/assets/new-ui/changelog/text/changelog_hy.json @@ -1 +1 @@ -[{"title":"Trezor բնիկ համար Bitcoin","description":"Զուգավորեք ձեր սարքը և ստորագրեք Bitcoin գործարքները հենց հավելվածում"},{"title":"Սոլանայի և NFT-ների բարելավումներ","description":"Ուղարկեք ձեր Solana NFT-ները, պահեք ներմուծվածները և մի հայացքով տեսեք, թե որոնք են պահում այս դրամապանակը"},{"title":"Monero-ի համաժամացման բարելավումներ","description":"Համաժամացման առաջընթացը շարունակվում է, մինչ ձեր դրամապանակը տաքանում է, այնպես որ դուք միշտ իմանաք, թե որտեղ է այն կանգնած"},{"title":"Սխալների շտկում","description":"Կոնտակտների համաժամացում, հանգույցների ընտրություն, Cake Pay-ի մուտք և ավելին, բոլորը սեղմված են"}] \ No newline at end of file +[{"title":"Trezor բարելավումներ","description":"այժմ դուք կարող եք մուտքագրել ձեր անցաբառը հենց Trezor սարքի վրա"},{"title":"Գնել/վաճառել բարելավումներ","description":"Գնեք և վաճառեք ձեր կրիպտոն ավելի հեշտ և հարթ"},{"title":"Monero բարելավումներ","description":"Համաժամացման առաջընթացը շարունակվում է, մինչ ձեր դրամապանակը տաքանում է, այնպես որ դուք միշտ իմանաք, թե որտեղ է այն կանգնած"},{"title":"Սխալների շտկում","description":"Կոնտակտների համաժամացում, հանգույցների ընտրություն, Cake Pay-ի մուտք և ավելին, բոլորը սեղմված են"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_id.json b/assets/new-ui/changelog/text/changelog_id.json index 13b8fe9e4..86d9771cf 100644 --- a/assets/new-ui/changelog/text/changelog_id.json +++ b/assets/new-ui/changelog/text/changelog_id.json @@ -1 +1 @@ -[{"title":"Trezor aslinya untuk Bitcoin","description":"Pasangkan perangkat Anda dan tanda tangani transaksi Bitcoin langsung di aplikasi"},{"title":"Peningkatan Solana dan NFT","description":"Kirim NFT Solana Anda, simpan NFT yang diimpor, dan lihat sekilas mana yang disimpan dalam dompet ini"},{"title":"Peningkatan sinkronisasi Monero","description":"Kemajuan sinkronisasi terus berjalan saat dompet Anda memanas, sehingga Anda selalu tahu di mana posisinya"},{"title":"Perbaikan bug","description":"Sinkronisasi kontak, pemilihan node, proses masuk Cake Pay, dan banyak lagi, semuanya terhenti"}] \ No newline at end of file +[{"title":"Peningkatan Trezor","description":"sekarang Anda dapat memasukkan frasa sandi Anda di perangkat Trezor itu sendiri"},{"title":"Peningkatan Beli/Jual","description":"Beli dan Jual kripto Anda lebih mudah dan lancar"},{"title":"Peningkatan Monero","description":"Kemajuan sinkronisasi terus berjalan saat dompet Anda memanas, sehingga Anda selalu tahu di mana posisinya"},{"title":"Perbaikan bug","description":"Sinkronisasi kontak, pemilihan node, proses masuk Cake Pay, dan banyak lagi, semuanya terhenti"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_it.json b/assets/new-ui/changelog/text/changelog_it.json index 7eb3c436e..dbf7cc9e0 100644 --- a/assets/new-ui/changelog/text/changelog_it.json +++ b/assets/new-ui/changelog/text/changelog_it.json @@ -1 +1 @@ -[{"title":"Trezor nativo per Bitcoin","description":"Accoppia il tuo dispositivo e firma le transazioni Bitcoin direttamente nell'app"},{"title":"Miglioramenti di Solana e NFT","description":"Invia i tuoi NFT Solana, mantieni salvati quelli importati e scopri a colpo d'occhio quali sono contenuti in questo portafoglio"},{"title":"Miglioramenti alla sincronizzazione di Monero","description":"I progressi della sincronizzazione continuano a muoversi mentre il tuo portafoglio si riscalda, così sai sempre a che punto è"},{"title":"Correzioni di bug","description":"Sincronizzazione dei contatti, selezione dei nodi, accesso a Cake Pay e altro ancora, tutto schiacciato"}] \ No newline at end of file +[{"title":"Miglioramenti di Trezor","description":"ora puoi inserire la tua passphrase sul dispositivo Trezor stesso"},{"title":"Acquista/vendi miglioramenti","description":"Acquista e vendi le tue criptovalute in modo più semplice e fluido"},{"title":"Miglioramenti di Monero","description":"I progressi della sincronizzazione continuano a muoversi mentre il tuo portafoglio si riscalda, così sai sempre a che punto è"},{"title":"Correzioni di bug","description":"Sincronizzazione dei contatti, selezione dei nodi, accesso a Cake Pay e altro ancora, tutto schiacciato"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_ja.json b/assets/new-ui/changelog/text/changelog_ja.json index ef26f06c6..1d09a081b 100644 --- a/assets/new-ui/changelog/text/changelog_ja.json +++ b/assets/new-ui/changelog/text/changelog_ja.json @@ -1 +1 @@ -[{"title":"Trezor はビットコインにネイティブ対応","description":"デバイスをペアリングして、アプリ内で直接ビットコイン取引に署名します"},{"title":"Solana と NFT の改善","description":"Solana NFT を送信し、インポートされた NFT を保存し、このウォレットにどの NFT が保持されているかを一目で確認できます"},{"title":"Monero 同期の改善","description":"ウォレットがウォームアップしている間も同期の進行状況は継続するため、ウォレットの状態を常に把握できます"},{"title":"バグ修正","description":"連絡先の同期、ノードの選択、Cake Pay のサインインなど、すべてが潰されています"}] \ No newline at end of file +[{"title":"Trezor の強化","description":"Trezor デバイス自体にパスフレーズを入力できるようになりました"},{"title":"売買の改善","description":"暗号通貨の売買をより簡単かつスムーズに"},{"title":"モネロの改善","description":"ウォレットがウォームアップしている間も同期の進行状況は継続するため、ウォレットの状態を常に把握できます"},{"title":"バグ修正","description":"連絡先の同期、ノードの選択、Cake Pay のサインインなど、すべてが潰されています"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_ko.json b/assets/new-ui/changelog/text/changelog_ko.json index f13e4f4a2..4f1f82827 100644 --- a/assets/new-ui/changelog/text/changelog_ko.json +++ b/assets/new-ui/changelog/text/changelog_ko.json @@ -1 +1 @@ -[{"title":"기본적으로 Bitcoin용 Trezor","description":"기기를 페어링하고 앱에서 바로 비트코인 ​​거래에 서명하세요."},{"title":"솔라나 및 NFT 개선","description":"솔라나 NFT를 보내고, 가져온 NFT를 저장하고, 이 지갑에 어떤 NFT가 들어 있는지 한눈에 확인하세요"},{"title":"모네로 동기화 개선","description":"지갑이 준비되는 동안 동기화 진행이 계속 진행되므로 항상 현재 상태를 알 수 있습니다."},{"title":"버그 수정","description":"연락처 동기화, 노드 선택, Cake Pay 로그인 등이 모두 중단되었습니다."}] \ No newline at end of file +[{"title":"Trezor 향상","description":"이제 Trezor 장치 자체에 암호를 입력할 수 있습니다"},{"title":"구매/판매 개선 사항","description":"암호화폐를 더 쉽고 원활하게 구매하고 판매하세요"},{"title":"모네로 개선","description":"지갑이 준비되는 동안 동기화 진행이 계속 진행되므로 항상 현재 상태를 알 수 있습니다."},{"title":"버그 수정","description":"연락처 동기화, 노드 선택, Cake Pay 로그인 등이 모두 중단되었습니다."}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_my.json b/assets/new-ui/changelog/text/changelog_my.json index 8342e6c1c..00238cd4b 100644 --- a/assets/new-ui/changelog/text/changelog_my.json +++ b/assets/new-ui/changelog/text/changelog_my.json @@ -1 +1 @@ -[{"title":"Bitcoin အတွက် မူရင်း Trezor","description":"သင့်စက်ကို တွဲချိတ်ပြီး အက်ပ်တွင် Bitcoin ငွေပေးငွေယူများကို လက်မှတ်ထိုးပါ။"},{"title":"Solana နှင့် NFTs တိုးတက်မှုများ","description":"သင်၏ Solana NFTs များကို ပေးပို့ပါ၊ တင်သွင်းထားသည့်အရာများကို သိမ်းဆည်းထားပါ၊ ဤပိုက်ဆံအိတ်တွင် မည်သည့်အရာများ ကိုင်ဆောင်ထားသည်ကို တစ်ချက်ကြည့်လိုက်ပါ။"},{"title":"Monero စင့်ခ်လုပ်ခြင်း တိုးတက်မှု","description":"သင့်ပိုက်ဆံအိတ် ပူနွေးလာချိန်တွင် စင့်ခ်လုပ်ဆောင်မှုသည် ဆက်လက်ရွေ့လျားနေသဖြင့် ၎င်းသည် မည်သည့်နေရာတွင် ရှိနေသည်ကို သင်အမြဲသိပါသည်။"},{"title":"ချွတ်ယွင်းချက်ပြင်ဆင်မှုများ","description":"အဆက်အသွယ်စင့်ခ်လုပ်ခြင်း၊ node ရွေးချယ်ခြင်း၊ Cake Pay လက်မှတ်ထိုးဝင်ခြင်းနှင့် အခြားအရာများအားလုံးကို ဖြိုခွဲလိုက်ပါပြီ။"}] \ No newline at end of file +[{"title":"Trezor မြှင့်တင်မှုများ","description":"ယခု သင်သည် Trezor စက်တွင် သင်၏ စကားဝှက်ကို ထည့်သွင်းနိုင်ပါပြီ။"},{"title":"တိုးတက်မှုများကို ဝယ်/ရောင်း","description":"သင်၏ crypto ကိုပိုမိုလွယ်ကူချောမွေ့စွာဝယ်ရောင်း"},{"title":"Monero တိုးတက်မှုများ","description":"သင့်ပိုက်ဆံအိတ် ပူနွေးလာချိန်တွင် စင့်ခ်လုပ်ဆောင်မှုသည် ဆက်လက်ရွေ့လျားနေသဖြင့် ၎င်းသည် မည်သည့်နေရာတွင် ရှိနေသည်ကို သင်အမြဲသိပါသည်။"},{"title":"ချွတ်ယွင်းချက်ပြင်ဆင်မှုများ","description":"အဆက်အသွယ်စင့်ခ်လုပ်ခြင်း၊ node ရွေးချယ်ခြင်း၊ Cake Pay လက်မှတ်ထိုးဝင်ခြင်းနှင့် အခြားအရာများအားလုံးကို ဖြိုခွဲလိုက်ပါပြီ။"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_nl.json b/assets/new-ui/changelog/text/changelog_nl.json index 95d0958b5..dd112c0f0 100644 --- a/assets/new-ui/changelog/text/changelog_nl.json +++ b/assets/new-ui/changelog/text/changelog_nl.json @@ -1 +1 @@ -[{"title":"Trezor oorspronkelijk voor Bitcoin","description":"Koppel uw apparaat en onderteken Bitcoin-transacties rechtstreeks in de app"},{"title":"Verbeteringen aan Solana en NFT's","description":"Verstuur uw Solana NFT's, bewaar geïmporteerde NFT's en zie in één oogopslag welke deze portemonnee bevat"},{"title":"Verbeteringen voor de synchronisatie van Monero","description":"De voortgang van de synchronisatie blijft in beweging terwijl uw portemonnee opwarmt, zodat u altijd weet waar hij aan toe is"},{"title":"Bugfixes","description":"Contactsynchronisatie, knooppuntselectie, aanmelden bij Cake Pay en meer, allemaal platgedrukt"}] \ No newline at end of file +[{"title":"Trezor-verbeteringen","description":"nu kunt u uw wachtwoordzin invoeren op het Trezor-apparaat zelf"},{"title":"Koop/verkoop-verbeteringen","description":"Koop en verkoop uw crypto eenvoudiger en soepeler"},{"title":"Monero-verbeteringen","description":"De voortgang van de synchronisatie blijft in beweging terwijl uw portemonnee opwarmt, zodat u altijd weet waar hij aan toe is"},{"title":"Bugfixes","description":"Contactsynchronisatie, knooppuntselectie, aanmelden bij Cake Pay en meer, allemaal platgedrukt"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_pl.json b/assets/new-ui/changelog/text/changelog_pl.json index 0a169bb8a..31cd22e31 100644 --- a/assets/new-ui/changelog/text/changelog_pl.json +++ b/assets/new-ui/changelog/text/changelog_pl.json @@ -1 +1 @@ -[{"title":"Trezor natywnie dla Bitcoin","description":"Sparuj swoje urządzenie i podpisuj transakcje Bitcoin bezpośrednio w aplikacji"},{"title":"Ulepszenia Solany i NFT","description":"Wysyłaj swoje Solana NFT, przechowuj zaimportowane i od razu zobacz, które z nich przechowuje ten portfel"},{"title":"Ulepszenia synchronizacji Monero","description":"Postęp synchronizacji stale się zmienia, podczas gdy Twój portfel się nagrzewa, więc zawsze wiesz, gdzie się znajduje"},{"title":"Poprawki błędów","description":"Synchronizacja kontaktów, wybór węzła, logowanie do Cake Pay i wiele więcej – wszystko to zmiażdżone"}] \ No newline at end of file +[{"title":"Ulepszenia Trezora","description":"teraz możesz wprowadzić hasło na samym urządzeniu Trezor"},{"title":"Kupuj/sprzedawaj ulepszenia","description":"Kupuj i sprzedawaj swoje kryptowaluty łatwiej i płynniej"},{"title":"Ulepszenia Monero","description":"Postęp synchronizacji stale się zmienia, podczas gdy Twój portfel się nagrzewa, więc zawsze wiesz, gdzie się znajduje"},{"title":"Poprawki błędów","description":"Synchronizacja kontaktów, wybór węzła, logowanie do Cake Pay i wiele więcej – wszystko to zmiażdżone"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_pt.json b/assets/new-ui/changelog/text/changelog_pt.json index 43f728578..32296ab0a 100644 --- a/assets/new-ui/changelog/text/changelog_pt.json +++ b/assets/new-ui/changelog/text/changelog_pt.json @@ -1 +1 @@ -[{"title":"Trezor nativamente para Bitcoin","description":"Emparelhe seu dispositivo e assine transações Bitcoin diretamente no aplicativo"},{"title":"Melhorias em Solana e NFTs","description":"Envie seus NFTs Solana, mantenha salvos os importados e veja rapidamente quais esta carteira contém"},{"title":"Melhorias na sincronização do Monero","description":"O progresso da sincronização continua avançando enquanto sua carteira aquece, para que você sempre saiba onde ela está"},{"title":"Correções de bugs","description":"Sincronização de contatos, seleção de nós, login no Cake Pay e muito mais, tudo esmagado"}] \ No newline at end of file +[{"title":"Melhorias na Trezor","description":"agora você pode inserir sua senha no próprio dispositivo Trezor"},{"title":"Melhorias de compra/venda","description":"Compre e venda sua criptografia de maneira mais fácil e suave"},{"title":"Melhorias Monero","description":"O progresso da sincronização continua avançando enquanto sua carteira aquece, para que você sempre saiba onde ela está"},{"title":"Correções de bugs","description":"Sincronização de contatos, seleção de nós, login no Cake Pay e muito mais, tudo esmagado"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_ru.json b/assets/new-ui/changelog/text/changelog_ru.json index d1a209266..8fcc0e276 100644 --- a/assets/new-ui/changelog/text/changelog_ru.json +++ b/assets/new-ui/changelog/text/changelog_ru.json @@ -1 +1 @@ -[{"title":"Trezor изначально для биткойнов","description":"Подключите свое устройство и подпишите транзакции Bitcoin прямо в приложении."},{"title":"Улучшения Соланы и NFT","description":"Отправляйте свои NFT Solana, сохраняйте импортированные и сразу смотрите, какие из них хранятся в этом кошельке."},{"title":"Улучшения синхронизации Monero","description":"Процесс синхронизации продолжается, пока ваш кошелек нагревается, поэтому вы всегда знаете, где он находится."},{"title":"Исправления ошибок","description":"Синхронизация контактов, выбор узла, вход в систему Cake Pay и многое другое — все раздавлено"}] \ No newline at end of file +[{"title":"Улучшения Трезора","description":"теперь вы можете ввести парольную фразу на самом устройстве Trezor"},{"title":"Купить/продать улучшения","description":"Покупайте и продавайте свою криптовалюту проще и удобнее"},{"title":"Улучшения Монеро","description":"Процесс синхронизации продолжается, пока ваш кошелек нагревается, поэтому вы всегда знаете, где он находится."},{"title":"Исправления ошибок","description":"Синхронизация контактов, выбор узла, вход в систему Cake Pay и многое другое — все раздавлено"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_th.json b/assets/new-ui/changelog/text/changelog_th.json index e47bfd8a1..9df174a21 100644 --- a/assets/new-ui/changelog/text/changelog_th.json +++ b/assets/new-ui/changelog/text/changelog_th.json @@ -1 +1 @@ -[{"title":"Trezor โดยกำเนิดสำหรับ Bitcoin","description":"จับคู่อุปกรณ์ของคุณและลงนามธุรกรรม Bitcoin ในแอป"},{"title":"การปรับปรุง Solana และ NFT","description":"ส่ง Solana NFT ของคุณ เก็บรายการที่นำเข้าบันทึกไว้ และดูได้อย่างรวดเร็วว่ากระเป๋าสตางค์นี้เก็บรายการใดบ้าง"},{"title":"การปรับปรุงการซิงค์ Monero","description":"ความคืบหน้าในการซิงค์จะดำเนินต่อไปในขณะที่กระเป๋าเงินของคุณอุ่นขึ้น ดังนั้นคุณจะรู้อยู่เสมอว่ามันอยู่ที่ไหน"},{"title":"แก้ไขข้อบกพร่อง","description":"การซิงค์ผู้ติดต่อ การเลือกโหนด การลงชื่อเข้าใช้ Cake Pay และอื่นๆ ทั้งหมดถูกแบน"}] \ No newline at end of file +[{"title":"การปรับปรุง Trezor","description":"ตอนนี้คุณสามารถป้อนข้อความรหัสผ่านของคุณบนอุปกรณ์ Trezor ได้แล้ว"},{"title":"การปรับปรุงการซื้อ / ขาย","description":"ซื้อและขาย crypto ของคุณง่ายขึ้นและราบรื่นยิ่งขึ้น"},{"title":"การปรับปรุงโมเนโร","description":"ความคืบหน้าในการซิงค์จะดำเนินต่อไปในขณะที่กระเป๋าเงินของคุณอุ่นขึ้น ดังนั้นคุณจะรู้อยู่เสมอว่ามันอยู่ที่ไหน"},{"title":"แก้ไขข้อบกพร่อง","description":"การซิงค์ผู้ติดต่อ การเลือกโหนด การลงชื่อเข้าใช้ Cake Pay และอื่นๆ ทั้งหมดถูกแบน"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_tl.json b/assets/new-ui/changelog/text/changelog_tl.json index e1f62390e..8f2d852b6 100644 --- a/assets/new-ui/changelog/text/changelog_tl.json +++ b/assets/new-ui/changelog/text/changelog_tl.json @@ -1 +1 @@ -[{"title":"Trezor natively para sa Bitcoin","description":"Ipares ang iyong device at lagdaan ang mga transaksyon sa Bitcoin sa app mismo"},{"title":"Mga Pagpapabuti ng Solana at NFT","description":"Ipadala ang iyong mga Solana NFT, panatilihing naka-save ang mga na-import, at tingnan sa isang sulyap kung alin ang hawak ng wallet na ito"},{"title":"Mga pagpapabuti sa pag-sync ng Monero","description":"Patuloy na gumagalaw ang pag-unlad ng pag-sync habang umiinit ang iyong wallet, para lagi mong alam kung saan ito nakatayo"},{"title":"Mga pag-aayos ng bug","description":"Ang pag-sync ng contact, pagpili ng node, pag-sign in sa Cake Pay at higit pa, lahat ay lapirat"}] \ No newline at end of file +[{"title":"Mga Pagpapahusay ng Trezor","description":"maaari mo na ngayong ilagay ang iyong passphrase sa mismong Trezor device"},{"title":"Bumili/Magbenta ng mga pagpapahusay","description":"Bilhin at Ibenta ang iyong crypto nang mas madali at mas maayos"},{"title":"Mga pagpapabuti ng Monero","description":"Patuloy na gumagalaw ang pag-unlad ng pag-sync habang umiinit ang iyong wallet, para lagi mong alam kung saan ito nakatayo"},{"title":"Mga pag-aayos ng bug","description":"Ang pag-sync ng contact, pagpili ng node, pag-sign in sa Cake Pay at higit pa, lahat ay lapirat"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_tr.json b/assets/new-ui/changelog/text/changelog_tr.json index 1bcf4cabf..7383dcaf2 100644 --- a/assets/new-ui/changelog/text/changelog_tr.json +++ b/assets/new-ui/changelog/text/changelog_tr.json @@ -1 +1 @@ -[{"title":"Bitcoin için yerel olarak Trezor","description":"Cihazınızı eşleştirin ve Bitcoin işlemlerini doğrudan uygulamada imzalayın"},{"title":"Solana ve NFT İyileştirmeleri","description":"Solana NFT'lerinizi gönderin, içe aktarılanları saklayın ve bu cüzdanda hangilerinin bulunduğunu bir bakışta görün"},{"title":"Monero senkronizasyon iyileştirmeleri","description":"Cüzdanınız ısınırken senkronizasyon ilerlemesi devam eder, böylece nerede olduğunu her zaman bilirsiniz"},{"title":"Hata düzeltmeleri","description":"Kişi senkronizasyonu, düğüm seçimi, Cake Pay'de oturum açma ve daha fazlası, hepsi engellendi"}] \ No newline at end of file +[{"title":"Trezor Geliştirmeleri","description":"artık parolanızı Trezor cihazına girebilirsiniz"},{"title":"Alım/Satış iyileştirmeleri","description":"Kriptonuzu daha kolay ve sorunsuz bir şekilde alıp satabilirsiniz"},{"title":"Monero iyileştirmeleri","description":"Cüzdanınız ısınırken senkronizasyon ilerlemesi devam eder, böylece nerede olduğunu her zaman bilirsiniz"},{"title":"Hata düzeltmeleri","description":"Kişi senkronizasyonu, düğüm seçimi, Cake Pay'de oturum açma ve daha fazlası, hepsi engellendi"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_uk.json b/assets/new-ui/changelog/text/changelog_uk.json index 213dc57c7..8cdf95b79 100644 --- a/assets/new-ui/changelog/text/changelog_uk.json +++ b/assets/new-ui/changelog/text/changelog_uk.json @@ -1 +1 @@ -[{"title":"Trezor спочатку для Bitcoin","description":"Підключіть свій пристрій і підписуйте транзакції Bitcoin прямо в додатку"},{"title":"Покращення Solana та NFT","description":"Надсилайте свої NFT Solana, зберігайте імпортовані та одразу дивіться, які з них зберігає цей гаманець"},{"title":"Покращення синхронізації Monero","description":"Процес синхронізації продовжується, поки ваш гаманець розігрівається, тож ви завжди знаєте, де він стоїть"},{"title":"Виправлення помилок","description":"Синхронізація контактів, вибір вузла, вхід у систему Cake Pay тощо – усе зіпсовано"}] \ No newline at end of file +[{"title":"Покращення Trezor","description":"тепер ви можете ввести свою парольну фразу на самому пристрої Trezor"},{"title":"Купуйте/Продавайте покращення","description":"Купуйте та продавайте свою криптовалюту простіше та плавніше"},{"title":"Покращення Monero","description":"Процес синхронізації продовжується, поки ваш гаманець розігрівається, тож ви завжди знаєте, де він стоїть"},{"title":"Виправлення помилок","description":"Синхронізація контактів, вибір вузла, вхід у систему Cake Pay тощо – усе зіпсовано"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_ur.json b/assets/new-ui/changelog/text/changelog_ur.json index b30f7878f..df5248ca9 100644 --- a/assets/new-ui/changelog/text/changelog_ur.json +++ b/assets/new-ui/changelog/text/changelog_ur.json @@ -1 +1 @@ -[{"title":"Trezor مقامی طور پر Bitcoin کے لیے","description":"اپنے آلے کو جوڑیں اور ایپ میں ہی بٹ کوائن کے لین دین پر دستخط کریں۔"},{"title":"سولانا اور NFTs میں بہتری","description":"اپنے سولانا NFTs بھیجیں، درآمد شدہ کو محفوظ رکھیں، اور ایک نظر میں دیکھیں کہ اس پرس میں کون سا ہے"},{"title":"Monero مطابقت پذیری میں بہتری","description":"آپ کے بٹوے کے گرم ہونے کے دوران مطابقت پذیری کی پیشرفت جاری رہتی ہے، لہذا آپ کو ہمیشہ معلوم ہوتا ہے کہ یہ کہاں کھڑا ہے۔"},{"title":"بگ کی اصلاحات","description":"رابطہ کی مطابقت پذیری، نوڈ کا انتخاب، کیک پے سائن ان اور بہت کچھ، سب کو کچل دیا گیا۔"}] \ No newline at end of file +[{"title":"Trezor اضافہ","description":"اب آپ Trezor ڈیوائس پر ہی اپنا پاس فریز درج کر سکتے ہیں۔"},{"title":"خرید/فروخت میں بہتری","description":"اپنے کریپٹو کو آسان اور ہموار خریدیں اور بیچیں۔"},{"title":"مونیرو میں بہتری","description":"آپ کے بٹوے کے گرم ہونے کے دوران مطابقت پذیری کی پیشرفت جاری رہتی ہے، لہذا آپ کو ہمیشہ معلوم ہوتا ہے کہ یہ کہاں کھڑا ہے۔"},{"title":"بگ کی اصلاحات","description":"رابطہ کی مطابقت پذیری، نوڈ کا انتخاب، کیک پے سائن ان اور بہت کچھ، سب کو کچل دیا گیا۔"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_vi.json b/assets/new-ui/changelog/text/changelog_vi.json index 9a001f2ab..b1cd40a51 100644 --- a/assets/new-ui/changelog/text/changelog_vi.json +++ b/assets/new-ui/changelog/text/changelog_vi.json @@ -1 +1 @@ -[{"title":"Trezor vốn dành cho Bitcoin","description":"Ghép nối thiết bị của bạn và ký các giao dịch Bitcoin ngay trong ứng dụng"},{"title":"Cải tiến Solana và NFT","description":"Gửi NFT Solana của bạn, lưu những cái đã nhập và xem nhanh những cái nào trong ví này chứa"},{"title":"Cải tiến đồng bộ hóa Monero","description":"Tiến trình đồng bộ hóa tiếp tục di chuyển trong khi ví của bạn ấm lên, vì vậy bạn luôn biết vị trí của nó"},{"title":"Sửa lỗi","description":"Đồng bộ hóa liên hệ, chọn nút, đăng nhập Cake Pay và hơn thế nữa, tất cả đều bị nén"}] \ No newline at end of file +[{"title":"Cải tiến Trezor","description":"bây giờ bạn có thể nhập cụm mật khẩu của mình trên chính thiết bị Trezor"},{"title":"Cải tiến Mua/Bán","description":"Mua và bán tiền điện tử của bạn dễ dàng và mượt mà hơn"},{"title":"Cải tiến Monero","description":"Tiến trình đồng bộ hóa tiếp tục di chuyển trong khi ví của bạn ấm lên, vì vậy bạn luôn biết vị trí của nó"},{"title":"Sửa lỗi","description":"Đồng bộ hóa liên hệ, chọn nút, đăng nhập Cake Pay và hơn thế nữa, tất cả đều bị nén"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_yo.json b/assets/new-ui/changelog/text/changelog_yo.json index 2d1d0c023..d179c72d5 100644 --- a/assets/new-ui/changelog/text/changelog_yo.json +++ b/assets/new-ui/changelog/text/changelog_yo.json @@ -1 +1 @@ -[{"title":"Trezor abinibi fun Bitcoin","description":"So ẹrọ rẹ pọ ki o forukọsilẹ awọn iṣowo Bitcoin ni ọtun ninu ohun elo naa"},{"title":"Solana ati NFTs Awọn ilọsiwaju","description":"Firanṣẹ awọn NFT Solana rẹ, tọju awọn ti a ko wọle si, ki o wo ni iwo kan kini awọn ti apamọwọ yii mu"},{"title":"Monero ìsiṣẹpọ","description":"Ilọsiwaju mimuṣiṣẹpọ n tẹsiwaju lakoko ti apamọwọ rẹ n gbona, nitorinaa o mọ ibiti o duro nigbagbogbo"},{"title":"Awọn atunṣe kokoro","description":"Imuṣiṣẹpọ olubasọrọ, yiyan ipade, Wọle isanwo Cake Pay ati diẹ sii, gbogbo wọn ti fọ"}] \ No newline at end of file +[{"title":"Trezor Awọn ilọsiwaju","description":"bayi o le tẹ ọrọ igbaniwọle rẹ sii lori ẹrọ Trezor funrararẹ"},{"title":"Ra / Ta awọn ilọsiwaju","description":"Ra ati Ta crypto rẹ rọrun ati irọrun"},{"title":"Monero awọn ilọsiwaju","description":"Ilọsiwaju mimuṣiṣẹpọ n tẹsiwaju lakoko ti apamọwọ rẹ n gbona, nitorinaa o mọ ibiti o duro nigbagbogbo"},{"title":"Awọn atunṣe kokoro","description":"Imuṣiṣẹpọ olubasọrọ, yiyan ipade, Wiwọle Pay Cake Pay ati diẹ sii, gbogbo wọn ti fọ"}] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/changelog_zh-cn.json b/assets/new-ui/changelog/text/changelog_zh-cn.json index dc0285390..eaf22596d 100644 --- a/assets/new-ui/changelog/text/changelog_zh-cn.json +++ b/assets/new-ui/changelog/text/changelog_zh-cn.json @@ -1 +1 @@ -[{"title":"Trezor 原生适用于比特币","description":"配对您的设备并直接在应用程序中签署比特币交易"},{"title":"Solana 和 NFT 的改进","description":"发送您的 Solana NFT,保存导入的 NFT,并一目了然地查看该钱包包含哪些 NFT"},{"title":"门罗币同步改进","description":"当您的钱包热身时,同步进度会不断变化,因此您始终知道进展情况"},{"title":"错误修复","description":"联系人同步、节点选择、Cake Pay 登录等全部被压缩"}] \ No newline at end of file +[{"title":"Trezor 增强功能","description":"现在您可以在 Trezor 设备上输入您的密码"},{"title":"购买/销售改进","description":"购买和出售您的加密货币更轻松、更顺畅"},{"title":"门罗币改进","description":"当您的钱包热身时,同步进度会不断变化,因此您始终知道进展情况"},{"title":"错误修复","description":"联系人同步、节点选择、Cake Pay 登录等全部被压缩"}] \ No newline at end of file diff --git a/cw_monero/lib/api/transaction_history.dart b/cw_monero/lib/api/transaction_history.dart index 16bfa1e96..7c4ffc36e 100644 --- a/cw_monero/lib/api/transaction_history.dart +++ b/cw_monero/lib/api/transaction_history.dart @@ -132,12 +132,15 @@ Future getTransaction(String txId) async { return txCache[currentWallet!.ffiAddress()]![txId]!; } await txHistoryMutex.acquire(); - final tx = txhistory!.transactionById(txId); - final txDart = Transaction(txInfo: tx); - txCache[currentWallet!.ffiAddress()] ??= {}; - txCache[currentWallet!.ffiAddress()]![txId] = txDart; - txHistoryMutex.release(); - return txDart; + try { + final tx = txhistory!.transactionById(txId); + final txDart = Transaction(txInfo: tx); + txCache[currentWallet!.ffiAddress()] ??= {}; + txCache[currentWallet!.ffiAddress()]![txId] = txDart; + return txDart; + } finally { + txHistoryMutex.release(); + } } Future createTransactionSync( diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 67e267443..2d932524a 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -648,11 +648,19 @@ abstract class MoneroWalletBase await walletInfo.save(); } - Future updateUnspent() async { + Future? _updateUnspentInFlight; + + /// Concurrent callers share one run: two runs at once work on the same [unspentCoins] list, and + /// the clean up of the one then deletes the coin infos of the other. + Future updateUnspent() => _updateUnspentInFlight ??= + _updateUnspent().whenComplete(() => _updateUnspentInFlight = null); + + Future _updateUnspent() async { try { refreshCoins(walletAddresses.account!.id); - unspentCoins.clear(); + // Collected separately, so nobody ever sees a half filled list + final unspentCoins = []; final coinCount = await countOfCoins(); for (var i = 0; i < coinCount; i++) { @@ -670,12 +678,21 @@ abstract class MoneroWalletBase ); // TODO: double-check the logic here if (unspent.hash.isNotEmpty) { - final tx = await transaction_history.getTransaction(unspent.hash); - unspent.isChange = tx.isSpend == true; + try { + final tx = await transaction_history.getTransaction(unspent.hash); + unspent.isChange = tx.isSpend == true; + } catch (e) { + // The transaction may not be in the (not yet refreshed) history, that must not + // keep the output, and all the ones after it, out of coin control. + printV("isChange lookup failed for ${unspent.hash}: $e"); + } } unspentCoins.add(unspent); } } + this.unspentCoins + ..clear() + ..addAll(unspentCoins); if (unspentCoinsInfo.isEmpty) { unspentCoins.forEach((coin) => _addCoinInfo(coin)); @@ -683,22 +700,38 @@ abstract class MoneroWalletBase } if (unspentCoins.isNotEmpty) { - unspentCoins.forEach((coin) { - final coinInfoList = unspentCoinsInfo.values.where((element) => - element.walletId.contains(id) && - element.accountIndex == walletAddresses.account!.id && - element.keyImage!.contains(coin.keyImage!)); + final usedInfoKeys = {}; + for (final coin in unspentCoins) { + final coinInfoList = unspentCoinsInfo.values + .where((element) => + element.walletId.contains(id) && + element.accountIndex == walletAddresses.account!.id && + !usedInfoKeys.contains(element.key) && + _isSameCoin(element, coin)) + .toList(); if (coinInfoList.isNotEmpty) { - final coinInfo = coinInfoList.first; + // The key image only breaks a tie between identical outputs of one transaction + final coinInfo = coinInfoList.firstWhere( + (element) => element.keyImage == coin.keyImage, + orElse: () => coinInfoList.first, + ); + usedInfoKeys.add(coinInfo.key); coin.isFrozen = coinInfo.isFrozen; coin.isSending = coinInfo.isSending; coin.note = coinInfo.note; + + // The key image of a hardware wallet's output is only known after syncing with the + // device; keep the existing info (frozen state, note) instead of orphaning it. + if (coinInfo.keyImage != coin.keyImage) { + coinInfo.keyImage = coin.keyImage; + await coinInfo.save(); + } } else { - _addCoinInfo(coin); + await _addCoinInfo(coin); } - }); + } } await _refreshUnspentCoinsInfo(); @@ -713,6 +746,12 @@ abstract class MoneroWalletBase } } + /// The key image can't identify an output: a hardware wallet doesn't know the key images of its + /// outputs until they are synced with the device, until then they all carry the same + /// placeholder, which made every output match the info of the first one. + bool _isSameCoin(UnspentCoinsInfo info, MoneroUnspent coin) => + info.hash == coin.hash && info.address == coin.address && info.value == coin.value; + Future _addCoinInfo(MoneroUnspent coin) async { final newInfo = UnspentCoinsInfo( walletId: id, @@ -738,8 +777,7 @@ abstract class MoneroWalletBase if (currentWalletUnspentCoins.isNotEmpty) { currentWalletUnspentCoins.forEach((element) { - final existUnspentCoins = - unspentCoins.where((coin) => element.keyImage!.contains(coin.keyImage!)); + final existUnspentCoins = unspentCoins.where((coin) => _isSameCoin(element, coin)); if (existUnspentCoins.isEmpty) { keys.add(element.key); diff --git a/lib/exchange/provider/exolix_exchange_provider.dart b/lib/exchange/provider/exolix_exchange_provider.dart index cd59bc18f..5f3abfa58 100644 --- a/lib/exchange/provider/exolix_exchange_provider.dart +++ b/lib/exchange/provider/exolix_exchange_provider.dart @@ -27,7 +27,7 @@ class ExolixExchangeProvider extends ExchangeProvider { String get title => 'Exolix'; @override - bool get isAvailable => true; + bool get isAvailable => false; @override bool get isEnabled => true; diff --git a/lib/new-ui/pages/send_page.dart b/lib/new-ui/pages/send_page.dart index 0a6ea20d6..a6ab1625a 100644 --- a/lib/new-ui/pages/send_page.dart +++ b/lib/new-ui/pages/send_page.dart @@ -48,6 +48,7 @@ import "package:cake_wallet/src/widgets/standard_checkbox.dart"; import "package:cake_wallet/utils/payment_request.dart"; import "package:cake_wallet/utils/show_pop_up.dart"; import "package:cake_wallet/view_model/contact_list/contact_list_view_model.dart"; +import "package:cake_wallet/view_model/hardware_wallet/trezor_connect_view_model.dart"; import "package:cake_wallet/view_model/link_view_model.dart"; import "package:cake_wallet/view_model/send/output.dart"; import "package:cake_wallet/view_model/send/send_view_model.dart"; @@ -861,8 +862,23 @@ class _NewSendPageState extends State { } if (widget.sendViewModel.wallet.isHardwareWallet) { + final trezorVM = widget.sendViewModel.hardwareWalletViewModel; + if (trezorVM is TrezorConnectViewModel && + widget.sendViewModel.walletType == WalletType.bitcoin && + trezorVM.isConnected(WalletType.bitcoin) && + !trezorVM.isSessionFor(widget.sendViewModel.wallet)) { + // The live session belongs to another wallet (passphrase); open one for this wallet + await trezorVM.dropSession(); + } + if (!widget.sendViewModel.hardwareWalletViewModel! .isConnected(widget.sendViewModel.walletType)) { + final hardwareWalletVM = widget.sendViewModel.hardwareWalletViewModel; + if (hardwareWalletVM is TrezorConnectViewModel && + widget.sendViewModel.walletType == WalletType.bitcoin) { + hardwareWalletVM.prepareReconnect(widget.sendViewModel.wallet); + } + await Navigator.of(context).pushNamed( Routes.connectDevices, arguments: ConnectDevicePageParams( @@ -875,6 +891,9 @@ class _NewSendPageState extends State { isReconnect: false, ), ); + if (hardwareWalletVM is TrezorConnectViewModel) { + hardwareWalletVM.cancelReconnect(); + } // Recheck to handle tap-backs if (!widget.sendViewModel.hardwareWalletViewModel! diff --git a/lib/new-ui/widgets/hardware_wallet/proceed_on_device_message.dart b/lib/new-ui/widgets/hardware_wallet/proceed_on_device_message.dart index 100325dbe..f4fc629be 100644 --- a/lib/new-ui/widgets/hardware_wallet/proceed_on_device_message.dart +++ b/lib/new-ui/widgets/hardware_wallet/proceed_on_device_message.dart @@ -4,10 +4,17 @@ import 'package:cw_core/wallet_info.dart'; import 'package:flutter/material.dart'; class HardwareWalletProceedOnDeviceMessage extends StatelessWidget { - const HardwareWalletProceedOnDeviceMessage({super.key, required this.hardwareWalletType}); + const HardwareWalletProceedOnDeviceMessage({ + super.key, + required this.hardwareWalletType, + this.note, + }); final HardwareWalletType hardwareWalletType; + /// Optional hint about what the device is going to ask + final String? note; + @override Widget build(BuildContext context) { return Container( @@ -35,7 +42,17 @@ class HardwareWalletProceedOnDeviceMessage extends StatelessWidget { fontWeight: FontWeight.w400, color: Theme.of(context).colorScheme.onSurface, ), - ) + ), + if (note != null) + Text( + note!, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w400, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), ]), ), ); diff --git a/lib/new-ui/widgets/send_page/send_confirm_bottom_widget.dart b/lib/new-ui/widgets/send_page/send_confirm_bottom_widget.dart index c052fceec..d09149569 100644 --- a/lib/new-ui/widgets/send_page/send_confirm_bottom_widget.dart +++ b/lib/new-ui/widgets/send_page/send_confirm_bottom_widget.dart @@ -6,6 +6,8 @@ import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart'; import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/view_model/send/send_view_model.dart'; import 'package:cake_wallet/view_model/send/send_view_model_state.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -61,7 +63,12 @@ class SendConfirmBottomWidget extends StatelessWidget { ); case IsAwaitingDeviceResponseState: return HardwareWalletProceedOnDeviceMessage( - hardwareWalletType: sendViewModel.wallet.hardwareWalletType!); + hardwareWalletType: sendViewModel.wallet.hardwareWalletType!, + note: sendViewModel.walletType == WalletType.bitcoin && + sendViewModel.wallet.hardwareWalletType == HardwareWalletType.trezor + ? S.of(context).trezor_locktime_notice + : null, + ); case TransactionCommitting: return LoadingBottomWidget( text: "${S.of(context).sending}...", diff --git a/lib/view_model/hardware_wallet/trezor_connect_view_model.dart b/lib/view_model/hardware_wallet/trezor_connect_view_model.dart index 153608a68..1bec58755 100644 --- a/lib/view_model/hardware_wallet/trezor_connect_view_model.dart +++ b/lib/view_model/hardware_wallet/trezor_connect_view_model.dart @@ -149,6 +149,49 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S Completer? _pinCompleter; Completer? _settingsCompleter; + /// Settings that successfully opened a session, kept in memory (never persisted) per wallet id + /// so a reconnect during a send doesn't ask for the wallet options / passphrase again. + final Map _sessionSettings = {}; + TrezorDeviceSettings? _lastUsedSettings; + String? _reconnectWalletId; + + /// The wallet the live session (and with it the passphrase) belongs to, null if unknown + String? _sessionWalletId; + + /// Call right before opening the connect page to reconnect the device for [wallet]. + /// Only then the settings of the previous session are reused; creating or restoring a wallet + /// always asks for them. + void prepareReconnect(WalletBase wallet) => _reconnectWalletId = wallet.id; + + /// Call when the connect page opened after [prepareReconnect] is closed, so an attempt that was + /// backed out of can never leak its settings into a later, unrelated connect (e.g. a restore). + void cancelReconnect() => _reconnectWalletId = null; + + /// Call once a wallet was created / restored with the live session + void bindSessionToWallet(WalletBase wallet) { + _sessionWalletId = wallet.id; + final settings = _lastUsedSettings; + if (settings != null) { + _sessionSettings[wallet.id] = settings; + _lastUsedSettings = null; + } + } + + /// False if the live session is known to belong to another wallet, e.g. one with a different + /// passphrase. Using it would only fail when signing. + bool isSessionFor(WalletBase wallet) => + _sessionWalletId == null || _sessionWalletId == wallet.id; + + Future dropSession() async { + final client = _client; + _client = null; + _sessionWalletId = null; + _lastUsedSettings = null; + try { + await client?.connection.disconnect(); + } catch (_) {} + } + @observable TrezorParingState paringState = TrezorParingState.initial; @@ -172,6 +215,10 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S isConnecting = true; paringState = TrezorParingState.initial; + final reconnectWalletId = _reconnectWalletId; + _reconnectWalletId = null; + final reusedSettings = reconnectWalletId != null ? _sessionSettings[reconnectWalletId] : null; + try { final trezorInterface = device.connectionType == HardwareWalletConnectionType.ble ? trezorBLE : trezorUSB; @@ -226,10 +273,15 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S _state!.pairingCredentials.any((c) => c.autoconnect == true); final isAutoPairingAvailable = _client is sdk.TrezorClientV2 && !hasAutoPairingCredentials; - paringState = - TrezorParingState.awaitingSettings(isAutoPairingAvailable: isAutoPairingAvailable); - _settingsCompleter = Completer(); - final settings = await _settingsCompleter!.future; + final TrezorDeviceSettings settings; + if (reusedSettings != null) { + settings = reusedSettings; + } else { + paringState = + TrezorParingState.awaitingSettings(isAutoPairingAvailable: isAutoPairingAvailable); + _settingsCompleter = Completer(); + settings = await _settingsCompleter!.future; + } paringState = TrezorParingState.awaitingPassphrase; if (settings.enableAutoParing && isAutoPairingAvailable) { @@ -249,18 +301,28 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S await _client!.createSession(passphrase); } + _lastUsedSettings = settings; + _sessionWalletId = reconnectWalletId; paringState = TrezorParingState.success; return true; } catch (e) { await _client?.connection.disconnect(); _client = null; - _state = sdk.ThpState(); + _sessionWalletId = null; + _lastUsedSettings = null; + // Drop the (possibly half way through a handshake) state, the next attempt reloads the + // saved pairing credentials instead of asking for the pairing code again. + _state = null; + if (reconnectWalletId != null) { + _sessionSettings.remove(reconnectWalletId); + } // rethrow; paringState = TrezorParingState.fail(e.toString()); printV(e); return false; } finally { isConnecting = false; + _reconnectWalletId = null; } } @@ -299,6 +361,13 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S @override Future initWallet(WalletBase wallet) async { + // Only a session that was opened for this wallet may hand its settings to it + final lastUsedSettings = _lastUsedSettings; + if (lastUsedSettings != null && _sessionWalletId == wallet.id) { + _sessionSettings[wallet.id] = lastUsedSettings; + _lastUsedSettings = null; + } + switch (wallet.type) { case WalletType.monero: return monero!.setHardwareWalletService(wallet, getHardwareWalletService(wallet.type)); @@ -354,10 +423,30 @@ abstract class TrezorConnectViewModelBase extends HardwareWalletViewModel with S } } - void _connectionChangeListener(sdk.BleConnectionState event) { - printV("Ledger Device State Changed: $event"); - if (event == sdk.BleConnectionState.disconnected && !isConnecting) { + Future _connectionChangeListener(sdk.BleConnectionState event) async { + printV("Trezor Device State Changed: $event"); + if (event != sdk.BleConnectionState.disconnected || isConnecting) { + return; + } + + final client = _client; + if (client == null) { + return; + } + + // The events aren't device specific, so check if it's actually our Trezor that is gone + if (client.connection.connectionType == sdk.ConnectionType.ble) { + try { + final state = await sdk.UniversalBle.getConnectionState(client.connection.device.id); + if (state == sdk.BleConnectionState.connected) { + return; + } + } catch (_) {} + } + + if (identical(_client, client)) { _client = null; + _sessionWalletId = null; } } diff --git a/lib/view_model/wallet_hardware_restore_view_model.dart b/lib/view_model/wallet_hardware_restore_view_model.dart index 4d7a48315..8dbe9afa9 100644 --- a/lib/view_model/wallet_hardware_restore_view_model.dart +++ b/lib/view_model/wallet_hardware_restore_view_model.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/view_model/hardware_wallet/hardware_wallet_view_model.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/trezor_connect_view_model.dart'; import 'package:cake_wallet/view_model/seed_settings_view_model.dart'; import 'package:cake_wallet/view_model/wallet_creation_vm.dart'; import 'package:cw_core/hardware/hardware_account_data.dart'; @@ -103,6 +104,12 @@ abstract class WalletHardwareRestoreViewModelBase extends WalletCreationVM with @override Future process(WalletCredentials credentials) async { walletCreationService.changeWalletType(type: type); - return walletCreationService.restoreFromHardwareWallet(credentials); + final wallet = await walletCreationService.restoreFromHardwareWallet(credentials); + + final hardwareWalletVM = this.hardwareWalletVM; + if (hardwareWalletVM is TrezorConnectViewModel && type == WalletType.bitcoin) { + hardwareWalletVM.bindSessionToWallet(wallet); + } + return wallet; } } diff --git a/pubspec.lock b/pubspec.lock index 20b5ddfb6..4a0ba1bdd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -3098,18 +3098,18 @@ packages: dependency: "direct main" description: path: trezor-flutter - ref: 02771769fc800c06e29ac9186e37e9c2aeb0b54c - resolved-ref: 02771769fc800c06e29ac9186e37e9c2aeb0b54c - url: "https://github.com/cake-tech/trezor-flutter" + ref: "591d4b8c821b9c10561f848b866324a9a8dcb489" + resolved-ref: "591d4b8c821b9c10561f848b866324a9a8dcb489" + url: "https://github.com/cake-tech/trezor-flutter.git" source: git version: "0.1.0" trezor_usb_transport: dependency: "direct overridden" description: path: trezor_usb_transport - ref: 02771769fc800c06e29ac9186e37e9c2aeb0b54c - resolved-ref: 02771769fc800c06e29ac9186e37e9c2aeb0b54c - url: "https://github.com/cake-tech/trezor-flutter" + ref: "591d4b8c821b9c10561f848b866324a9a8dcb489" + resolved-ref: "591d4b8c821b9c10561f848b866324a9a8dcb489" + url: "https://github.com/cake-tech/trezor-flutter.git" source: git version: "0.0.1" tuple: @@ -3161,8 +3161,8 @@ packages: dependency: "direct overridden" description: path: "." - ref: "6735c1bdf7f42c501d51c20564eb957c3a12b981" - resolved-ref: "6735c1bdf7f42c501d51c20564eb957c3a12b981" + ref: "9952fc72ded48891844d7786c0fa14c4cae1ce0b" + resolved-ref: "9952fc72ded48891844d7786c0fa14c4cae1ce0b" url: "https://github.com/cake-tech/universal_ble.git" source: git version: "2.0.0" diff --git a/pubspec_base.yaml b/pubspec_base.yaml index e818609b5..e7826fa0f 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -234,7 +234,7 @@ dev_dependencies: # universal_ble: # git: # url: https://github.com/cake-tech/universal_ble.git -# ref: 6735c1bdf7f42c501d51c20564eb957c3a12b981 +# ref: 9952fc72ded48891844d7786c0fa14c4cae1ce0b # flutter_secure_storage: # git: # url: https://github.com/cake-tech/flutter_secure_storage.git diff --git a/pubspec_overrides.yaml b/pubspec_overrides.yaml index 46fe3cc93..d47a56dce 100644 --- a/pubspec_overrides.yaml +++ b/pubspec_overrides.yaml @@ -1515,7 +1515,7 @@ dependency_overrides: universal_ble: git: url: https://github.com/cake-tech/universal_ble.git - ref: 6735c1bdf7f42c501d51c20564eb957c3a12b981 + ref: 9952fc72ded48891844d7786c0fa14c4cae1ce0b universal_io: git: url: https://github.com/dart-io-packages/universal_io diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 54a4471a9..40897e66f 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "ستظهر معاملاتك هنا.", "transparent_secret_key": "المفتاح السري الشفاف", "transport_type": "نوع النقل", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "هو مُجمِّع تبادل يستفيد من عدة منصات تداول أساسية للعثور على أسعار تنافسية.", "trocador_desc_kyc": "إلى جانب اسم المزوّد، يظهر تصنيف KYC. يتم تحديده بواسطة Trocador وهو يعتمد على معاييرهم الخاصة.", "trongrid_history": "سجل TronGrid", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 1fd7eb268..510ce143b 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Вашите транзакции ще се появят тук.", "transparent_secret_key": "Прозрачен таен ключ", "transport_type": "Тип транспорт", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "е агрегатор за обмен, който използва множество борси, за да намери конкурентни курсове.", "trocador_desc_kyc": "До името на доставчика се показва KYC рейтинг. Той се задава от Trocador и се основава на техни собствени критерии.", "trongrid_history": "История на TronGrid", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 9cea8245c..842518cb7 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Zde se zobrazí vaše transakce.", "transparent_secret_key": "Transparentní tajný klíč", "transport_type": "Typ transportu", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "je agregátor směnáren, který využívá více podkladových směnáren k nalezení konkurenceschopných kurzů.", "trocador_desc_kyc": "Vedle názvu poskytovatele se zobrazuje hodnocení KYC. Toto hodnocení nastavuje Trocador a je založeno na jejich vlastních kritériích.", "trongrid_history": "Historie TronGrid", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index e371bfe20..321dfe0c1 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "Ihre Transaktionen werden hier angezeigt.", "transparent_secret_key": "Transparenter geheimer Schlüssel", "transport_type": "Transporttyp", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "ist ein Swap-Aggregator, der mehrere zugrunde liegende Swap-Dienste nutzt, um wettbewerbsfähige Kurse zu finden.", "trocador_desc_kyc": "Neben dem Anbieternamen wird ein KYC-Rating angezeigt. Dieses wird von Trocador festgelegt und basiert auf deren eigenen Kriterien.", "trongrid_history": "TronGrid-Verlauf", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 58d47d02f..8c5ea185f 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "Your transactions will appear here.", "transparent_secret_key": "Transparent Secret Key", "transport_type": "Transport Type", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "is an exchange aggregator that leverages multiple underlying exchanges to find competitive rates.", "trocador_desc_kyc": "Alongside the provider name, a KYC Rating is shown. This is set by Trocador and it's based on their own criteria.", "trongrid_history": "TronGrid history", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 572289c5c..e1e22a7b7 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Tus transacciones aparecerán aquí.", "transparent_secret_key": "Clave secreta transparente", "transport_type": "Tipo de transporte", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "es un agregador de exchanges que aprovecha múltiples exchanges subyacentes para encontrar tasas competitivas.", "trocador_desc_kyc": "Junto al nombre del proveedor, se muestra una calificación de KYC. Esto lo establece Trocador y se basa en sus propios criterios.", "trongrid_history": "Historial de TronGrid", diff --git a/res/values/strings_fa.arb b/res/values/strings_fa.arb index 98a30feee..92b263e54 100644 --- a/res/values/strings_fa.arb +++ b/res/values/strings_fa.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "تراکنش‌های شما اینجا نمایش داده می‌شوند.", "transparent_secret_key": "کلید محرمانه شفاف", "transport_type": "نوع انتقال", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "یک تجمیع‌کنندهٔ صرافی است که با استفاده از چندین صرافیِ زیربنایی، نرخ‌های رقابتی را پیدا می‌کند.", "trocador_desc_kyc": "در کنار نام ارائه‌دهنده، یک رتبه‌بندی KYC نمایش داده می‌شود. این رتبه‌بندی توسط Trocador تعیین می‌شود و بر اساس معیارهای خودشان است.", "trongrid_history": "تاریخچه TronGrid", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index ed76f2698..5e974e727 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Vos transactions apparaîtront ici.", "transparent_secret_key": "Clé secrète transparente", "transport_type": "Type de transport", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "est un agrégateur d'échanges qui s'appuie sur plusieurs plateformes d'échange sous-jacentes afin de trouver des taux compétitifs.", "trocador_desc_kyc": "À côté du nom du fournisseur, une note KYC est affichée. Celle-ci est définie par Trocador et repose sur ses propres critères.", "trongrid_history": "Historique TronGrid", diff --git a/res/values/strings_gn.arb b/res/values/strings_gn.arb index a5284f0c3..6f357d925 100644 --- a/res/values/strings_gn.arb +++ b/res/values/strings_gn.arb @@ -1382,6 +1382,7 @@ "transactions_will_appear_here": "Ko’ápe ojehechaukáta ne transacción-kuéra.", "transparent_secret_key": "Clave Secreta Transparente", "transport_type": "Transporte Mba'eichagua", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "ha'e peteĩ agregador de intercambio oiporúva heta intercambio subyacente ojuhú hag̃ua tasa competitiva.", "trocador_desc_kyc": "Pe proveedor réra ykére, ojehechauka peteĩ calificación KYC rehegua. Péva omoĩ Trocador ha oñemopyenda ijehegui hag̃uaichaite hag̃ua.", "trongrid_history": "TronGrid rembiasakue", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index cb275c1e0..aba32efa6 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "Ma’amalolinku za su bayyana a nan.", "transparent_secret_key": "Maɓallin Sirri na Transparent", "transport_type": "Nau'in haɗi (transport)", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "mai tara musayar kuɗaɗen dijital ne wanda ke amfani da musayar kuɗaɗe da yawa a ƙarƙashinsa don nemo farashi masu gasa.", "trocador_desc_kyc": "Tare da sunan mai ba da sabis, ana nuna ƙimar KYC. Trocador ne ya saita wannan, kuma yana dogara ne da nasu ƙa’idoji.", "trongrid_history": "Tarihin TronGrid", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index e8037caec..505e58437 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "आपके लेन-देन यहां दिखाई देंगे।", "transparent_secret_key": "पारदर्शी गुप्त कुंजी", "transport_type": "परिवहन प्रकार", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "एक एक्सचेंज एग्रीगेटर है, जो प्रतिस्पर्धी दरें खोजने के लिए कई अंतर्निहित एक्सचेंजों का उपयोग करता है।", "trocador_desc_kyc": "प्रदाता के नाम के साथ, एक KYC रेटिंग दिखाई जाती है। यह Trocador द्वारा निर्धारित की जाती है और यह उनके अपने मानदंडों पर आधारित है।", "trongrid_history": "TronGrid इतिहास", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 736a2ccd4..816caecf9 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Vaše transakcije će se pojaviti ovdje.", "transparent_secret_key": "Transparentni tajni ključ", "transport_type": "Vrsta transporta", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "je agregator mjenjačnica koji koristi više mjenjačnica kako bi pronašao konkurentne tečajeve.", "trocador_desc_kyc": "Uz naziv pružatelja usluga prikazuje se KYC ocjena. To je postavio Trocador i temelji se na njihovim vlastitim kriterijima.", "trongrid_history": "Povijest TronGrid-a", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index faf996ecf..725e95ba4 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Ձեր գործարքները կհայտնվեն այստեղ։", "transparent_secret_key": "Թափանցիկ գաղտնի բանալի", "transport_type": "Տրանսպորտի տեսակ", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "փոխանակման ագրեգատոր է, որը օգտագործում է մի քանի հիմքում ընկած փոխանակումներ՝ մրցունակ փոխարժեքներ գտնելու համար։", "trocador_desc_kyc": "Մատակարարի անվան հետ մեկտեղ ցուցադրվում է KYC վարկանիշը։ Այն սահմանվում է Trocador-ի կողմից և հիմնված է նրանց սեփական չափանիշների վրա։", "trongrid_history": "TronGrid-ի պատմություն", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 1afd744ae..5fc98a3f7 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -1379,6 +1379,7 @@ "transactions_will_appear_here": "Transaksi Anda akan muncul di sini.", "transparent_secret_key": "Kunci Rahasia Transparan", "transport_type": "Jenis Transport", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "adalah agregator pertukaran yang memanfaatkan berbagai pertukaran yang mendasarinya untuk menemukan kurs yang kompetitif.", "trocador_desc_kyc": "Di samping nama penyedia, Peringkat KYC ditampilkan. Ini ditetapkan oleh Trocador dan didasarkan pada kriteria mereka sendiri.", "trongrid_history": "Riwayat TronGrid", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index f172454ea..5664405b8 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Le tue transazioni appariranno qui.", "transparent_secret_key": "Chiave segreta trasparente", "transport_type": "Tipo di trasporto", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "è un aggregatore di exchange che sfrutta più exchange sottostanti per trovare tassi competitivi.", "trocador_desc_kyc": "Accanto al nome del fornitore viene mostrata una valutazione KYC. Questa è impostata da Trocador e si basa sui propri criteri.", "trongrid_history": "Cronologia di TronGrid", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index c1a927a78..3cff5d011 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "あなたの取引履歴がここに表示されます。", "transparent_secret_key": "トランスペアレント秘密鍵", "transport_type": "トランスポートタイプ", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "は、複数の取引所を活用して競争力のあるレートを見つける交換アグリゲーターです。", "trocador_desc_kyc": "プロバイダー名とともに、KYC評価が表示されます。これはTrocadorによって設定され、独自の基準に基づいています。", "trongrid_history": "TronGrid 履歴", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index be80b6676..da1d21922 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "거래 내역이 여기에 표시됩니다.", "transparent_secret_key": "투명 비밀 키", "transport_type": "전송 방식", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "여러 거래소를 연동해 경쟁력 있는 환율을 찾는 거래소 애그리게이터입니다.", "trocador_desc_kyc": "공급자 이름과 함께 KYC 등급이 표시됩니다. 이 등급은 Trocador가 설정하며, 자체 기준에 따라 결정됩니다.", "trongrid_history": "TronGrid 내역", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 00da12623..1fa7acc77 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "သင့် ငွေလွှဲပြောင်းမှုများသည် ဤနေရာတွင် ပေါ်လာပါမည်။", "transparent_secret_key": "Transparent လျှို့ဝှက်သော့", "transport_type": "ပို့ဆောင်မှုအမျိုးအစား", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "ယှဉ်ပြိုင်နိုင်သော နှုန်းထားများကို ရှာဖွေရန် အခြေခံ အပြန်အလှန်လဲလှယ်ရေး ပလက်ဖောင်းများ အများအပြားကို အသုံးချသည့် အပြန်အလှန်လဲလှယ်ရေး စုစည်းပေးသူတစ်ခုဖြစ်သည်။", "trocador_desc_kyc": "ဝန်ဆောင်မှုပေးသူအမည်နှင့်အတူ KYC Rating ကို ပြသထားသည်။ ၎င်းကို Trocador မှ သတ်မှတ်ထားပြီး ၎င်းတို့၏ ကိုယ်ပိုင်စံနှုန်းများအပေါ် အခြေခံထားသည်။", "trongrid_history": "TronGrid မှတ်တမ်း", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index c909d4735..f73de1c8f 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Je transacties verschijnen hier.", "transparent_secret_key": "Transparante geheime sleutel", "transport_type": "Transporttype", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "is een exchange-aggregator die meerdere onderliggende exchanges gebruikt om concurrerende tarieven te vinden.", "trocador_desc_kyc": "Naast de naam van de provider wordt een KYC-rating weergegeven. Deze wordt ingesteld door Trocador en is gebaseerd op hun eigen criteria.", "trongrid_history": "TronGrid-geschiedenis", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 2ba77c156..619f1be0a 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Twoje transakcje pojawią się tutaj.", "transparent_secret_key": "Przezroczysty klucz tajny", "transport_type": "Typ transportu", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "to agregator giełd, który wykorzystuje wiele bazowych platform wymiany, aby znaleźć konkurencyjne kursy.", "trocador_desc_kyc": "Obok nazwy dostawcy wyświetlana jest ocena KYC. Jest ona ustalana przez Trocador i opiera się na jego własnych kryteriach.", "trongrid_history": "Historia TronGrid", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 77902823f..ba74d37a4 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "Suas transações aparecerão aqui.", "transparent_secret_key": "Chave secreta transparente", "transport_type": "Tipo de transporte", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "é um agregador de exchanges que utiliza várias exchanges subjacentes para encontrar taxas competitivas.", "trocador_desc_kyc": "Ao lado do nome do provedor, é exibida uma classificação KYC. Ela é definida pelo Trocador e se baseia nos próprios critérios dele.", "trongrid_history": "Histórico do TronGrid", diff --git a/res/values/strings_pt_BR.arb b/res/values/strings_pt_BR.arb index 2d4da7050..d27391613 100644 --- a/res/values/strings_pt_BR.arb +++ b/res/values/strings_pt_BR.arb @@ -730,6 +730,7 @@ "skip_verification_question": "Você ainda deseja pular a verificação?", "skip_verification_title": "Tem certeza?", "skip_verification_warning": "Se você não fizer backup da sua frase de recuperação e perder o acesso à Cake Wallet ou ao seu dispositivo, seus ativos serão perdidos.", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "unsupported_token_requested": "Este pedido de pagamento é para um token que não conseguimos identificar na rede selecionada.", "networks": "Redes", "new_first_wallet_text": "Manter sua cripto segura é moleza", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 9bc642647..724c46823 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Ваши транзакции будут отображаться здесь.", "transparent_secret_key": "Прозрачный секретный ключ", "transport_type": "Тип транспорта", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "— это агрегатор обменников, который использует несколько базовых бирж для поиска выгодных курсов.", "trocador_desc_kyc": "Рядом с названием провайдера отображается рейтинг KYC. Он устанавливается Trocador и основан на их собственных критериях.", "trongrid_history": "История TronGrid", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 2950a21f8..c417c2108 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "ธุรกรรมของคุณจะปรากฏที่นี่", "transparent_secret_key": "คีย์ลับแบบโปร่งใส", "transport_type": "ประเภทการส่งข้อมูล", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "เป็นตัวรวบรวมการแลกเปลี่ยนที่ใช้ประโยชน์จากแพลตฟอร์มแลกเปลี่ยนหลายแห่งเพื่อค้นหาอัตราที่แข่งขันได้", "trocador_desc_kyc": "นอกจากชื่อผู้ให้บริการแล้ว ยังมีการแสดงคะแนน KYC ด้วย โดยคะแนนนี้กำหนดโดย Trocador และอิงตามเกณฑ์ของพวกเขาเอง", "trongrid_history": "ประวัติ TronGrid", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index c5604a23a..2c5ef7aa8 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "Dito lalabas ang iyong mga transaksyon.", "transparent_secret_key": "Transparent na Lihim na Key", "transport_type": "Uri ng Transportasyon", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "ay isang exchange aggregator na gumagamit ng maraming pinagbabatayang exchange upang makahanap ng mapagkumpitensyang mga rate.", "trocador_desc_kyc": "Kasama ng pangalan ng provider, ipinapakita ang isang KYC Rating. Itinakda ito ng Trocador at nakabatay sa sarili nilang pamantayan.", "trongrid_history": "Kasaysayan ng TronGrid", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 7d241c354..23a70ebcc 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "İşlemleriniz burada görünecek.", "transparent_secret_key": "Şeffaf Gizli Anahtar", "transport_type": "Aktarım Türü", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "rekabetçi oranlar bulmak için birden fazla altta yatan borsadan yararlanan bir borsa toplayıcısıdır.", "trocador_desc_kyc": "Sağlayıcı adının yanında bir KYC Derecelendirmesi gösterilir. Bu, Trocador tarafından belirlenir ve kendi kriterlerine dayanır.", "trongrid_history": "TronGrid geçmişi", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 8658ef1a4..a5ab68ff7 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Ваші транзакції з’являться тут.", "transparent_secret_key": "Прозорий секретний ключ", "transport_type": "Тип транспорту", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "це агрегатор обміну, який використовує кілька базових бірж, щоб знаходити конкурентні курси.", "trocador_desc_kyc": "Поруч із назвою постачальника відображається рейтинг KYC. Його встановлює Trocador на основі власних критеріїв.", "trongrid_history": "Історія TronGrid", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 3aee9f491..2b730fdb3 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -1378,6 +1378,7 @@ "transactions_will_appear_here": "آپ کی ٹرانزیکشنز یہاں ظاہر ہوں گی۔", "transparent_secret_key": "شفاف خفیہ کلید", "transport_type": "ٹرانسپورٹ کی قسم", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "ایک ایکسچینج ایگریگیٹر ہے جو مسابقتی نرخ تلاش کرنے کے لیے متعدد بنیادی ایکسچینجز سے فائدہ اٹھاتا ہے۔", "trocador_desc_kyc": "فراہم کنندہ کے نام کے ساتھ ایک KYC ریٹنگ بھی دکھائی جاتی ہے۔ یہ Trocador کی جانب سے مقرر کی جاتی ہے اور ان کے اپنے معیار پر مبنی ہوتی ہے۔", "trongrid_history": "TronGrid ہسٹری", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index 5d2440850..88b975821 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Các giao dịch của bạn sẽ hiển thị ở đây.", "transparent_secret_key": "Khóa bí mật minh bạch", "transport_type": "Loại truyền tải", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "là một công cụ tổng hợp trao đổi, tận dụng nhiều sàn giao dịch khác nhau để tìm ra tỷ giá cạnh tranh.", "trocador_desc_kyc": "Bên cạnh tên nhà cung cấp, Xếp hạng KYC sẽ được hiển thị. Xếp hạng này do Trocador thiết lập và dựa trên các tiêu chí riêng của họ.", "trongrid_history": "Lịch sử TronGrid", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 8611bd18d..663c7620e 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -1377,6 +1377,7 @@ "transactions_will_appear_here": "Awọn ìdúnàdúrà rẹ yóò hàn níbí.", "transparent_secret_key": "Kọ́kọ́rọ̀ Aṣírí Transparent", "transport_type": "Iru Gbigbe", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "jẹ olùkójọ paṣipaarọ tí ó ń lo ọ̀pọ̀ paṣipaarọ abẹ́lẹ̀ láti rí àwọn oṣuwọn tí ó dára jù lọ.", "trocador_desc_kyc": "Lẹgbẹẹ orúkọ olupese, ìdíwọ̀n KYC kan máa hàn. Trocador ló ń ṣètò èyí, ó sì dá lórí àwọn àdéhùn wọn fúnra wọn.", "trongrid_history": "Itan TronGrid", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 0a6907dc7..7053faca6 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -1376,6 +1376,7 @@ "transactions_will_appear_here": "您的交易记录将显示在这里。", "transparent_secret_key": "透明私钥", "transport_type": "传输类型", + "trezor_locktime_notice": "Your Trezor will ask you to confirm a locktime. This is a privacy feature and does not delay your payment.", "trocador_desc": "是一个交易所聚合器,利用多个底层交易所来寻找有竞争力的汇率。", "trocador_desc_kyc": "在提供商名称旁边会显示 KYC 评级。该评级由 Trocador 设定,并基于其自身的评估标准。", "trongrid_history": "TronGrid 历史", diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 1b257c5e0..c103e5bd3 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="6.4.4" -MONERO_COM_BUILD_NUMBER=4168 +MONERO_COM_VERSION="6.4.5" +MONERO_COM_BUILD_NUMBER=4169 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.4" -CAKEWALLET_BUILD_NUMBER=4424 +CAKEWALLET_VERSION="6.4.5" +CAKEWALLET_BUILD_NUMBER=4425 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index f538ff3d7..85dc1fc6d 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="6.4.4" -MONERO_COM_BUILD_NUMBER=174 +MONERO_COM_VERSION="6.4.5" +MONERO_COM_BUILD_NUMBER=176 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.4" -CAKEWALLET_BUILD_NUMBER=438 +CAKEWALLET_VERSION="6.4.5" +CAKEWALLET_BUILD_NUMBER=445 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"