diff --git a/assets/fonts/Poppins-SemiBold.ttf b/assets/fonts/Poppins-SemiBold.ttf new file mode 100644 index 000000000..dabf7c242 Binary files /dev/null and b/assets/fonts/Poppins-SemiBold.ttf differ diff --git a/assets/images/2.0x/bitcoin_menu.png b/assets/images/2.0x/bitcoin_menu.png new file mode 100644 index 000000000..7afe772aa Binary files /dev/null and b/assets/images/2.0x/bitcoin_menu.png differ diff --git a/assets/images/2.0x/duplicate.png b/assets/images/2.0x/duplicate.png new file mode 100644 index 000000000..b377d0a9d Binary files /dev/null and b/assets/images/2.0x/duplicate.png differ diff --git a/assets/images/2.0x/eye_menu.png b/assets/images/2.0x/eye_menu.png new file mode 100644 index 000000000..82e097023 Binary files /dev/null and b/assets/images/2.0x/eye_menu.png differ diff --git a/assets/images/2.0x/key_menu.png b/assets/images/2.0x/key_menu.png new file mode 100644 index 000000000..dc69ce578 Binary files /dev/null and b/assets/images/2.0x/key_menu.png differ diff --git a/assets/images/2.0x/monero_menu.png b/assets/images/2.0x/monero_menu.png new file mode 100644 index 000000000..b92733a16 Binary files /dev/null and b/assets/images/2.0x/monero_menu.png differ diff --git a/assets/images/2.0x/nodes_menu.png b/assets/images/2.0x/nodes_menu.png new file mode 100644 index 000000000..bb07fcd82 Binary files /dev/null and b/assets/images/2.0x/nodes_menu.png differ diff --git a/assets/images/2.0x/open_book_menu.png b/assets/images/2.0x/open_book_menu.png new file mode 100644 index 000000000..9f7c2c0f6 Binary files /dev/null and b/assets/images/2.0x/open_book_menu.png differ diff --git a/assets/images/2.0x/reconnect_menu.png b/assets/images/2.0x/reconnect_menu.png new file mode 100644 index 000000000..17a08ecdc Binary files /dev/null and b/assets/images/2.0x/reconnect_menu.png differ diff --git a/assets/images/2.0x/settings_menu.png b/assets/images/2.0x/settings_menu.png new file mode 100644 index 000000000..9456a57c0 Binary files /dev/null and b/assets/images/2.0x/settings_menu.png differ diff --git a/assets/images/2.0x/wallet_menu.png b/assets/images/2.0x/wallet_menu.png new file mode 100644 index 000000000..c5b622fed Binary files /dev/null and b/assets/images/2.0x/wallet_menu.png differ diff --git a/assets/images/3.0x/bitcoin_menu.png b/assets/images/3.0x/bitcoin_menu.png new file mode 100644 index 000000000..a278fa2a5 Binary files /dev/null and b/assets/images/3.0x/bitcoin_menu.png differ diff --git a/assets/images/3.0x/duplicate.png b/assets/images/3.0x/duplicate.png new file mode 100644 index 000000000..4fbef4bf2 Binary files /dev/null and b/assets/images/3.0x/duplicate.png differ diff --git a/assets/images/3.0x/eye_menu.png b/assets/images/3.0x/eye_menu.png new file mode 100644 index 000000000..cae06bb91 Binary files /dev/null and b/assets/images/3.0x/eye_menu.png differ diff --git a/assets/images/3.0x/key_menu.png b/assets/images/3.0x/key_menu.png new file mode 100644 index 000000000..9b423d7c4 Binary files /dev/null and b/assets/images/3.0x/key_menu.png differ diff --git a/assets/images/3.0x/monero_menu.png b/assets/images/3.0x/monero_menu.png new file mode 100644 index 000000000..7d81566f5 Binary files /dev/null and b/assets/images/3.0x/monero_menu.png differ diff --git a/assets/images/3.0x/nodes_menu.png b/assets/images/3.0x/nodes_menu.png new file mode 100644 index 000000000..d97ca64e1 Binary files /dev/null and b/assets/images/3.0x/nodes_menu.png differ diff --git a/assets/images/3.0x/open_book_menu.png b/assets/images/3.0x/open_book_menu.png new file mode 100644 index 000000000..3e7c79133 Binary files /dev/null and b/assets/images/3.0x/open_book_menu.png differ diff --git a/assets/images/3.0x/reconnect_menu.png b/assets/images/3.0x/reconnect_menu.png new file mode 100644 index 000000000..ebc7672cf Binary files /dev/null and b/assets/images/3.0x/reconnect_menu.png differ diff --git a/assets/images/3.0x/settings_menu.png b/assets/images/3.0x/settings_menu.png new file mode 100644 index 000000000..2da43a238 Binary files /dev/null and b/assets/images/3.0x/settings_menu.png differ diff --git a/assets/images/3.0x/wallet_menu.png b/assets/images/3.0x/wallet_menu.png new file mode 100644 index 000000000..7884a4e23 Binary files /dev/null and b/assets/images/3.0x/wallet_menu.png differ diff --git a/assets/images/bitcoin_menu.png b/assets/images/bitcoin_menu.png new file mode 100644 index 000000000..ed0ea0048 Binary files /dev/null and b/assets/images/bitcoin_menu.png differ diff --git a/assets/images/duplicate.png b/assets/images/duplicate.png new file mode 100644 index 000000000..99cfd4ca2 Binary files /dev/null and b/assets/images/duplicate.png differ diff --git a/assets/images/eye_menu.png b/assets/images/eye_menu.png new file mode 100644 index 000000000..7676b4dbc Binary files /dev/null and b/assets/images/eye_menu.png differ diff --git a/assets/images/key_menu.png b/assets/images/key_menu.png new file mode 100644 index 000000000..929f15391 Binary files /dev/null and b/assets/images/key_menu.png differ diff --git a/assets/images/monero_menu.png b/assets/images/monero_menu.png new file mode 100644 index 000000000..2bb420a80 Binary files /dev/null and b/assets/images/monero_menu.png differ diff --git a/assets/images/nodes_menu.png b/assets/images/nodes_menu.png new file mode 100644 index 000000000..b743f9107 Binary files /dev/null and b/assets/images/nodes_menu.png differ diff --git a/assets/images/open_book_menu.png b/assets/images/open_book_menu.png new file mode 100644 index 000000000..34721682e Binary files /dev/null and b/assets/images/open_book_menu.png differ diff --git a/assets/images/reconnect_menu.png b/assets/images/reconnect_menu.png new file mode 100644 index 000000000..d94a875e7 Binary files /dev/null and b/assets/images/reconnect_menu.png differ diff --git a/assets/images/settings_menu.png b/assets/images/settings_menu.png new file mode 100644 index 000000000..35ef51aee Binary files /dev/null and b/assets/images/settings_menu.png differ diff --git a/assets/images/wallet_menu.png b/assets/images/wallet_menu.png new file mode 100644 index 000000000..47f968193 Binary files /dev/null and b/assets/images/wallet_menu.png differ diff --git a/lib/core/amount_validator.dart b/lib/core/amount_validator.dart index 0394e9244..8ed81e0a6 100644 --- a/lib/core/amount_validator.dart +++ b/lib/core/amount_validator.dart @@ -3,20 +3,21 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/domain/common/wallet_type.dart'; class AmountValidator extends TextValidator { - AmountValidator({WalletType type}) + AmountValidator({WalletType type, bool isAutovalidate = false}) : super( errorMessage: S.current.error_text_amount, pattern: _pattern(type), + isAutovalidate: isAutovalidate, minLength: 0, maxLength: 0); static String _pattern(WalletType type) { switch (type) { case WalletType.monero: - return '^([0-9]+([.][0-9]{0,12})?|[.][0-9]{1,12})\$'; + return '^([0-9]+([.][0-9]{0,12})?|[.][0-9]{1,12}|ALL)\$'; case WalletType.bitcoin: // FIXME: Incorrect pattern for bitcoin - return '^([0-9]+([.][0-9]{0,12})?|[.][0-9]{1,12})\$'; + return '^([0-9]+([.][0-9]{0,12})?|[.][0-9]{1,12}|ALL)\$'; default: return ''; } diff --git a/lib/core/template_validator.dart b/lib/core/template_validator.dart new file mode 100644 index 000000000..85fe66287 --- /dev/null +++ b/lib/core/template_validator.dart @@ -0,0 +1,12 @@ +import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/generated/i18n.dart'; + +class TemplateValidator extends TextValidator { + TemplateValidator() + : super( + minLength: 0, + maxLength: 0, + pattern: '''^[^`,'"]{1,20}\$''', + errorMessage: S.current.error_text_template + ); +} \ No newline at end of file diff --git a/lib/core/validator.dart b/lib/core/validator.dart index 066367eed..fa867c1d6 100644 --- a/lib/core/validator.dart +++ b/lib/core/validator.dart @@ -16,18 +16,20 @@ class TextValidator extends Validator { this.maxLength, this.pattern, this.length, + this.isAutovalidate = false, String errorMessage}) : super(errorMessage: errorMessage); final int minLength; final int maxLength; final List length; + final bool isAutovalidate; String pattern; @override bool isValid(String value) { if (value == null || value.isEmpty) { - return true; + return isAutovalidate ? true : false; } return value.length > (minLength ?? 0) && @@ -42,4 +44,4 @@ class TextValidator extends Validator { class WalletNameValidator extends TextValidator { WalletNameValidator() : super(minLength: 1, maxLength: 15, pattern: '^[a-zA-Z0-9_]\$'); -} +} \ No newline at end of file diff --git a/lib/di.dart b/lib/di.dart index 1229fbed1..dabb7c4e4 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -7,8 +7,11 @@ import 'package:cake_wallet/src/screens/contact/contact_page.dart'; import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; import 'package:cake_wallet/src/screens/nodes/nodes_list_page.dart'; import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; +import 'package:cake_wallet/src/screens/send/send_template_page.dart'; import 'package:cake_wallet/src/screens/settings/settings.dart'; import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; import 'package:cake_wallet/store/contact_list_store.dart'; import 'package:cake_wallet/store/node_list_store.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -41,6 +44,7 @@ import 'package:cake_wallet/view_model/settings/settings_view_model.dart'; import 'package:cake_wallet/view_model/wallet_keys_view_model.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart'; import 'package:cake_wallet/view_model/wallet_seed_view_model.dart'; +import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart'; import 'package:flutter/foundation.dart'; import 'package:get_it/get_it.dart'; import 'package:hive/hive.dart'; @@ -57,7 +61,10 @@ import 'package:cake_wallet/store/dashboard/trades_store.dart'; import 'package:cake_wallet/store/dashboard/trade_filter_store.dart'; import 'package:cake_wallet/store/dashboard/transaction_filter_store.dart'; import 'package:cake_wallet/store/dashboard/fiat_convertation_store.dart'; -import 'package:cake_wallet/store/dashboard/page_view_store.dart'; +import 'package:cake_wallet/store/templates/send_template_store.dart'; +import 'package:cake_wallet/store/templates/exchange_template_store.dart'; +import 'package:cake_wallet/src/domain/common/template.dart'; +import 'package:cake_wallet/src/domain/exchange/exchange_template.dart'; final getIt = GetIt.instance; @@ -84,7 +91,9 @@ Future setup( {Box walletInfoSource, Box nodeSource, Box contactSource, - Box tradesSource}) async { + Box tradesSource, + Box