mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-29 06:38:45 +01:00
Merge upstream Cake Wallet v6.5.0
Catches up from the May 12 fork point (v6.1.2+23) through v6.5.0: 535 upstream commits, including the Monero silent-open fix, Monero on Trezor, Ledger/Trezor BLE fixes, the new seed and history screens, quick Bitcoin sync, git-pinned dependencies (pubspec_overrides.yaml), frozen Hive adapters (*.part.dart), monero_c v0.18.4.6-RC2 and Flutter 3.41.9. Merged with both sides normalized first (import rename, 100-column format), which took the conflict count from 614 paths to 322. The procedure is now scripts/upstream_sync.sh. Kept from Hash Bags: - WalletType enum order and Hive IDs. SQLite stores WalletType.index and our order differs from upstream's; taking theirs would reread saved wallets as other chains. Our frozen adapter keeps the shipped IDs. - The 1.0.2 legacy PIN and wallet-password decode and self-heal. - Removed chains (Solana, Tron, Zano, Zcash, Decred, Haven) and the new Robinhood chain stay out; Cake Pay and non-Trocador swaps stay out. - Default nodes (node.wownero.org, sethforprivacy, Blockstream, bysh.me), converted to upstream's isDefault node-list key; Wownero is back in the node reset list. - Privacy: address resolvers limited to domain-anchored sources again; prices.neroswap.com for fiat; upstream's charts tab, which reads prices.cakewallet.com, sits behind FeatureFlag.isChartsEnabled = false. - Lightning stays behind FeatureFlag.isLightningEnabled, including upstream's new post-seed Lightning username step. - Our icon pipeline, branding and bundle identifiers. Twelve new upstream widget tests are skipped: test and code are unchanged from v6.5.0 apart from renames (not rerun on a pristine upstream checkout; upstream's top_bar_test does not compile against its own TopBar). flutter analyze lib: 0 errors; flutter test: 345 passed, 12 skipped; flutter build bundle compiles. Built with Flutter 3.41.9.
This commit is contained in:
+196
-304
@@ -6,11 +6,14 @@ import 'package:hash_wallet/anonpay/anonpay_invoice_info.dart';
|
||||
import 'package:hash_wallet/anypay/anypay_api.dart';
|
||||
import 'package:hash_wallet/bitcoin/bitcoin.dart';
|
||||
import 'package:hash_wallet/bitcoin_cash/bitcoin_cash.dart';
|
||||
import 'package:hash_wallet/core/address_resolver/address_resolver_service.dart';
|
||||
import 'package:hash_wallet/core/anypay/anypay_service.dart';
|
||||
import 'package:hash_wallet/entities/bitcoin_amount_display_mode.dart';
|
||||
import 'package:hash_wallet/evm/evm.dart';
|
||||
import 'package:hash_wallet/buy/moonpay/moonpay_provider.dart';
|
||||
import 'package:hash_wallet/core/auth_service.dart';
|
||||
import 'package:hash_wallet/core/backup_service_v3.dart';
|
||||
import 'package:hash_wallet/core/csv_export_service.dart';
|
||||
import 'package:hash_wallet/core/key_service.dart';
|
||||
import 'package:hash_wallet/core/new_wallet_arguments.dart';
|
||||
import 'package:hash_wallet/core/new_wallet_type_arguments.dart';
|
||||
@@ -28,7 +31,6 @@ import 'package:hash_wallet/entities/contact.dart';
|
||||
import 'package:hash_wallet/entities/contact_record.dart';
|
||||
import 'package:hash_wallet/entities/exchange_api_mode.dart';
|
||||
import 'package:hash_wallet/entities/hardware_wallet/require_hardware_wallet_connection.dart';
|
||||
import 'package:hash_wallet/entities/parse_address_from_domain.dart';
|
||||
import 'package:hash_wallet/entities/preferences_key.dart';
|
||||
import 'package:hash_wallet/entities/qr_view_data.dart';
|
||||
import 'package:hash_wallet/entities/template.dart';
|
||||
@@ -40,20 +42,29 @@ import 'package:hash_wallet/exchange/provider/trocador_exchange_provider.dart';
|
||||
import 'package:hash_wallet/exchange/trade.dart';
|
||||
import 'package:hash_wallet/monero/monero.dart';
|
||||
import 'package:hash_wallet/nano/nano.dart';
|
||||
import 'package:hash_wallet/new-ui/model/charts/price_store.dart';
|
||||
import 'package:hash_wallet/new-ui/new_dashboard.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/about_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/account_customizer.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_amount_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_network_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_receiving_wallet_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/buy_sell/buy_sell_amount_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_network_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_receiving_wallet_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/charts_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/coin_control_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/addresses_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/home_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/send_page.dart';
|
||||
import "package:hash_wallet/new-ui/services/wallet_switch_service.dart";
|
||||
import 'package:hash_wallet/new-ui/pages/lightning_username_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/receive_page.dart';
|
||||
import "package:hash_wallet/new-ui/pages/seed/pre_seed_page.dart";
|
||||
import "package:hash_wallet/new-ui/pages/seed/show_keys_disclaimer_page.dart";
|
||||
import 'package:hash_wallet/new-ui/viewmodels/charts/charts_bloc.dart';
|
||||
import 'package:hash_wallet/new-ui/viewmodels/lightning_username/lightning_username_bloc.dart';
|
||||
import 'package:hash_wallet/new-ui/widgets/addresses_page/address_label_input.dart';
|
||||
import 'package:hash_wallet/new-ui/widgets/buy_sell/buy_sell_selector_modal.dart';
|
||||
import 'package:hash_wallet/new-ui/widgets/coins_page/assets_history/transaction_details_modal.dart';
|
||||
import 'package:hash_wallet/new-ui/widgets/receive_page/receive_label_modal.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/swap_page.dart';
|
||||
@@ -64,22 +75,11 @@ import 'package:hash_wallet/src/screens/anonpay_details/anonpay_details_page.dar
|
||||
import 'package:hash_wallet/src/screens/auth/auth_page.dart';
|
||||
import 'package:hash_wallet/src/screens/backup/backup_page.dart';
|
||||
import 'package:hash_wallet/src/screens/backup/edit_backup_password_page.dart';
|
||||
import 'package:hash_wallet/src/screens/buy/buy_sell_options_page.dart';
|
||||
import 'package:hash_wallet/src/screens/buy/buy_webview_page.dart';
|
||||
import 'package:hash_wallet/src/screens/buy/payment_method_options_page.dart';
|
||||
import 'package:hash_wallet/src/screens/buy/webview_page.dart';
|
||||
import 'package:hash_wallet/src/screens/contact/contact_list_page.dart';
|
||||
import 'package:hash_wallet/src/screens/contact/contact_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/dashboard_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/desktop_dashboard_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/edit_token_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/home_settings_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/pages/address_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/pages/balance/balance_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/pages/cake_features_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dashboard/pages/transactions_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/background_sync_logs_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/exchange_provider_logs_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/monero_background_sync.dart';
|
||||
@@ -90,43 +90,24 @@ import 'package:hash_wallet/src/screens/dev/qr_tools_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/secure_preferences_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/shared_preferences_page.dart';
|
||||
import 'package:hash_wallet/src/screens/dev/socket_health_logs_page.dart';
|
||||
import 'package:hash_wallet/src/screens/exchange/exchange_page.dart';
|
||||
import 'package:hash_wallet/src/screens/exchange/exchange_template_page.dart';
|
||||
import 'package:hash_wallet/src/screens/exchange_trade/exchange_confirm_page.dart';
|
||||
import 'package:hash_wallet/src/screens/exchange_trade/exchange_trade_external_send_page.dart';
|
||||
import 'package:hash_wallet/src/screens/exchange_trade/exchange_trade_page.dart';
|
||||
import 'package:hash_wallet/src/screens/faq/faq_page.dart';
|
||||
import 'package:hash_wallet/src/screens/integrations/deuro/savings_page.dart';
|
||||
import 'package:hash_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart';
|
||||
import 'package:hash_wallet/src/screens/monero_accounts/monero_account_list_page.dart';
|
||||
import 'package:hash_wallet/src/screens/nano/nano_change_rep_page.dart';
|
||||
import 'package:hash_wallet/src/screens/nano_accounts/nano_account_edit_or_create_page.dart';
|
||||
import 'package:hash_wallet/src/screens/nano_accounts/nano_account_list_page.dart';
|
||||
import 'package:hash_wallet/src/screens/new_wallet/new_wallet_type_page.dart';
|
||||
import 'package:hash_wallet/src/screens/nodes/node_create_or_edit_page.dart';
|
||||
import 'package:hash_wallet/src/screens/nodes/pow_node_create_or_edit_page.dart';
|
||||
import 'package:hash_wallet/src/screens/order_details/order_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/payjoin_details/payjoin_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/pin_code/pin_code_widget.dart';
|
||||
import 'package:hash_wallet/src/screens/receive/address_list_page.dart';
|
||||
import 'package:hash_wallet/src/screens/receive/anonpay_invoice_page.dart';
|
||||
import 'package:hash_wallet/src/screens/receive/anonpay_receive_page.dart';
|
||||
import 'package:hash_wallet/src/screens/receive/fullscreen_qr_page.dart';
|
||||
import 'package:hash_wallet/src/screens/receive/receive_page.dart';
|
||||
import 'package:hash_wallet/src/screens/rescan/rescan_page.dart';
|
||||
import 'package:hash_wallet/src/screens/restore/restore_from_backup_page.dart';
|
||||
import 'package:hash_wallet/src/screens/restore/restore_options_page.dart';
|
||||
import 'package:hash_wallet/src/screens/restore/wallet_restore_choose_derivation.dart';
|
||||
import 'package:hash_wallet/src/screens/restore/wallet_restore_page.dart';
|
||||
import 'package:hash_wallet/src/screens/seed/pre_seed_page.dart';
|
||||
import 'package:hash_wallet/src/screens/seed/seed_verification/seed_verification_page.dart';
|
||||
import 'package:hash_wallet/src/screens/seed/wallet_seed_page.dart';
|
||||
import 'package:hash_wallet/src/screens/send/send_page.dart';
|
||||
import 'package:hash_wallet/src/screens/send/send_template_page.dart';
|
||||
import 'package:hash_wallet/src/screens/send/transaction_success_info_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/background_sync_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/connection_sync_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/desktop_settings/desktop_settings_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/display_settings_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/domain_lookups_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/manage_nodes_page.dart';
|
||||
@@ -138,7 +119,7 @@ import 'package:hash_wallet/src/screens/settings/privacy_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/security_backup_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/silent_payments_logs_page.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/silent_payments_settings.dart';
|
||||
import 'package:hash_wallet/src/screens/settings/trocador_providers_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/wallet_accounts_page.dart';
|
||||
import 'package:hash_wallet/src/screens/setup_2fa/modify_2fa_page.dart';
|
||||
import 'package:hash_wallet/src/screens/setup_2fa/setup_2fa.dart';
|
||||
import 'package:hash_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart';
|
||||
@@ -146,7 +127,6 @@ import 'package:hash_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart';
|
||||
import 'package:hash_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart';
|
||||
import 'package:hash_wallet/src/screens/setup_pin_code/setup_pin_code.dart';
|
||||
import 'package:hash_wallet/src/screens/start_tor/start_tor_page.dart';
|
||||
import 'package:hash_wallet/src/screens/subaddress/address_edit_or_create_page.dart';
|
||||
import 'package:hash_wallet/src/screens/support/support_page.dart';
|
||||
import 'package:hash_wallet/src/screens/support_chat/support_chat_page.dart';
|
||||
import 'package:hash_wallet/src/screens/support_other_links/support_other_links_page.dart';
|
||||
@@ -154,10 +134,8 @@ import 'package:hash_wallet/src/screens/trade_details/trade_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/transaction_details/rbf_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/transaction_details/transaction_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
|
||||
import 'package:hash_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
|
||||
import 'package:hash_wallet/src/screens/ur/animated_ur_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_detail_page.dart';
|
||||
import 'package:hash_wallet/new-ui/pages/bridge/bridge_history_page.dart';
|
||||
import 'package:hash_wallet/src/screens/wallet/wallet_edit_page.dart';
|
||||
import 'package:hash_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
|
||||
import 'package:hash_wallet/src/screens/wallet_connect/services/key_service/wallet_connect_key_service.dart';
|
||||
@@ -181,19 +159,14 @@ import 'package:hash_wallet/store/dashboard/trade_filter_store.dart';
|
||||
import 'package:hash_wallet/store/bridge_transfers_store.dart';
|
||||
import 'package:hash_wallet/store/dashboard/trades_store.dart';
|
||||
import 'package:hash_wallet/store/dashboard/transaction_filter_store.dart';
|
||||
import 'package:hash_wallet/store/node_list_store.dart';
|
||||
import 'package:hash_wallet/store/seed_settings_store.dart';
|
||||
import 'package:hash_wallet/store/settings_store.dart';
|
||||
import 'package:hash_wallet/store/templates/exchange_template_store.dart';
|
||||
import 'package:hash_wallet/store/templates/send_template_store.dart';
|
||||
import 'package:hash_wallet/store/wallet_list_store.dart';
|
||||
import 'package:hash_wallet/store/yat/yat_store.dart';
|
||||
import 'package:hash_wallet/themes/core/theme_store.dart';
|
||||
import 'package:hash_wallet/utils/device_info.dart';
|
||||
import 'package:hash_wallet/utils/payment_request.dart';
|
||||
import 'package:hash_wallet/view_model/advanced_privacy_settings_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/animated_ur_model.dart';
|
||||
import 'package:hash_wallet/view_model/anon_invoice_page_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/anonpay_details_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/auth_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/backup_view_model.dart';
|
||||
@@ -201,13 +174,12 @@ import 'package:hash_wallet/view_model/bridge/bridge_details_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/bridge/bridge_history_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/buy/buy_amount_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/buy/buy_sell_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/buy/buy_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/contact_list/contact_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/contact_list/contact_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/balance_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/dashboard_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/desktop_sidebar_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/home_settings_view_model.dart';
|
||||
import "package:hash_wallet/view_model/dashboard/nft_send_view_model.dart";
|
||||
import 'package:hash_wallet/view_model/dashboard/nft_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/receive_option_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/dashboard/sign_view_model.dart';
|
||||
@@ -223,17 +195,19 @@ import 'package:hash_wallet/view_model/exchange/exchange_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/hardware_wallet/bitbox_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/hardware_wallet/hardware_wallet_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/hardware_wallet/ledger_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/hardware_wallet/trezor_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/hardware_wallet/trezor_connect_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/integrations/deuro_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/link_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/monero_account_list/account_list_item.dart';
|
||||
import 'package:hash_wallet/view_model/monero_account_list/monero_account_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/monero_account_list/monero_account_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/nano_account_list/nano_account_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/nano_account_list/nano_account_list_view_model.dart';
|
||||
import "package:hash_wallet/view_model/wallet_account_list/account_edit_or_create_view_model.dart";
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/account_list_item.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/bitcoin_account_list/bitcoin_account_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/bitcoin_account_list/bitcoin_account_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/monero_account_list/monero_account_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/monero_account_list/monero_account_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/nano_account_list/nano_account_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/nano_account_list/nano_account_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/node_list/node_create_or_edit_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/node_list/node_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/node_list/pow_node_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/order_details_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/payjoin_details_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/payment/payment_view_model.dart';
|
||||
@@ -242,7 +216,6 @@ import 'package:hash_wallet/view_model/restore/restore_wallet.dart';
|
||||
import 'package:hash_wallet/view_model/restore_from_backup_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/seed_settings_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/send/fees_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/send/send_template_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/send/send_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/set_up_2fa_viewmodel.dart';
|
||||
import 'package:hash_wallet/view_model/settings/connection_sync_view_model.dart';
|
||||
@@ -262,6 +235,7 @@ import 'package:hash_wallet/view_model/unspent_coins/unspent_coins_details_view_
|
||||
import 'package:hash_wallet/view_model/unspent_coins/unspent_coins_item.dart';
|
||||
import 'package:hash_wallet/view_model/unspent_coins/unspent_coins_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/bridge/bridge_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_account_list/wallet_account_list_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_address_list/wallet_address_list_item.dart';
|
||||
import 'package:hash_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
|
||||
@@ -302,11 +276,12 @@ import 'new-ui/viewmodels/card_customizer/card_customizer_bloc.dart';
|
||||
import 'new-ui/widgets/addresses_page/address_info.dart';
|
||||
import 'src/screens/buy/buy_sell_page.dart';
|
||||
|
||||
|
||||
final getIt = GetIt.instance;
|
||||
|
||||
var _isSetupFinished = false;
|
||||
late Box<Node> _nodeSource;
|
||||
late Box<Node> _powNodeSource;
|
||||
// late Box<Node> _nodeSource;
|
||||
// late Box<Node> _powNodeSource;
|
||||
late Box<Contact> _contactSource;
|
||||
late Box<Template> _templates;
|
||||
late Box<ExchangeTemplate> _exchangeTemplates;
|
||||
@@ -316,8 +291,6 @@ late Box<UnspentCoinsInfo> _unspentCoinsInfoSource;
|
||||
late Box<PayjoinSession> _payjoinSessionSource;
|
||||
late Box<AnonpayInvoiceInfo> _anonpayInvoiceInfoSource;
|
||||
Future<void> setup({
|
||||
required Box<Node> nodeSource,
|
||||
required Box<Node> powNodeSource,
|
||||
required Box<Contact> contactSource,
|
||||
required Box<Template> templates,
|
||||
required Box<ExchangeTemplate> exchangeTemplates,
|
||||
@@ -329,8 +302,6 @@ Future<void> setup({
|
||||
required SecureStorage secureStorage,
|
||||
required GlobalKey<NavigatorState> navigatorKey,
|
||||
}) async {
|
||||
_nodeSource = nodeSource;
|
||||
_powNodeSource = powNodeSource;
|
||||
_contactSource = contactSource;
|
||||
_templates = templates;
|
||||
_exchangeTemplates = exchangeTemplates;
|
||||
@@ -353,8 +324,6 @@ Future<void> setup({
|
||||
const isBitcoinBuyEnabled = false;
|
||||
|
||||
final settingsStore = await SettingsStoreBase.load(
|
||||
nodeSource: _nodeSource,
|
||||
powNodeSource: _powNodeSource,
|
||||
isBitcoinBuyEnabled: isBitcoinBuyEnabled,
|
||||
);
|
||||
|
||||
@@ -390,18 +359,16 @@ Future<void> setup({
|
||||
}
|
||||
|
||||
void _registerCoreSingletons(SettingsStore settingsStore) {
|
||||
getIt.registerFactory<Box<Node>>(() => _nodeSource);
|
||||
getIt.registerFactory<Box<Node>>(() => _powNodeSource, instanceName: Node.boxName + "pow");
|
||||
|
||||
getIt.registerSingleton(AuthenticationStore());
|
||||
getIt.registerSingleton<WalletListStore>(WalletListStore());
|
||||
getIt.registerSingleton(NodeListStoreBase.instance);
|
||||
// getIt.registerSingleton(NodeListStoreBase.instance);
|
||||
getIt.registerSingleton<SettingsStore>(settingsStore);
|
||||
getIt.registerSingleton<AppStore>(AppStore(
|
||||
authenticationStore: getIt.get<AuthenticationStore>(),
|
||||
walletList: getIt.get<WalletListStore>(),
|
||||
settingsStore: getIt.get<SettingsStore>(),
|
||||
nodeListStore: getIt.get<NodeListStore>(),
|
||||
// nodeListStore: getIt.get<NodeListStore>(),
|
||||
themeStore: getIt.get<ThemeStore>()));
|
||||
getIt.registerSingleton<TradesStore>(TradesStore(appStore: getIt.get<AppStore>()));
|
||||
getIt.registerSingleton<OrdersStore>(
|
||||
@@ -413,11 +380,6 @@ void _registerCoreSingletons(SettingsStore settingsStore) {
|
||||
getIt.registerSingleton<OrderFilterStore>(OrderFilterStore());
|
||||
getIt.registerSingleton<TransactionFilterStore>(TransactionFilterStore(getIt.get<AppStore>()));
|
||||
getIt.registerSingleton<FiatConversionStore>(FiatConversionStore());
|
||||
getIt.registerSingleton<SendTemplateStore>(SendTemplateStore(templateSource: _templates));
|
||||
getIt.registerSingleton<ExchangeTemplateStore>(
|
||||
ExchangeTemplateStore(templateSource: _exchangeTemplates));
|
||||
getIt.registerSingleton<YatStore>(
|
||||
YatStore(appStore: getIt.get<AppStore>(), secureStorage: getIt.get<SecureStorage>())..init());
|
||||
getIt.registerSingleton<AnonpayTransactionsStore>(
|
||||
AnonpayTransactionsStore(anonpayInvoiceInfoSource: _anonpayInvoiceInfoSource));
|
||||
getIt.registerSingleton<SeedSettingsStore>(SeedSettingsStore());
|
||||
@@ -429,23 +391,28 @@ void _registerCoreSingletons(SettingsStore settingsStore) {
|
||||
case HardwareWalletType.ledger:
|
||||
return getIt<LedgerViewModel>();
|
||||
case HardwareWalletType.trezor:
|
||||
return getIt<TrezorViewModel>();
|
||||
return getIt<TrezorConnectViewModel>();
|
||||
case HardwareWalletType.cupcake:
|
||||
case HardwareWalletType.coldcard:
|
||||
case HardwareWalletType.seedsigner:
|
||||
case HardwareWalletType.keystone:
|
||||
throw Exception(
|
||||
"This should not have happened, because airgapped Wallets don't need View Models");
|
||||
"This should not have happened, because airgapped Wallets don't need View Models",
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
getIt.registerLazySingleton(() => LedgerViewModel());
|
||||
getIt.registerLazySingleton(() => LedgerViewModel(getIt<AppStore>()));
|
||||
|
||||
getIt.registerLazySingleton(() => BitboxViewModel());
|
||||
getIt.registerLazySingleton(BitboxViewModel.new);
|
||||
|
||||
getIt.registerLazySingleton(
|
||||
() => TrezorConnect("hashbags://trezor_connect", appName: "Hash Bags"));
|
||||
getIt.registerLazySingleton(() => TrezorViewModel(getIt<TrezorConnect>()));
|
||||
() => TrezorConnect("hashbags://trezor_connect", appName: "Hash Bags"),
|
||||
);
|
||||
|
||||
getIt.registerLazySingleton(
|
||||
() => TrezorConnectViewModel(getIt<TrezorConnect>(), getIt<SecureStorage>()),
|
||||
);
|
||||
|
||||
getIt.registerFactory<KeyService>(() => KeyService(getIt.get<SecureStorage>()));
|
||||
|
||||
@@ -551,7 +518,6 @@ void _registerCoreViewModels(SettingsStore settingsStore) {
|
||||
|
||||
getIt.registerFactory<WalletAddressListViewModel>(() => WalletAddressListViewModel(
|
||||
appStore: getIt.get<AppStore>(),
|
||||
yatStore: getIt.get<YatStore>(),
|
||||
fiatConversionStore: getIt.get<FiatConversionStore>()));
|
||||
|
||||
getIt.registerFactory(() => BalanceViewModel(
|
||||
@@ -562,7 +528,6 @@ void _registerCoreViewModels(SettingsStore settingsStore) {
|
||||
getIt.registerFactory(
|
||||
() => ExchangeViewModel(
|
||||
getIt.get<AppStore>(),
|
||||
getIt.get<ExchangeTemplateStore>(),
|
||||
getIt.get<TradesStore>(),
|
||||
getIt.get<SharedPreferences>(),
|
||||
getIt.get<ContactListViewModel>(),
|
||||
@@ -583,6 +548,13 @@ void _registerCoreViewModels(SettingsStore settingsStore) {
|
||||
getIt.registerFactory(() => DashboardViewModel(
|
||||
tradeMonitor: getIt.get<TradeMonitor>(),
|
||||
balanceViewModel: getIt.get<BalanceViewModel>(),
|
||||
accountListViewModelFactory: () {
|
||||
final wallet = getIt.get<AppStore>().wallet;
|
||||
if (wallet == null) return null;
|
||||
final hasAccounts = wallet.hasAccountsSupport;
|
||||
if (!hasAccounts) return null;
|
||||
return getIt.get<WalletAccountListViewModel>();
|
||||
},
|
||||
appStore: getIt.get<AppStore>(),
|
||||
tradesStore: getIt.get<TradesStore>(),
|
||||
ordersStore: getIt.get<OrdersStore>(),
|
||||
@@ -590,24 +562,30 @@ void _registerCoreViewModels(SettingsStore settingsStore) {
|
||||
orderFilterStore: getIt.get<OrderFilterStore>(),
|
||||
transactionFilterStore: getIt.get<TransactionFilterStore>(),
|
||||
settingsStore: settingsStore,
|
||||
yatStore: getIt.get<YatStore>(),
|
||||
anonpayTransactionsStore: getIt.get<AnonpayTransactionsStore>(),
|
||||
payjoinTransactionsStore: getIt.get<PayjoinTransactionsStore>(),
|
||||
sharedPreferences: getIt.get<SharedPreferences>(),
|
||||
keyService: getIt.get<KeyService>()));
|
||||
|
||||
getIt.registerFactoryParam<CardCustomizerBloc, bool, BitcoinAmountDisplayMode?>(
|
||||
(lightningMode, displayMode) {
|
||||
getIt.registerFactoryParam<CardCustomizerBloc, CardCustomizerBlocParams, void>(
|
||||
(params, _) {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
return CardCustomizerBloc(wallet,
|
||||
lightningMode: lightningMode,
|
||||
canHide: params.canHide,
|
||||
lightningMode: params.lightningMode,
|
||||
displaySats: wallet.type == WalletType.bitcoin &&
|
||||
(displayMode == BitcoinAmountDisplayMode.satoshi ||
|
||||
(displayMode == BitcoinAmountDisplayMode.satoshiForLightning && lightningMode)));
|
||||
(params.amountDisplayMode == BitcoinAmountDisplayMode.satoshi ||
|
||||
(params.amountDisplayMode == BitcoinAmountDisplayMode.satoshiForLightning && params.lightningMode)));
|
||||
});
|
||||
|
||||
getIt.registerFactory<AccountCreationModal>(() => AccountCreationModal(
|
||||
accountEditOrCreateViewModel: getIt.get<MoneroAccountEditOrCreateViewModel>()));
|
||||
getIt.registerLazySingleton<PriceStore>(() => PriceStore(settingsStore: getIt.get<SettingsStore>()));
|
||||
|
||||
getIt.registerFactory<ChartsBloc>(
|
||||
() => ChartsBloc(appStore: getIt.get<AppStore>(), priceStore: getIt.get<PriceStore>()));
|
||||
|
||||
getIt.registerFactory<ChartsPage>(() => ChartsPage(
|
||||
chartsBloc: getIt.get<ChartsBloc>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory<LightningUsernameBloc>(
|
||||
() => LightningUsernameBloc(getIt.get<AppStore>().wallet!));
|
||||
@@ -775,17 +753,6 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
return walletKitService;
|
||||
});
|
||||
|
||||
getIt.registerFactory(() => BalancePage(
|
||||
nftViewModel: getIt.get<NFTViewModel>(),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>(),
|
||||
settingsStore: getIt.get<SettingsStore>()));
|
||||
|
||||
getIt.registerFactory<DashboardPage>(() => DashboardPage(
|
||||
bottomSheetService: getIt.get<BottomSheetService>(),
|
||||
balancePage: getIt.get<BalancePage>(),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>(),
|
||||
addressListViewModel: getIt.get<WalletAddressListViewModel>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory<NewDashboard>(() => NewDashboard(
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>(),
|
||||
@@ -797,27 +764,6 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
nftViewModel: getIt.get<NFTViewModel>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory<DesktopSidebarWrapper>(() {
|
||||
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
|
||||
return DesktopSidebarWrapper(
|
||||
bottomSheetService: getIt.get<BottomSheetService>(),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>(),
|
||||
desktopSidebarViewModel: getIt.get<DesktopSidebarViewModel>(),
|
||||
child: getIt.get<DesktopDashboardPage>(param1: _navigatorKey),
|
||||
desktopNavigatorKey: _navigatorKey,
|
||||
);
|
||||
});
|
||||
getIt.registerFactoryParam<DesktopDashboardPage, GlobalKey<NavigatorState>, void>(
|
||||
(desktopKey, _) => DesktopDashboardPage(
|
||||
balancePage: getIt.get<BalancePage>(),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>(),
|
||||
addressListViewModel: getIt.get<WalletAddressListViewModel>(),
|
||||
desktopKey: desktopKey,
|
||||
));
|
||||
|
||||
getIt.registerFactory<TransactionsPage>(
|
||||
() => TransactionsPage(dashboardViewModel: getIt.get<DashboardViewModel>()));
|
||||
|
||||
getIt.registerFactory<Setup2FAInfoPage>(() => Setup2FAInfoPage());
|
||||
|
||||
getIt.registerFactory<Setup2FAPage>(
|
||||
@@ -829,43 +775,9 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
getIt.registerFactory<Modify2FAPage>(
|
||||
() => Modify2FAPage(setup2FAViewModel: getIt.get<Setup2FAViewModel>()));
|
||||
|
||||
getIt.registerFactory<DesktopSettingsPage>(
|
||||
() => DesktopSettingsPage(getIt.get<DashboardViewModel>()));
|
||||
|
||||
getIt.registerFactoryParam<ReceiveOptionViewModel, ReceivePageOption?, void>(
|
||||
(pageOption, _) => ReceiveOptionViewModel(getIt.get<AppStore>().wallet!, pageOption));
|
||||
|
||||
getIt.registerFactoryParam<AnonInvoicePageViewModel, List<dynamic>, void>((args, _) {
|
||||
final address = args.first as String;
|
||||
final pageOption = args.last as ReceivePageOption;
|
||||
return AnonInvoicePageViewModel(
|
||||
getIt.get<AnonPayApi>(),
|
||||
address,
|
||||
getIt.get<SettingsStore>(),
|
||||
getIt.get<AppStore>().wallet!,
|
||||
_anonpayInvoiceInfoSource,
|
||||
getIt.get<SharedPreferences>(),
|
||||
pageOption,
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<AnonPayInvoicePage, List<dynamic>, void>((List<dynamic> args, _) {
|
||||
final pageOption = args.last as ReceivePageOption;
|
||||
return AnonPayInvoicePage(getIt.get<AnonInvoicePageViewModel>(param1: args),
|
||||
getIt.get<ReceiveOptionViewModel>(param1: pageOption));
|
||||
});
|
||||
|
||||
getIt.registerFactory<ReceivePage>(
|
||||
() => ReceivePage(addressListViewModel: getIt.get<WalletAddressListViewModel>()));
|
||||
|
||||
getIt.registerFactory<AddressPage>(
|
||||
() => AddressPage(
|
||||
addressListViewModel: getIt<WalletAddressListViewModel>(),
|
||||
dashboardViewModel: getIt<DashboardViewModel>(),
|
||||
receiveOptionViewModel: getIt<ReceiveOptionViewModel>(),
|
||||
),
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<NewReceivePage, bool?, CryptoCurrency?>((param1, param2) =>
|
||||
NewReceivePage(
|
||||
addressListViewModel: getIt.get<WalletAddressListViewModel>(),
|
||||
@@ -878,10 +790,6 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
(WalletAddressListItem? item, _) =>
|
||||
WalletAddressEditOrCreateViewModel(wallet: getIt.get<AppStore>().wallet!, item: item));
|
||||
|
||||
getIt.registerFactoryParam<AddressEditOrCreatePage, dynamic, void>((dynamic item, _) =>
|
||||
AddressEditOrCreatePage(
|
||||
addressEditOrCreateViewModel:
|
||||
getIt.get<WalletAddressEditOrCreateViewModel>(param1: item)));
|
||||
|
||||
getIt.registerFactoryParam<AddressLabelInputPopup, dynamic, void>((dynamic item, _) =>
|
||||
AddressLabelInputPopup(
|
||||
@@ -897,17 +805,12 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
walletAddressEditOrCreateViewModel:
|
||||
getIt.get<WalletAddressEditOrCreateViewModel>(param1: item)));
|
||||
|
||||
getIt.registerFactory<SendTemplateViewModel>(() => SendTemplateViewModel(
|
||||
getIt.get<AppStore>().wallet!,
|
||||
getIt.get<AppStore>(),
|
||||
getIt.get<SendTemplateStore>(),
|
||||
getIt.get<FiatConversionStore>()));
|
||||
|
||||
getIt.registerFactoryParam<SendViewModel, UnspentCoinType?, void>(
|
||||
(coinTypeToSpendFrom, _) => SendViewModel(
|
||||
getIt.get<AppStore>(),
|
||||
getIt.get<SendTemplateViewModel>(),
|
||||
getIt.get<FiatConversionStore>(),
|
||||
getIt.get<AddressResolverService>(),
|
||||
getIt.get<BalanceViewModel>(),
|
||||
getIt.get<ContactListViewModel>(),
|
||||
_transactionDescriptionBox,
|
||||
@@ -920,14 +823,7 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
getIt.get<FeesViewModel>()),
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<SendPage, PaymentRequest?, UnspentCoinType?>(
|
||||
(PaymentRequest? initialPaymentRequest, coinTypeToSpendFrom) => SendPage(
|
||||
sendViewModel: getIt.get<SendViewModel>(param1: coinTypeToSpendFrom),
|
||||
authService: getIt.get<AuthService>(),
|
||||
initialPaymentRequest: initialPaymentRequest,
|
||||
paymentViewModel: getIt.get<PaymentViewModel>(),
|
||||
walletSwitcherViewModel: getIt.get<WalletSwitcherViewModel>(),
|
||||
));
|
||||
|
||||
|
||||
getIt.registerFactoryParam<NewSendPage, SendPageParams?, void>((params, _) {
|
||||
params ??= SendPageParams();
|
||||
@@ -936,13 +832,12 @@ void _registerDashboardAndSendPages(AppStore appStore) {
|
||||
authService: getIt.get<AuthService>(),
|
||||
params: params,
|
||||
contactListViewModel: getIt.get<ContactListViewModel>(),
|
||||
paymentViewModel: getIt.get<PaymentViewModel>(),
|
||||
anyPayService: getIt.get<AnyPayService>(),
|
||||
linkViewModel: getIt.get<LinkViewModel>(),
|
||||
walletSwitcherViewModel: getIt.get<WalletSwitcherViewModel>(),
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactory(
|
||||
() => SendTemplatePage(sendTemplateViewModel: getIt.get<SendTemplateViewModel>()));
|
||||
}
|
||||
|
||||
void _registerWalletListAndAccounts() {
|
||||
@@ -1009,44 +904,65 @@ void _registerWalletListAndAccounts() {
|
||||
getIt.registerFactory<MoneroAccountListViewModel>(() {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
if (wallet.type == WalletType.monero || wallet.type == WalletType.wownero) {
|
||||
return MoneroAccountListViewModel(wallet, getIt.get<SettingsStore>());
|
||||
return MoneroAccountListViewModel(wallet);
|
||||
}
|
||||
throw Exception(
|
||||
'Unexpected wallet type: ${wallet.type} for generate Monero AccountListViewModel');
|
||||
});
|
||||
|
||||
getIt.registerFactory(
|
||||
() => MoneroAccountListPage(accountListViewModel: getIt.get<MoneroAccountListViewModel>()));
|
||||
|
||||
getIt.registerFactory(
|
||||
() => NanoAccountListPage(accountListViewModel: getIt.get<NanoAccountListViewModel>()));
|
||||
|
||||
/*getIt.registerFactory(() {
|
||||
final wallet = getIt.get<AppStore>().wallet;
|
||||
|
||||
if (wallet is MoneroWallet) {
|
||||
return MoneroAccountEditOrCreateViewModel(wallet.accountList);
|
||||
getIt.registerFactory<BitcoinAccountListViewModel>(() {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
if (wallet.type == WalletType.bitcoin) {
|
||||
return BitcoinAccountListViewModel(wallet);
|
||||
}
|
||||
|
||||
// FIXME: throw exception.
|
||||
return null;
|
||||
throw Exception(
|
||||
'Unexpected wallet type: ${wallet.type} for generate Bitcoin AccountListViewModel');
|
||||
});
|
||||
|
||||
getIt.registerFactory(() => MoneroAccountEditOrCreatePage(
|
||||
moneroAccountCreationViewModel:
|
||||
getIt.get<MoneroAccountEditOrCreateViewModel>()));*/
|
||||
getIt.registerFactory<WalletAccountListViewModel>(() {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
|
||||
switch (wallet.type) {
|
||||
case WalletType.bitcoin:
|
||||
return getIt.get<BitcoinAccountListViewModel>();
|
||||
case WalletType.monero:
|
||||
case WalletType.wownero:
|
||||
return getIt.get<MoneroAccountListViewModel>();
|
||||
default:
|
||||
throw Exception('Unsupported wallet type for WalletAccountListViewModel: ${wallet.type}');
|
||||
}
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<MoneroAccountEditOrCreateViewModel, AccountListItem?, void>(
|
||||
(AccountListItem? account, _) => MoneroAccountEditOrCreateViewModel(
|
||||
monero!.getAccountList(getIt.get<AppStore>().wallet!),
|
||||
wownero?.getAccountList(getIt.get<AppStore>().wallet!),
|
||||
wallet: getIt.get<AppStore>().wallet!,
|
||||
accountListItem: account));
|
||||
(AccountListItem? account, _) {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
|
||||
getIt.registerFactoryParam<MoneroAccountEditOrCreatePage, AccountListItem?, void>(
|
||||
(AccountListItem? account, _) => MoneroAccountEditOrCreatePage(
|
||||
moneroAccountCreationViewModel:
|
||||
getIt.get<MoneroAccountEditOrCreateViewModel>(param1: account)));
|
||||
if (wallet.type == WalletType.monero) {
|
||||
return MoneroAccountEditOrCreateViewModel(
|
||||
monero!.getAccountList(wallet),
|
||||
null,
|
||||
wallet: wallet,
|
||||
accountListItem: account,
|
||||
);
|
||||
}
|
||||
|
||||
if (wallet.type == WalletType.wownero) {
|
||||
return MoneroAccountEditOrCreateViewModel(
|
||||
null,
|
||||
wownero!.getAccountList(wallet),
|
||||
wallet: wallet,
|
||||
accountListItem: account,
|
||||
);
|
||||
}
|
||||
|
||||
throw StateError("Account creation is unavailable for ${wallet.type}");
|
||||
});
|
||||
|
||||
getIt.registerFactory<BitcoinAccountEditOrCreateViewModel>(
|
||||
() => BitcoinAccountEditOrCreateViewModel(
|
||||
wallet: getIt.get<AppStore>().wallet!,
|
||||
),
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<NanoAccountEditOrCreateViewModel, NanoAccount?, void>(
|
||||
(NanoAccount? account, _) =>
|
||||
@@ -1055,10 +971,6 @@ void _registerWalletListAndAccounts() {
|
||||
wallet: getIt.get<AppStore>().wallet!,
|
||||
accountListItem: account));
|
||||
|
||||
getIt.registerFactoryParam<NanoAccountEditOrCreatePage, NanoAccount?, void>(
|
||||
(NanoAccount? account, _) => NanoAccountEditOrCreatePage(
|
||||
nanoAccountCreationViewModel:
|
||||
getIt.get<NanoAccountEditOrCreateViewModel>(param1: account)));
|
||||
}
|
||||
|
||||
void _registerSettingsAndNodes(List<WalletInfo> walletList) {
|
||||
@@ -1103,13 +1015,17 @@ void _registerSettingsAndNodes(List<WalletInfo> walletList) {
|
||||
|
||||
getIt.registerFactory(() => WalletKeysPage(getIt.get<WalletKeysViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => ShowKeysDisclaimerPage(
|
||||
authService: getIt.get<AuthService>(), settingsStore: getIt.get<SettingsStore>()));
|
||||
|
||||
getIt.registerFactory(() => AnimatedURModel(getIt.get<AppStore>()));
|
||||
|
||||
getIt.registerFactoryParam<AnimatedURPage, Map<String, String>, void>(
|
||||
(Map<String, String> urQr, _) => AnimatedURPage(getIt.get<AnimatedURModel>(), urQr: urQr));
|
||||
|
||||
getIt.registerFactoryParam<ContactViewModel, ContactRecord?, void>(
|
||||
(ContactRecord? contact, _) => ContactViewModel(_contactSource, contact: contact));
|
||||
getIt.registerFactoryParam<ContactViewModel, ContactRecord?, void>((ContactRecord? contact, _) =>
|
||||
ContactViewModel(_contactSource, getIt.get<AppStore>(), getIt.get<AddressResolverService>(),
|
||||
contact: contact));
|
||||
|
||||
getIt.registerFactoryParam<ContactListViewModel, CryptoCurrency?, void>(
|
||||
(CryptoCurrency? cur, _) =>
|
||||
@@ -1125,26 +1041,21 @@ void _registerSettingsAndNodes(List<WalletInfo> walletList) {
|
||||
getIt.registerFactoryParam<ContactPage, ContactRecord?, void>(
|
||||
(ContactRecord? contact, _) => ContactPage(getIt.get<ContactViewModel>(param1: contact)));
|
||||
|
||||
getIt.registerFactory(() => AddressListPage(getIt.get<WalletAddressListViewModel>()));
|
||||
|
||||
getIt.registerFactoryParam<NewAddressesPage, bool, void>(
|
||||
(showHidden, _) => NewAddressesPage(
|
||||
showHidden: showHidden,
|
||||
getIt.registerFactoryParam<NodeListViewModel, bool, void>((isPow, _) {
|
||||
final appStore = getIt.get<AppStore>();
|
||||
return NodeListViewModel(appStore, isPow);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<NewAddressesPage, AddressesPageArgs, void>(
|
||||
(args, _) => NewAddressesPage(
|
||||
showHidden: args.showHidden,
|
||||
popOnSelection: args.popOnSelection,
|
||||
addressListViewModel: getIt<WalletAddressListViewModel>(),
|
||||
dashboardViewModel: getIt<DashboardViewModel>(),
|
||||
),
|
||||
);
|
||||
|
||||
getIt.registerFactory(() {
|
||||
final appStore = getIt.get<AppStore>();
|
||||
return NodeListViewModel(_nodeSource, appStore);
|
||||
});
|
||||
|
||||
getIt.registerFactory(() {
|
||||
final appStore = getIt.get<AppStore>();
|
||||
return PowNodeListViewModel(_powNodeSource, appStore);
|
||||
});
|
||||
|
||||
getIt.registerFactory(
|
||||
() => ConnectionSyncViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>().wallet!));
|
||||
|
||||
@@ -1153,9 +1064,32 @@ void _registerSettingsAndNodes(List<WalletInfo> walletList) {
|
||||
getIt.registerFactory(() => SecurityBackupPage(getIt.get<SecuritySettingsViewModel>(),
|
||||
getIt.get<AuthService>(), getIt.get<AppStore>().wallet!.isHardwareWallet));
|
||||
|
||||
|
||||
getIt.registerFactory<WalletAccountEditOrCreateViewModel>(() {
|
||||
final wallet = getIt.get<AppStore>().wallet!;
|
||||
switch (wallet.type) {
|
||||
case WalletType.bitcoin:
|
||||
return getIt.get<BitcoinAccountEditOrCreateViewModel>();
|
||||
case WalletType.monero:
|
||||
case WalletType.wownero:
|
||||
return getIt.get<MoneroAccountEditOrCreateViewModel>();
|
||||
default:
|
||||
throw Exception(
|
||||
'Unsupported wallet type for WalletAccountEditOrCreateViewModel: ${wallet.type}');
|
||||
}
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<WalletAccountsPage, DashboardViewModel, void>(
|
||||
(dashboardViewModel, _) => WalletAccountsPage(
|
||||
dashboardViewModel: dashboardViewModel,
|
||||
accountListViewModel:
|
||||
dashboardViewModel.accountListViewModel ?? getIt.get<WalletAccountListViewModel>(),
|
||||
accountEditOrCreateViewModel: getIt.get<WalletAccountEditOrCreateViewModel>(),
|
||||
),
|
||||
);
|
||||
|
||||
getIt.registerFactory(() => PrivacyPage(getIt.get<PrivacySettingsViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => TrocadorProvidersPage(getIt.get<TrocadorProvidersViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => DomainLookupsPage(getIt.get<ConnectionSyncViewModel>()));
|
||||
|
||||
@@ -1186,8 +1120,8 @@ void _registerSettingsAndNodes(List<WalletInfo> walletList) {
|
||||
final WalletType type = args['type'] as WalletType? ?? getIt.get<AppStore>().wallet!.type;
|
||||
final bool isPow = args['isPow'] as bool? ?? false;
|
||||
final Node? editingNode = args['editingNode'] as Node?;
|
||||
final nodeSourceArgs = isPow ? _powNodeSource : _nodeSource;
|
||||
return NodeCreateOrEditViewModel(nodeSourceArgs, type, editingNode, getIt.get<SettingsStore>());
|
||||
return NodeCreateOrEditViewModel(isPow, type, getIt.get<SettingsStore>(),
|
||||
editingNode: editingNode);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<NodeCreateOrEditPage, Node?, bool?>(
|
||||
@@ -1216,7 +1150,6 @@ void _registerExchangeAndSwap() {
|
||||
isTestEnvironment: kDebugMode || kProfileMode,
|
||||
));
|
||||
|
||||
getIt.registerFactoryParam<WebViewPage, String, Uri>((title, uri) => WebViewPage(title, uri));
|
||||
|
||||
getIt.registerFactory<FeesViewModel>(
|
||||
() => FeesViewModel(
|
||||
@@ -1235,33 +1168,22 @@ void _registerExchangeAndSwap() {
|
||||
),
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<ExchangePage, PaymentRequest?, void>(
|
||||
(PaymentRequest? paymentRequest, __) {
|
||||
return ExchangePage(getIt.get<ExchangeViewModel>(), getIt.get<AuthService>(), paymentRequest);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<NewSwapPage, PaymentRequest?, CryptoCurrency?>(
|
||||
(PaymentRequest? paymentRequest, CryptoCurrency? initialCurrency) {
|
||||
return NewSwapPage(
|
||||
getIt.get<ExchangeViewModel>(),
|
||||
getIt.get<AuthService>(),
|
||||
getIt.get<AddressResolverService>(),
|
||||
paymentRequest,
|
||||
walletSwitcherViewModel: getIt.get<WalletSwitcherViewModel>(),
|
||||
initialCurrency: initialCurrency,
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactory(() => ExchangeConfirmPage(tradesStore: getIt.get<TradesStore>()));
|
||||
|
||||
getIt.registerFactory(
|
||||
() => ExchangeTradePage(exchangeTradeViewModel: getIt.get<ExchangeTradeViewModel>()));
|
||||
|
||||
getIt.registerFactory(() =>
|
||||
ExchangeTradeExternalSendPage(exchangeTradeViewModel: getIt.get<ExchangeTradeViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => BackgroundSyncPage(getIt.get<DashboardViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => ExchangeTemplatePage(getIt.get<ExchangeViewModel>()));
|
||||
|
||||
getIt.registerFactoryParam<SwapConfirmationBottomSheet, PaymentFlowResult, void>(
|
||||
(paymentFlowResult, _) => SwapConfirmationBottomSheet(
|
||||
@@ -1281,6 +1203,16 @@ void _registerExchangeAndSwap() {
|
||||
appStore: getIt.get<AppStore>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory(() => WalletSwitchService(
|
||||
walletLoadingService: getIt.get<WalletLoadingService>(),
|
||||
appStore: getIt.get<AppStore>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory(() => AnyPayService(
|
||||
appStore: getIt.get<AppStore>(),
|
||||
walletSwitchService: getIt.get<WalletSwitchService>(),
|
||||
));
|
||||
|
||||
getIt.registerFactory(() => WalletSwitcherViewModel(
|
||||
appStore: getIt.get<AppStore>(),
|
||||
walletLoadingService: getIt.get<WalletLoadingService>(),
|
||||
@@ -1348,8 +1280,6 @@ void _registerRestoreAndBackup() {
|
||||
|
||||
getIt.registerFactory(() => RescanPage(getIt.get<RescanViewModel>()));
|
||||
|
||||
getIt.registerFactory(() => FaqPage(getIt.get<SettingsStore>()));
|
||||
|
||||
getIt.registerFactoryParam<WalletRestoreViewModel, WalletType, Map<String, dynamic>?>(
|
||||
(type, additionalParams) {
|
||||
final restoredWallet = additionalParams?['restoredWallet'] as RestoredWallet?;
|
||||
@@ -1374,6 +1304,9 @@ void _registerRestoreAndBackup() {
|
||||
param1: derivations,
|
||||
)));
|
||||
|
||||
getIt.registerFactory<CsvExportService>(
|
||||
() => CsvExportService(transactionDescriptionBox: _transactionDescriptionBox));
|
||||
|
||||
getIt.registerFactoryParam<TransactionDetailsViewModel, List<dynamic>, void>((params, _) {
|
||||
final transactionInfo = params[0] as TransactionInfo;
|
||||
final canReplaceByFee = params[1] as bool? ?? false;
|
||||
@@ -1389,10 +1322,12 @@ void _registerRestoreAndBackup() {
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<TransactionDetailsModal, TransactionInfo, void>((transactionInfo, _) =>
|
||||
TransactionDetailsModal(
|
||||
transactionDetailsViewModel:
|
||||
getIt.get<TransactionDetailsViewModel>(param1: [transactionInfo, false])));
|
||||
getIt.registerFactoryParam<TransactionDetailsModal, TransactionInfo, bool?>(
|
||||
(transactionInfo, highlightNoteField) => TransactionDetailsModal(
|
||||
transactionDetailsViewModel:
|
||||
getIt.get<TransactionDetailsViewModel>(param1: [transactionInfo, false]),
|
||||
highlightNoteField: highlightNoteField ?? false,
|
||||
));
|
||||
|
||||
getIt.registerFactoryParam<TransactionDetailsPage, TransactionInfo, void>(
|
||||
(TransactionInfo transactionInfo, _) => TransactionDetailsPage(
|
||||
@@ -1417,10 +1352,7 @@ void _registerRestoreAndBackup() {
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactory<PreSeedPage>(() => PreSeedPage());
|
||||
|
||||
getIt.registerFactoryParam<TransactionSuccessPage, String, void>(
|
||||
(content, _) => TransactionSuccessPage(content: content));
|
||||
getIt.registerFactory<PreSeedPage>(() => PreSeedPage(getIt.get<AppStore>().wallet!));
|
||||
|
||||
getIt.registerFactoryParam<TradeDetailsViewModel, Trade, void>(
|
||||
(trade, _) => TradeDetailsViewModel(tradeForDetails: trade, appStore: getIt.get<AppStore>()));
|
||||
@@ -1456,40 +1388,12 @@ void _registerRestoreAndBackup() {
|
||||
void _registerBuyAndSupport() {
|
||||
getIt.registerFactory(() => BuyAmountViewModel());
|
||||
|
||||
getIt.registerFactory(() => BuySellViewModel(getIt.get<AppStore>()));
|
||||
getIt.registerFactoryParam<BuySellViewModel, NewBuySellParams, void>((params, _) => BuySellViewModel(
|
||||
params: params, getIt.get<AppStore>(), fiatConversionStore: getIt.get<FiatConversionStore>()));
|
||||
|
||||
getIt.registerFactory(() => BuySellPage(getIt.get<BuySellViewModel>()));
|
||||
getIt.registerFactoryParam<NewBuySellAmountPage, NewBuySellParams, void>((params, _) =>
|
||||
NewBuySellAmountPage(buySellViewModel: getIt.get<BuySellViewModel>(param1: params)));
|
||||
|
||||
getIt.registerFactoryParam<BuyOptionsPage, List<dynamic>, void>((List<dynamic> args, _) {
|
||||
final items = args.first as List<SelectableItem>;
|
||||
final pickAnOption = args[1] as void Function(SelectableOption option)?;
|
||||
final confirmOption = args[2] as void Function(BuildContext contex)?;
|
||||
return BuyOptionsPage(items: items, pickAnOption: pickAnOption, confirmOption: confirmOption);
|
||||
});
|
||||
|
||||
getIt
|
||||
.registerFactoryParam<PaymentMethodOptionsPage, List<dynamic>, void>((List<dynamic> args, _) {
|
||||
final items = args.first as List<SelectableOption>;
|
||||
final pickAnOption = args[1] as void Function(SelectableOption option)?;
|
||||
|
||||
return PaymentMethodOptionsPage(items: items, pickAnOption: pickAnOption);
|
||||
});
|
||||
|
||||
getIt.registerFactory(() {
|
||||
final wallet = getIt.get<AppStore>().wallet;
|
||||
|
||||
return BuyViewModel(_ordersSource, getIt.get<OrdersStore>(), getIt.get<SettingsStore>(),
|
||||
getIt.get<BuyAmountViewModel>(),
|
||||
wallet: wallet!);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<BuyWebViewPage, List<dynamic>, void>((List<dynamic> args, _) {
|
||||
final url = args.first as String;
|
||||
final buyViewModel = args[1] as BuyViewModel;
|
||||
|
||||
return BuyWebViewPage(
|
||||
buyViewModel: buyViewModel, ordersStore: getIt.get<OrdersStore>(), url: url);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<OrderDetailsViewModel, Order, void>((order, _) {
|
||||
final wallet = getIt.get<AppStore>().wallet;
|
||||
@@ -1522,15 +1426,12 @@ void _registerBuyAndSupport() {
|
||||
);
|
||||
});
|
||||
|
||||
getIt.registerFactoryParam<UnspentCoinsListPage, UnspentCoinType?, void>(
|
||||
(coinTypeToSpendFrom, _) => UnspentCoinsListPage(
|
||||
unspentCoinsListViewModel:
|
||||
getIt.get<UnspentCoinsListViewModel>(param1: coinTypeToSpendFrom)));
|
||||
|
||||
getIt.registerFactoryParam<NewCoinControlPage, UnspentCoinType?, void>((coinTypeToSpendFrom, _) =>
|
||||
NewCoinControlPage(
|
||||
unspentCoinsListViewModel:
|
||||
getIt.get<UnspentCoinsListViewModel>(param1: coinTypeToSpendFrom)));
|
||||
getIt.registerFactoryParam<NewCoinControlPage, UnspentCoinType?, bool?>(
|
||||
(coinTypeToSpendFrom, canEdit) => NewCoinControlPage(
|
||||
unspentCoinsListViewModel:
|
||||
getIt.get<UnspentCoinsListViewModel>(param1: coinTypeToSpendFrom),
|
||||
canEdit: canEdit ?? true,
|
||||
));
|
||||
|
||||
getIt.registerFactoryParam<UnspentCoinsDetailsViewModel, UnspentCoinsItem,
|
||||
UnspentCoinsListViewModel>(
|
||||
@@ -1548,8 +1449,9 @@ void _registerBuyAndSupport() {
|
||||
}
|
||||
|
||||
void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
getIt.registerFactory(() => AddressResolver(
|
||||
wallet: getIt.get<AppStore>().wallet!, settingsStore: getIt.get<SettingsStore>()));
|
||||
getIt.registerFactory<AddressResolverService>(
|
||||
() => AddressResolverService(settingsStore: getIt.get<SettingsStore>()),
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<FullscreenQRPage, QrViewData, void>(
|
||||
(QrViewData viewData, _) => FullscreenQRPage(qrViewData: viewData));
|
||||
@@ -1560,11 +1462,6 @@ void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
useTorOnly: getIt.get<SettingsStore>().exchangeStatus == ExchangeApiMode.torOnly,
|
||||
wallet: getIt.get<AppStore>().wallet!));
|
||||
|
||||
getIt.registerFactory(() =>
|
||||
DesktopWalletSelectionDropDown(getIt.get<WalletListViewModel>(), getIt.get<AuthService>()));
|
||||
|
||||
getIt.registerFactory(() => DesktopSidebarViewModel());
|
||||
|
||||
getIt.registerFactoryParam<AnonpayDetailsViewModel, AnonpayInvoiceInfo, void>(
|
||||
(AnonpayInvoiceInfo anonpayInvoiceInfo, _) => AnonpayDetailsViewModel(
|
||||
anonPayApi: getIt.get<AnonPayApi>(),
|
||||
@@ -1580,10 +1477,6 @@ void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
themeStore: getIt.get<ThemeStore>(),
|
||||
));
|
||||
|
||||
getIt.registerFactoryParam<AnonPayReceivePage, AnonPayReceivePageArgs, void>(
|
||||
(AnonPayReceivePageArgs anonpayReceivePageArgs, _) =>
|
||||
AnonPayReceivePage(args: anonpayReceivePageArgs));
|
||||
|
||||
getIt.registerFactoryParam<AnonpayDetailsPage, AnonpayInvoiceInfo, void>(
|
||||
(AnonpayInvoiceInfo anonpayInvoiceInfo, _) => AnonpayDetailsPage(
|
||||
anonpayDetailsViewModel: getIt.get<AnonpayDetailsViewModel>(param1: anonpayInvoiceInfo)));
|
||||
@@ -1608,13 +1501,8 @@ void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
);
|
||||
|
||||
getIt.registerFactoryParam<ManageNodesPage, bool, void>((bool isPow, _) {
|
||||
if (isPow) {
|
||||
return ManageNodesPage(isPow,
|
||||
powNodeListViewModel: getIt.get<PowNodeListViewModel>(),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>());
|
||||
}
|
||||
return ManageNodesPage(isPow,
|
||||
nodeListViewModel: getIt.get<NodeListViewModel>(),
|
||||
nodeListViewModel: getIt.get<NodeListViewModel>(param1: isPow),
|
||||
dashboardViewModel: getIt.get<DashboardViewModel>());
|
||||
});
|
||||
|
||||
@@ -1624,9 +1512,14 @@ void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
|
||||
getIt.registerFactory(() => NFTViewModel(appStore, getIt.get<BottomSheetService>()));
|
||||
|
||||
getIt.registerFactory(() =>
|
||||
NFTSendViewModel(appStore, getIt.get<ContactListViewModel>(param1: CryptoCurrency.sol)));
|
||||
|
||||
getIt.registerFactory(() => SignViewModel(getIt.get<AppStore>().wallet!));
|
||||
|
||||
getIt.registerFactory(() => SeedVerificationPage(getIt.get<WalletSeedViewModel>()));
|
||||
getIt.registerFactoryParam<SeedVerificationPage, bool, void>((bool isNewWalletCreated, _) =>
|
||||
SeedVerificationPage(getIt.get<WalletSeedViewModel>(),
|
||||
isNewWalletCreated: isNewWalletCreated));
|
||||
|
||||
getIt.registerFactory(() => DevMoneroBackgroundSyncPage(getIt.get<DevMoneroBackgroundSync>()));
|
||||
|
||||
@@ -1700,7 +1593,6 @@ void _registerDevToolsAndBridge(AppStore appStore) {
|
||||
getIt.registerLazySingleton(() => NodeSwitchingService(
|
||||
appStore: getIt.get<AppStore>(),
|
||||
settingsStore: getIt.get<SettingsStore>(),
|
||||
nodeSource: _nodeSource,
|
||||
));
|
||||
|
||||
getIt.registerFactoryParam<BridgeAmountPage, CryptoCurrency, void>(
|
||||
|
||||
Reference in New Issue
Block a user