From aa4d43acb69d1f75a05702eb0621ef13563166b1 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol <dr.alexander.sobol@gmail.com> Date: Mon, 20 Jan 2020 21:04:26 +0200 Subject: [PATCH 1/4] CWA-161 | saved recipient address by default for new users --- lib/src/domain/common/default_settings_migration.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/domain/common/default_settings_migration.dart b/lib/src/domain/common/default_settings_migration.dart index 37fc1d5b8..bad9f69eb 100644 --- a/lib/src/domain/common/default_settings_migration.dart +++ b/lib/src/domain/common/default_settings_migration.dart @@ -33,7 +33,7 @@ Future defaultSettingsMigration( 'current_fee_priority', TransactionPriority.standart.raw); await sharedPreferences.setInt('current_balance_display_mode', BalanceDisplayMode.availableBalance.raw); - await sharedPreferences.setBool('save_recipient_address', false); + await sharedPreferences.setBool('save_recipient_address', true); await resetToDefault(nodes); await changeCurrentNodeToDefault( sharedPreferences: sharedPreferences, nodes: nodes); From 59d8ad1890417948bddd75cf75ac5c886cf264d7 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol <dr.alexander.sobol@gmail.com> Date: Mon, 20 Jan 2020 21:18:47 +0200 Subject: [PATCH 2/4] CWA-160 | used existing colors for new currencies --- .../address_book/address_book_page.dart | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/src/screens/address_book/address_book_page.dart b/lib/src/screens/address_book/address_book_page.dart index 4f4146a47..97351f91b 100644 --- a/lib/src/screens/address_book/address_book_page.dart +++ b/lib/src/screens/address_book/address_book_page.dart @@ -178,13 +178,13 @@ class AddressBookPage extends BasePage { color = Palette.cakeGreenWithOpacity; break; case CryptoCurrency.ada: - color = Colors.blueGrey[700]; + color = Colors.blue[200]; break; case CryptoCurrency.bch: color = Colors.orangeAccent; break; case CryptoCurrency.bnb: - color = Colors.yellow; + color = Colors.blue; break; case CryptoCurrency.btc: color = Colors.orange; @@ -193,7 +193,7 @@ class AddressBookPage extends BasePage { color = Colors.blue; break; case CryptoCurrency.eos: - color = Colors.deepPurple; + color = Colors.orangeAccent; break; case CryptoCurrency.eth: color = Colors.black; @@ -202,19 +202,19 @@ class AddressBookPage extends BasePage { color = Colors.blue[200]; break; case CryptoCurrency.nano: - color = Colors.blue[900]; + color = Colors.orange; break; case CryptoCurrency.trx: - color = Colors.red; + color = Colors.black; break; case CryptoCurrency.usdt: - color = Colors.teal; + color = Colors.blue[200]; break; case CryptoCurrency.xlm: - color = Colors.grey[100]; + color = color = Colors.blue; break; case CryptoCurrency.xrp: - color = Colors.blueAccent; + color = Colors.orangeAccent; break; default: color = Colors.white; @@ -229,14 +229,10 @@ class AddressBookPage extends BasePage { color = Palette.cakeGreen; break; case CryptoCurrency.ltc: + case CryptoCurrency.ada: + case CryptoCurrency.usdt: color = Palette.lightBlue; break; - case CryptoCurrency.xlm: - color = Colors.blueAccent; - break; - case CryptoCurrency.xrp: - color = Colors.black; - break; default: color = Colors.white; } From 2a4d9a8fa6d5cc54404bac4dab1dea7f28791b53 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol <dr.alexander.sobol@gmail.com> Date: Tue, 21 Jan 2020 21:29:02 +0200 Subject: [PATCH 3/4] CWA-163 | added integrated address for xmr to validation --- lib/src/stores/address_book/address_book_store.dart | 6 +++--- lib/src/stores/exchange/exchange_store.dart | 6 +++--- lib/src/stores/send/send_store.dart | 6 +++--- .../stores/wallet_restoration/wallet_restoration_store.dart | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/src/stores/address_book/address_book_store.dart b/lib/src/stores/address_book/address_book_store.dart index 13bd8f591..527809cbd 100644 --- a/lib/src/stores/address_book/address_book_store.dart +++ b/lib/src/stores/address_book/address_book_store.dart @@ -45,15 +45,15 @@ abstract class AddressBookStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), + // XMR (95, 106), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), // ETH (42), LTC (34), NANO (64, 65), TRX (34), USDT (42), XLM (56), XRP (34) - const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$'; + const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$|^[0-9a-zA-Z]{106}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); if (isValid && cryptoCurrency != null) { switch (cryptoCurrency) { case CryptoCurrency.xmr: - isValid = (value.length == 95); + isValid = (value.length == 95)||(value.length == 106); break; case CryptoCurrency.ada: isValid = (value.length == 59)||(value.length == 92)||(value.length == 105); diff --git a/lib/src/stores/exchange/exchange_store.dart b/lib/src/stores/exchange/exchange_store.dart index 7d20fd6c8..a0cf932e4 100644 --- a/lib/src/stores/exchange/exchange_store.dart +++ b/lib/src/stores/exchange/exchange_store.dart @@ -226,15 +226,15 @@ abstract class ExchangeStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), + // XMR (95, 106), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), // ETH (42), LTC (34), NANO (64, 65), TRX (34), USDT (42), XLM (56), XRP (34) - const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$'; + const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$|^[0-9a-zA-Z]{106}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); if (isValid && cryptoCurrency != null) { switch (cryptoCurrency) { case CryptoCurrency.xmr: - isValid = (value.length == 95); + isValid = (value.length == 95)||(value.length == 106); break; case CryptoCurrency.ada: isValid = (value.length == 59)||(value.length == 92)||(value.length == 105); diff --git a/lib/src/stores/send/send_store.dart b/lib/src/stores/send/send_store.dart index 494927857..dbad353c4 100644 --- a/lib/src/stores/send/send_store.dart +++ b/lib/src/stores/send/send_store.dart @@ -155,15 +155,15 @@ abstract class SendStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), + // XMR (95, 106), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), // ETH (42), LTC (34), NANO (64, 65), TRX (34), USDT (42), XLM (56), XRP (34) - const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$'; + const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$|^[0-9a-zA-Z]{106}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); if (isValid && cryptoCurrency != null) { switch (cryptoCurrency) { case CryptoCurrency.xmr: - isValid = (value.length == 95); + isValid = (value.length == 95)||(value.length == 106); break; case CryptoCurrency.ada: isValid = (value.length == 59)||(value.length == 92)||(value.length == 105); diff --git a/lib/src/stores/wallet_restoration/wallet_restoration_store.dart b/lib/src/stores/wallet_restoration/wallet_restoration_store.dart index 2565bfc24..fad8f20d8 100644 --- a/lib/src/stores/wallet_restoration/wallet_restoration_store.dart +++ b/lib/src/stores/wallet_restoration/wallet_restoration_store.dart @@ -116,15 +116,15 @@ abstract class WalleRestorationStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), + // XMR (95, 106), ADA (59, 92, 105), BCH (42), BNB (42), BTC (34, 42), DASH (34), EOS (42), // ETH (42), LTC (34), NANO (64, 65), TRX (34), USDT (42), XLM (56), XRP (34) - const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$'; + const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$|^[0-9a-zA-Z]{56}\$|^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z_]{64}\$|^[0-9a-zA-Z_]{65}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{105}\$|^[0-9a-zA-Z]{106}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); if (isValid && cryptoCurrency != null) { switch (cryptoCurrency) { case CryptoCurrency.xmr: - isValid = (value.length == 95); + isValid = (value.length == 95)||(value.length == 106); break; case CryptoCurrency.ada: isValid = (value.length == 59)||(value.length == 92)||(value.length == 105); From a6ebf1b0b2d95387ce506c01db7b663c4167985c Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol <dr.alexander.sobol@gmail.com> Date: Thu, 23 Jan 2020 21:27:19 +0200 Subject: [PATCH 4/4] CWA-159 | added setCurrentNodeToDefault method to settings store that called when reset button is pressed --- lib/src/screens/nodes/nodes_list_page.dart | 5 +---- lib/src/stores/settings/settings_store.dart | 6 ++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/src/screens/nodes/nodes_list_page.dart b/lib/src/screens/nodes/nodes_list_page.dart index d5383e6ed..de8a76442 100644 --- a/lib/src/screens/nodes/nodes_list_page.dart +++ b/lib/src/screens/nodes/nodes_list_page.dart @@ -50,10 +50,7 @@ class NodeListPage extends BasePage { onPressed: () async { Navigator.pop(context); await nodeList.reset(); - if (nodeList.nodes.isNotEmpty) { - await settings.setCurrentNode( - node: nodeList.nodes[0]); - } + await settings.setCurrentNodeToDefault(); }, child: Text(S.of(context).reset)) ], diff --git a/lib/src/stores/settings/settings_store.dart b/lib/src/stores/settings/settings_store.dart index 4ade305bb..ef6f11236 100644 --- a/lib/src/stores/settings/settings_store.dart +++ b/lib/src/stores/settings/settings_store.dart @@ -11,6 +11,7 @@ import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; import 'package:cake_wallet/src/stores/action_list/action_list_display_mode.dart'; import 'package:cake_wallet/src/screens/settings/items/item_headers.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/domain/common/default_settings_migration.dart'; part 'settings_store.g.dart'; @@ -266,4 +267,9 @@ abstract class SettingsStoreBase with Store { ItemHeaders.faq: S.current.faq }); } + + Future setCurrentNodeToDefault() async { + await changeCurrentNodeToDefault(sharedPreferences: _sharedPreferences, nodes: _nodes); + await loadSettings(); + } }