diff --git a/.gitignore b/.gitignore index 9482d8f94b..a36cb95a17 100644 --- a/.gitignore +++ b/.gitignore @@ -228,3 +228,6 @@ flatpak-build/ **/linux/flutter/generated_plugin_registrant.cc **/linux/flutter/generated_plugin_registrant.h **/linux/flutter/generated_plugins.cmake + + +wallet_fuzzer_data/ \ No newline at end of file diff --git a/cw_bitcoin/lib/bitcoin_wallet_keys.dart b/cw_bitcoin/lib/bitcoin_wallet_keys.dart index 4ed0da49cc..1e732489b1 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_keys.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_keys.dart @@ -6,6 +6,11 @@ class BitcoinWalletKeys { final String publicKey; final String xpub; + @override + String toString() { + return 'BitcoinWalletKeys(wif: $wif, privateKey: $privateKey, publicKey: $publicKey, xpub: $xpub)'; + } + Map toJson() => { 'wif': wif, 'privateKey': privateKey, diff --git a/cw_core/lib/monero_wallet_keys.dart b/cw_core/lib/monero_wallet_keys.dart index 4ead3d743a..4324f82707 100644 --- a/cw_core/lib/monero_wallet_keys.dart +++ b/cw_core/lib/monero_wallet_keys.dart @@ -13,4 +13,9 @@ class MoneroWalletKeys { final String publicSpendKey; final String privateSpendKey; final String passphrase; + + @override + String toString() { + return 'MoneroWalletKeys(primaryAddress: $primaryAddress, publicViewKey: $publicViewKey, privateViewKey: $privateViewKey, publicSpendKey: $publicSpendKey, privateSpendKey: $privateSpendKey, passphrase: $passphrase)'; + } } \ No newline at end of file diff --git a/cw_nano/lib/nano_wallet_keys.dart b/cw_nano/lib/nano_wallet_keys.dart index 80a845e644..af72ed6c69 100644 --- a/cw_nano/lib/nano_wallet_keys.dart +++ b/cw_nano/lib/nano_wallet_keys.dart @@ -2,4 +2,9 @@ class NanoWalletKeys { const NanoWalletKeys({required this.seedKey}); final String seedKey; + + @override + String toString() { + return 'NanoWalletKeys(seedKey: $seedKey)'; + } } diff --git a/cw_zano/lib/model/zano_wallet_keys.dart b/cw_zano/lib/model/zano_wallet_keys.dart index 5a224633bb..40fd1d645d 100644 --- a/cw_zano/lib/model/zano_wallet_keys.dart +++ b/cw_zano/lib/model/zano_wallet_keys.dart @@ -9,4 +9,9 @@ class ZanoWalletKeys { final String privateViewKey; final String publicSpendKey; final String privateSpendKey; + + @override + String toString() { + return 'ZanoWalletKeys(publicViewKey: $publicViewKey, privateViewKey: $privateViewKey, publicSpendKey: $publicSpendKey, privateSpendKey: $privateSpendKey)'; + } } \ No newline at end of file diff --git a/lib/di.dart b/lib/di.dart index f913478c53..591bdf966c 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -37,6 +37,10 @@ import 'package:cake_wallet/src/screens/dev/moneroc_call_profiler.dart'; import 'package:cake_wallet/src/screens/dev/network_requests.dart'; import 'package:cake_wallet/src/screens/dev/secure_preferences_page.dart'; import 'package:cake_wallet/src/screens/dev/shared_preferences_page.dart'; +import 'package:cake_wallet/src/screens/dev/file_explorer.dart'; +import 'package:cake_wallet/src/screens/dev/monero_background_sync.dart'; +import 'package:cake_wallet/src/screens/dev/moneroc_call_profiler.dart'; +import 'package:cake_wallet/src/screens/dev/wallet_fuzzer.dart'; import 'package:cake_wallet/src/screens/integrations/deuro/savings_page.dart'; import 'package:cake_wallet/src/screens/settings/background_sync_page.dart'; import 'package:cake_wallet/src/screens/start_tor/start_tor_page.dart'; @@ -1513,6 +1517,10 @@ Future setup({ getIt.registerFactory(() => DevBackgroundSyncLogsPage(getIt.get())); + getIt.registerFactory(() => FileExplorerPage()); + + getIt.registerFactory(() => WalletFuzzerPage()); + getIt.registerFactory(() => SocketHealthLogsViewModel()); getIt.registerFactory(() => DevSocketHealthLogsPage(getIt.get())); diff --git a/lib/main.dart b/lib/main.dart index f37c69705b..9dc1fc68c0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -34,6 +34,7 @@ import 'package:cake_wallet/utils/exception_handler.dart'; import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/view_model/link_view_model.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; +import 'package:cake_wallet/view_model/dev/file_explorer.dart'; import 'package:cw_core/address_info.dart'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/hive_type_ids.dart'; @@ -72,6 +73,9 @@ Future runAppWithZone({Key? topLevelKey}) async { await runZonedGuarded(() async { WidgetsFlutterBinding.ensureInitialized(); + if (FeatureFlag.hasDevOptions) { + await checkAndStartFileMonitoring(); + } FlutterError.onError = ExceptionHandler.onError; /// A callback that is invoked when an unhandled error occurs in the root @@ -221,6 +225,11 @@ Future initializeAppConfigs({bool loadWallet = true}) async { final trades = await CakeHive.openBox(Trade.boxName, encryptionKey: tradesBoxKey); final orders = await CakeHive.openBox(Order.boxName, encryptionKey: ordersBoxKey); final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); + if (walletInfoSource.length == 0) { + printV("WalletInfo corrupted: length == 0"); + } else { + printV("WalletInfo normal: ${walletInfoSource.length}"); + } final templates = await CakeHive.openBox