From 79cac41e020df1cd01eb08fc71a2825f35573b1f Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Wed, 14 Aug 2024 03:30:59 +0300 Subject: [PATCH 01/31] update fee rates --- cw_bitcoin/lib/electrum_wallet.dart | 1 + lib/view_model/exchange/exchange_view_model.dart | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 501d94e54e..a4574c689a 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -425,6 +425,7 @@ abstract class ElectrumWalletBase await updateTransactions(); await updateAllUnspents(); await updateBalance(); + updateFeeRates(); if (alwaysScan == true) { _setListeners(walletInfo.restoreHeight); diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 3e45e8ba1c..f2ea8eeb44 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -142,8 +142,17 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with _bestRate = 0; _calculateBestRate(); }); + + if (isElectrumWallet) { + bitcoin!.updateFeeRates(wallet); + } } + bool get isElectrumWallet => + wallet.type == WalletType.bitcoin || + wallet.type == WalletType.litecoin || + wallet.type == WalletType.bitcoinCash; + bool _useTorOnly; final Box trades; final ExchangeTemplateStore _exchangeTemplateStore; From 0c0b06f42c8e6caf9e3f64ad0d2e6ec59794222e Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Wed, 14 Aug 2024 14:55:11 +0300 Subject: [PATCH 02/31] periodically update fees --- cw_bitcoin/lib/electrum_wallet.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index a4574c689a..3ec23c811b 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -264,7 +264,8 @@ abstract class ElectrumWalletBase void Function(FlutterErrorDetails)? _onError; Timer? _autoSaveTimer; - static const int _autoSaveInterval = 30; + Timer? timer; + static const int _autoSaveInterval = 1; Future init() async { await walletAddresses.init(); @@ -272,7 +273,7 @@ abstract class ElectrumWalletBase await save(); _autoSaveTimer = - Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); + Timer.periodic(Duration(minutes: _autoSaveInterval), (_) async => await save()); } @action @@ -427,6 +428,8 @@ abstract class ElectrumWalletBase await updateBalance(); updateFeeRates(); + timer ??= Timer.periodic(const Duration(minutes: 1), (timer) async => await updateFeeRates()); + if (alwaysScan == true) { _setListeners(walletInfo.restoreHeight); } else { @@ -1196,6 +1199,7 @@ abstract class ElectrumWalletBase await electrumClient.close(); } catch (_) {} _autoSaveTimer?.cancel(); + timer?.cancel(); } @action From 8dd8c6e783251a29eaa4cdf02419a7c686136446 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Wed, 14 Aug 2024 19:43:12 +0300 Subject: [PATCH 03/31] minor enhancements --- cw_bitcoin/lib/electrum_wallet.dart | 7 ++++--- cw_evm/lib/evm_chain_wallet.dart | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 3ec23c811b..d180965465 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -264,7 +264,7 @@ abstract class ElectrumWalletBase void Function(FlutterErrorDetails)? _onError; Timer? _autoSaveTimer; - Timer? timer; + Timer? _updateFeeRateTimer; static const int _autoSaveInterval = 1; Future init() async { @@ -428,7 +428,8 @@ abstract class ElectrumWalletBase await updateBalance(); updateFeeRates(); - timer ??= Timer.periodic(const Duration(minutes: 1), (timer) async => await updateFeeRates()); + _updateFeeRateTimer ??= + Timer.periodic(const Duration(minutes: 1), (timer) async => await updateFeeRates()); if (alwaysScan == true) { _setListeners(walletInfo.restoreHeight); @@ -1199,7 +1200,7 @@ abstract class ElectrumWalletBase await electrumClient.close(); } catch (_) {} _autoSaveTimer?.cancel(); - timer?.cancel(); + _updateFeeRateTimer?.cancel(); } @action diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index 80a366e6f1..2c921cac41 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -112,6 +112,8 @@ abstract class EVMChainWalletBase int? gasBaseFee = 0; int estimatedGasUnits = 0; + Timer? _updateFeesTimer; + bool _isTransactionUpdating; // TODO: remove after integrating our own node and having eth_newPendingTransactionFilter @@ -262,6 +264,7 @@ abstract class EVMChainWalletBase void close() { _client.stop(); _transactionsUpdateTimer?.cancel(); + _updateFeesTimer?.cancel(); } @action @@ -296,7 +299,7 @@ abstract class EVMChainWalletBase await _updateEstimatedGasFeeParams(); - Timer.periodic(const Duration(seconds: 10), (timer) async { + _updateFeesTimer ??= Timer.periodic(const Duration(seconds: 30), (timer) async { await _updateEstimatedGasFeeParams(); }); From 8dcce2a87472a2117e1c40010b504a2d7e4068d3 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Thu, 15 Aug 2024 03:43:03 +0300 Subject: [PATCH 04/31] minor enhancements --- lib/src/screens/dashboard/pages/balance_page.dart | 4 ++-- lib/view_model/dashboard/dashboard_view_model.dart | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index 770cda6f97..57f9089869 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -287,8 +287,8 @@ class CryptoBalanceWidget extends StatelessWidget { padding: const EdgeInsets.fromLTRB(16, 0, 16, 8), child: DashBoardRoundedCardWidget( customBorder: 30, - title: "Monero wallet is broken", - subTitle: "Here are the things that are broken:\n - " + title: "This wallet has encountered an issue", + subTitle: "Here are the things that you should note:\n - " +dashboardViewModel.isMoneroWalletBrokenReasons.join("\n - ") +"\n\nPlease restart your wallet and if it doesn't help contact our support.", onTap: () {}, diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index 1baea76cd0..c78f2c42ac 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -32,7 +32,6 @@ import 'package:cake_wallet/view_model/dashboard/trade_list_item.dart'; import 'package:cake_wallet/view_model/dashboard/transaction_list_item.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cake_wallet/wallet_type_utils.dart'; -import 'package:cake_wallet/wownero/wownero.dart' as wow; import 'package:cryptography/cryptography.dart'; import 'package:cw_core/balance.dart'; import 'package:cw_core/cake_hive.dart'; From 0fddb68694e70b68d1b3ceb14c66da85832fa6ae Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Thu, 15 Aug 2024 22:47:22 +0300 Subject: [PATCH 05/31] some improvements add solana node --- assets/solana_node_list.yml | 3 +++ cw_monero/lib/monero_wallet_service.dart | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/assets/solana_node_list.yml b/assets/solana_node_list.yml index 4a2e121615..e3ff9138e2 100644 --- a/assets/solana_node_list.yml +++ b/assets/solana_node_list.yml @@ -1,4 +1,7 @@ - uri: rpc.ankr.com is_default: true + useSSL: true +- + uri: api.mainnet-beta.solana.com:443 useSSL: true \ No newline at end of file diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index d771d18157..f9973f4308 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -119,7 +119,7 @@ class MoneroWalletService extends WalletService< } @override - Future openWallet(String name, String password) async { + Future openWallet(String name, String password, {bool? retryOnFailure}) async { MoneroWallet? wallet; try { final path = await pathForWallet(name: name, type: getType()); @@ -181,12 +181,12 @@ class MoneroWalletService extends WalletService< wallet.onError != null) { wallet.onError!(FlutterErrorDetails(exception: e, stack: s)); } - if (invalidPassword) { + if (invalidPassword || retryOnFailure == false) { rethrow; } await restoreOrResetWalletFiles(name); - return openWallet(name, password); + return openWallet(name, password, retryOnFailure: false); } } From be0093ebcdb89a008f9d8257548b26e751c750a3 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Fri, 16 Aug 2024 03:31:36 +0300 Subject: [PATCH 06/31] handle empty hex as null --- cw_bitcoin/lib/electrum_wallet.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index d180965465..e1d5e194fa 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -1359,7 +1359,7 @@ abstract class ElectrumWalletBase if (confirmations > 0) return false; - if (transactionHex == null) { + if (transactionHex == null || transactionHex.isEmpty) { return false; } From fa4937380525084d7e1a5c603ac45fbd85f869f5 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Fri, 16 Aug 2024 05:07:24 +0300 Subject: [PATCH 07/31] update flutter and app deps --- cw_bitcoin/pubspec.lock | 34 +++++++++++++++++----------------- cw_bitcoin/pubspec.yaml | 2 +- cw_core/pubspec.lock | 36 ++++++++++++++++++------------------ cw_core/pubspec.yaml | 2 +- cw_haven/pubspec.lock | 36 ++++++++++++++++++------------------ cw_haven/pubspec.yaml | 2 +- cw_monero/pubspec.lock | 34 +++++++++++++++++----------------- cw_monero/pubspec.yaml | 2 +- cw_nano/pubspec.lock | 34 +++++++++++++++++----------------- cw_nano/pubspec.yaml | 2 +- cw_wownero/pubspec.lock | 36 ++++++++++++++++++------------------ cw_wownero/pubspec.yaml | 2 +- lib/locales/hausa_intl.dart | 17 ++++++----------- lib/locales/yoruba_intl.dart | 17 ++++++----------- pubspec_base.yaml | 6 ++++-- 15 files changed, 127 insertions(+), 135 deletions(-) diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 12274c1e62..00dd73b400 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -434,10 +434,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -466,26 +466,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" ledger_bitcoin: dependency: "direct main" description: @@ -532,18 +532,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -842,10 +842,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -890,10 +890,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -944,4 +944,4 @@ packages: version: "2.2.1" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.6" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 4498332203..316ff14e20 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: http: ^1.1.0 mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 + intl: ^0.19.0 cw_core: path: ../cw_core bitbox: diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index e905af2d96..6e0d0f580a 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -328,10 +328,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -360,26 +360,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" logging: dependency: transitive description: @@ -400,18 +400,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -661,10 +661,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -709,10 +709,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -754,5 +754,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.10.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 4497a709d3..2429e28020 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: path_provider: ^2.0.11 mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 + intl: ^0.19.0 encrypt: ^5.0.1 cake_backup: git: diff --git a/cw_haven/pubspec.lock b/cw_haven/pubspec.lock index 6e840224c9..628cea1aa9 100644 --- a/cw_haven/pubspec.lock +++ b/cw_haven/pubspec.lock @@ -335,10 +335,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -367,26 +367,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" logging: dependency: transitive description: @@ -407,18 +407,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -652,10 +652,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -700,10 +700,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -745,5 +745,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.7.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index d868c986d8..452fed93a2 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: path_provider: ^2.0.11 mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 + intl: ^0.19.0 cw_core: path: ../cw_core diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock index 07c3b88762..1597474bcb 100644 --- a/cw_monero/pubspec.lock +++ b/cw_monero/pubspec.lock @@ -351,10 +351,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -383,26 +383,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" logging: dependency: transitive description: @@ -423,18 +423,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -709,10 +709,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -757,10 +757,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -811,4 +811,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.6" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index b5a13a126d..dee2051f6b 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: path_provider: ^2.0.11 mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 + intl: ^0.19.0 encrypt: ^5.0.1 polyseed: ^0.0.5 cw_core: diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index bbe9091993..0ccfbfcc3d 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -396,10 +396,10 @@ packages: dependency: transitive description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -428,26 +428,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" libcrypto: dependency: "direct main" description: @@ -476,18 +476,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -810,10 +810,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -858,10 +858,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -904,4 +904,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.6" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index 6fae6a895e..2359ab3b48 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: nanodart: ^2.0.0 decimal: ^2.3.3 libcrypto: ^0.2.2 - ed25519_hd_key: ^2.2.0 + ed25519_hd_key: ^2.2.1 hex: ^0.2.0 http: ^1.1.0 shared_preferences: ^2.0.15 diff --git a/cw_wownero/pubspec.lock b/cw_wownero/pubspec.lock index 85d856b35f..46a815e91f 100644 --- a/cw_wownero/pubspec.lock +++ b/cw_wownero/pubspec.lock @@ -351,10 +351,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -383,26 +383,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" logging: dependency: transitive description: @@ -423,18 +423,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: @@ -693,10 +693,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" timing: dependency: transitive description: @@ -741,10 +741,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.4" watcher: dependency: "direct overridden" description: @@ -786,5 +786,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.7.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index 7a45eb6282..aa56edd6b3 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: path_provider: ^2.0.11 mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 + intl: ^0.19.0 encrypt: ^5.0.1 polyseed: ^0.0.5 cw_core: diff --git a/lib/locales/hausa_intl.dart b/lib/locales/hausa_intl.dart index 6cf757b600..9b91b79f98 100644 --- a/lib/locales/hausa_intl.dart +++ b/lib/locales/hausa_intl.dart @@ -753,48 +753,43 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations { String get scrimOnTapHintRaw => "Scrip on Tap"; @override - // TODO: implement collapsedHint String get collapsedHint => "collapsedHint"; @override - // TODO: implement expandedHint String get expandedHint => "expandedHint"; @override - // TODO: implement expansionTileCollapsedHint String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; @override - // TODO: implement expansionTileCollapsedTapHint String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; @override - // TODO: implement expansionTileExpandedHint String get expansionTileExpandedHint => "expansionTileExpandedHint"; @override - // TODO: implement expansionTileExpandedTapHint String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; @override - // TODO: implement scanTextButtonLabel String get scanTextButtonLabel => "scanTextButtonLabel"; @override - // TODO: implement lookUpButtonLabel String get lookUpButtonLabel => "lookUpButtonLabel"; @override - // TODO: implement menuDismissLabel String get menuDismissLabel => "menuDismissLabel"; @override - // TODO: implement searchWebButtonLabel String get searchWebButtonLabel => "searchWebButtonLabel"; @override - // TODO: implement shareButtonLabel String get shareButtonLabel => "shareButtonLabel"; + + @override + String get clearButtonTooltip => "clearButtonTooltip"; + + @override + String get selectedDateLabel => "selectedDateLabel"; } /// Cupertino Support diff --git a/lib/locales/yoruba_intl.dart b/lib/locales/yoruba_intl.dart index 3c720b80e0..ef760582c2 100644 --- a/lib/locales/yoruba_intl.dart +++ b/lib/locales/yoruba_intl.dart @@ -752,48 +752,43 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations { String get scrimOnTapHintRaw => "Scrip on Tap"; @override - // TODO: implement collapsedHint String get collapsedHint => "collapsedHint"; @override - // TODO: implement expandedHint String get expandedHint => "expandedHint"; @override - // TODO: implement expansionTileCollapsedHint String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; @override - // TODO: implement expansionTileCollapsedTapHint String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; @override - // TODO: implement expansionTileExpandedHint String get expansionTileExpandedHint => "expansionTileExpandedHint"; @override - // TODO: implement expansionTileExpandedTapHint String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; @override - // TODO: implement scanTextButtonLabel String get scanTextButtonLabel => "scanTextButtonLabel"; @override - // TODO: implement lookUpButtonLabel String get lookUpButtonLabel => "lookUpButtonLabel"; @override - // TODO: implement menuDismissLabel String get menuDismissLabel => "menuDismissLabel"; @override - // TODO: implement searchWebButtonLabel String get searchWebButtonLabel => "searchWebButtonLabel"; @override - // TODO: implement shareButtonLabel String get shareButtonLabel => "shareButtonLabel"; + + @override + String get clearButtonTooltip => "clearButtonTooltip"; + + @override + String get selectedDateLabel => "selectedDateLabel"; } /// Cupertino Support diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 567d1b210e..391bb55f7b 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -3,7 +3,7 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - intl: ^0.18.0 + intl: ^0.19.0 url_launcher: ^6.1.4 qr_flutter: git: @@ -27,7 +27,7 @@ dependencies: dio: ^4.0.6 hive: ^2.2.3 hive_flutter: ^1.1.0 - local_auth_android: 1.0.21 + local_auth_android: ^1.0.43 flutter_local_authentication: git: url: https://github.com/cake-tech/flutter_local_authentication @@ -103,6 +103,7 @@ dependencies: ref: cake-update-v4 ledger_flutter: ^1.0.1 hashlib: 1.12.0 + payjoin_flutter: 0.18.0 dev_dependencies: flutter_test: @@ -123,6 +124,7 @@ dev_dependencies: archive: ^3.6.1 dependency_overrides: + pinenacl: ^0.6.0 bech32: git: url: https://github.com/cake-tech/bech32.git From deb13213c113171e7df726bb746eb5235a151033 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Fri, 16 Aug 2024 17:46:32 +0300 Subject: [PATCH 08/31] update android compile sdk for older packages --- android/build.gradle | 25 +++++++++++++++++++++++++ cw_haven/android/build.gradle | 2 +- cw_shared_external/android/build.gradle | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 7ddb751793..b842d6d2ca 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -23,6 +23,31 @@ rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } +subprojects { + afterEvaluate { project -> + if (project.extensions.findByName("android") != null) { + Integer pluginCompileSdk = project.android.compileSdk + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: " + + project.name + + " from " + + pluginCompileSdk + + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." + + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " + + project.name + + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + project.android { + compileSdk 31 + } + } + } + } + + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(":app") +} subprojects { project.evaluationDependsOn(':app') } diff --git a/cw_haven/android/build.gradle b/cw_haven/android/build.gradle index 87e8df641e..5244569cf7 100644 --- a/cw_haven/android/build.gradle +++ b/cw_haven/android/build.gradle @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 28 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' diff --git a/cw_shared_external/android/build.gradle b/cw_shared_external/android/build.gradle index 64b550364d..7967dbd249 100644 --- a/cw_shared_external/android/build.gradle +++ b/cw_shared_external/android/build.gradle @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 30 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' From a0666150ee146b5b91c23fc664a60f705d525a3e Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Sat, 17 Aug 2024 01:27:40 +0300 Subject: [PATCH 09/31] minor improvement --- lib/core/wallet_loading_service.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/core/wallet_loading_service.dart b/lib/core/wallet_loading_service.dart index 2b570f14cf..0087b1332f 100644 --- a/lib/core/wallet_loading_service.dart +++ b/lib/core/wallet_loading_service.dart @@ -60,7 +60,9 @@ class WalletLoadingService { String corruptedWalletsSeeds = "Corrupted wallets seeds (if retrievable, empty otherwise):"; try { corruptedWalletsSeeds += await _getCorruptedWalletSeeds(name, type); - } catch (_) {} + } catch (e) { + corruptedWalletsSeeds += "\nFailed to fetch $name seeds: $e"; + } // try opening another wallet that is not corrupted to give user access to the app final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); @@ -90,7 +92,9 @@ class WalletLoadingService { if (!corruptedWalletsSeeds.contains(seeds)) { corruptedWalletsSeeds += seeds; } - } catch (_) {} + } catch (e) { + corruptedWalletsSeeds += "\nFailed to fetch $name seeds: $e"; + } } } From 516c85e25e4eade047f0dbcac27684f23152e964 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Mon, 19 Aug 2024 15:12:01 +0300 Subject: [PATCH 10/31] update build_runner --- cw_bitcoin/pubspec.yaml | 2 +- cw_bitcoin_cash/pubspec.yaml | 2 +- cw_core/pubspec.yaml | 2 +- cw_ethereum/pubspec.yaml | 2 +- cw_evm/pubspec.yaml | 2 +- cw_haven/pubspec.yaml | 2 +- cw_monero/pubspec.yaml | 2 +- cw_nano/pubspec.yaml | 2 +- cw_polygon/pubspec.yaml | 2 +- cw_solana/pubspec.yaml | 2 +- cw_wownero/pubspec.yaml | 2 +- pubspec_base.yaml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 316ff14e20..3e58c65f90 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -46,7 +46,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 3728bafc59..ea6f254551 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -37,7 +37,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 2429e28020..0760236364 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -34,7 +34,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 462e1d77ee..013bd5a85c 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -29,7 +29,7 @@ dependency_overrides: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 flutter: # assets: diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index b24e375a73..fc09229e43 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -42,7 +42,7 @@ dependency_overrides: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 flutter_lints: ^2.0.0 diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index 452fed93a2..583e98ed7a 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 mobx_codegen: ^2.0.7 build_resolvers: ^2.0.9 hive_generator: ^1.1.3 diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index dee2051f6b..bfa670013a 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index 2359ab3b48..ff2f732d96 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index 8421562b4f..c34d2e1a41 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -34,7 +34,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 + build_runner: ^2.4.12 # For information on the generic Dart part of this file, see the diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index 6fd5cd97cd..c7de743d7b 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -26,7 +26,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 + build_runner: ^2.4.12 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index aa56edd6b3..68da99cab3 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.12 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 391bb55f7b..9e1a7a2772 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -108,7 +108,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.3.3 + build_runner: ^2.4.12 logging: ^1.2.0 mobx_codegen: ^2.1.1 build_resolvers: ^2.0.9 From ef0c7764b30e3ea9038dd3c8fd3193b191793c68 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Tue, 20 Aug 2024 05:43:16 +0300 Subject: [PATCH 11/31] fix build runner issues --- cw_bitcoin/pubspec.lock | 26 ++-- cw_bitcoin/pubspec.yaml | 6 +- cw_bitcoin_cash/pubspec.yaml | 5 +- cw_core/pubspec.lock | 14 +- cw_core/pubspec.yaml | 4 +- cw_evm/pubspec.yaml | 5 +- cw_haven/pubspec.lock | 237 +++++++++++++++++++-------------- cw_haven/pubspec.yaml | 6 +- cw_monero/pubspec.lock | 26 ++-- cw_monero/pubspec.yaml | 6 +- cw_nano/pubspec.lock | 217 ++++++++++++++++++------------- cw_nano/pubspec.yaml | 6 +- cw_solana/pubspec.yaml | 5 +- cw_tron/pubspec.yaml | 7 +- cw_wownero/pubspec.lock | 245 ++++++++++++++++++++--------------- cw_wownero/pubspec.yaml | 20 +-- pubspec_base.yaml | 11 +- 17 files changed, 480 insertions(+), 366 deletions(-) diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 00dd73b400..ece7c36b91 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "61.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "5.13.0" args: dependency: transitive description: @@ -128,18 +128,18 @@ packages: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.12" build_runner_core: dependency: transitive description: @@ -402,10 +402,10 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: @@ -564,10 +564,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.6.1" nested: dependency: transitive description: @@ -943,5 +943,5 @@ packages: source: hosted version: "2.2.1" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.5.0-259.0.dev <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 3e58c65f90..00aa2094be 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -47,9 +47,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - build_resolvers: ^2.0.9 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: ledger_flutter: diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index ea6f254551..aecdac194b 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -38,8 +38,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index 6e0d0f580a..bbcb95208d 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -85,10 +85,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.8" + version: "2.4.12" build_runner_core: dependency: transitive description: @@ -264,10 +264,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -432,10 +432,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: b26c7f9c20b38f0ea572c1ed3f29d8e027cb265538bbd1aed3ec198642cfca42 + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.6.0+1" + version: "2.6.1" nested: dependency: transitive description: @@ -754,5 +754,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.5.0-259.0.dev <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 0760236364..fe1b39b763 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -35,8 +35,8 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - build_resolvers: ^2.0.9 - mobx_codegen: ^2.0.7 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 hive_generator: ^2.0.1 dependency_overrides: diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index fc09229e43..52e3df3306 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -43,8 +43,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 flutter_lints: ^2.0.0 flutter: diff --git a/cw_haven/pubspec.lock b/cw_haven/pubspec.lock index 628cea1aa9..64b699fecd 100644 --- a/cw_haven/pubspec.lock +++ b/cw_haven/pubspec.lock @@ -5,34 +5,39 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.7.0" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.5.0" asn1lib: dependency: transitive description: name: asn1lib - sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 + sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.3" async: dependency: transitive description: @@ -53,10 +58,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -69,34 +74,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.12" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.3.2" built_collection: dependency: transitive description: @@ -109,10 +114,10 @@ packages: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.4.3" + version: "8.9.2" cake_backup: dependency: transitive description: @@ -134,10 +139,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" clock: dependency: transitive description: @@ -150,10 +155,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.10.0" collection: dependency: transitive description: @@ -174,26 +179,26 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.5" cryptography: dependency: transitive description: name: cryptography - sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 + sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.7.0" cupertino_icons: dependency: transitive description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" cw_core: dependency: "direct main" description: @@ -205,18 +210,18 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.6" encrypt: dependency: transitive description: name: encrypt - sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.3" fake_async: dependency: transitive description: @@ -229,10 +234,10 @@ packages: dependency: "direct main" description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.3" file: dependency: transitive description: @@ -258,10 +263,10 @@ packages: dependency: "direct main" description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.1+1" flutter_test: dependency: "direct dev" description: flutter @@ -271,10 +276,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -287,10 +292,10 @@ packages: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" hive: dependency: transitive description: @@ -303,18 +308,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -359,10 +364,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -391,10 +396,18 @@ packages: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -423,26 +436,34 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mobx: dependency: "direct main" description: name: mobx - sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a + sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" url: "https://pub.dev" source: hosted - version: "2.1.3+1" + version: "2.3.3+2" mobx_codegen: dependency: "direct dev" description: name: mobx_codegen - sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181" + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.6.1" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -463,26 +484,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -495,42 +516,42 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.6.2" + version: "3.9.1" pool: dependency: transitive description: @@ -539,38 +560,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" pub_semver: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" shelf: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -580,26 +609,26 @@ packages: dependency: transitive description: name: socks5_proxy - sha256: "1d21b5606169654bbf4cfb904e8e6ed897e9f763358709f87310c757096d909a" + sha256: "616818a0ea1064a4823b53c9f7eaf8da64ed82dcd51ed71371c7e54751ed5053" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" source_gen: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" source_span: dependency: transitive description: @@ -676,10 +705,10 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" unorm_dart: dependency: transitive description: @@ -712,22 +741,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - web_socket_channel: + web: dependency: transitive description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "2.3.0" - win32: + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: dependency: transitive description: - name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.0.1" xdg_directories: dependency: transitive description: @@ -740,10 +777,10 @@ packages: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.5.0-259.0.dev <4.0.0" + flutter: ">=3.22.0" diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index 583e98ed7a..213a1e9f80 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -25,9 +25,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - mobx_codegen: ^2.0.7 - build_resolvers: ^2.0.9 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock index 1597474bcb..57d55aff09 100644 --- a/cw_monero/pubspec.lock +++ b/cw_monero/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "61.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "5.13.0" args: dependency: transitive description: @@ -77,18 +77,18 @@ packages: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.12" build_runner_core: dependency: transitive description: @@ -319,10 +319,10 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: @@ -455,10 +455,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.6.1" monero: dependency: "direct main" description: @@ -810,5 +810,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.5.0-259.0.dev <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index bfa670013a..f5ea0f89e9 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -33,9 +33,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - build_resolvers: ^2.0.9 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index 0ccfbfcc3d..29fcf2daf8 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -5,26 +5,31 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.7.0" args: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" asn1lib: dependency: transitive description: @@ -77,10 +82,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -93,34 +98,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.2" build_resolvers: - dependency: transitive + dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.12" build_runner_core: - dependency: "direct overridden" + dependency: transitive description: name: build_runner_core - sha256: "0671ad4162ed510b70d0eb4ad6354c249f8429cab4ae7a4cec86bbc2886eb76e" + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 url: "https://pub.dev" source: hosted - version: "7.2.7+1" + version: "7.3.2" built_collection: dependency: transitive description: @@ -198,10 +203,10 @@ packages: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" cryptography: dependency: transitive description: @@ -229,10 +234,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.6" decimal: dependency: "direct main" description: @@ -253,10 +258,10 @@ packages: dependency: transitive description: name: encrypt - sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.3" fake_async: dependency: transitive description: @@ -269,10 +274,10 @@ packages: dependency: transitive description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" file: dependency: transitive description: @@ -306,10 +311,10 @@ packages: dependency: transitive description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.1+1" flutter_test: dependency: "direct dev" description: flutter @@ -324,10 +329,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -340,10 +345,10 @@ packages: dependency: transitive description: name: graphs - sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" hex: dependency: "direct main" description: @@ -364,18 +369,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -420,10 +425,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.1" + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -464,6 +469,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -492,10 +505,10 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mobx: dependency: "direct main" description: @@ -508,10 +521,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.6.1" nanodart: dependency: "direct main" description: @@ -529,6 +542,14 @@ packages: url: "https://github.com/perishllc/nanoutil.git" source: git version: "1.0.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -549,26 +570,26 @@ packages: dependency: transitive description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -581,18 +602,18 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" pinenacl: dependency: transitive description: @@ -605,10 +626,10 @@ packages: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -621,10 +642,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.9.1" pool: dependency: transitive description: @@ -633,6 +654,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" pub_semver: dependency: transitive description: @@ -645,50 +674,50 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.3.0" rational: dependency: transitive description: name: rational - sha256: ba58e9e18df9abde280e8b10051e4bce85091e41e8e7e411b6cde2e738d357cf + sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.1" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "671e7a931f55a08aa45be2a13fe7247f2a41237897df434b30d2012388191833" + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.5.2" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: @@ -701,18 +730,18 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.4.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shelf: dependency: transitive description: @@ -725,10 +754,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -738,26 +767,26 @@ packages: dependency: transitive description: name: socks5_proxy - sha256: "1d21b5606169654bbf4cfb904e8e6ed897e9f763358709f87310c757096d909a" + sha256: "616818a0ea1064a4823b53c9f7eaf8da64ed82dcd51ed71371c7e54751ed5053" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" source_gen: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" source_span: dependency: transitive description: @@ -870,22 +899,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - web_socket_channel: + web: dependency: transitive description: - name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "2.4.0" - win32: + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: dependency: transitive description: - name: win32 - sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "3.0.1" xdg_directories: dependency: transitive description: @@ -903,5 +940,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.5.0-259.0.dev <4.0.0" + flutter: ">=3.22.0" diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index ff2f732d96..27c0a2cfe1 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -33,12 +33,12 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 - build_runner_core: 7.2.7+1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index c7de743d7b..229d1e7a57 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -27,8 +27,9 @@ dev_dependencies: sdk: flutter flutter_lints: ^2.0.0 build_runner: ^2.4.12 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_tron/pubspec.yaml b/cw_tron/pubspec.yaml index e69fd7ca04..0296cf72c7 100644 --- a/cw_tron/pubspec.yaml +++ b/cw_tron/pubspec.yaml @@ -31,9 +31,10 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.3.3 - mobx_codegen: ^2.1.1 - hive_generator: ^1.1.3 + build_runner: ^2.4.12 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_wownero/pubspec.lock b/cw_wownero/pubspec.lock index 46a815e91f..3d261841e2 100644 --- a/cw_wownero/pubspec.lock +++ b/cw_wownero/pubspec.lock @@ -5,34 +5,39 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.7.0" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.5.0" asn1lib: dependency: transitive description: name: asn1lib - sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 + sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.3" async: dependency: transitive description: @@ -53,10 +58,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -69,34 +74,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.12" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.3.2" built_collection: dependency: transitive description: @@ -109,10 +114,10 @@ packages: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.4.3" + version: "8.9.2" cake_backup: dependency: transitive description: @@ -134,10 +139,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" clock: dependency: transitive description: @@ -150,10 +155,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.10.0" collection: dependency: transitive description: @@ -174,18 +179,18 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.5" cryptography: dependency: transitive description: name: cryptography - sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 + sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.7.0" cupertino_icons: dependency: transitive description: @@ -205,18 +210,18 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.6" encrypt: dependency: "direct main" description: name: encrypt - sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.3" fake_async: dependency: transitive description: @@ -229,10 +234,10 @@ packages: dependency: "direct main" description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.3" file: dependency: transitive description: @@ -258,10 +263,10 @@ packages: dependency: "direct main" description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.1+1" flutter_test: dependency: "direct dev" description: flutter @@ -271,10 +276,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -287,26 +292,26 @@ packages: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" hashlib: dependency: transitive description: name: hashlib - sha256: "71bf102329ddb8e50c8a995ee4645ae7f1728bb65e575c17196b4d8262121a96" + sha256: d41795742c10947930630118c6836608deeb9047cd05aee32d2baeb697afd66a url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.19.2" hashlib_codecs: dependency: transitive description: name: hashlib_codecs - sha256: "49e2a471f74b15f1854263e58c2ac11f2b631b5b12c836f9708a35397d36d626" + sha256: "8cea9ccafcfeaa7324d2ae52c61c69f7ff71f4237507a018caab31b9e416e3b1" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.6.0" hive: dependency: transitive description: @@ -319,18 +324,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -375,10 +380,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -407,10 +412,18 @@ packages: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -439,26 +452,26 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mobx: dependency: "direct main" description: name: mobx - sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a + sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" url: "https://pub.dev" source: hosted - version: "2.1.3+1" + version: "2.3.3+2" mobx_codegen: dependency: "direct dev" description: name: mobx_codegen - sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181" + sha256: "8e0d8653a0c720ad933cd8358f6f89f740ce89203657c13f25bea772ef1fff7c" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.6.1" monero: dependency: "direct main" description: @@ -476,6 +489,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -496,26 +517,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -528,50 +549,50 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.9.1" polyseed: dependency: "direct main" description: name: polyseed - sha256: edf28042e7b0b28f97a0469aa98e6e4015937cef6b9340cd6ad2822139c95217 + sha256: "11d4dbee409db053c5e9cd77382b2f5115f43fc2529158a826a96f3ba505d770" url: "https://pub.dev" source: hosted - version: "0.0.5" + version: "0.0.6" pool: dependency: transitive description: @@ -580,38 +601,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" pub_semver: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" shelf: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -621,26 +650,26 @@ packages: dependency: transitive description: name: socks5_proxy - sha256: "1d21b5606169654bbf4cfb904e8e6ed897e9f763358709f87310c757096d909a" + sha256: "616818a0ea1064a4823b53c9f7eaf8da64ed82dcd51ed71371c7e54751ed5053" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" source_gen: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" source_span: dependency: transitive description: @@ -717,10 +746,10 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" unorm_dart: dependency: transitive description: @@ -753,22 +782,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - web_socket_channel: + web: dependency: transitive description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "2.3.0" - win32: + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: dependency: transitive description: - name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.0.1" xdg_directories: dependency: transitive description: @@ -781,10 +818,10 @@ packages: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.5.0-259.0.dev <4.0.0" + flutter: ">=3.22.0" diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index 68da99cab3..ea48ad0308 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -12,14 +12,14 @@ environment: dependencies: flutter: sdk: flutter - ffi: ^2.0.1 - http: ^1.1.0 - path_provider: ^2.0.11 - mobx: ^2.0.7+4 - flutter_mobx: ^2.0.6+1 + ffi: ^2.1.3 + http: ^1.2.2 + path_provider: ^2.1.4 + mobx: ^2.3.3+2 + flutter_mobx: ^2.2.1+1 intl: ^0.19.0 - encrypt: ^5.0.1 - polyseed: ^0.0.5 + encrypt: ^5.0.3 + polyseed: ^0.0.6 cw_core: path: ../cw_core monero: @@ -33,9 +33,9 @@ dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 - build_resolvers: ^2.0.9 - mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.2 + mobx_codegen: ^2.6.1 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 9e1a7a2772..e98a46e3e3 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -53,7 +53,7 @@ dependencies: connectivity_plus: ^5.0.2 keyboard_actions: ^4.0.1 another_flushbar: ^1.12.29 - archive: ^3.3.0 + archive: ^3.6.1 cryptography: ^2.0.5 file_picker: git: @@ -103,16 +103,16 @@ dependencies: ref: cake-update-v4 ledger_flutter: ^1.0.1 hashlib: 1.12.0 - payjoin_flutter: 0.18.0 + ldk_node: ^0.3.0 dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.4.12 logging: ^1.2.0 - mobx_codegen: ^2.1.1 - build_resolvers: ^2.0.9 - hive_generator: ^1.1.3 + mobx_codegen: ^2.6.1 + build_resolvers: ^2.4.2 + hive_generator: ^2.0.1 # flutter_launcher_icons: ^0.11.0 # check flutter_launcher_icons for usage pedantic: ^1.8.0 @@ -121,7 +121,6 @@ dev_dependencies: git: url: https://github.com/cake-tech/google-translator.git version: 1.0.0 - archive: ^3.6.1 dependency_overrides: pinenacl: ^0.6.0 From 6a24764c56cb9569c15827bbdff865c3fa1d8c36 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Tue, 20 Aug 2024 05:56:51 +0300 Subject: [PATCH 12/31] fix deps --- cw_wownero/pubspec.yaml | 12 ++++++------ pubspec_base.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index ea48ad0308..19ac341192 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -12,13 +12,13 @@ environment: dependencies: flutter: sdk: flutter - ffi: ^2.1.3 - http: ^1.2.2 - path_provider: ^2.1.4 - mobx: ^2.3.3+2 - flutter_mobx: ^2.2.1+1 + ffi: ^2.0.1 + http: ^1.1.0 + path_provider: ^2.0.11 + mobx: ^2.0.7+4 + flutter_mobx: ^2.0.6+1 intl: ^0.19.0 - encrypt: ^5.0.3 + encrypt: ^5.0.1 polyseed: ^0.0.6 cw_core: path: ../cw_core diff --git a/pubspec_base.yaml b/pubspec_base.yaml index e98a46e3e3..5011eb55ee 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -102,7 +102,7 @@ dependencies: url: https://github.com/cake-tech/bitcoin_base ref: cake-update-v4 ledger_flutter: ^1.0.1 - hashlib: 1.12.0 + hashlib: ^1.19.2 ldk_node: ^0.3.0 dev_dependencies: From 432f7831e415f35426252d2d3befc92e0885f9f1 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Tue, 20 Aug 2024 06:20:35 +0300 Subject: [PATCH 13/31] fix deps --- cw_nano/pubspec.lock | 8 ++++---- pubspec_base.yaml | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index 29fcf2daf8..0c9cb959c9 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -526,7 +526,7 @@ packages: source: hosted version: "2.6.1" nanodart: - dependency: "direct main" + dependency: transitive description: name: nanodart sha256: "4b2f42d60307b54e8cf384d6193a567d07f8efd773858c0d5948246153c13282" @@ -537,11 +537,11 @@ packages: dependency: "direct main" description: path: "." - ref: c37e72817cf0a28162f43124f79661d6c8e0098f - resolved-ref: c37e72817cf0a28162f43124f79661d6c8e0098f + ref: c01a9c552917008d8fbc6b540db657031625b04f + resolved-ref: c01a9c552917008d8fbc6b540db657031625b04f url: "https://github.com/perishllc/nanoutil.git" source: git - version: "1.0.0" + version: "1.0.3" nested: dependency: transitive description: diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 23075b2199..36b3655a83 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -103,7 +103,6 @@ dependencies: ref: cake-update-v5 ledger_flutter: ^1.0.1 hashlib: ^1.19.2 - ldk_node: ^0.3.0 dev_dependencies: flutter_test: From 66d0f4bcf3e7b22ae7d5f012325df63bf83eeebb Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Thu, 22 Aug 2024 15:07:47 -0400 Subject: [PATCH 14/31] update gradle files --- android/app/build.gradle | 14 ++++++-------- android/build.gradle | 14 -------------- android/settings.gradle | 30 ++++++++++++++++++++---------- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 2f5427531f..3df5e393e6 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,9 +22,6 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { diff --git a/android/build.gradle b/android/build.gradle index b842d6d2ca..47e6c41137 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,17 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.21' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' - classpath 'com.google.gms:google-services:4.3.8' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 5a2f14fb18..48ecc74e66 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,15 +1,25 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.21" apply false } + +include ":app" \ No newline at end of file From a955a59557015076bd118dfb15957bf8a88dcc28 Mon Sep 17 00:00:00 2001 From: J0J0XMR Date: Sat, 24 Aug 2024 00:00:54 -0600 Subject: [PATCH 15/31] Receive Payjoin v2 --- cw_bitcoin/lib/bitcoin_payjoin.dart | 307 ++++++++ .../lib/bitcoin_receive_page_option.dart | 5 + cw_bitcoin/pubspec.lock | 48 ++ cw_bitcoin/pubspec.yaml | 5 + .../.plugin_symlinks/path_provider_linux | 1 + lib/bitcoin/cw_bitcoin.dart | 159 +++-- lib/haven/cw_haven.dart | 662 +++++++++--------- lib/main.dart | 83 ++- .../screens/dashboard/pages/address_page.dart | 76 +- .../screens/dashboard/pages/balance_page.dart | 272 +++++-- .../screens/receive/widgets/qr_widget.dart | 98 ++- .../unspent_coins_details_page.dart | 3 +- .../unspent_coins_list_page.dart | 13 +- .../dashboard/dashboard_view_model.dart | 222 +++--- .../wallet_address_list_view_model.dart | 190 ++++- lib/view_model/wallet_creation_vm.dart | 21 +- 16 files changed, 1517 insertions(+), 648 deletions(-) create mode 100644 cw_bitcoin/lib/bitcoin_payjoin.dart create mode 120000 cw_monero/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux diff --git a/cw_bitcoin/lib/bitcoin_payjoin.dart b/cw_bitcoin/lib/bitcoin_payjoin.dart new file mode 100644 index 0000000000..9b8b36e0cb --- /dev/null +++ b/cw_bitcoin/lib/bitcoin_payjoin.dart @@ -0,0 +1,307 @@ +import 'dart:typed_data'; + +import 'package:payjoin_flutter/common.dart'; +import 'package:payjoin_flutter/receive/v2.dart' as v2; +import 'package:payjoin_flutter/uri.dart' as pj_uri; +import 'package:http/http.dart' as http; +import 'package:payjoin_flutter/src/generated/utils/types.dart' as types; + +import 'electrum_wallet.dart'; + +export 'package:payjoin_flutter/receive/v2.dart' + show ActiveSession, UncheckedProposal, PayjoinProposal; + +export 'package:payjoin_flutter/send.dart' show RequestContext; + +export 'package:payjoin_flutter/src/exceptions.dart' show PayjoinException; + +class BitcoinPayjoin { + // Private constructor + BitcoinPayjoin._internal(); + + // Singleton instance + static final BitcoinPayjoin _instance = BitcoinPayjoin._internal(); + + // Factory constructor to return the singleton instance + factory BitcoinPayjoin() { + return _instance; + } + + static const pjUrl = "https://payjo.in"; + static const ohttpRelay = "https://pj.bobspacebkk.com"; + static const payjoinDirectory = "https://payjo.in"; + static const v2ContentType = "message/ohttp-req"; + + Network get testnet => Network.testnet; + Network get mainnet => Network.bitcoin; + + Future> buildV2PjStr({ + int? amount, + required String address, + required Network network, + required int expireAfter, + }) async { + // Start a Payjoin receive session with the given parameters + final session = await _startV2ReceiveSession( + address: address, + network: network, + expireAfter: expireAfter, + ); + + // Get the Payjoin URI builder from the session + final pjUriBuilder = session.pjUriBuilder(); + // Build the URI + final pjUri = pjUriBuilder.build(); + final pjUriStr = pjUri.asString(); + + return {'pjUri': pjUriStr, 'session': session}; + } + + Future _startV2ReceiveSession({ + required String address, + required Network network, + required int expireAfter, + }) async { + // Convert the OHTTP relay URL string to a Url object + final ohttpRelayUrl = await pj_uri.Url.fromStr(ohttpRelay); + // Convert the Payjoin directory URL string to a Url object + final payjoinDirectoryUrl = await pj_uri.Url.fromStr(payjoinDirectory); + + // Fetch OHTTP keys using the relay and directory URLs + pj_uri.OhttpKeys ohttpKeys = await pj_uri.fetchOhttpKeys( + ohttpRelay: ohttpRelayUrl, + payjoinDirectory: payjoinDirectoryUrl, + ); + + // Initialize a Payjoin session with the provided parameters + final session = await v2.SessionInitializer.create( + address: address, + ohttpRelay: ohttpRelayUrl, + directory: payjoinDirectoryUrl, + ohttpKeys: ohttpKeys, + network: network, + expireAfter: BigInt.from(expireAfter), + ); + + // Extract the Payjoin request and context from the session + final extractReq = await session.extractReq(); + + // Send the Payjoin request to the server using HTTP POST + final response = await http.post( + Uri.parse(extractReq.$1.url.asString()), + body: extractReq.$1.body, + headers: { + 'Content-Type': v2ContentType, + }, + ); + + // Process the server's response to activate the Payjoin session + final activeSession = await session.processRes( + body: response.bodyBytes, + ctx: extractReq.$2, + ); + + return activeSession; + } + + Future pollV2Request(v2.ActiveSession session) async { + // Start an infinite loop to continuously poll for requests + while (true) { + try { + // Extract the request and context from the session. This may also throw a timeout error. + final extractReq = await session.extractReq(); + + // Send the extracted request to the server using HTTP POST + final originalPsbt = await http.post( + Uri.parse(extractReq.$1.url.asString()), + body: extractReq.$1.body, + headers: { + 'Content-Type': v2ContentType, + }, + ); + + // Process the server's response to get an unchecked proposal + final uncheckedProposal = await session.processRes( + body: originalPsbt.bodyBytes, + ctx: extractReq.$2, + ); + + // If a valid unchecked proposal is received, return it and end the loop + if (uncheckedProposal != null) { + return uncheckedProposal; + } + + // Wait for 2 seconds before retrying to avoid overloading the server + await Future.delayed(const Duration(seconds: 2)); + } catch (e) { + // If an error occurs (like a timeout), rethrow the error to be handled by the caller + rethrow; + } + } + } + + Future> handleV2Request({ + required v2.UncheckedProposal uncheckedProposal, + required Object receiverWallet, + }) async { + // Call the _handleV2Request function to process the unchecked proposal and + //get the original transaction and a Payjoin proposal + final request = await _handleV2Request( + proposal: uncheckedProposal, + receiverWallet: receiverWallet, + ); + + final originalTx = request['originalTx']; + final payjoinProposal = request['payjoinProposal'] as v2.PayjoinProposal; + + final extractReq = await payjoinProposal.extractV2Req(); + + // Send the extracted V2 request to the server + final res = await http.post( + Uri.parse(extractReq.$1.url.asString()), + body: extractReq.$1.body, + headers: { + 'Content-Type': v2ContentType, + }, + ); + + // Process the server's response to update the Payjoin proposal with the result + await payjoinProposal.processRes( + res: res.bodyBytes, + ohttpContext: extractReq.$2, + ); + + return {'originalTx': originalTx, 'payjoinProposal': payjoinProposal}; + } + + Future> _handleV2Request({ + required v2.UncheckedProposal proposal, + required Object receiverWallet, + }) async { + final bitcoinWallet = receiverWallet as ElectrumWallet; + try { + // Extract the transaction bytes from the proposal to schedule it for broadcasting + final originalTxBytes = await proposal.extractTxToScheduleBroadcast(); + + // TODO: Convert the extracted bytes into a Bitcoin Transaction object + final originalTx = + await bdk.Transaction.fromBytes(transactionBytes: originalTxBytes); + + // Check the suitability of the proposal for broadcasting + final ownedInputs = + await proposal.checkBroadcastSuitability(canBroadcast: (e) async { + return true; // Assume the transaction is suitable for broadcasting + }); + + // Ensure no mixed input scripts (i.e., inputs not owned by the wallet) + final mixedInputScripts = await ownedInputs.checkInputsNotOwned( + isOwned: (i) => _isOwned(i, receiverWallet)); + + // Check that no previously seen inputs are being reused in the transaction + final seenInputs = await mixedInputScripts.checkNoMixedInputScripts(); + + // Identify which outputs belong to the receiver's wallet + final payjoin = + await (await seenInputs.checkNoInputsSeenBefore(isKnown: (e) async { + return false; // Assume no inputs have been seen before + })) + .identifyReceiverOutputs( + isReceiverOutput: (i) => _isOwned(i, receiverWallet), + ); + + // TODO: List all unspent outputs (UTXOs) available in the receiver's wallet + // final availableInputs = receiverWallet.listUnspent(); + final availableInputs = bitcoinWallet.unspentCoins; + + // Create a map of candidate inputs with their corresponding outpoints + Map candidateInputs = { + for (var input in availableInputs) + BigInt.from(input.value): types.OutPoint( + txid: input.hash.toString(), + vout: input.vout, + ) + }; + + // Try to select an outpoint that preserves the privacy of the transaction + final selectedOutpoint = await payjoin.tryPreservingPrivacy( + candidateInputs: candidateInputs, + ); + + // Find the selected UTXO from the available inputs + var selectedUtxo = availableInputs.firstWhere( + (i) => + i.hash == selectedOutpoint.txid && + i.vout == selectedOutpoint.vout, + // (i) => + // i.outpoint.txid == selectedOutpoint.txid && + // i.outpoint.vout == selectedOutpoint.vout, + orElse: () => throw Exception('UTXO not found')); + + // Create a TxOut object representing the selected UTXO's output + var txoToContribute = types.TxOut( + value: BigInt.from(selectedUtxo.value), + scriptPubkey: selectedUtxo.txout.scriptPubkey.bytes, + ); + + // Create an OutPoint object representing the selected UTXO's outpoint + var outpointToContribute = types.OutPoint( + txid: selectedUtxo.hash.toString(), + vout: selectedUtxo.vout, + ); + + // Contribute the selected witness input to the Payjoin transaction + await payjoin.contributeWitnessInput( + txo: txoToContribute, + outpoint: outpointToContribute, + ); + + // Finalize the Payjoin proposal by processing the PSBT (Partially Signed Bitcoin Transaction) + final payjoinProposal = await payjoin.finalizeProposal( + processPsbt: (i) => _processPsbt(i, receiverWallet)); + + // Return the original transaction and the finalized Payjoin proposal + return {'originalTx': originalTx, 'payjoinProposal': payjoinProposal}; + } on Exception catch (e) { + // If an error occurs, log the error and rethrow it + print('[!] bitcoin_payjoin.dart || _handleV2Request() => e: $e'); + rethrow; + } + } + + Future _isOwned(Uint8List bytes, Object wallet) async { + // TODO: Create a ScriptBuf object from the provided byte data + // Eg: final script = bdk.ScriptBuf(bytes: bytes); + + // TODO: Check if the wallet recognizes the script as one of its own + // Eg: return wallet.isMine(script: script); + } + + Future _processPsbt(String preProcessed, Object wallet) async { + // TODO: Convert the provided string representation of a PSBT into a PartiallySignedTransaction object + final psbt = await bdk.PartiallySignedTransaction.fromString(preProcessed); + + // TODO: Sign the PSBT using the wallet's private keys with specified signing options + await wallet.sign( + psbt: psbt, + signOptions: const bdk.SignOptions( + trustWitnessUtxo: true, + allowAllSighashes: false, + removePartialSigs: true, + tryFinalize: true, + signWithTapInternalKey: true, + allowGrinding: false, + ), + ); + + // Return the string representation of the signed PSBT + return psbt.asString(); + } + + Future getTxIdFromPsbt(String psbtBase64) async { + // Create a PartiallySignedTransaction object from the Base64-encoded PSBT string + final psbt = await bdk.PartiallySignedTransaction.fromString(psbtBase64); + // Extract the transaction from the PSBT and get its transaction ID (txid) + final txId = psbt.extractTx().txid(); + return txId; + } +} diff --git a/cw_bitcoin/lib/bitcoin_receive_page_option.dart b/cw_bitcoin/lib/bitcoin_receive_page_option.dart index aa3d4a4cd1..74150e69fa 100644 --- a/cw_bitcoin/lib/bitcoin_receive_page_option.dart +++ b/cw_bitcoin/lib/bitcoin_receive_page_option.dart @@ -10,6 +10,8 @@ class BitcoinReceivePageOption implements ReceivePageOption { static const silent_payments = BitcoinReceivePageOption._('Silent Payments'); + static const payjoin_payments = BitcoinReceivePageOption._('Payjoin'); + const BitcoinReceivePageOption._(this.value); final String value; @@ -19,6 +21,7 @@ class BitcoinReceivePageOption implements ReceivePageOption { } static const all = [ + BitcoinReceivePageOption.payjoin_payments, BitcoinReceivePageOption.silent_payments, BitcoinReceivePageOption.p2wpkh, BitcoinReceivePageOption.p2tr, @@ -39,6 +42,8 @@ class BitcoinReceivePageOption implements ReceivePageOption { return P2shAddressType.p2wpkhInP2sh; case BitcoinReceivePageOption.silent_payments: return SilentPaymentsAddresType.p2sp; + case BitcoinReceivePageOption.payjoin_payments: + return SegwitAddresType.p2tr; case BitcoinReceivePageOption.p2wpkh: default: return SegwitAddresType.p2wpkh; diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 9b537a0795..c5384be8a1 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -108,6 +108,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.4.1" + build_cli_annotations: + dependency: transitive + description: + name: build_cli_annotations + sha256: b59d2769769efd6c9ff6d4c4cede0be115a566afc591705c2040b707534b1172 + url: "https://pub.dev" + source: hosted + version: "2.1.0" build_config: dependency: transitive description: @@ -345,11 +353,27 @@ packages: url: "https://pub.dev" source: hosted version: "5.3.1" + flutter_rust_bridge: + dependency: transitive + description: + name: flutter_rust_bridge + sha256: f703c4b50e253e53efc604d50281bbaefe82d615856f8ae1e7625518ae252e98 + url: "https://pub.dev" + source: hosted + version: "2.0.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -640,6 +664,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + payjoin_flutter: + dependency: "direct main" + description: + name: payjoin_flutter + sha256: "8dd31af1edabca92b636f2a204ded98a386ce4dc9cef0c3e3eef388b07d16889" + url: "https://pub.dev" + source: hosted + version: "0.20.0" platform: dependency: transitive description: @@ -798,6 +830,14 @@ packages: url: "https://github.com/rafael-xmr/sp_scanner" source: git version: "0.0.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" stack_trace: dependency: transitive description: @@ -878,6 +918,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.0" + uuid: + dependency: transitive + description: + name: uuid + sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" + url: "https://pub.dev" + source: hosted + version: "4.4.2" vector_math: dependency: transitive description: diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 0a9917ee77..e77835d061 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -37,6 +37,11 @@ dependencies: git: url: https://github.com/rafael-xmr/sp_scanner ref: sp_v4.0.0 + payjoin_flutter: 0.20.0 + # payjoin_flutter: + # git: + # url: https://github.com/kumulynja/payjoin-flutter + # ref: override-ffi-functions dev_dependencies: diff --git a/cw_monero/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux b/cw_monero/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux new file mode 120000 index 0000000000..e1369277f2 --- /dev/null +++ b/cw_monero/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux @@ -0,0 +1 @@ +/home/payjoin/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ \ No newline at end of file diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 5a71e35497..683f51f9dc 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -1,6 +1,8 @@ part of 'bitcoin.dart'; class CWBitcoin extends Bitcoin { + final payjoin = BitcoinPayjoin(); + WalletCredentials createBitcoinRestoreWalletFromSeedCredentials({ required String name, required String mnemonic, @@ -30,7 +32,8 @@ class CWBitcoin extends Bitcoin { @override WalletCredentials createBitcoinNewWalletCredentials( {required String name, WalletInfo? walletInfo, String? password}) => - BitcoinNewWalletCredentials(name: name, walletInfo: walletInfo, password: password); + BitcoinNewWalletCredentials( + name: name, walletInfo: walletInfo, password: password); @override WalletCredentials createBitcoinHardwareWalletCredentials( @@ -41,7 +44,8 @@ class CWBitcoin extends Bitcoin { name: name, hwAccountData: accountData, walletInfo: walletInfo); @override - TransactionPriority getMediumTransactionPriority() => BitcoinTransactionPriority.medium; + TransactionPriority getMediumTransactionPriority() => + BitcoinTransactionPriority.medium; @override List getWordList() => wordlist; @@ -59,10 +63,12 @@ class CWBitcoin extends Bitcoin { } @override - List getTransactionPriorities() => BitcoinTransactionPriority.all; + List getTransactionPriorities() => + BitcoinTransactionPriority.all; @override - List getLitecoinTransactionPriorities() => LitecoinTransactionPriority.all; + List getLitecoinTransactionPriorities() => + LitecoinTransactionPriority.all; @override TransactionPriority deserializeBitcoinTransactionPriority(int raw) => @@ -86,7 +92,8 @@ class CWBitcoin extends Bitcoin { } @override - Future updateAddress(Object wallet, String address, String label) async { + Future updateAddress( + Object wallet, String address, String label) async { final bitcoinWallet = wallet as ElectrumWallet; bitcoinWallet.walletAddresses.updateAddress(address, label); await wallet.save(); @@ -96,7 +103,9 @@ class CWBitcoin extends Bitcoin { Object createBitcoinTransactionCredentials(List outputs, {required TransactionPriority priority, int? feeRate}) { final bitcoinFeeRate = - priority == BitcoinTransactionPriority.custom && feeRate != null ? feeRate : null; + priority == BitcoinTransactionPriority.custom && feeRate != null + ? feeRate + : null; return BitcoinTransactionCredentials( outputs .map((out) => OutputInfo( @@ -118,7 +127,8 @@ class CWBitcoin extends Bitcoin { Object createBitcoinTransactionCredentialsRaw(List outputs, {TransactionPriority? priority, required int feeRate}) => BitcoinTransactionCredentials(outputs, - priority: priority != null ? priority as BitcoinTransactionPriority : null, + priority: + priority != null ? priority as BitcoinTransactionPriority : null, feeRate: feeRate); @override @@ -137,7 +147,8 @@ class CWBitcoin extends Bitcoin { } @override - Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority) async { + Future estimateFakeSendAllTxAmount( + Object wallet, TransactionPriority priority) async { try { final sk = ECPrivate.random(); final electrumWallet = wallet as ElectrumWallet; @@ -184,10 +195,12 @@ class CWBitcoin extends Bitcoin { bitcoinAmountToDouble(amount: amount); @override - int formatterStringDoubleToBitcoinAmount(String amount) => stringDoubleToBitcoinAmount(amount); + int formatterStringDoubleToBitcoinAmount(String amount) => + stringDoubleToBitcoinAmount(amount); @override - String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate, + String bitcoinTransactionPriorityWithLabel( + TransactionPriority priority, int rate, {int? customRate}) => (priority as BitcoinTransactionPriority).labelWithRate(rate, customRate); @@ -202,51 +215,61 @@ class CWBitcoin extends Bitcoin { await bitcoinWallet.updateAllUnspents(); } - WalletService createBitcoinWalletService( - Box walletInfoSource, Box unspentCoinSource, bool alwaysScan, bool isDirect) { - return BitcoinWalletService(walletInfoSource, unspentCoinSource, alwaysScan, isDirect); + WalletService createBitcoinWalletService(Box walletInfoSource, + Box unspentCoinSource, bool alwaysScan, bool isDirect) { + return BitcoinWalletService( + walletInfoSource, unspentCoinSource, alwaysScan, isDirect); } - WalletService createLitecoinWalletService( - Box walletInfoSource, Box unspentCoinSource, bool isDirect) { + WalletService createLitecoinWalletService(Box walletInfoSource, + Box unspentCoinSource, bool isDirect) { return LitecoinWalletService(walletInfoSource, unspentCoinSource, isDirect); } @override - TransactionPriority getBitcoinTransactionPriorityMedium() => BitcoinTransactionPriority.medium; + TransactionPriority getBitcoinTransactionPriorityMedium() => + BitcoinTransactionPriority.medium; @override - TransactionPriority getBitcoinTransactionPriorityCustom() => BitcoinTransactionPriority.custom; + TransactionPriority getBitcoinTransactionPriorityCustom() => + BitcoinTransactionPriority.custom; @override - TransactionPriority getLitecoinTransactionPriorityMedium() => LitecoinTransactionPriority.medium; + TransactionPriority getLitecoinTransactionPriorityMedium() => + LitecoinTransactionPriority.medium; @override - TransactionPriority getBitcoinTransactionPrioritySlow() => BitcoinTransactionPriority.slow; + TransactionPriority getBitcoinTransactionPrioritySlow() => + BitcoinTransactionPriority.slow; @override - TransactionPriority getLitecoinTransactionPrioritySlow() => LitecoinTransactionPriority.slow; + TransactionPriority getLitecoinTransactionPrioritySlow() => + LitecoinTransactionPriority.slow; @override Future setAddressType(Object wallet, dynamic option) async { final bitcoinWallet = wallet as ElectrumWallet; - await bitcoinWallet.walletAddresses.setAddressType(option as BitcoinAddressType); + await bitcoinWallet.walletAddresses + .setAddressType(option as BitcoinAddressType); } @override ReceivePageOption getSelectedAddressType(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; - return BitcoinReceivePageOption.fromType(bitcoinWallet.walletAddresses.addressPageType); + return BitcoinReceivePageOption.fromType( + bitcoinWallet.walletAddresses.addressPageType); } @override bool hasSelectedSilentPayments(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.walletAddresses.addressPageType == SilentPaymentsAddresType.p2sp; + return bitcoinWallet.walletAddresses.addressPageType == + SilentPaymentsAddresType.p2sp; } @override - List getBitcoinReceivePageOptions() => BitcoinReceivePageOption.all; + List getBitcoinReceivePageOptions() => + BitcoinReceivePageOption.all; @override BitcoinAddressType getBitcoinAddressType(ReceivePageOption option) { @@ -293,7 +316,8 @@ class CWBitcoin extends Bitcoin { }) async { List list = []; - List types = await compareDerivationMethods(mnemonic: mnemonic, node: node); + List types = + await compareDerivationMethods(mnemonic: mnemonic, node: node); if (types.length == 1 && types.first == DerivationType.electrum) { return [getElectrumDerivations()[DerivationType.electrum]!.first]; } @@ -317,7 +341,8 @@ class CWBitcoin extends Bitcoin { if (dType == DerivationType.electrum) { seedBytes = await mnemonicToSeedBytes(mnemonic); } else if (dType == DerivationType.bip39) { - seedBytes = bip39.mnemonicToSeed(mnemonic, passphrase: passphrase ?? ''); + seedBytes = + bip39.mnemonicToSeed(mnemonic, passphrase: passphrase ?? ''); } for (DerivationInfo dInfo in electrum_derivations[dType]!) { @@ -338,17 +363,19 @@ class CWBitcoin extends Bitcoin { balancePath += "/0"; } - final hd = Bip32Slip10Secp256k1.fromSeed(seedBytes).derivePath(balancePath) - as Bip32Slip10Secp256k1; + final hd = Bip32Slip10Secp256k1.fromSeed(seedBytes) + .derivePath(balancePath) as Bip32Slip10Secp256k1; // derive address at index 0: String? address; switch (dInfoCopy.scriptType) { case "p2wpkh": - address = generateP2WPKHAddress(hd: hd, network: network, index: 0); + address = + generateP2WPKHAddress(hd: hd, network: network, index: 0); break; case "p2pkh": - address = generateP2PKHAddress(hd: hd, network: network, index: 0); + address = + generateP2PKHAddress(hd: hd, network: network, index: 0); break; case "p2wpkh-p2sh": address = generateP2SHAddress(hd: hd, network: network, index: 0); @@ -404,14 +431,15 @@ class CWBitcoin extends Bitcoin { } @override - Future isChangeSufficientForFee(Object wallet, String txId, String newFee) async { + Future isChangeSufficientForFee( + Object wallet, String txId, String newFee) async { final bitcoinWallet = wallet as ElectrumWallet; return bitcoinWallet.isChangeSufficientForFee(txId, int.parse(newFee)); } @override - int getFeeAmountForPriority( - Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, + int getFeeAmountForPriority(Object wallet, TransactionPriority priority, + int inputsCount, int outputsCount, {int? size}) { final bitcoinWallet = wallet as ElectrumWallet; return bitcoinWallet.feeAmountForPriority( @@ -431,16 +459,19 @@ class CWBitcoin extends Bitcoin { } @override - int feeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, + int feeAmountWithFeeRate( + Object wallet, int feeRate, int inputsCount, int outputsCount, {int? size}) { final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.feeAmountWithFeeRate(feeRate, inputsCount, outputsCount, size: size); + return bitcoinWallet + .feeAmountWithFeeRate(feeRate, inputsCount, outputsCount, size: size); } @override int getMaxCustomFeeRate(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; - return (bitcoinWallet.feeRate(BitcoinTransactionPriority.fast) * 10).round(); + return (bitcoinWallet.feeRate(BitcoinTransactionPriority.fast) * 10) + .round(); } @override @@ -449,11 +480,15 @@ class CWBitcoin extends Bitcoin { } @override - Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, - {int index = 0, int limit = 5}) async { - final hardwareWalletService = BitcoinHardwareWalletService(ledgerVM.ledger, ledgerVM.device); + Future> getHardwareWalletAccounts( + LedgerViewModel ledgerVM, + {int index = 0, + int limit = 5}) async { + final hardwareWalletService = + BitcoinHardwareWalletService(ledgerVM.ledger, ledgerVM.device); try { - return hardwareWalletService.getAvailableAccounts(index: index, limit: limit); + return hardwareWalletService.getAvailableAccounts( + index: index, limit: limit); } on LedgerException catch (err) { print(err.message); throw err; @@ -520,10 +555,12 @@ class CWBitcoin extends Bitcoin { } @override - int getHeightByDate({required DateTime date}) => getBitcoinHeightByDate(date: date); + int getHeightByDate({required DateTime date}) => + getBitcoinHeightByDate(date: date); @override - Future rescan(Object wallet, {required int height, bool? doSingleScan}) async { + Future rescan(Object wallet, + {required int height, bool? doSingleScan}) async { final bitcoinWallet = wallet as ElectrumWallet; bitcoinWallet.rescan(height: height, doSingleScan: doSingleScan); } @@ -545,4 +582,42 @@ class CWBitcoin extends Bitcoin { final bitcoinWallet = wallet as ElectrumWallet; await bitcoinWallet.updateFeeRates(); } + + @override + Future> buildV2PjStr( + {int? amount, + required String address, + required bool isTestnet, + required int expireAfter}) async { + final res = await payjoin.buildV2PjStr( + address: address, + network: isTestnet ? payjoin.testnet : payjoin.mainnet, + expireAfter: expireAfter, + ); + return res; + } + + @override + Future pollV2Request(ActiveSession session) async { + final res = await payjoin.pollV2Request(session); + return res; + } + + @override + Future> handleV2Request({ + required UncheckedProposal uncheckedProposal, + required Object receiverWallet, + }) async { + final res = await payjoin.handleV2Request( + uncheckedProposal: uncheckedProposal, + receiverWallet: receiverWallet, + ); + return res; + } + + @override + Future getTxIdFromPsbt(String psbtBase64) async { + final res = await payjoin.getTxIdFromPsbt(psbtBase64); + return res; + } } diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart index 57c4e49c32..bbf9ce124e 100644 --- a/lib/haven/cw_haven.dart +++ b/lib/haven/cw_haven.dart @@ -1,331 +1,331 @@ -part of 'haven.dart'; - -class CWHavenAccountList extends HavenAccountList { - CWHavenAccountList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get accounts { - final havenWallet = _wallet as HavenWallet; - final accounts = havenWallet.walletAddresses.accountList.accounts - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - return ObservableList.of(accounts); - } - - @override - void update(Object wallet) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.accountList.update(); - } - - @override - void refresh(Object wallet) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.accountList.refresh(); - } - - @override - List getAll(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.walletAddresses.accountList - .getAll() - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - } - - @override - Future addAccount(Object wallet, {required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.accountList.addAccount(label: label); - } - - @override - Future setLabelAccount(Object wallet, - {required int accountIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.accountList - .setLabelAccount(accountIndex: accountIndex, label: label); - } -} - -class CWHavenSubaddressList extends MoneroSubaddressList { - CWHavenSubaddressList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get subaddresses { - final havenWallet = _wallet as HavenWallet; - final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses - .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) - .toList(); - return ObservableList.of(subAddresses); - } - - @override - void update(Object wallet, {required int accountIndex}) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); - } - - @override - void refresh(Object wallet, {required int accountIndex}) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); - } - - @override - List getAll(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.walletAddresses.subaddressList - .getAll() - .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) - .toList(); - } - - @override - Future addSubaddress(Object wallet, - {required int accountIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.subaddressList - .addSubaddress(accountIndex: accountIndex, label: label); - } - - @override - Future setLabelSubaddress(Object wallet, - {required int accountIndex, required int addressIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.subaddressList - .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); - } -} - -class CWHavenWalletDetails extends HavenWalletDetails { - CWHavenWalletDetails(this._wallet); - - final Object _wallet; - - @computed - @override - Account get account { - final havenWallet = _wallet as HavenWallet; - final acc = havenWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } - - @computed - @override - HavenBalance get balance { - final havenWallet = _wallet as HavenWallet; - final balance = havenWallet.balance; - throw Exception('Unimplemented'); - //return HavenBalance( - // fullBalance: balance.fullBalance, - // unlockedBalance: balance.unlockedBalance); - } -} - -class CWHaven extends Haven { - @override - HavenAccountList getAccountList(Object wallet) { - return CWHavenAccountList(wallet); - } - - @override - MoneroSubaddressList getSubaddressList(Object wallet) { - return CWHavenSubaddressList(wallet); - } - - @override - TransactionHistoryBase getTransactionHistory(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.transactionHistory; - } - - @override - HavenWalletDetails getMoneroWalletDetails(Object wallet) { - return CWHavenWalletDetails(wallet); - } - - @override - int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); - - @override - Future getCurrentHeight() => getHavenCurrentHeight(); - - @override - TransactionPriority getDefaultTransactionPriority() { - return MoneroTransactionPriority.automatic; - } - - @override - TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { - return MoneroTransactionPriority.deserialize(raw: raw); - } - - @override - List getTransactionPriorities() { - return MoneroTransactionPriority.all; - } - - @override - List getMoneroWordList(String language) { - switch (language.toLowerCase()) { - case 'english': - return EnglishMnemonics.words; - case 'chinese (simplified)': - return ChineseSimplifiedMnemonics.words; - case 'dutch': - return DutchMnemonics.words; - case 'german': - return GermanMnemonics.words; - case 'japanese': - return JapaneseMnemonics.words; - case 'portuguese': - return PortugueseMnemonics.words; - case 'russian': - return RussianMnemonics.words; - case 'spanish': - return SpanishMnemonics.words; - case 'french': - return FrenchMnemonics.words; - case 'italian': - return ItalianMnemonics.words; - default: - return EnglishMnemonics.words; - } - } - - @override - WalletCredentials createHavenRestoreWalletFromKeysCredentials( - {required String name, - required String spendKey, - required String viewKey, - required String address, - required String password, - required String language, - required int height}) { - return HavenRestoreWalletFromKeysCredentials( - name: name, - spendKey: spendKey, - viewKey: viewKey, - address: address, - password: password, - language: language, - height: height); - } - - @override - WalletCredentials createHavenRestoreWalletFromSeedCredentials( - {required String name, - required String password, - required int height, - required String mnemonic}) { - return HavenRestoreWalletFromSeedCredentials( - name: name, password: password, height: height, mnemonic: mnemonic); - } - - @override - WalletCredentials createHavenNewWalletCredentials( - {required String name, required String language, String? password}) { - return HavenNewWalletCredentials(name: name, password: password, language: language); - } - - @override - Map getKeys(Object wallet) { - final havenWallet = wallet as HavenWallet; - final keys = havenWallet.keys; - return { - 'privateSpendKey': keys.privateSpendKey, - 'privateViewKey': keys.privateViewKey, - 'publicSpendKey': keys.publicSpendKey, - 'publicViewKey': keys.publicViewKey - }; - } - - @override - Object createHavenTransactionCreationCredentials( - {required List outputs, - required TransactionPriority priority, - required String assetType}) { - return HavenTransactionCreationCredentials( - outputs: outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) - .toList(), - priority: priority as MoneroTransactionPriority, - assetType: assetType); - } - - @override - String formatterMoneroAmountToString({required int amount}) { - return moneroAmountToString(amount: amount); - } - - @override - double formatterMoneroAmountToDouble({required int amount}) { - return moneroAmountToDouble(amount: amount); - } - - @override - int formatterMoneroParseAmount({required String amount}) { - return moneroParseAmount(amount: amount); - } - - @override - Account getCurrentAccount(Object wallet) { - final havenWallet = wallet as HavenWallet; - final acc = havenWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } - - @override - void setCurrentAccount(Object wallet, int id, String label) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); - } - - @override - void onStartup() { - monero_wallet_api.onStartup(); - } - - @override - int getTransactionInfoAccountId(TransactionInfo tx) { - final havenTransactionInfo = tx as HavenTransactionInfo; - return havenTransactionInfo.accountIndex; - } - - @override - WalletService createHavenWalletService(Box walletInfoSource) { - return HavenWalletService(walletInfoSource); - } - - @override - String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { - final havenWallet = wallet as HavenWallet; - return havenWallet.getTransactionAddress(accountIndex, addressIndex); - } - - @override - CryptoCurrency assetOfTransaction(TransactionInfo tx) { - final transaction = tx as HavenTransactionInfo; - final asset = CryptoCurrency.fromString(transaction.assetType); - return asset; - } - - @override - List getAssetRate() => - getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); -} +// part of 'haven.dart'; + +// class CWHavenAccountList extends HavenAccountList { +// CWHavenAccountList(this._wallet); + +// final Object _wallet; + +// @override +// @computed +// ObservableList get accounts { +// final havenWallet = _wallet as HavenWallet; +// final accounts = havenWallet.walletAddresses.accountList.accounts +// .map((acc) => Account(id: acc.id, label: acc.label)) +// .toList(); +// return ObservableList.of(accounts); +// } + +// @override +// void update(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// havenWallet.walletAddresses.accountList.update(); +// } + +// @override +// void refresh(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// havenWallet.walletAddresses.accountList.refresh(); +// } + +// @override +// List getAll(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// return havenWallet.walletAddresses.accountList +// .getAll() +// .map((acc) => Account(id: acc.id, label: acc.label)) +// .toList(); +// } + +// @override +// Future addAccount(Object wallet, {required String label}) async { +// final havenWallet = wallet as HavenWallet; +// await havenWallet.walletAddresses.accountList.addAccount(label: label); +// } + +// @override +// Future setLabelAccount(Object wallet, +// {required int accountIndex, required String label}) async { +// final havenWallet = wallet as HavenWallet; +// await havenWallet.walletAddresses.accountList +// .setLabelAccount(accountIndex: accountIndex, label: label); +// } +// } + +// class CWHavenSubaddressList extends MoneroSubaddressList { +// CWHavenSubaddressList(this._wallet); + +// final Object _wallet; + +// @override +// @computed +// ObservableList get subaddresses { +// final havenWallet = _wallet as HavenWallet; +// final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses +// .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) +// .toList(); +// return ObservableList.of(subAddresses); +// } + +// @override +// void update(Object wallet, {required int accountIndex}) { +// final havenWallet = wallet as HavenWallet; +// havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); +// } + +// @override +// void refresh(Object wallet, {required int accountIndex}) { +// final havenWallet = wallet as HavenWallet; +// havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); +// } + +// @override +// List getAll(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// return havenWallet.walletAddresses.subaddressList +// .getAll() +// .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) +// .toList(); +// } + +// @override +// Future addSubaddress(Object wallet, +// {required int accountIndex, required String label}) async { +// final havenWallet = wallet as HavenWallet; +// await havenWallet.walletAddresses.subaddressList +// .addSubaddress(accountIndex: accountIndex, label: label); +// } + +// @override +// Future setLabelSubaddress(Object wallet, +// {required int accountIndex, required int addressIndex, required String label}) async { +// final havenWallet = wallet as HavenWallet; +// await havenWallet.walletAddresses.subaddressList +// .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); +// } +// } + +// class CWHavenWalletDetails extends HavenWalletDetails { +// CWHavenWalletDetails(this._wallet); + +// final Object _wallet; + +// @computed +// @override +// Account get account { +// final havenWallet = _wallet as HavenWallet; +// final acc = havenWallet.walletAddresses.account as monero_account.Account; +// return Account(id: acc.id, label: acc.label); +// } + +// @computed +// @override +// HavenBalance get balance { +// final havenWallet = _wallet as HavenWallet; +// final balance = havenWallet.balance; +// throw Exception('Unimplemented'); +// //return HavenBalance( +// // fullBalance: balance.fullBalance, +// // unlockedBalance: balance.unlockedBalance); +// } +// } + +// class CWHaven extends Haven { +// @override +// HavenAccountList getAccountList(Object wallet) { +// return CWHavenAccountList(wallet); +// } + +// @override +// MoneroSubaddressList getSubaddressList(Object wallet) { +// return CWHavenSubaddressList(wallet); +// } + +// @override +// TransactionHistoryBase getTransactionHistory(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// return havenWallet.transactionHistory; +// } + +// @override +// HavenWalletDetails getMoneroWalletDetails(Object wallet) { +// return CWHavenWalletDetails(wallet); +// } + +// @override +// int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); + +// @override +// Future getCurrentHeight() => getHavenCurrentHeight(); + +// @override +// TransactionPriority getDefaultTransactionPriority() { +// return MoneroTransactionPriority.automatic; +// } + +// @override +// TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { +// return MoneroTransactionPriority.deserialize(raw: raw); +// } + +// @override +// List getTransactionPriorities() { +// return MoneroTransactionPriority.all; +// } + +// @override +// List getMoneroWordList(String language) { +// switch (language.toLowerCase()) { +// case 'english': +// return EnglishMnemonics.words; +// case 'chinese (simplified)': +// return ChineseSimplifiedMnemonics.words; +// case 'dutch': +// return DutchMnemonics.words; +// case 'german': +// return GermanMnemonics.words; +// case 'japanese': +// return JapaneseMnemonics.words; +// case 'portuguese': +// return PortugueseMnemonics.words; +// case 'russian': +// return RussianMnemonics.words; +// case 'spanish': +// return SpanishMnemonics.words; +// case 'french': +// return FrenchMnemonics.words; +// case 'italian': +// return ItalianMnemonics.words; +// default: +// return EnglishMnemonics.words; +// } +// } + +// @override +// WalletCredentials createHavenRestoreWalletFromKeysCredentials( +// {required String name, +// required String spendKey, +// required String viewKey, +// required String address, +// required String password, +// required String language, +// required int height}) { +// return HavenRestoreWalletFromKeysCredentials( +// name: name, +// spendKey: spendKey, +// viewKey: viewKey, +// address: address, +// password: password, +// language: language, +// height: height); +// } + +// @override +// WalletCredentials createHavenRestoreWalletFromSeedCredentials( +// {required String name, +// required String password, +// required int height, +// required String mnemonic}) { +// return HavenRestoreWalletFromSeedCredentials( +// name: name, password: password, height: height, mnemonic: mnemonic); +// } + +// @override +// WalletCredentials createHavenNewWalletCredentials( +// {required String name, required String language, String? password}) { +// return HavenNewWalletCredentials(name: name, password: password, language: language); +// } + +// @override +// Map getKeys(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// final keys = havenWallet.keys; +// return { +// 'privateSpendKey': keys.privateSpendKey, +// 'privateViewKey': keys.privateViewKey, +// 'publicSpendKey': keys.publicSpendKey, +// 'publicViewKey': keys.publicViewKey +// }; +// } + +// @override +// Object createHavenTransactionCreationCredentials( +// {required List outputs, +// required TransactionPriority priority, +// required String assetType}) { +// return HavenTransactionCreationCredentials( +// outputs: outputs +// .map((out) => OutputInfo( +// fiatAmount: out.fiatAmount, +// cryptoAmount: out.cryptoAmount, +// address: out.address, +// note: out.note, +// sendAll: out.sendAll, +// extractedAddress: out.extractedAddress, +// isParsedAddress: out.isParsedAddress, +// formattedCryptoAmount: out.formattedCryptoAmount)) +// .toList(), +// priority: priority as MoneroTransactionPriority, +// assetType: assetType); +// } + +// @override +// String formatterMoneroAmountToString({required int amount}) { +// return moneroAmountToString(amount: amount); +// } + +// @override +// double formatterMoneroAmountToDouble({required int amount}) { +// return moneroAmountToDouble(amount: amount); +// } + +// @override +// int formatterMoneroParseAmount({required String amount}) { +// return moneroParseAmount(amount: amount); +// } + +// @override +// Account getCurrentAccount(Object wallet) { +// final havenWallet = wallet as HavenWallet; +// final acc = havenWallet.walletAddresses.account as monero_account.Account; +// return Account(id: acc.id, label: acc.label); +// } + +// @override +// void setCurrentAccount(Object wallet, int id, String label) { +// final havenWallet = wallet as HavenWallet; +// havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); +// } + +// @override +// void onStartup() { +// monero_wallet_api.onStartup(); +// } + +// @override +// int getTransactionInfoAccountId(TransactionInfo tx) { +// final havenTransactionInfo = tx as HavenTransactionInfo; +// return havenTransactionInfo.accountIndex; +// } + +// @override +// WalletService createHavenWalletService(Box walletInfoSource) { +// return HavenWalletService(walletInfoSource); +// } + +// @override +// String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { +// final havenWallet = wallet as HavenWallet; +// return havenWallet.getTransactionAddress(accountIndex, addressIndex); +// } + +// @override +// CryptoCurrency assetOfTransaction(TransactionInfo tx) { +// final transaction = tx as HavenTransactionInfo; +// final asset = CryptoCurrency.fromString(transaction.assetType); +// return asset; +// } + +// @override +// List getAssetRate() => +// getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); +// } diff --git a/lib/main.dart b/lib/main.dart index aeb76b3a87..6fd1b72dec 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -43,12 +43,14 @@ import 'package:cw_core/root_dir.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cw_core/window_size.dart'; +// exact shoulder use lock twenty fragile fury hurry often prefer fabric spring retire ankle ride sight pig bitter ribbon script play execute fatigue science + final navigatorKey = GlobalKey(); final rootKey = GlobalKey(); -final RouteObserver> routeObserver = RouteObserver>(); +final RouteObserver> routeObserver = + RouteObserver>(); Future main() async { - bool isAppRunning = false; await runZonedGuarded(() async { WidgetsFlutterBinding.ensureInitialized(); @@ -58,7 +60,8 @@ Future main() async { /// A callback that is invoked when an unhandled error occurs in the root /// isolate. PlatformDispatcher.instance.onError = (error, stack) { - ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stack)); + ExceptionHandler.onError( + FlutterErrorDetails(exception: error, stack: stack)); return true; }; @@ -81,7 +84,8 @@ Future main() async { home: Scaffold( body: SingleChildScrollView( child: Container( - margin: EdgeInsets.only(top: 50, left: 20, right: 20, bottom: 20), + margin: + EdgeInsets.only(top: 50, left: 20, right: 20, bottom: 20), child: Column( children: [ Text( @@ -101,11 +105,14 @@ Future main() async { ); } - ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stackTrace)); + ExceptionHandler.onError( + FlutterErrorDetails(exception: error, stack: stackTrace)); }); } Future initializeAppConfigs() async { + debugPrint('[+] main.dart || initializeAppConfigs()'); + setRootDirFromEnv(); final appDir = await getAppDir(); CakeHive.init(appDir.path); @@ -171,24 +178,33 @@ Future initializeAppConfigs() async { } final secureStorage = secureStorageShared; - final transactionDescriptionsBoxKey = - await getEncryptionKey(secureStorage: secureStorage, forKey: TransactionDescription.boxKey); - final tradesBoxKey = await getEncryptionKey(secureStorage: secureStorage, forKey: Trade.boxKey); - final ordersBoxKey = await getEncryptionKey(secureStorage: secureStorage, forKey: Order.boxKey); + final transactionDescriptionsBoxKey = await getEncryptionKey( + secureStorage: secureStorage, forKey: TransactionDescription.boxKey); + final tradesBoxKey = await getEncryptionKey( + secureStorage: secureStorage, forKey: Trade.boxKey); + final ordersBoxKey = await getEncryptionKey( + secureStorage: secureStorage, forKey: Order.boxKey); final contacts = await CakeHive.openBox(Contact.boxName); final nodes = await CakeHive.openBox(Node.boxName); - final powNodes = - await CakeHive.openBox(Node.boxName + "pow"); // must be different from Node.boxName - final transactionDescriptions = await CakeHive.openBox( - TransactionDescription.boxName, - encryptionKey: transactionDescriptionsBoxKey); - 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); + final powNodes = await CakeHive.openBox( + Node.boxName + "pow"); // must be different from Node.boxName + final transactionDescriptions = + await CakeHive.openBox( + TransactionDescription.boxName, + encryptionKey: transactionDescriptionsBoxKey); + 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); final templates = await CakeHive.openBox