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/back_vector.png b/assets/images/2.0x/back_vector.png new file mode 100644 index 000000000..8d9239aa9 Binary files /dev/null and b/assets/images/2.0x/back_vector.png 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/question_mark.png b/assets/images/2.0x/question_mark.png new file mode 100644 index 000000000..37f5edfcc Binary files /dev/null and b/assets/images/2.0x/question_mark.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/back_vector.png b/assets/images/3.0x/back_vector.png new file mode 100644 index 000000000..d01030e5d Binary files /dev/null and b/assets/images/3.0x/back_vector.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/question_mark.png b/assets/images/3.0x/question_mark.png new file mode 100644 index 000000000..7b08436f2 Binary files /dev/null and b/assets/images/3.0x/question_mark.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/back_vector.png b/assets/images/back_vector.png new file mode 100644 index 000000000..8717a3463 Binary files /dev/null and b/assets/images/back_vector.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/question_mark.png b/assets/images/question_mark.png new file mode 100644 index 000000000..8a4b4fa70 Binary files /dev/null and b/assets/images/question_mark.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 7df223080..cee4fe8e1 100644 --- a/lib/core/amount_validator.dart +++ b/lib/core/amount_validator.dart @@ -3,10 +3,11 @@ 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); 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 d7f425edf..7c08d9e49 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -4,11 +4,16 @@ import 'package:cake_wallet/src/domain/common/node.dart'; import 'package:cake_wallet/src/domain/exchange/trade.dart'; import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; import 'package:cake_wallet/src/screens/contact/contact_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_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'; @@ -24,10 +29,13 @@ import 'package:cake_wallet/src/screens/receive/receive_page.dart'; import 'package:cake_wallet/src/screens/send/send_page.dart'; import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.dart'; import 'package:cake_wallet/src/screens/wallet_list/wallet_list_page.dart'; +import 'package:cake_wallet/store/theme_changer_store.dart'; import 'package:cake_wallet/store/wallet_list_store.dart'; import 'package:cake_wallet/utils/mobx.dart'; +import 'package:cake_wallet/theme_changer.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart'; +import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart'; import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart'; import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart'; @@ -42,6 +50,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'; @@ -58,7 +67,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; @@ -97,7 +109,9 @@ Future setup( {Box walletInfoSource, Box nodeSource, Box contactSource, - Box tradesSource}) async { + Box tradesSource, + Box