From b605a98811d028aa1dd72ee51798ca0ba9200d52 Mon Sep 17 00:00:00 2001 From: M Date: Tue, 26 May 2020 18:27:10 +0300 Subject: [PATCH] TMP --- cw_monero/lib/subaddress_list.dart | 4 +- cw_monero/lib/wallet.dart | 4 +- cw_monero/lib/wallet_manager.dart | 9 +- ios/Podfile.lock | 50 ++- ios/Runner.xcodeproj/project.pbxproj | 14 +- lib/bitcoin/bitcoin_wallet.dart | 28 +- lib/core/wallet_list_service.dart | 297 ++++++++++++++++++ lib/main.dart | 53 +--- lib/src/domain/common/contact.dart | 2 +- lib/src/domain/common/crypto_currency.dart | 2 +- lib/src/domain/common/node.dart | 2 +- lib/src/domain/common/qr_scanner.dart | 2 +- lib/src/domain/common/wallet_info.dart | 2 +- lib/src/domain/common/wallet_type.dart | 2 +- lib/src/domain/exchange/trade.dart | 2 +- .../monero/transaction_description.dart | 2 +- .../account_list/account_list_store.dart | 16 +- .../stores/action_list/action_list_store.dart | 26 +- lib/src/stores/balance/balance_store.dart | 16 +- .../exchange_trade/exchange_trade_store.dart | 14 +- lib/src/stores/node_list/node_list_store.dart | 14 +- .../subaddress_creation_store.dart | 16 +- .../subaddress_list_store.dart | 22 +- lib/src/stores/sync/sync_store.dart | 16 +- lib/src/stores/wallet/wallet_store.dart | 26 +- pubspec.lock | 181 +++++++---- pubspec.yaml | 10 +- 27 files changed, 586 insertions(+), 246 deletions(-) create mode 100644 lib/core/wallet_list_service.dart diff --git a/cw_monero/lib/subaddress_list.dart b/cw_monero/lib/subaddress_list.dart index 29d864494..933899e0c 100644 --- a/cw_monero/lib/subaddress_list.dart +++ b/cw_monero/lib/subaddress_list.dart @@ -70,11 +70,11 @@ void _setLabelForSubaddress(Map args) { } Future addSubaddress({int accountIndex, String label}) async => - compute(_addSubaddress, {'accountIndex': accountIndex, 'label': label}); + compute, void>(_addSubaddress, {'accountIndex': accountIndex, 'label': label}); Future setLabelForSubaddress( {int accountIndex, int addressIndex, String label}) => - compute(_setLabelForSubaddress, { + compute, void>(_setLabelForSubaddress, { 'accountIndex': accountIndex, 'addressIndex': addressIndex, 'label': label diff --git a/cw_monero/lib/wallet.dart b/cw_monero/lib/wallet.dart index cdb23d07d..74d50006a 100644 --- a/cw_monero/lib/wallet.dart +++ b/cw_monero/lib/wallet.dart @@ -277,7 +277,7 @@ Future setupNode( String password, bool useSSL = false, bool isLightWallet = false}) => - compute(_setupNodeSync, { + compute, void>(_setupNodeSync, { 'address': address, 'login': login, 'password': password, @@ -285,7 +285,7 @@ Future setupNode( 'isLightWallet': isLightWallet }); -Future store() => compute(_storeSync, 0); +Future store() => compute(_storeSync, 0); Future isConnected() => compute(_isConnected, 0); diff --git a/cw_monero/lib/wallet_manager.dart b/cw_monero/lib/wallet_manager.dart index b82198188..63e41faa0 100644 --- a/cw_monero/lib/wallet_manager.dart +++ b/cw_monero/lib/wallet_manager.dart @@ -32,10 +32,7 @@ final loadWalletNative = moneroApi .asFunction(); void createWalletSync( - {String path, - String password, - String language, - int nettype = 0}) { + {String path, String password, String language, int nettype = 0}) { final pathPointer = Utf8.toUtf8(path); final passwordPointer = Utf8.toUtf8(password); final languagePointer = Utf8.toUtf8(language); @@ -208,7 +205,7 @@ Future restoreFromSeed( String seed, int nettype = 0, int restoreHeight = 0}) async => - compute(_restoreFromSeed, { + compute, void>(_restoreFromSeed, { 'path': path, 'password': password, 'seed': seed, @@ -225,7 +222,7 @@ Future restoreFromKeys( String spendKey, int nettype = 0, int restoreHeight = 0}) async => - compute(_restoreFromKeys, { + compute, void>(_restoreFromKeys, { 'path': path, 'password': password, 'language': language, diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 32b99bcb9..e1b3039af 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,6 +2,7 @@ PODS: - barcode_scan (0.0.1): - Flutter - MTBBarcodeScanner + - SwiftProtobuf - cw_monero (0.0.2): - cw_monero/Boost (= 0.0.2) - cw_monero/lmdb (= 0.0.2) @@ -24,6 +25,8 @@ PODS: - esys_flutter_share (0.0.1): - Flutter - Flutter (1.0.0) + - flutter_plugin_android_lifecycle (0.0.1): + - Flutter - flutter_secure_storage (3.3.1): - Flutter - local_auth (0.0.1): @@ -33,12 +36,21 @@ PODS: - Flutter - path_provider (0.0.1): - Flutter - - share (0.5.2): + - path_provider_macos (0.0.1): + - Flutter + - share (0.0.1): - Flutter - shared_preferences (0.0.1): - Flutter + - shared_preferences_macos (0.0.1): + - Flutter + - shared_preferences_web (0.0.1): + - Flutter + - SwiftProtobuf (1.8.0) - url_launcher (0.0.1): - Flutter + - url_launcher_macos (0.0.1): + - Flutter - url_launcher_web (0.0.1): - Flutter @@ -48,18 +60,24 @@ DEPENDENCIES: - devicelocale (from `.symlinks/plugins/devicelocale/ios`) - esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`) - Flutter (from `.symlinks/flutter/ios`) + - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - local_auth (from `.symlinks/plugins/local_auth/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) + - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) - share (from `.symlinks/plugins/share/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) + - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) + - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) + - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) SPEC REPOS: trunk: - MTBBarcodeScanner + - SwiftProtobuf EXTERNAL SOURCES: barcode_scan: @@ -72,6 +90,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/esys_flutter_share/ios" Flutter: :path: ".symlinks/flutter/ios" + flutter_plugin_android_lifecycle: + :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" local_auth: @@ -80,29 +100,43 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" + path_provider_macos: + :path: ".symlinks/plugins/path_provider_macos/ios" share: :path: ".symlinks/plugins/share/ios" shared_preferences: :path: ".symlinks/plugins/shared_preferences/ios" + shared_preferences_macos: + :path: ".symlinks/plugins/shared_preferences_macos/ios" + shared_preferences_web: + :path: ".symlinks/plugins/shared_preferences_web/ios" url_launcher: :path: ".symlinks/plugins/url_launcher/ios" + url_launcher_macos: + :path: ".symlinks/plugins/url_launcher_macos/ios" url_launcher_web: :path: ".symlinks/plugins/url_launcher_web/ios" SPEC CHECKSUMS: - barcode_scan: 33f586d02270046fc6559135038b34b5754eaa4f + barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479 cw_monero: 2e1f79929880cc2293b5bc1b25e28152e4d84649 devicelocale: feebbe5e7a30adb8c4f83185de1b50ff19b44f00 esys_flutter_share: 403498dab005b36ce1f8d7aff377e81f0621b0b4 Flutter: 0e3d915762c693b495b44d77113d4970485de6ec + flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec - local_auth: 2571c49920ae469f46d5557435fad8fa473a5e88 + local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb - package_info: 48b108e75b8802c2d5e126f208ef540561c98aef - path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d - share: bae0a282aab4483288913fc4dc0b935d4b491f2e - shared_preferences: 430726339841afefe5142b9c1f50cb6bd7793e01 - url_launcher: a1c0cc845906122c4784c542523d8cacbded5626 + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c + path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 + share: 0b2c3e82132f5888bccca3351c504d0003b3b410 + shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d + shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 + shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 + SwiftProtobuf: 2cbd9409689b7df170d82a92a33443c8e3e14a70 + url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef + url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c PODFILE CHECKSUM: f1916a43bb28badbd408be80e8e4b8652a74e93e diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index ef5c8ce46..e3909a15d 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -11,10 +11,6 @@ 0C0DB1F8237DB1AE00BD32F9 /* A.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0DB1F7237DB1AE00BD32F9 /* A.swift */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; @@ -30,8 +26,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -45,14 +39,12 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 4B157CEA62824A43D7DD4C38 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -68,8 +60,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, 02AA3DBD66A19A0A1732294D /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -80,9 +70,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, @@ -240,7 +228,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 95C66705E4338EEA09DF7047 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; diff --git a/lib/bitcoin/bitcoin_wallet.dart b/lib/bitcoin/bitcoin_wallet.dart index 6034ab701..c38f3ac63 100644 --- a/lib/bitcoin/bitcoin_wallet.dart +++ b/lib/bitcoin/bitcoin_wallet.dart @@ -108,18 +108,6 @@ class BitcoinWallet extends Wallet { wallet: wallet); wallet.history = history; await history.init(); - - // await wallet.connectToNode( - // node: Node(uri: 'https://electrum2.hodlister.co:50002')); - - // final transactions = await history.fetchTransactions(); - - // final balance = await wallet.fetchBalance(); - - // print('balance\n$balance'); - - // transactions.forEach((tx) => print(tx.id)); - await wallet.updateInfo(); return wallet; @@ -160,10 +148,20 @@ class BitcoinWallet extends Wallet { @override Future createTransaction( - TransactionCreationCredentials credentials) { - final txb = TransactionBuilder(network: bitcoin.bitcoin); + TransactionCreationCredentials credentials) async { + final txb = bitcoin.TransactionBuilder(network: bitcoin.bitcoin); + final transactions = history.transactionsAll; + history.transactionsAll.sort((q, w) => q.height.compareTo(w.height)); + final prevTx = transactions.first; - // TODO: implement createTransaction + txb.setVersion(1); + txb.addInput(prevTx, 0); + txb.addOutput('address', 112); + txb.sign(vin: null, keyPair: null); + + final hex = txb.build().toHex(); + + // broadcast transaction to electrum return null; } diff --git a/lib/core/wallet_list_service.dart b/lib/core/wallet_list_service.dart new file mode 100644 index 000000000..cb0443edf --- /dev/null +++ b/lib/core/wallet_list_service.dart @@ -0,0 +1,297 @@ +import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:flutter/foundation.dart'; + +/* +* +* WalletCredentials +* +* */ + +abstract class WalletCredentials { + const WalletCredentials({this.name, this.password}); + + final String name; + final String password; +} + +/* +* +* WalletListService +* +* */ + +abstract class WalletListService { + Future create(N credentials); + + Future restoreFromSeed(RFS credentials); + + Future restoreFromKeys(RFK credentials); + + Future openWallet(String name, String password); + + Future isWalletExit(String name); + + Future remove(String wallet); +} + +/* +* +* BitcoinRestoreWalletFromSeedCredentials +* +* */ + +class BitcoinNewWalletCredentials extends WalletCredentials {} + +/* +* +* BitcoinRestoreWalletFromSeedCredentials +* +* */ + +class BitcoinRestoreWalletFromSeedCredentials extends WalletCredentials { + const BitcoinRestoreWalletFromSeedCredentials( + {String name, String password, this.mnemonic}) + : super(name: name, password: password); + + final String mnemonic; +} + +/* +* +* BitcoinRestoreWalletFromWIFCredentials +* +* */ + +class BitcoinRestoreWalletFromWIFCredentials extends WalletCredentials { + const BitcoinRestoreWalletFromWIFCredentials( + {String name, String password, this.wif}) + : super(name: name, password: password); + + final String wif; +} + +/* +* +* BitcoinWalletListService +* +* */ + +class BitcoinWalletListService extends WalletListService< + BitcoinNewWalletCredentials, + BitcoinRestoreWalletFromSeedCredentials, + BitcoinRestoreWalletFromWIFCredentials> { + @override + Future create(BitcoinNewWalletCredentials credentials) async { + // TODO: implement create + throw UnimplementedError(); + } + + @override + Future isWalletExit(String name) async { + // TODO: implement isWalletExit + throw UnimplementedError(); + } + + @override + Future openWallet(String name, String password) async { + // TODO: implement openWallet + throw UnimplementedError(); + } + + Future remove(String wallet) { + // TODO: implement remove + throw UnimplementedError(); + } + + @override + Future restoreFromKeys( + BitcoinRestoreWalletFromWIFCredentials credentials) async { + // TODO: implement restoreFromKeys + throw UnimplementedError(); + } + + @override + Future restoreFromSeed( + BitcoinRestoreWalletFromSeedCredentials credentials) async { + // TODO: implement restoreFromSeed + throw UnimplementedError(); + } +} + +/* +* +* BitcoinWalletListService +* +* */ + +class MoneroWalletListService extends WalletListService< + BitcoinNewWalletCredentials, + BitcoinRestoreWalletFromSeedCredentials, + BitcoinRestoreWalletFromWIFCredentials> { + @override + Future create(BitcoinNewWalletCredentials credentials) async { + // TODO: implement create + throw UnimplementedError(); + } + + @override + Future isWalletExit(String name) async { + // TODO: implement isWalletExit + throw UnimplementedError(); + } + + @override + Future openWallet(String name, String password) async { + // TODO: implement openWallet + throw UnimplementedError(); + } + + Future remove(String wallet) { + // TODO: implement remove + throw UnimplementedError(); + } + + @override + Future restoreFromKeys( + BitcoinRestoreWalletFromWIFCredentials credentials) async { + // TODO: implement restoreFromKeys + throw UnimplementedError(); + } + + @override + Future restoreFromSeed( + BitcoinRestoreWalletFromSeedCredentials credentials) async { + // TODO: implement restoreFromSeed + throw UnimplementedError(); + } +} + +/* +* +* SignUpState +* +* */ + +abstract class WalletCreationState {} + +class WalletCreating extends WalletCreationState {} + +class WalletCreatedSuccessfully extends WalletCreationState {} + +class WalletCreationFailure extends WalletCreationState { + WalletCreationFailure({@required this.error}); + + final String error; +} + +/* +* +* WalletCreationService +* +* */ + +class WalletCreationService { + WalletCreationState state; + WalletListService _service; + + void changeWalletType({@required WalletType type}) { + switch (type) { + case WalletType.monero: + _service = MoneroWalletListService(); + break; + case WalletType.bitcoin: + _service = BitcoinWalletListService(); + break; + default: + break; + } + } + + Future create(WalletCredentials credentials) async { + try { + state = WalletCreating(); + await _service.create(credentials); + state = WalletCreatedSuccessfully(); + } catch (e) { + state = WalletCreationFailure(error: e.toString()); + } + } + + Future restoreFromKeys(WalletCredentials credentials) async { + try { + state = WalletCreating(); + await _service.create(credentials); + state = WalletCreatedSuccessfully(); + } catch (e) { + state = WalletCreationFailure(error: e.toString()); + } + } + + Future restoreFromSeed(WalletCredentials credentials) async { + try { + state = WalletCreating(); + await _service.create(credentials); + state = WalletCreatedSuccessfully(); + } catch (e) { + state = WalletCreationFailure(error: e.toString()); + } + } +} + +/* +* +* AuthService +* +* */ + +//abstract class LoginState {} + +abstract class SetupPinCodeState {} + +class InitialSetupPinCodeState extends SetupPinCodeState {} + +class SetupPinCodeInProgress extends SetupPinCodeState {} + +class SetupPinCodeFinishedSuccessfully extends SetupPinCodeState {} + +class SetupPinCodeFinishedFailure extends SetupPinCodeState { + SetupPinCodeFinishedFailure({@required this.error}); + + final String error; +} + +class AuthService { + SetupPinCodeState setupPinCodeState; + + Future setupPinCode({@required String pin}) async {} + + Future authenticate({@required String pin}) async { + return false; + } + + void resetSetupPinCodeState() => + setupPinCodeState = InitialSetupPinCodeState(); +} + +/* +* +* SignUpService +* +* */ + +class SignUpService { + SignUpService( + {@required this.walletCreationService, @required this.authService}); + + WalletCreationService walletCreationService; + AuthService authService; +} + +/* +* +* AppService +* +* */ + +class AppService {} diff --git a/lib/main.dart b/lib/main.dart index 2562905c7..9068f88c9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,3 @@ -import 'package:cake_wallet/bitcoin/api.dart'; -import 'package:cake_wallet/bitcoin/bitcoin_wallet.dart'; -import 'package:cake_wallet/bitcoin/bitcoin_wallet.manager.dart'; -import 'package:cake_wallet/bitcoin/key.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -40,7 +36,6 @@ import 'package:cake_wallet/src/domain/services/wallet_service.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/domain/common/language.dart'; import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart'; -import 'package:cake_wallet/bitcoin/electrum.dart'; void main() async { @@ -48,12 +43,12 @@ void main() async { final appDir = await getApplicationDocumentsDirectory(); Hive.init(appDir.path); - Hive.registerAdapter(ContactAdapter(), 0); - Hive.registerAdapter(NodeAdapter(), 1); - Hive.registerAdapter(TransactionDescriptionAdapter(), 2); - Hive.registerAdapter(TradeAdapter(), 3); - Hive.registerAdapter(WalletInfoAdapter(), 4); - Hive.registerAdapter(WalletTypeAdapter(), 5); + Hive.registerAdapter(ContactAdapter()); + Hive.registerAdapter(NodeAdapter()); + Hive.registerAdapter(TransactionDescriptionAdapter()); + Hive.registerAdapter(TradeAdapter()); + Hive.registerAdapter(WalletInfoAdapter()); + Hive.registerAdapter(WalletTypeAdapter()); final secureStorage = FlutterSecureStorage(); final transactionDescriptionsBoxKey = await getEncryptionKey( @@ -117,42 +112,6 @@ void main() async { authenticationStore: authenticationStore, loginStore: loginStore); - // final addresses = await fetchAllAddresses(xpub: '6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz'); - // print(addresses); - - final eclient = ElectrumClient(); - await eclient.connect(host: "electrum2.hodlister.co", port: 50002); - await eclient.getMerkle(hash: '3780302c523831311afaccd883f04c814bc13c3ad7c2c13810bb5bfe2c3fa621', height: 629341); - print(await eclient.getHeader(height: 629341)); - // final version = await eclient.version(); - // print('version $version'); - - // eclient.banner(); - // eclient.headersSubscribe(); - - // final history = await eclient.getHistory(address: '1QEWnc4mSxUoP1fWPs32eZNRtc9zX55TwE'); - // print('history $history'); - - // final balance = await eclient.getBalance(address: '1QEWnc4mSxUoP1fWPs32eZNRtc9zX55TwE'); - // print('balance $balance'); - - // final estimateFee = await eclient.estimatefee(p: 6); - // print('estimateFee $estimateFee'); - - // final walletManager = BitcoinWalletManager(); - // final key = "zLEjJ96r4WPzlc8rWbuaP2HgxoNfec6sbWjKAcNwqTjzBfiE62A8/0Wp5P3a8Ryo3GUIs/GDG7KfwkoI1FpyuhzWZNU1P8sMN/fp88sB9ktffU5V4B9GZJU5ufSblQOKsvZxqxLJWA8nhL7iaUGcifr9TkwbpqHxBTZDlQxlZXAf/DlRUFEF2LLwo8EJ0HcCn+iPVsnqeGtgtjmOG6l7puP31AErKzaLX4yEgXaKxrdqo0ljS4g7fn4UUXpipv7ry83ZId9ZhpkcdqMRnzu84Msyg/UGGg3BX7VTtbO/ko7ojIBoyzEaF355Tg+sgbfwYAY0CNvOJqPpIhDwu+sq4mhb5H592JP426rDTcy9KV1JbZWbnbbWcqcb04vE2zvXN0x37bd4WfO77qkdoGN5m1XZB2+F2wzNUxvf25WPp5L/nvPZFk/rJGGFoy6X8mASnmIXcq5bRzwC+F2zkZSbXoRFx3yXxlaRnzltVDjWlLUrh8S01TV2llUJEFQhefzR3Xz7mgmHRXANIqRztb1AmjD7eVZid84OfedhD2Lfg9rzFcXeMTcBlaKR36ChIY5zw+ljpnqAm86pSwcJXOAJVKcQ0fJLT6dYbHYkOQqdiSs4cJQMdr/xshrkFd1raVDyL8CTNznfxSvWqSrCUqxbuvylGfrWgHzJfK5CB0oLZnA=WBZ/TzHfP4A="; - // await walletManager.openWallet('name', password) - // print(await walletManager.isWalletExit('qwerty')); - // final wallet = await walletManager.openWallet('green', key); - // final keys = await wallet.getKeys(); - // final seed = await wallet.getSeed(); - // final address = await wallet.getAddress(); - - // print('key $key'); - // print('keys $keys'); - // print('seed $seed'); - // print('address $address'); - runApp(MultiProvider(providers: [ Provider(create: (_) => sharedPreferences), Provider(create: (_) => walletService), diff --git a/lib/src/domain/common/contact.dart b/lib/src/domain/common/contact.dart index 1fc9507fd..350f45d32 100644 --- a/lib/src/domain/common/contact.dart +++ b/lib/src/domain/common/contact.dart @@ -4,7 +4,7 @@ import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; part 'contact.g.dart'; -@HiveType() +@HiveType(typeId: 0) class Contact extends HiveObject { Contact({@required this.name, @required this.address, CryptoCurrency type}) : raw = type?.raw; diff --git a/lib/src/domain/common/crypto_currency.dart b/lib/src/domain/common/crypto_currency.dart index 2032f167a..fb09ff181 100644 --- a/lib/src/domain/common/crypto_currency.dart +++ b/lib/src/domain/common/crypto_currency.dart @@ -3,7 +3,7 @@ import 'package:hive/hive.dart'; part 'crypto_currency.g.dart'; -@HiveType() +@HiveType(typeId: 0) class CryptoCurrency extends EnumerableItem with Serializable { const CryptoCurrency({final String title, final int raw}) : super(title: title, raw: raw); diff --git a/lib/src/domain/common/node.dart b/lib/src/domain/common/node.dart index 8bce8d113..506e2aad6 100644 --- a/lib/src/domain/common/node.dart +++ b/lib/src/domain/common/node.dart @@ -6,7 +6,7 @@ import 'package:cake_wallet/src/domain/common/digest_request.dart'; part 'node.g.dart'; -@HiveType() +@HiveType(typeId: 1) class Node extends HiveObject { Node({@required this.uri, this.login, this.password}); diff --git a/lib/src/domain/common/qr_scanner.dart b/lib/src/domain/common/qr_scanner.dart index 4a26bdde5..b79fe7c05 100644 --- a/lib/src/domain/common/qr_scanner.dart +++ b/lib/src/domain/common/qr_scanner.dart @@ -7,7 +7,7 @@ Future presentQRScanner() async { try { final result = await BarcodeScanner.scan(); isQrScannerShown = false; - return result; + return result.rawContent; } catch (e) { isQrScannerShown = false; rethrow; diff --git a/lib/src/domain/common/wallet_info.dart b/lib/src/domain/common/wallet_info.dart index ce676ea64..fcc5eac14 100644 --- a/lib/src/domain/common/wallet_info.dart +++ b/lib/src/domain/common/wallet_info.dart @@ -3,7 +3,7 @@ import 'package:hive/hive.dart'; part 'wallet_info.g.dart'; -@HiveType() +@HiveType(typeId: 4) class WalletInfo extends HiveObject { WalletInfo( {this.id, this.name, this.type, this.isRecovery, this.restoreHeight}); diff --git a/lib/src/domain/common/wallet_type.dart b/lib/src/domain/common/wallet_type.dart index 76a4d8ad5..d8e386c65 100644 --- a/lib/src/domain/common/wallet_type.dart +++ b/lib/src/domain/common/wallet_type.dart @@ -4,7 +4,7 @@ part 'wallet_type.g.dart'; const walletTypes = [WalletType.monero, WalletType.bitcoin]; -@HiveType() +@HiveType(typeId: 5) enum WalletType { @HiveField(0) monero, diff --git a/lib/src/domain/exchange/trade.dart b/lib/src/domain/exchange/trade.dart index 8aa9f0472..83e09a4b4 100644 --- a/lib/src/domain/exchange/trade.dart +++ b/lib/src/domain/exchange/trade.dart @@ -6,7 +6,7 @@ import 'package:cake_wallet/src/domain/common/format_amount.dart'; part 'trade.g.dart'; -@HiveType() +@HiveType(typeId: 3) class Trade extends HiveObject { Trade( {this.id, diff --git a/lib/src/domain/monero/transaction_description.dart b/lib/src/domain/monero/transaction_description.dart index d40773180..51f01e219 100644 --- a/lib/src/domain/monero/transaction_description.dart +++ b/lib/src/domain/monero/transaction_description.dart @@ -2,7 +2,7 @@ import 'package:hive/hive.dart'; part 'transaction_description.g.dart'; -@HiveType() +@HiveType(typeId: 2) class TransactionDescription extends HiveObject { TransactionDescription({this.id, this.recipientAddress}); diff --git a/lib/src/stores/account_list/account_list_store.dart b/lib/src/stores/account_list/account_list_store.dart index e6361d5a7..b05deeeea 100644 --- a/lib/src/stores/account_list/account_list_store.dart +++ b/lib/src/stores/account_list/account_list_store.dart @@ -41,16 +41,16 @@ abstract class AcountListStoreBase with Store { StreamSubscription _onWalletChangeSubscription; StreamSubscription> _onAccountsChangeSubscription; - @override - void dispose() { - _onWalletChangeSubscription.cancel(); + // @override + // void dispose() { + // _onWalletChangeSubscription.cancel(); - if (_onAccountsChangeSubscription != null) { - _onAccountsChangeSubscription.cancel(); - } + // if (_onAccountsChangeSubscription != null) { + // _onAccountsChangeSubscription.cancel(); + // } - super.dispose(); - } + // super.dispose(); + // } void updateAccountList() { _accountList.refresh(); diff --git a/lib/src/stores/action_list/action_list_store.dart b/lib/src/stores/action_list/action_list_store.dart index 4f79d9c2b..e31296575 100644 --- a/lib/src/stores/action_list/action_list_store.dart +++ b/lib/src/stores/action_list/action_list_store.dart @@ -155,21 +155,21 @@ abstract class ActionListBase with Store { StreamSubscription _onTransactionDescriptions; StreamSubscription _onTradesChanged; - @override - void dispose() { - if (_onTransactionsChangeSubscription != null) { - _onTransactionsChangeSubscription.cancel(); - } + // @override + // void dispose() { + // if (_onTransactionsChangeSubscription != null) { + // _onTransactionsChangeSubscription.cancel(); + // } - if (_onAccountChangeSubscription != null) { - _onAccountChangeSubscription.cancel(); - } + // if (_onAccountChangeSubscription != null) { + // _onAccountChangeSubscription.cancel(); + // } - _onTransactionDescriptions?.cancel(); - _onWalletChangeSubscription.cancel(); - _onTradesChanged?.cancel(); - super.dispose(); - } + // _onTransactionDescriptions?.cancel(); + // _onWalletChangeSubscription.cancel(); + // _onTradesChanged?.cancel(); + // super.dispose(); + // } @action Future updateTradeList() async => this.trades = diff --git a/lib/src/stores/balance/balance_store.dart b/lib/src/stores/balance/balance_store.dart index 11f552558..fc47c5667 100644 --- a/lib/src/stores/balance/balance_store.dart +++ b/lib/src/stores/balance/balance_store.dart @@ -76,16 +76,16 @@ abstract class BalanceStoreBase with Store { SettingsStore _settingsStore; PriceStore _priceStore; - @override - void dispose() { - _onWalletChangeSubscription.cancel(); + // @override + // void dispose() { + // _onWalletChangeSubscription.cancel(); - if (_onBalanceChangeSubscription != null) { - _onBalanceChangeSubscription.cancel(); - } + // if (_onBalanceChangeSubscription != null) { + // _onBalanceChangeSubscription.cancel(); + // } - super.dispose(); - } + // super.dispose(); + // } Future _onBalanceChange(Balance balance) async { if (balance is MoneroBalance) { diff --git a/lib/src/stores/exchange_trade/exchange_trade_store.dart b/lib/src/stores/exchange_trade/exchange_trade_store.dart index 26e75977a..517ac3012 100644 --- a/lib/src/stores/exchange_trade/exchange_trade_store.dart +++ b/lib/src/stores/exchange_trade/exchange_trade_store.dart @@ -48,14 +48,14 @@ abstract class ExchangeTradeStoreBase with Store { Timer _timer; - @override - void dispose() { - super.dispose(); + // @override + // void dispose() { + // super.dispose(); - if (_timer != null) { - _timer.cancel(); - } - } + // if (_timer != null) { + // _timer.cancel(); + // } + // } @action Future _updateTrade() async { diff --git a/lib/src/stores/node_list/node_list_store.dart b/lib/src/stores/node_list/node_list_store.dart index c1fc4c117..b0e754862 100644 --- a/lib/src/stores/node_list/node_list_store.dart +++ b/lib/src/stores/node_list/node_list_store.dart @@ -29,14 +29,14 @@ abstract class NodeListBase with Store { StreamSubscription _onNodesChangeSubscription; - @override - void dispose() { - super.dispose(); + // @override + // void dispose() { + // super.dispose(); - if (_onNodesChangeSubscription != null) { - _onNodesChangeSubscription.cancel(); - } - } + // if (_onNodesChangeSubscription != null) { + // _onNodesChangeSubscription.cancel(); + // } + // } @action void update() => diff --git a/lib/src/stores/subaddress_creation/subaddress_creation_store.dart b/lib/src/stores/subaddress_creation/subaddress_creation_store.dart index 0314e9ac9..5cec63187 100644 --- a/lib/src/stores/subaddress_creation/subaddress_creation_store.dart +++ b/lib/src/stores/subaddress_creation/subaddress_creation_store.dart @@ -39,16 +39,16 @@ abstract class SubadrressCreationStoreBase with Store { StreamSubscription _onAccountChangeSubscription; Account _account; - @override - void dispose() { - _onWalletChangeSubscription.cancel(); + // @override + // void dispose() { + // _onWalletChangeSubscription.cancel(); - if (_onAccountChangeSubscription != null) { - _onAccountChangeSubscription.cancel(); - } + // if (_onAccountChangeSubscription != null) { + // _onAccountChangeSubscription.cancel(); + // } - super.dispose(); - } + // super.dispose(); + // } Future add({String label}) async { try { diff --git a/lib/src/stores/subaddress_list/subaddress_list_store.dart b/lib/src/stores/subaddress_list/subaddress_list_store.dart index b9e6dbe59..f6a1bf83e 100644 --- a/lib/src/stores/subaddress_list/subaddress_list_store.dart +++ b/lib/src/stores/subaddress_list/subaddress_list_store.dart @@ -33,19 +33,19 @@ abstract class SubaddressListStoreBase with Store { StreamSubscription _onAccountChangeSubscription; Account _account; - @override - void dispose() { - if (_onSubaddressesChangeSubscription != null) { - _onSubaddressesChangeSubscription.cancel(); - } + // @override + // void dispose() { + // if (_onSubaddressesChangeSubscription != null) { + // _onSubaddressesChangeSubscription.cancel(); + // } - if (_onAccountChangeSubscription != null) { - _onAccountChangeSubscription.cancel(); - } + // if (_onAccountChangeSubscription != null) { + // _onAccountChangeSubscription.cancel(); + // } - _onWalletChangeSubscription.cancel(); - super.dispose(); - } + // _onWalletChangeSubscription.cancel(); + // super.dispose(); + // } Future _updateSubaddressList({int accountIndex}) async { await _subaddressList.refresh(accountIndex: accountIndex); diff --git a/lib/src/stores/sync/sync_store.dart b/lib/src/stores/sync/sync_store.dart index bf2bdbbf3..4f8c331b5 100644 --- a/lib/src/stores/sync/sync_store.dart +++ b/lib/src/stores/sync/sync_store.dart @@ -29,15 +29,15 @@ abstract class SyncStoreBase with Store { StreamSubscription _onWalletChangeSubscription; StreamSubscription _onSyncStatusChangeSubscription; - @override - void dispose() { - if (_onSyncStatusChangeSubscription != null) { - _onSyncStatusChangeSubscription.cancel(); - } + // @override + // void dispose() { + // if (_onSyncStatusChangeSubscription != null) { + // _onSyncStatusChangeSubscription.cancel(); + // } - _onWalletChangeSubscription.cancel(); - super.dispose(); - } + // _onWalletChangeSubscription.cancel(); + // super.dispose(); + // } void _onWalletChanged(Wallet wallet) { if (_onSyncStatusChangeSubscription != null) { diff --git a/lib/src/stores/wallet/wallet_store.dart b/lib/src/stores/wallet/wallet_store.dart index 950caf2b2..7887bab97 100644 --- a/lib/src/stores/wallet/wallet_store.dart +++ b/lib/src/stores/wallet/wallet_store.dart @@ -63,22 +63,22 @@ abstract class WalletStoreBase with Store { StreamSubscription _onAccountChangeSubscription; StreamSubscription _onSubaddressChangeSubscription; - @override - void dispose() { - if (_onWalletChangeSubscription != null) { - _onWalletChangeSubscription.cancel(); - } + // @override + // void dispose() { + // if (_onWalletChangeSubscription != null) { + // _onWalletChangeSubscription.cancel(); + // } - if (_onAccountChangeSubscription != null) { - _onAccountChangeSubscription.cancel(); - } + // if (_onAccountChangeSubscription != null) { + // _onAccountChangeSubscription.cancel(); + // } - if (_onSubaddressChangeSubscription != null) { - _onSubaddressChangeSubscription.cancel(); - } + // if (_onSubaddressChangeSubscription != null) { + // _onSubaddressChangeSubscription.cancel(); + // } - super.dispose(); - } + // super.dispose(); + // } @action void setAccount(Account account) { diff --git a/pubspec.lock b/pubspec.lock index c2693ca4f..d635bc893 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -14,28 +14,28 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.13" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "1.5.2" + version: "1.6.0" asn1lib: dependency: transitive description: name: asn1lib url: "https://pub.dartlang.org" source: hosted - version: "0.5.15" + version: "0.6.4" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.4.1" auto_size_text: dependency: "direct main" description: @@ -49,7 +49,7 @@ packages: name: barcode_scan url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "3.0.1" basic_utils: dependency: "direct main" description: @@ -84,14 +84,14 @@ packages: name: bitcoin_flutter url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "2.0.0" bs58check: dependency: transitive description: @@ -112,14 +112,14 @@ packages: name: build_config url: "https://pub.dartlang.org" source: hosted - version: "0.4.1+1" + version: "0.4.2" build_daemon: dependency: transitive description: name: build_daemon url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.4" build_resolvers: dependency: transitive description: @@ -133,28 +133,28 @@ packages: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "1.7.2" + version: "1.9.0" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "4.2.0" + version: "5.1.0" built_collection: dependency: transitive description: name: built_collection url: "https://pub.dartlang.org" source: hosted - version: "4.3.0" + version: "4.3.2" built_value: dependency: transitive description: name: built_value url: "https://pub.dartlang.org" source: hosted - version: "7.0.0" + version: "7.1.0" characters: dependency: transitive description: @@ -168,7 +168,7 @@ packages: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.1.3" checked_yaml: dependency: transitive description: @@ -189,14 +189,14 @@ packages: name: code_builder url: "https://pub.dartlang.org" source: hosted - version: "3.2.1" + version: "3.3.0" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" + version: "1.14.12" convert: dependency: transitive description: @@ -210,7 +210,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.4" csslib: dependency: transitive description: @@ -240,12 +240,12 @@ packages: source: hosted version: "1.2.9" dartx: - dependency: transitive + dependency: "direct overridden" description: name: dartx url: "https://pub.dartlang.org" source: hosted - version: "0.2.0" + version: "0.3.0" date_range_picker: dependency: "direct main" description: @@ -259,7 +259,7 @@ packages: name: devicelocale url: "https://pub.dartlang.org" source: hosted - version: "0.2.1" + version: "0.2.3" dio: dependency: "direct main" description: @@ -273,7 +273,7 @@ packages: name: encrypt url: "https://pub.dartlang.org" source: hosted - version: "4.0.0" + version: "4.0.1" esys_flutter_share: dependency: "direct main" description: @@ -313,7 +313,7 @@ packages: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted - version: "0.7.4" + version: "0.7.5" flutter_localizations: dependency: "direct main" description: flutter @@ -326,13 +326,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.3.0+1" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.8" flutter_secure_storage: dependency: "direct main" description: name: flutter_secure_storage url: "https://pub.dartlang.org" source: hosted - version: "3.3.1+1" + version: "3.3.3" flutter_slidable: dependency: "direct main" description: @@ -384,21 +391,21 @@ packages: name: hive url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.4.1+1" hive_flutter: dependency: "direct main" description: name: hive_flutter url: "https://pub.dartlang.org" source: hosted - version: "0.2.1" + version: "0.3.0+2" hive_generator: dependency: "direct dev" description: name: hive_generator url: "https://pub.dartlang.org" source: hosted - version: "0.6.0" + version: "0.7.0+2" html: dependency: transitive description: @@ -412,42 +419,42 @@ packages: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.12.0+2" + version: "0.12.1" http_multi_server: dependency: transitive description: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "3.1.3" + version: "3.1.4" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.12" intl: dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" source: hosted - version: "0.16.0" + version: "0.16.1" io: dependency: transitive description: name: io url: "https://pub.dartlang.org" source: hosted - version: "0.3.3" + version: "0.3.4" js: dependency: transitive description: @@ -461,7 +468,7 @@ packages: name: json_annotation url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" kernel: dependency: transitive description: @@ -475,14 +482,14 @@ packages: name: local_auth url: "https://pub.dartlang.org" source: hosted - version: "0.6.1" + version: "0.6.2+3" logging: dependency: transitive description: name: logging url: "https://pub.dartlang.org" source: hosted - version: "0.11.3+2" + version: "0.11.4" matcher: dependency: transitive description: @@ -510,7 +517,7 @@ packages: name: mobx url: "https://pub.dartlang.org" source: hosted - version: "0.3.9+3" + version: "0.3.10" mobx_codegen: dependency: "direct dev" description: @@ -524,28 +531,28 @@ packages: name: node_interop url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.1.1" node_io: dependency: transitive description: name: node_io url: "https://pub.dartlang.org" source: hosted - version: "1.0.1+2" + version: "1.1.1" package_config: dependency: transitive description: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.9.3" package_info: dependency: "direct main" description: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.0+13" + version: "0.4.0+18" package_resolver: dependency: transitive description: @@ -573,14 +580,28 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "1.5.1" + version: "1.6.9" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4+3" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" pedantic: dependency: "direct dev" description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.8.0+1" + version: "1.9.0" petitparser: dependency: transitive description: @@ -595,6 +616,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.1" + platform_detect: + dependency: transitive + description: + name: platform_detect + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" pointycastle: dependency: transitive description: @@ -609,6 +644,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.4.0" + protobuf: + dependency: transitive + description: + name: protobuf + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" provider: dependency: "direct main" description: @@ -622,7 +664,7 @@ packages: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "1.4.2" + version: "1.4.4" pubspec_parse: dependency: transitive description: @@ -643,7 +685,7 @@ packages: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.1.3" rxdart: dependency: "direct main" description: @@ -657,21 +699,35 @@ packages: name: share url: "https://pub.dartlang.org" source: hosted - version: "0.6.3+5" + version: "0.6.4+3" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.4+9" + version: "0.5.7+3" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+9" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.4" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+7" shelf: dependency: transitive description: @@ -704,7 +760,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.7.0" stack_trace: dependency: transitive description: @@ -725,7 +781,7 @@ packages: name: stream_transform url: "https://pub.dartlang.org" source: hosted - version: "0.0.20" + version: "1.2.0" string_scanner: dependency: transitive description: @@ -746,14 +802,14 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.2.15" time: dependency: transitive description: name: time url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" timing: dependency: transitive description: @@ -774,21 +830,28 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.3.0" + version: "5.4.10" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+7" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.7" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+1" + version: "0.1.1+6" uuid: dependency: "direct main" description: @@ -809,7 +872,7 @@ packages: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "0.9.7+13" + version: "0.9.7+15" web_socket_channel: dependency: transitive description: @@ -823,14 +886,14 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "3.5.0" + version: "3.6.1" yaml: dependency: "direct main" description: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "2.2.0" + version: "2.2.1" sdks: - dart: ">=2.6.0 <3.0.0" - flutter: ">=1.12.8 <2.0.0" + dart: ">=2.7.0 <3.0.0" + flutter: ">=1.12.13+hotfix.5 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 5c17355aa..bc472770f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,8 +43,8 @@ dependencies: dio: 3.0.7 cw_monero: path: ./cw_monero - hive: ^1.2.0 - hive_flutter: ^0.2.1 + hive: ^1.4.1+1 + hive_flutter: ^0.3.0+2 local_auth: ^0.6.1 package_info: ^0.4.0+13 devicelocale: ^0.2.1 @@ -63,10 +63,14 @@ dev_dependencies: sdk: flutter build_runner: ^1.3.1 mobx_codegen: 0.3.3+1 - hive_generator: ^0.6.0 + hive_generator: ^0.7.0+2 flutter_launcher_icons: ^0.7.4 pedantic: ^1.8.0 +# Fix for hive https://github.com/hivedb/hive/issues/247#issuecomment-606838497 +dependency_overrides: + dartx: ^0.3.0 + flutter_icons: image_path: "assets/images/app_logo.png" android: true