From b2ece79334d0bcf4dd9ddd3f8667dd346b355a99 Mon Sep 17 00:00:00 2001 From: M Date: Fri, 4 Jun 2021 13:30:59 +0300 Subject: [PATCH] Added warning on receive screen for outdated electrum wallets. --- lib/entities/preferences_key.dart | 1 + lib/src/screens/dashboard/dashboard_page.dart | 3 +- .../dashboard/widgets/address_page.dart | 33 ++++++++++++++++++- lib/src/screens/receive/receive_page.dart | 1 + lib/store/settings_store.dart | 6 ++++ res/values/strings_de.arb | 5 ++- res/values/strings_en.arb | 5 ++- res/values/strings_es.arb | 5 ++- res/values/strings_hi.arb | 5 ++- res/values/strings_hr.arb | 5 ++- res/values/strings_it.arb | 5 ++- res/values/strings_ja.arb | 5 ++- res/values/strings_ko.arb | 5 ++- res/values/strings_nl.arb | 5 ++- res/values/strings_pl.arb | 5 ++- res/values/strings_pt.arb | 5 ++- res/values/strings_ru.arb | 5 ++- res/values/strings_uk.arb | 5 ++- res/values/strings_zh.arb | 5 ++- 19 files changed, 98 insertions(+), 16 deletions(-) diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 6d55748cc..82db7d5d9 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -19,4 +19,5 @@ class PreferencesKey { 'current_default_settings_migration_version'; static const moneroTransactionPriority = 'current_fee_priority_monero'; static const bitcoinTransactionPriority = 'current_fee_priority_bitcoin'; + static const shouldShowReceiveWarning = 'should_show_receive_warning'; } diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 46a4185ce..d98751a57 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -167,7 +167,8 @@ class DashboardPage extends BasePage { return; } - pages.add(AddressPage(addressListViewModel: addressListViewModel)); + pages.add(AddressPage(addressListViewModel: addressListViewModel, + walletViewModel: walletViewModel)); pages.add(BalancePage(dashboardViewModel: walletViewModel)); pages.add(TransactionsPage(dashboardViewModel: walletViewModel)); diff --git a/lib/src/screens/dashboard/widgets/address_page.dart b/lib/src/screens/dashboard/widgets/address_page.dart index 7e4fb1c73..05dd9fb24 100644 --- a/lib/src/screens/dashboard/widgets/address_page.dart +++ b/lib/src/screens/dashboard/widgets/address_page.dart @@ -1,5 +1,10 @@ +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; +import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart'; import 'package:cake_wallet/src/screens/receive/widgets/qr_widget.dart'; @@ -7,17 +12,43 @@ import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:keyboard_actions/keyboard_actions.dart'; +import 'package:mobx/mobx.dart'; class AddressPage extends StatelessWidget { - AddressPage({@required this.addressListViewModel}) + AddressPage({@required this.addressListViewModel, + this.walletViewModel}) : _cryptoAmountFocus = FocusNode(); final WalletAddressListViewModel addressListViewModel; + final DashboardViewModel walletViewModel; final FocusNode _cryptoAmountFocus; @override Widget build(BuildContext context) { + autorun((_) async { + if (!walletViewModel.isOutdatedElectrumWallet + || !walletViewModel.settingsStore.shouldShowReceiveWarning) { + return; + } + + await Future.delayed(Duration(seconds: 1)); + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithTwoActions( + alertTitle: S.of(context).pre_seed_title, + alertContent: S.of(context).outdated_electrum_wallet_receive_warning, + leftButtonText: S.of(context).understand, + actionLeftButton: () => Navigator.of(context).pop(), + rightButtonText: S.of(context).do_not_show_me, + actionRightButton: () { + walletViewModel.settingsStore.setShouldShowReceiveWarning(false); + Navigator.of(context).pop(); + }); + }); + }); + return KeyboardActions( autoScroll: false, disableScroll: true, diff --git a/lib/src/screens/receive/receive_page.dart b/lib/src/screens/receive/receive_page.dart index 9201b9805..718bc0c01 100644 --- a/lib/src/screens/receive/receive_page.dart +++ b/lib/src/screens/receive/receive_page.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index da2410378..b61faee03 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -147,6 +147,12 @@ abstract class SettingsStoreBase with Store { bool isBitcoinBuyEnabled; + bool get shouldShowReceiveWarning => + _sharedPreferences.getBool(PreferencesKey.shouldShowReceiveWarning) ?? true; + + Future setShouldShowReceiveWarning(bool value) async => + _sharedPreferences.setBool(PreferencesKey.shouldShowReceiveWarning, value); + static Future load( {@required Box nodeSource, @required bool isBitcoinBuyEnabled, diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index ed3520d17..a89e69170 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Neue Bitcoin-Geldbörsen, die in Cake erstellt wurden, haben jetzt einen Startwert von 24 Wörtern. Es ist obligatorisch, dass Sie eine neue Bitcoin-Brieftasche erstellen, Ihr gesamtes Geld in die neue 24-Wörter-Brieftasche überweisen und keine Brieftaschen mit einem 12-Wörter-Startwert mehr verwenden. Bitte tun Sie dies sofort, um Ihr Geld zu sichern.", "understand" : "Ich verstehe", - "apk_update" : "APK Update" + "apk_update" : "APK Update", + + "outdated_electrum_wallet_receive_warning": "WARNUNG\nWenn diese Brieftasche einen Seed von 12 Wörtern hat, der in Cake Wallet erstellt wurde, zahlen Sie KEINE Bitcoins in diese Brieftasche ein. Ihr Bitcoin kann gestohlen werden. Erstellen Sie eine neue Brieftasche und verschieben Sie Ihr Geld SOFORT in die neue Brieftasche.", + "do_not_show_me": "Zeig mir das nicht noch einmal" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 65dee6dbe..ecc562f9d 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "New Bitcoin wallets created in Cake now have a 24-word seed. It is mandatory that you create a new Bitcoin wallet and transfer all of your funds to the new 24-word wallet, and stop using wallets with a 12-word seed. Please do this immediately to secure your funds.", "understand" : "I understand", - "apk_update" : "APK update" + "apk_update" : "APK update", + + "outdated_electrum_wallet_receive_warning": "WARNING\nIf this wallet has a seed of 12 words which was created in Cake Wallet, DO NOT deposit Bitcoin in this wallet. Your Bitcoin can be at risk of getting stolen. Create a new wallet, and move your funds to the new wallet IMMEDIATELY.", + "do_not_show_me": "Do not show me this again" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 983146557..135be2c80 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Las nuevas carteras de Bitcoin creadas en Cake ahora tienen una semilla de 24 palabras. Es obligatorio que cree una nueva billetera de Bitcoin y transfiera todos sus fondos a la nueva billetera de 24 palabras, y deje de usar billeteras con una semilla de 12 palabras. Haga esto de inmediato para asegurar sus fondos.", "understand" : "Entiendo", - "apk_update" : "Actualización de APK" + "apk_update" : "Actualización de APK", + + "outdated_electrum_wallet_receive_warning": "ADVERTENCIA\nSi esta billetera tiene una semilla de 12 palabras que se creó en Cake Wallet, NO DEposite Bitcoin en esta billetera. Su Bitcoin puede estar en riesgo de ser robado. Cree una nueva billetera y mueva sus fondos a la nueva billetera INMEDIATAMENTE.", + "do_not_show_me": "no me muestres esto otra vez" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 889f21c3f..47ecbaa98 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "केक में बनाए गए नए बिटकॉइन वॉलेट में अब 24-शब्द का बीज है। यह अनिवार्य है कि आप एक नया बिटकॉइन वॉलेट बनाएं और अपने सभी फंड को नए 24-शब्द वाले वॉलेट में स्थानांतरित करें, और 12-शब्द बीज वाले वॉलेट का उपयोग करना बंद करें। कृपया अपने धन को सुरक्षित करने के लिए इसे तुरंत करें।", "understand" : "मुझे समझ", - "apk_update" : "APK अद्यतन" + "apk_update" : "APK अद्यतन", + + "outdated_electrum_wallet_receive_warning": "चेतावनी\nयदि इस वॉलेट में 12 शब्दों का बीज है जो केक वॉलेट में बनाया गया था, तो इस वॉलेट में बिटकॉइन जमा न करें। आपका बिटकॉइन चोरी होने का खतरा हो सकता है। एक नया वॉलेट बनाएं, और अपने फंड को तुरंत नए वॉलेट में ले जाएं।", + "do_not_show_me": "मुझे यह फिर न दिखाएं" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 681917b03..dc6fbe4aa 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Novi Bitcoin novčanici stvoreni u Cakeu sada imaju sjeme od 24 riječi. Obavezno je stvoriti novi Bitcoin novčanik i prenijeti sva svoja sredstva u novi novčanik od 24 riječi te prestati koristiti novčanike s sjemenkom od 12 riječi. Učinite to odmah kako biste osigurali svoja sredstva.", "understand" : "Razumijem", - "apk_update" : "APK ažuriranje" + "apk_update" : "APK ažuriranje", + + "outdated_electrum_wallet_receive_warning": "UPOZORENJE\nAko ovaj novčanik sadrži izvor od 12 riječi koji je stvoren u novčaniku Cake, NEMOJTE polagati Bitcoin u ovaj novčanik. Vaš Bitcoin može biti u opasnosti od krađe. Stvorite novi novčanik i ODMAH premjestite sredstva u novi novčanik.", + "do_not_show_me": "Ne pokazuj mi ovo više" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 1b10a0137..861732fc4 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "I nuovi portafogli Bitcoin creati in Cake ora hanno un seme di 24 parole. È obbligatorio creare un nuovo portafoglio Bitcoin e trasferire tutti i fondi nel nuovo portafoglio di 24 parole e smettere di usare portafogli con un seme di 12 parole. Ti preghiamo di farlo immediatamente per proteggere i tuoi fondi.", "understand" : "Capisco", - "apk_update" : "Aggiornamento APK" + "apk_update" : "Aggiornamento APK", + + "outdated_electrum_wallet_receive_warning": "ATTENZIONE\nSe questo portafoglio ha un seme di 12 parole creato in Cake Wallet, NON depositare Bitcoin in questo portafoglio. Il tuo Bitcoin può essere a rischio di essere rubato. Crea un nuovo portafoglio e sposta i tuoi fondi nel nuovo portafoglio IMMEDIATAMENTE.", + "do_not_show_me": "Non mostrarmelo di nuovo" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 7d78e9313..320454372 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Cakeで作成された新しいビットコインウォレットには、24ワードのシードがあります。 新しいビットコインウォレットを作成し、すべての資金を新しい24ワードのウォレットに転送し、12ワードのシードを持つウォレットの使用を停止することが必須です。 あなたの資金を確保するためにこれをすぐに行ってください。", "understand" : "わかります", - "apk_update" : "APKアップデート" + "apk_update" : "APKアップデート", + + "outdated_electrum_wallet_receive_warning": "警告\nこのウォレットにCake Walletで作成された12ワードのシードがある場合、このウォレットにビットコインを入金しないでください。 ビットコインが盗まれる危険性があります。 新しいウォレットを作成し、すぐに新しいウォレットに資金を移動してください。", + "do_not_show_me": "また僕にこれを見せないでください" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 3a10232a9..d1af5c1e2 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Cake에서 생성 된 새로운 비트 코인 지갑에는 이제 24 단어 시드가 있습니다. 새로운 비트 코인 지갑을 생성하고 모든 자금을 새로운 24 단어 지갑으로 이체하고 12 단어 시드가있는 지갑 사용을 중지해야합니다. 자금을 확보하려면 즉시이 작업을 수행하십시오.", "understand" : "이해 했어요", - "apk_update" : "APK 업데이트" + "apk_update" : "APK 업데이트", + + "outdated_electrum_wallet_receive_warning": "경고\n이 지갑에 Cake Wallet에서 생성 된 12 단어의 시드가있는 경우이 지갑에 Bitcoin을 입금하지 마십시오. 귀하의 비트 코인은 도난 당할 위험이 있습니다. 새 지갑을 만들고 즉시 새 지갑으로 자금을 이동하십시오.", + "do_not_show_me": "나를 다시 표시하지 않음" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 76b084428..c1322c2ca 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Nieuwe Bitcoin-portefeuilles die in Cake zijn gemaakt, hebben nu een zaadje van 24 woorden. Het is verplicht dat u een nieuwe Bitcoin-portemonnee maakt en al uw geld overmaakt naar de nieuwe portemonnee van 24 woorden, en stopt met het gebruik van wallets met een seed van 12 woorden. Doe dit onmiddellijk om uw geld veilig te stellen.", "understand" : "Ik begrijp het", - "apk_update" : "APK-update" + "apk_update" : "APK-update", + + "outdated_electrum_wallet_receive_warning": "WAARSCHUWING\nAls deze portemonnee een seed van 12 woorden heeft die is gemaakt in Cake Wallet, stort dan GEEN Bitcoin in deze portemonnee. Uw Bitcoin kan het risico lopen te worden gestolen. Maak een nieuwe portemonnee en verplaats uw geld ONMIDDELLIJK naar de nieuwe portemonnee.", + "do_not_show_me": "laat me dit niet opnieuw zien" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 5522713d7..dd45292b7 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Nowe portfele Bitcoin utworzone w Cake mają teraz ziarno składające się z 24 słów. Konieczne jest utworzenie nowego portfela Bitcoin i przeniesienie wszystkich środków do nowego portfela na 24 słowa oraz zaprzestanie korzystania z portfeli z zalążkiem na 12 słów. Zrób to natychmiast, aby zabezpieczyć swoje fundusze.", "understand" : "Rozumiem", - "apk_update" : "Aktualizacja APK" + "apk_update" : "Aktualizacja APK", + + "outdated_electrum_wallet_receive_warning": "OSTRZEŻENIE\nJeśli ten portfel zawiera ziarno 12 słów, które zostało utworzone w portfelu Cake, NIE Wpłacaj Bitcoinów do tego portfela. Twój Bitcoin może być zagrożony kradzieżą. Utwórz nowy portfel i NATYCHMIAST przenieś swoje środki do nowego portfela.", + "do_not_show_me": "Nie pokazuj mi tego ponownie" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index c5c976113..e739f1553 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "As novas carteiras Bitcoin criadas no Cake agora têm uma semente de 24 palavras. É obrigatório que você crie uma nova carteira Bitcoin e transfira todos os seus fundos para a nova carteira de 24 palavras, e pare de usar carteiras com semente de 12 palavras. Faça isso imediatamente para garantir seus fundos.", "understand" : "Entendo", - "apk_update" : "Atualização de APK" + "apk_update" : "Atualização de APK", + + "outdated_electrum_wallet_receive_warning": "AVISO\nSe esta carteira tiver uma semente de 12 palavras que foi criada na Carteira Cake, NÃO deposite Bitcoin nesta carteira. Seu Bitcoin pode correr o risco de ser roubado. Crie uma nova carteira e mova seus fundos para a nova carteira IMEDIATAMENTE.", + "do_not_show_me": "não me mostre isso novamente" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 1377b4fc0..e5a08952e 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Новые биткойн-кошельки, созданные в Cake, теперь содержат мнемоническую фразу из 24 слов. Вы обязательно должны создать новый биткойн-кошелек и перевести все свои средства в новый кошелек из 24 слов, а также прекратить использование кошельков с мнемонической фразой из 12 слов. Пожалуйста, сделайте это немедленно, чтобы обезопасить свои средства.", "understand" : "Понятно", - "apk_update" : "Обновление APK" + "apk_update" : "Обновление APK", + + "outdated_electrum_wallet_receive_warning": "ПРЕДУПРЕЖДЕНИЕ\nЕсли этот кошелек был создан в Cake Wallet и имеет мнемоническую фразу из 12 слов, НЕ вносите биткойны в этот кошелек. Ваши биткойны могут быть украдены. Создайте новый кошелек и НЕМЕДЛЕННО переместите свои средства в новый кошелек.", + "do_not_show_me": "Не показывай мне это больше" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index e0c1fcc55..9828d12a1 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "Нові біткойн-гаманці, створені в Cake, тепер містять мнемонічну фразу з 24 слів. Обов’язково стовріть новий біткойн-гаманець, переведіть всі кошти на новий гаманець із 24 слів і припиніть використання гаманців із мнемонічною фразою з 12 слів. Зробіть це негайно, щоб убезпечити свої кошти.", "understand" : "Зрозуміло", - "apk_update" : "Оновлення APK" + "apk_update" : "Оновлення APK", + + "outdated_electrum_wallet_receive_warning": "ПОПЕРЕДЖЕННЯ\nЯкщо цей гаманець має мнемонічну фразу із 12 слів, та був створенний в Cake Wallet, НЕ переводьте біткойни в цей гаманець. Ваші біткойни ризикують бути вкраденими. Створіть новий гаманець і НЕГАЙНО переведіть свої біткоїни на новий гаманець.", + "do_not_show_me": "Не показуй мені це знову" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 5faa8c840..bb923f057 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -476,5 +476,8 @@ "outdated_electrum_wallet_desceription" : "在Cake创建的新比特币钱包现在有一个24字的种子。你必须创建一个新的比特币钱包,并将你所有的资金转移到新的24字钱包,并停止使用12字种子的钱包。请立即这样做以保证你的资金安全。", "understand" : "我已知晓", - "apk_update" : "APK更新" + "apk_update" : "APK更新", + + "outdated_electrum_wallet_receive_warning": "警告\n如果这个钱包有一个在 Cake Wallet 中创建的 12 个单词的种子,请不要在这个钱包中存入比特币。 您的比特币可能有被盗的风险。 创建一个新钱包,并立即将您的资金转移到新钱包中。", + "do_not_show_me": "不要再让我看这个了" } \ No newline at end of file