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:
jwinterm
2026-10-24 23:49:29 -04:00
1406 changed files with 81062 additions and 48972 deletions
+196 -304
View File
@@ -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>(