TMP

M committed May 26, 2020 at 18:27 UTC b605a98811d028aa1dd72ee51798ca0ba9200d52
27 files changed +596 -256
cw_monero/lib/subaddress_list.dart
+2 -2
@@ -70,11 +70,11 @@ void _setLabelForSubaddress(Map<String, dynamic> args) {
70 }
71
72 Future addSubaddress({int accountIndex, String label}) async =>
73 - compute(_addSubaddress, {'accountIndex': accountIndex, 'label': label});
73 + compute<Map<String, Object>, void>(_addSubaddress, {'accountIndex': accountIndex, 'label': label});
74
75 Future setLabelForSubaddress(
76 {int accountIndex, int addressIndex, String label}) =>
77 - compute(_setLabelForSubaddress, {
77 + compute<Map<String, Object>, void>(_setLabelForSubaddress, {
78 'accountIndex': accountIndex,
79 'addressIndex': addressIndex,
80 'label': label
cw_monero/lib/wallet.dart
+2 -2
@@ -277,7 +277,7 @@ Future setupNode(
277 String password,
278 bool useSSL = false,
279 bool isLightWallet = false}) =>
280 - compute(_setupNodeSync, {
280 + compute<Map<String, Object>, void>(_setupNodeSync, {
281 'address': address,
282 'login': login,
283 'password': password,
@@ -285,7 +285,7 @@ Future setupNode(
285 'isLightWallet': isLightWallet
286 });
287
288 -Future store() => compute(_storeSync, 0);
288 +Future store() => compute<int, void>(_storeSync, 0);
289
290 Future<bool> isConnected() => compute(_isConnected, 0);
291
cw_monero/lib/wallet_manager.dart
+3 -6
@@ -32,10 +32,7 @@ final loadWalletNative = moneroApi
32 .asFunction<LoadWallet>();
33
34 void createWalletSync(
35 - {String path,
36 - String password,
37 - String language,
38 - int nettype = 0}) {
35 + {String path, String password, String language, int nettype = 0}) {
36 final pathPointer = Utf8.toUtf8(path);
37 final passwordPointer = Utf8.toUtf8(password);
38 final languagePointer = Utf8.toUtf8(language);
@@ -208,7 +205,7 @@ Future restoreFromSeed(
205 String seed,
206 int nettype = 0,
207 int restoreHeight = 0}) async =>
211 - compute(_restoreFromSeed, {
208 + compute<Map<String, Object>, void>(_restoreFromSeed, {
209 'path': path,
210 'password': password,
211 'seed': seed,
@@ -225,7 +222,7 @@ Future restoreFromKeys(
222 String spendKey,
223 int nettype = 0,
224 int restoreHeight = 0}) async =>
228 - compute(_restoreFromKeys, {
225 + compute<Map<String, Object>, void>(_restoreFromKeys, {
226 'path': path,
227 'password': password,
228 'language': language,
ios/Podfile.lock
+42 -8
@@ -2,6 +2,7 @@ PODS:
2 - barcode_scan (0.0.1):
3 - Flutter
4 - MTBBarcodeScanner
5 + - SwiftProtobuf
6 - cw_monero (0.0.2):
7 - cw_monero/Boost (= 0.0.2)
8 - cw_monero/lmdb (= 0.0.2)
@@ -24,6 +25,8 @@ PODS:
25 - esys_flutter_share (0.0.1):
26 - Flutter
27 - Flutter (1.0.0)
28 + - flutter_plugin_android_lifecycle (0.0.1):
29 + - Flutter
30 - flutter_secure_storage (3.3.1):
31 - Flutter
32 - local_auth (0.0.1):
@@ -33,12 +36,21 @@ PODS:
36 - Flutter
37 - path_provider (0.0.1):
38 - Flutter
36 - - share (0.5.2):
39 + - path_provider_macos (0.0.1):
40 + - Flutter
41 + - share (0.0.1):
42 - Flutter
43 - shared_preferences (0.0.1):
44 - Flutter
45 + - shared_preferences_macos (0.0.1):
46 + - Flutter
47 + - shared_preferences_web (0.0.1):
48 + - Flutter
49 + - SwiftProtobuf (1.8.0)
50 - url_launcher (0.0.1):
51 - Flutter
52 + - url_launcher_macos (0.0.1):
53 + - Flutter
54 - url_launcher_web (0.0.1):
55 - Flutter
56
@@ -48,18 +60,24 @@ DEPENDENCIES:
60 - devicelocale (from `.symlinks/plugins/devicelocale/ios`)
61 - esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`)
62 - Flutter (from `.symlinks/flutter/ios`)
63 + - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
64 - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
65 - local_auth (from `.symlinks/plugins/local_auth/ios`)
66 - package_info (from `.symlinks/plugins/package_info/ios`)
67 - path_provider (from `.symlinks/plugins/path_provider/ios`)
68 + - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
69 - share (from `.symlinks/plugins/share/ios`)
70 - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
71 + - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`)
72 + - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`)
73 - url_launcher (from `.symlinks/plugins/url_launcher/ios`)
74 + - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
75 - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
76
77 SPEC REPOS:
78 trunk:
79 - MTBBarcodeScanner
80 + - SwiftProtobuf
81
82 EXTERNAL SOURCES:
83 barcode_scan:
@@ -72,6 +90,8 @@ EXTERNAL SOURCES:
90 :path: ".symlinks/plugins/esys_flutter_share/ios"
91 Flutter:
92 :path: ".symlinks/flutter/ios"
93 + flutter_plugin_android_lifecycle:
94 + :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
95 flutter_secure_storage:
96 :path: ".symlinks/plugins/flutter_secure_storage/ios"
97 local_auth:
@@ -80,29 +100,43 @@ EXTERNAL SOURCES:
100 :path: ".symlinks/plugins/package_info/ios"
101 path_provider:
102 :path: ".symlinks/plugins/path_provider/ios"
103 + path_provider_macos:
104 + :path: ".symlinks/plugins/path_provider_macos/ios"
105 share:
106 :path: ".symlinks/plugins/share/ios"
107 shared_preferences:
108 :path: ".symlinks/plugins/shared_preferences/ios"
109 + shared_preferences_macos:
110 + :path: ".symlinks/plugins/shared_preferences_macos/ios"
111 + shared_preferences_web:
112 + :path: ".symlinks/plugins/shared_preferences_web/ios"
113 url_launcher:
114 :path: ".symlinks/plugins/url_launcher/ios"
115 + url_launcher_macos:
116 + :path: ".symlinks/plugins/url_launcher_macos/ios"
117 url_launcher_web:
118 :path: ".symlinks/plugins/url_launcher_web/ios"
119
120 SPEC CHECKSUMS:
93 - barcode_scan: 33f586d02270046fc6559135038b34b5754eaa4f
121 + barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479
122 cw_monero: 2e1f79929880cc2293b5bc1b25e28152e4d84649
123 devicelocale: feebbe5e7a30adb8c4f83185de1b50ff19b44f00
124 esys_flutter_share: 403498dab005b36ce1f8d7aff377e81f0621b0b4
125 Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
126 + flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
127 flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
99 - local_auth: 2571c49920ae469f46d5557435fad8fa473a5e88
128 + local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd
129 MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
101 - package_info: 48b108e75b8802c2d5e126f208ef540561c98aef
102 - path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d
103 - share: bae0a282aab4483288913fc4dc0b935d4b491f2e
104 - shared_preferences: 430726339841afefe5142b9c1f50cb6bd7793e01
105 - url_launcher: a1c0cc845906122c4784c542523d8cacbded5626
130 + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
131 + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
132 + path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
133 + share: 0b2c3e82132f5888bccca3351c504d0003b3b410
134 + shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
135 + shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
136 + shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9
137 + SwiftProtobuf: 2cbd9409689b7df170d82a92a33443c8e3e14a70
138 + url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
139 + url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
140 url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
141
142 PODFILE CHECKSUM: f1916a43bb28badbd408be80e8e4b8652a74e93e
ios/Runner.xcodeproj/project.pbxproj
+1 -13
@@ -11,10 +11,6 @@
11 0C0DB1F8237DB1AE00BD32F9 /* A.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0DB1F7237DB1AE00BD32F9 /* A.swift */; };
12 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
13 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
14 - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
15 - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
16 - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
17 - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
14 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
15 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
16 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
@@ -30,8 +26,6 @@
26 dstPath = "";
27 dstSubfolderSpec = 10;
28 files = (
33 - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
34 - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
29 );
30 name = "Embed Frameworks";
31 runOnlyForDeploymentPostprocessing = 0;
@@ -45,14 +39,12 @@
39 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
40 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
41 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
48 - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
42 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 = "<group>"; };
43 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
44 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
45 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
46 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
47 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
55 - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
48 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
49 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
50 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
@@ -68,8 +60,6 @@
60 isa = PBXFrameworksBuildPhase;
61 buildActionMask = 2147483647;
62 files = (
71 - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
72 - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
63 02AA3DBD66A19A0A1732294D /* Pods_Runner.framework in Frameworks */,
64 );
65 runOnlyForDeploymentPostprocessing = 0;
@@ -80,9 +70,7 @@
70 9740EEB11CF90186004384FC /* Flutter */ = {
71 isa = PBXGroup;
72 children = (
83 - 3B80C3931E831B6300D905FE /* App.framework */,
73 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
85 - 9740EEBA1CF902C7004384FC /* Flutter.framework */,
74 9740EEB21CF90195004384FC /* Debug.xcconfig */,
75 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
76 9740EEB31CF90195004384FC /* Generated.xcconfig */,
@@ -240,7 +228,7 @@
228 );
229 runOnlyForDeploymentPostprocessing = 0;
230 shellPath = /bin/sh;
243 - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
231 + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
232 };
233 95C66705E4338EEA09DF7047 /* [CP] Check Pods Manifest.lock */ = {
234 isa = PBXShellScriptBuildPhase;
lib/bitcoin/bitcoin_wallet.dart
+14 -16
@@ -108,18 +108,6 @@ class BitcoinWallet extends Wallet {
108 wallet: wallet);
109 wallet.history = history;
110 await history.init();
111 -
112 - // await wallet.connectToNode(
113 - // node: Node(uri: 'https://electrum2.hodlister.co:50002'));
114 -
115 - // final transactions = await history.fetchTransactions();
116 -
117 - // final balance = await wallet.fetchBalance();
118 -
119 - // print('balance\n$balance');
120 -
121 - // transactions.forEach((tx) => print(tx.id));
122 -
111 await wallet.updateInfo();
112
113 return wallet;
@@ -160,10 +148,20 @@ class BitcoinWallet extends Wallet {
148
149 @override
150 Future<PendingTransaction> createTransaction(
163 - TransactionCreationCredentials credentials) {
164 - final txb = TransactionBuilder(network: bitcoin.bitcoin);
165 -
166 - // TODO: implement createTransaction
151 + TransactionCreationCredentials credentials) async {
152 + final txb = bitcoin.TransactionBuilder(network: bitcoin.bitcoin);
153 + final transactions = history.transactionsAll;
154 + history.transactionsAll.sort((q, w) => q.height.compareTo(w.height));
155 + final prevTx = transactions.first;
156 +
157 + txb.setVersion(1);
158 + txb.addInput(prevTx, 0);
159 + txb.addOutput('address', 112);
160 + txb.sign(vin: null, keyPair: null);
161 +
162 + final hex = txb.build().toHex();
163 +
164 + // broadcast transaction to electrum
165 return null;
166 }
167
lib/core/wallet_list_service.dart new
+297
@@ -0,0 +1,297 @@
1 +import 'package:cake_wallet/src/domain/common/wallet_type.dart';
2 +import 'package:flutter/foundation.dart';
3 +
4 +/*
5 +*
6 +* WalletCredentials
7 +*
8 +* */
9 +
10 +abstract class WalletCredentials {
11 + const WalletCredentials({this.name, this.password});
12 +
13 + final String name;
14 + final String password;
15 +}
16 +
17 +/*
18 +*
19 +* WalletListService
20 +*
21 +* */
22 +
23 +abstract class WalletListService<N extends WalletCredentials,
24 + RFS extends WalletCredentials, RFK extends WalletCredentials> {
25 + Future<void> create(N credentials);
26 +
27 + Future<void> restoreFromSeed(RFS credentials);
28 +
29 + Future<void> restoreFromKeys(RFK credentials);
30 +
31 + Future<void> openWallet(String name, String password);
32 +
33 + Future<bool> isWalletExit(String name);
34 +
35 + Future<void> remove(String wallet);
36 +}
37 +
38 +/*
39 +*
40 +* BitcoinRestoreWalletFromSeedCredentials
41 +*
42 +* */
43 +
44 +class BitcoinNewWalletCredentials extends WalletCredentials {}
45 +
46 +/*
47 +*
48 +* BitcoinRestoreWalletFromSeedCredentials
49 +*
50 +* */
51 +
52 +class BitcoinRestoreWalletFromSeedCredentials extends WalletCredentials {
53 + const BitcoinRestoreWalletFromSeedCredentials(
54 + {String name, String password, this.mnemonic})
55 + : super(name: name, password: password);
56 +
57 + final String mnemonic;
58 +}
59 +
60 +/*
61 +*
62 +* BitcoinRestoreWalletFromWIFCredentials
63 +*
64 +* */
65 +
66 +class BitcoinRestoreWalletFromWIFCredentials extends WalletCredentials {
67 + const BitcoinRestoreWalletFromWIFCredentials(
68 + {String name, String password, this.wif})
69 + : super(name: name, password: password);
70 +
71 + final String wif;
72 +}
73 +
74 +/*
75 +*
76 +* BitcoinWalletListService
77 +*
78 +* */
79 +
80 +class BitcoinWalletListService extends WalletListService<
81 + BitcoinNewWalletCredentials,
82 + BitcoinRestoreWalletFromSeedCredentials,
83 + BitcoinRestoreWalletFromWIFCredentials> {
84 + @override
85 + Future<void> create(BitcoinNewWalletCredentials credentials) async {
86 + // TODO: implement create
87 + throw UnimplementedError();
88 + }
89 +
90 + @override
91 + Future<bool> isWalletExit(String name) async {
92 + // TODO: implement isWalletExit
93 + throw UnimplementedError();
94 + }
95 +
96 + @override
97 + Future<void> openWallet(String name, String password) async {
98 + // TODO: implement openWallet
99 + throw UnimplementedError();
100 + }
101 +
102 + Future<void> remove(String wallet) {
103 + // TODO: implement remove
104 + throw UnimplementedError();
105 + }
106 +
107 + @override
108 + Future<void> restoreFromKeys(
109 + BitcoinRestoreWalletFromWIFCredentials credentials) async {
110 + // TODO: implement restoreFromKeys
111 + throw UnimplementedError();
112 + }
113 +
114 + @override
115 + Future<void> restoreFromSeed(
116 + BitcoinRestoreWalletFromSeedCredentials credentials) async {
117 + // TODO: implement restoreFromSeed
118 + throw UnimplementedError();
119 + }
120 +}
121 +
122 +/*
123 +*
124 +* BitcoinWalletListService
125 +*
126 +* */
127 +
128 +class MoneroWalletListService extends WalletListService<
129 + BitcoinNewWalletCredentials,
130 + BitcoinRestoreWalletFromSeedCredentials,
131 + BitcoinRestoreWalletFromWIFCredentials> {
132 + @override
133 + Future<void> create(BitcoinNewWalletCredentials credentials) async {
134 + // TODO: implement create
135 + throw UnimplementedError();
136 + }
137 +
138 + @override
139 + Future<bool> isWalletExit(String name) async {
140 + // TODO: implement isWalletExit
141 + throw UnimplementedError();
142 + }
143 +
144 + @override
145 + Future<void> openWallet(String name, String password) async {
146 + // TODO: implement openWallet
147 + throw UnimplementedError();
148 + }
149 +
150 + Future<void> remove(String wallet) {
151 + // TODO: implement remove
152 + throw UnimplementedError();
153 + }
154 +
155 + @override
156 + Future<void> restoreFromKeys(
157 + BitcoinRestoreWalletFromWIFCredentials credentials) async {
158 + // TODO: implement restoreFromKeys
159 + throw UnimplementedError();
160 + }
161 +
162 + @override
163 + Future<void> restoreFromSeed(
164 + BitcoinRestoreWalletFromSeedCredentials credentials) async {
165 + // TODO: implement restoreFromSeed
166 + throw UnimplementedError();
167 + }
168 +}
169 +
170 +/*
171 +*
172 +* SignUpState
173 +*
174 +* */
175 +
176 +abstract class WalletCreationState {}
177 +
178 +class WalletCreating extends WalletCreationState {}
179 +
180 +class WalletCreatedSuccessfully extends WalletCreationState {}
181 +
182 +class WalletCreationFailure extends WalletCreationState {
183 + WalletCreationFailure({@required this.error});
184 +
185 + final String error;
186 +}
187 +
188 +/*
189 +*
190 +* WalletCreationService
191 +*
192 +* */
193 +
194 +class WalletCreationService {
195 + WalletCreationState state;
196 + WalletListService _service;
197 +
198 + void changeWalletType({@required WalletType type}) {
199 + switch (type) {
200 + case WalletType.monero:
201 + _service = MoneroWalletListService();
202 + break;
203 + case WalletType.bitcoin:
204 + _service = BitcoinWalletListService();
205 + break;
206 + default:
207 + break;
208 + }
209 + }
210 +
211 + Future<void> create(WalletCredentials credentials) async {
212 + try {
213 + state = WalletCreating();
214 + await _service.create(credentials);
215 + state = WalletCreatedSuccessfully();
216 + } catch (e) {
217 + state = WalletCreationFailure(error: e.toString());
218 + }
219 + }
220 +
221 + Future<void> restoreFromKeys(WalletCredentials credentials) async {
222 + try {
223 + state = WalletCreating();
224 + await _service.create(credentials);
225 + state = WalletCreatedSuccessfully();
226 + } catch (e) {
227 + state = WalletCreationFailure(error: e.toString());
228 + }
229 + }
230 +
231 + Future<void> restoreFromSeed(WalletCredentials credentials) async {
232 + try {
233 + state = WalletCreating();
234 + await _service.create(credentials);
235 + state = WalletCreatedSuccessfully();
236 + } catch (e) {
237 + state = WalletCreationFailure(error: e.toString());
238 + }
239 + }
240 +}
241 +
242 +/*
243 +*
244 +* AuthService
245 +*
246 +* */
247 +
248 +//abstract class LoginState {}
249 +
250 +abstract class SetupPinCodeState {}
251 +
252 +class InitialSetupPinCodeState extends SetupPinCodeState {}
253 +
254 +class SetupPinCodeInProgress extends SetupPinCodeState {}
255 +
256 +class SetupPinCodeFinishedSuccessfully extends SetupPinCodeState {}
257 +
258 +class SetupPinCodeFinishedFailure extends SetupPinCodeState {
259 + SetupPinCodeFinishedFailure({@required this.error});
260 +
261 + final String error;
262 +}
263 +
264 +class AuthService {
265 + SetupPinCodeState setupPinCodeState;
266 +
267 + Future<void> setupPinCode({@required String pin}) async {}
268 +
269 + Future<bool> authenticate({@required String pin}) async {
270 + return false;
271 + }
272 +
273 + void resetSetupPinCodeState() =>
274 + setupPinCodeState = InitialSetupPinCodeState();
275 +}
276 +
277 +/*
278 +*
279 +* SignUpService
280 +*
281 +* */
282 +
283 +class SignUpService {
284 + SignUpService(
285 + {@required this.walletCreationService, @required this.authService});
286 +
287 + WalletCreationService walletCreationService;
288 + AuthService authService;
289 +}
290 +
291 +/*
292 +*
293 +* AppService
294 +*
295 +* */
296 +
297 +class AppService {}
lib/main.dart
+6 -47
@@ -1,7 +1,3 @@
1 -import 'package:cake_wallet/bitcoin/api.dart';
2 -import 'package:cake_wallet/bitcoin/bitcoin_wallet.dart';
3 -import 'package:cake_wallet/bitcoin/bitcoin_wallet.manager.dart';
4 -import 'package:cake_wallet/bitcoin/key.dart';
1 import 'package:flutter_localizations/flutter_localizations.dart';
2 import 'package:path_provider/path_provider.dart';
3 import 'package:shared_preferences/shared_preferences.dart';
@@ -40,7 +36,6 @@ import 'package:cake_wallet/src/domain/services/wallet_service.dart';
36 import 'package:cake_wallet/generated/i18n.dart';
37 import 'package:cake_wallet/src/domain/common/language.dart';
38 import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
43 -import 'package:cake_wallet/bitcoin/electrum.dart';
39
40
41 void main() async {
@@ -48,12 +43,12 @@ void main() async {
43
44 final appDir = await getApplicationDocumentsDirectory();
45 Hive.init(appDir.path);
51 - Hive.registerAdapter(ContactAdapter(), 0);
52 - Hive.registerAdapter(NodeAdapter(), 1);
53 - Hive.registerAdapter(TransactionDescriptionAdapter(), 2);
54 - Hive.registerAdapter(TradeAdapter(), 3);
55 - Hive.registerAdapter(WalletInfoAdapter(), 4);
56 - Hive.registerAdapter(WalletTypeAdapter(), 5);
46 + Hive.registerAdapter(ContactAdapter());
47 + Hive.registerAdapter(NodeAdapter());
48 + Hive.registerAdapter(TransactionDescriptionAdapter());
49 + Hive.registerAdapter(TradeAdapter());
50 + Hive.registerAdapter(WalletInfoAdapter());
51 + Hive.registerAdapter(WalletTypeAdapter());
52
53 final secureStorage = FlutterSecureStorage();
54 final transactionDescriptionsBoxKey = await getEncryptionKey(
@@ -117,42 +112,6 @@ void main() async {
112 authenticationStore: authenticationStore,
113 loginStore: loginStore);
114
120 - // final addresses = await fetchAllAddresses(xpub: '6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz');
121 - // print(addresses);
122 -
123 - final eclient = ElectrumClient();
124 - await eclient.connect(host: "electrum2.hodlister.co", port: 50002);
125 - await eclient.getMerkle(hash: '3780302c523831311afaccd883f04c814bc13c3ad7c2c13810bb5bfe2c3fa621', height: 629341);
126 - print(await eclient.getHeader(height: 629341));
127 - // final version = await eclient.version();
128 - // print('version $version');
129 -
130 - // eclient.banner();
131 - // eclient.headersSubscribe();
132 -
133 - // final history = await eclient.getHistory(address: '1QEWnc4mSxUoP1fWPs32eZNRtc9zX55TwE');
134 - // print('history $history');
135 -
136 - // final balance = await eclient.getBalance(address: '1QEWnc4mSxUoP1fWPs32eZNRtc9zX55TwE');
137 - // print('balance $balance');
138 -
139 - // final estimateFee = await eclient.estimatefee(p: 6);
140 - // print('estimateFee $estimateFee');
141 -
142 - // final walletManager = BitcoinWalletManager();
143 - // final key = "zLEjJ96r4WPzlc8rWbuaP2HgxoNfec6sbWjKAcNwqTjzBfiE62A8/0Wp5P3a8Ryo3GUIs/GDG7KfwkoI1FpyuhzWZNU1P8sMN/fp88sB9ktffU5V4B9GZJU5ufSblQOKsvZxqxLJWA8nhL7iaUGcifr9TkwbpqHxBTZDlQxlZXAf/DlRUFEF2LLwo8EJ0HcCn+iPVsnqeGtgtjmOG6l7puP31AErKzaLX4yEgXaKxrdqo0ljS4g7fn4UUXpipv7ry83ZId9ZhpkcdqMRnzu84Msyg/UGGg3BX7VTtbO/ko7ojIBoyzEaF355Tg+sgbfwYAY0CNvOJqPpIhDwu+sq4mhb5H592JP426rDTcy9KV1JbZWbnbbWcqcb04vE2zvXN0x37bd4WfO77qkdoGN5m1XZB2+F2wzNUxvf25WPp5L/nvPZFk/rJGGFoy6X8mASnmIXcq5bRzwC+F2zkZSbXoRFx3yXxlaRnzltVDjWlLUrh8S01TV2llUJEFQhefzR3Xz7mgmHRXANIqRztb1AmjD7eVZid84OfedhD2Lfg9rzFcXeMTcBlaKR36ChIY5zw+ljpnqAm86pSwcJXOAJVKcQ0fJLT6dYbHYkOQqdiSs4cJQMdr/xshrkFd1raVDyL8CTNznfxSvWqSrCUqxbuvylGfrWgHzJfK5CB0oLZnA=WBZ/TzHfP4A=";
144 - // await walletManager.openWallet('name', password)
145 - // print(await walletManager.isWalletExit('qwerty'));
146 - // final wallet = await walletManager.openWallet('green', key);
147 - // final keys = await wallet.getKeys();
148 - // final seed = await wallet.getSeed();
149 - // final address = await wallet.getAddress();
150 -
151 - // print('key $key');
152 - // print('keys $keys');
153 - // print('seed $seed');
154 - // print('address $address');
155 -
115 runApp(MultiProvider(providers: [
116 Provider(create: (_) => sharedPreferences),
117 Provider(create: (_) => walletService),
lib/src/domain/common/contact.dart
+1 -1
@@ -4,7 +4,7 @@ import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
4
5 part 'contact.g.dart';
6
7 -@HiveType()
7 +@HiveType(typeId: 0)
8 class Contact extends HiveObject {
9 Contact({@required this.name, @required this.address, CryptoCurrency type})
10 : raw = type?.raw;
lib/src/domain/common/crypto_currency.dart
+1 -1
@@ -3,7 +3,7 @@ import 'package:hive/hive.dart';
3
4 part 'crypto_currency.g.dart';
5
6 -@HiveType()
6 +@HiveType(typeId: 0)
7 class CryptoCurrency extends EnumerableItem<int> with Serializable<int> {
8 const CryptoCurrency({final String title, final int raw})
9 : super(title: title, raw: raw);
lib/src/domain/common/node.dart
+1 -1
@@ -6,7 +6,7 @@ import 'package:cake_wallet/src/domain/common/digest_request.dart';
6
7 part 'node.g.dart';
8
9 -@HiveType()
9 +@HiveType(typeId: 1)
10 class Node extends HiveObject {
11 Node({@required this.uri, this.login, this.password});
12
lib/src/domain/common/qr_scanner.dart
+1 -1
@@ -7,7 +7,7 @@ Future<String> presentQRScanner() async {
7 try {
8 final result = await BarcodeScanner.scan();
9 isQrScannerShown = false;
10 - return result;
10 + return result.rawContent;
11 } catch (e) {
12 isQrScannerShown = false;
13 rethrow;
lib/src/domain/common/wallet_info.dart
+1 -1
@@ -3,7 +3,7 @@ import 'package:hive/hive.dart';
3
4 part 'wallet_info.g.dart';
5
6 -@HiveType()
6 +@HiveType(typeId: 4)
7 class WalletInfo extends HiveObject {
8 WalletInfo(
9 {this.id, this.name, this.type, this.isRecovery, this.restoreHeight});
lib/src/domain/common/wallet_type.dart
+1 -1
@@ -4,7 +4,7 @@ part 'wallet_type.g.dart';
4
5 const walletTypes = [WalletType.monero, WalletType.bitcoin];
6
7 -@HiveType()
7 +@HiveType(typeId: 5)
8 enum WalletType {
9 @HiveField(0)
10 monero,
lib/src/domain/exchange/trade.dart
+1 -1
@@ -6,7 +6,7 @@ import 'package:cake_wallet/src/domain/common/format_amount.dart';
6
7 part 'trade.g.dart';
8
9 -@HiveType()
9 +@HiveType(typeId: 3)
10 class Trade extends HiveObject {
11 Trade(
12 {this.id,
lib/src/domain/monero/transaction_description.dart
+1 -1
@@ -2,7 +2,7 @@ import 'package:hive/hive.dart';
2
3 part 'transaction_description.g.dart';
4
5 -@HiveType()
5 +@HiveType(typeId: 2)
6 class TransactionDescription extends HiveObject {
7 TransactionDescription({this.id, this.recipientAddress});
8
lib/src/stores/account_list/account_list_store.dart
+8 -8
@@ -41,16 +41,16 @@ abstract class AcountListStoreBase with Store {
41 StreamSubscription<Wallet> _onWalletChangeSubscription;
42 StreamSubscription<List<Account>> _onAccountsChangeSubscription;
43
44 - @override
45 - void dispose() {
46 - _onWalletChangeSubscription.cancel();
44 + // @override
45 + // void dispose() {
46 + // _onWalletChangeSubscription.cancel();
47
48 - if (_onAccountsChangeSubscription != null) {
49 - _onAccountsChangeSubscription.cancel();
50 - }
48 + // if (_onAccountsChangeSubscription != null) {
49 + // _onAccountsChangeSubscription.cancel();
50 + // }
51
52 - super.dispose();
53 - }
52 + // super.dispose();
53 + // }
54
55 void updateAccountList() {
56 _accountList.refresh();
lib/src/stores/action_list/action_list_store.dart
+15 -15
@@ -155,21 +155,21 @@ abstract class ActionListBase with Store {
155 StreamSubscription<BoxEvent> _onTransactionDescriptions;
156 StreamSubscription<BoxEvent> _onTradesChanged;
157
158 - @override
159 - void dispose() {
160 - if (_onTransactionsChangeSubscription != null) {
161 - _onTransactionsChangeSubscription.cancel();
162 - }
163 -
164 - if (_onAccountChangeSubscription != null) {
165 - _onAccountChangeSubscription.cancel();
166 - }
167 -
168 - _onTransactionDescriptions?.cancel();
169 - _onWalletChangeSubscription.cancel();
170 - _onTradesChanged?.cancel();
171 - super.dispose();
172 - }
158 + // @override
159 + // void dispose() {
160 + // if (_onTransactionsChangeSubscription != null) {
161 + // _onTransactionsChangeSubscription.cancel();
162 + // }
163 +
164 + // if (_onAccountChangeSubscription != null) {
165 + // _onAccountChangeSubscription.cancel();
166 + // }
167 +
168 + // _onTransactionDescriptions?.cancel();
169 + // _onWalletChangeSubscription.cancel();
170 + // _onTradesChanged?.cancel();
171 + // super.dispose();
172 + // }
173
174 @action
175 Future updateTradeList() async => this.trades =
lib/src/stores/balance/balance_store.dart
+8 -8
@@ -76,16 +76,16 @@ abstract class BalanceStoreBase with Store {
76 SettingsStore _settingsStore;
77 PriceStore _priceStore;
78
79 - @override
80 - void dispose() {
81 - _onWalletChangeSubscription.cancel();
79 + // @override
80 + // void dispose() {
81 + // _onWalletChangeSubscription.cancel();
82
83 - if (_onBalanceChangeSubscription != null) {
84 - _onBalanceChangeSubscription.cancel();
85 - }
83 + // if (_onBalanceChangeSubscription != null) {
84 + // _onBalanceChangeSubscription.cancel();
85 + // }
86
87 - super.dispose();
88 - }
87 + // super.dispose();
88 + // }
89
90 Future _onBalanceChange(Balance balance) async {
91 if (balance is MoneroBalance) {
lib/src/stores/exchange_trade/exchange_trade_store.dart
+7 -7
@@ -48,14 +48,14 @@ abstract class ExchangeTradeStoreBase with Store {
48
49 Timer _timer;
50
51 - @override
52 - void dispose() {
53 - super.dispose();
51 + // @override
52 + // void dispose() {
53 + // super.dispose();
54
55 - if (_timer != null) {
56 - _timer.cancel();
57 - }
58 - }
55 + // if (_timer != null) {
56 + // _timer.cancel();
57 + // }
58 + // }
59
60 @action
61 Future<void> _updateTrade() async {
lib/src/stores/node_list/node_list_store.dart
+8 -8
@@ -29,14 +29,14 @@ abstract class NodeListBase with Store {
29
30 StreamSubscription<BoxEvent> _onNodesChangeSubscription;
31
32 - @override
33 - void dispose() {
34 - super.dispose();
35 -
36 - if (_onNodesChangeSubscription != null) {
37 - _onNodesChangeSubscription.cancel();
38 - }
39 - }
32 + // @override
33 + // void dispose() {
34 + // super.dispose();
35 +
36 + // if (_onNodesChangeSubscription != null) {
37 + // _onNodesChangeSubscription.cancel();
38 + // }
39 + // }
40
41 @action
42 void update() =>
lib/src/stores/subaddress_creation/subaddress_creation_store.dart
+8 -8
@@ -39,16 +39,16 @@ abstract class SubadrressCreationStoreBase with Store {
39 StreamSubscription<Account> _onAccountChangeSubscription;
40 Account _account;
41
42 - @override
43 - void dispose() {
44 - _onWalletChangeSubscription.cancel();
42 + // @override
43 + // void dispose() {
44 + // _onWalletChangeSubscription.cancel();
45
46 - if (_onAccountChangeSubscription != null) {
47 - _onAccountChangeSubscription.cancel();
48 - }
46 + // if (_onAccountChangeSubscription != null) {
47 + // _onAccountChangeSubscription.cancel();
48 + // }
49
50 - super.dispose();
51 - }
50 + // super.dispose();
51 + // }
52
53 Future<void> add({String label}) async {
54 try {
lib/src/stores/subaddress_list/subaddress_list_store.dart
+13 -13
@@ -33,19 +33,19 @@ abstract class SubaddressListStoreBase with Store {
33 StreamSubscription<Account> _onAccountChangeSubscription;
34 Account _account;
35
36 - @override
37 - void dispose() {
38 - if (_onSubaddressesChangeSubscription != null) {
39 - _onSubaddressesChangeSubscription.cancel();
40 - }
41 -
42 - if (_onAccountChangeSubscription != null) {
43 - _onAccountChangeSubscription.cancel();
44 - }
45 -
46 - _onWalletChangeSubscription.cancel();
47 - super.dispose();
48 - }
36 + // @override
37 + // void dispose() {
38 + // if (_onSubaddressesChangeSubscription != null) {
39 + // _onSubaddressesChangeSubscription.cancel();
40 + // }
41 +
42 + // if (_onAccountChangeSubscription != null) {
43 + // _onAccountChangeSubscription.cancel();
44 + // }
45 +
46 + // _onWalletChangeSubscription.cancel();
47 + // super.dispose();
48 + // }
49
50 Future<void> _updateSubaddressList({int accountIndex}) async {
51 await _subaddressList.refresh(accountIndex: accountIndex);
lib/src/stores/sync/sync_store.dart
+9 -9
@@ -29,15 +29,15 @@ abstract class SyncStoreBase with Store {
29 StreamSubscription<Wallet> _onWalletChangeSubscription;
30 StreamSubscription<SyncStatus> _onSyncStatusChangeSubscription;
31
32 - @override
33 - void dispose() {
34 - if (_onSyncStatusChangeSubscription != null) {
35 - _onSyncStatusChangeSubscription.cancel();
36 - }
37 -
38 - _onWalletChangeSubscription.cancel();
39 - super.dispose();
40 - }
32 + // @override
33 + // void dispose() {
34 + // if (_onSyncStatusChangeSubscription != null) {
35 + // _onSyncStatusChangeSubscription.cancel();
36 + // }
37 +
38 + // _onWalletChangeSubscription.cancel();
39 + // super.dispose();
40 + // }
41
42 void _onWalletChanged(Wallet wallet) {
43 if (_onSyncStatusChangeSubscription != null) {
lib/src/stores/wallet/wallet_store.dart
+16 -16
@@ -63,22 +63,22 @@ abstract class WalletStoreBase with Store {
63 StreamSubscription<Account> _onAccountChangeSubscription;
64 StreamSubscription<Subaddress> _onSubaddressChangeSubscription;
65
66 - @override
67 - void dispose() {
68 - if (_onWalletChangeSubscription != null) {
69 - _onWalletChangeSubscription.cancel();
70 - }
71 -
72 - if (_onAccountChangeSubscription != null) {
73 - _onAccountChangeSubscription.cancel();
74 - }
75 -
76 - if (_onSubaddressChangeSubscription != null) {
77 - _onSubaddressChangeSubscription.cancel();
78 - }
79 -
80 - super.dispose();
81 - }
66 + // @override
67 + // void dispose() {
68 + // if (_onWalletChangeSubscription != null) {
69 + // _onWalletChangeSubscription.cancel();
70 + // }
71 +
72 + // if (_onAccountChangeSubscription != null) {
73 + // _onAccountChangeSubscription.cancel();
74 + // }
75 +
76 + // if (_onSubaddressChangeSubscription != null) {
77 + // _onSubaddressChangeSubscription.cancel();
78 + // }
79 +
80 + // super.dispose();
81 + // }
82
83 @action
84 void setAccount(Account account) {
pubspec.lock
+122 -59
@@ -14,28 +14,28 @@ packages:
14 name: archive
15 url: "https://pub.dartlang.org"
16 source: hosted
17 - version: "2.0.11"
17 + version: "2.0.13"
18 args:
19 dependency: transitive
20 description:
21 name: args
22 url: "https://pub.dartlang.org"
23 source: hosted
24 - version: "1.5.2"
24 + version: "1.6.0"
25 asn1lib:
26 dependency: transitive
27 description:
28 name: asn1lib
29 url: "https://pub.dartlang.org"
30 source: hosted
31 - version: "0.5.15"
31 + version: "0.6.4"
32 async:
33 dependency: transitive
34 description:
35 name: async
36 url: "https://pub.dartlang.org"
37 source: hosted
38 - version: "2.4.0"
38 + version: "2.4.1"
39 auto_size_text:
40 dependency: "direct main"
41 description:
@@ -49,7 +49,7 @@ packages:
49 name: barcode_scan
50 url: "https://pub.dartlang.org"
51 source: hosted
52 - version: "1.0.0"
52 + version: "3.0.1"
53 basic_utils:
54 dependency: "direct main"
55 description:
@@ -84,14 +84,14 @@ packages:
84 name: bitcoin_flutter
85 url: "https://pub.dartlang.org"
86 source: hosted
87 - version: "2.0.0"
87 + version: "2.0.1"
88 boolean_selector:
89 dependency: transitive
90 description:
91 name: boolean_selector
92 url: "https://pub.dartlang.org"
93 source: hosted
94 - version: "1.0.5"
94 + version: "2.0.0"
95 bs58check:
96 dependency: transitive
97 description:
@@ -112,14 +112,14 @@ packages:
112 name: build_config
113 url: "https://pub.dartlang.org"
114 source: hosted
115 - version: "0.4.1+1"
115 + version: "0.4.2"
116 build_daemon:
117 dependency: transitive
118 description:
119 name: build_daemon
120 url: "https://pub.dartlang.org"
121 source: hosted
122 - version: "2.1.2"
122 + version: "2.1.4"
123 build_resolvers:
124 dependency: transitive
125 description:
@@ -133,28 +133,28 @@ packages:
133 name: build_runner
134 url: "https://pub.dartlang.org"
135 source: hosted
136 - version: "1.7.2"
136 + version: "1.9.0"
137 build_runner_core:
138 dependency: transitive
139 description:
140 name: build_runner_core
141 url: "https://pub.dartlang.org"
142 source: hosted
143 - version: "4.2.0"
143 + version: "5.1.0"
144 built_collection:
145 dependency: transitive
146 description:
147 name: built_collection
148 url: "https://pub.dartlang.org"
149 source: hosted
150 - version: "4.3.0"
150 + version: "4.3.2"
151 built_value:
152 dependency: transitive
153 description:
154 name: built_value
155 url: "https://pub.dartlang.org"
156 source: hosted
157 - version: "7.0.0"
157 + version: "7.1.0"
158 characters:
159 dependency: transitive
160 description:
@@ -168,7 +168,7 @@ packages:
168 name: charcode
169 url: "https://pub.dartlang.org"
170 source: hosted
171 - version: "1.1.2"
171 + version: "1.1.3"
172 checked_yaml:
173 dependency: transitive
174 description:
@@ -189,14 +189,14 @@ packages:
189 name: code_builder
190 url: "https://pub.dartlang.org"
191 source: hosted
192 - version: "3.2.1"
192 + version: "3.3.0"
193 collection:
194 dependency: transitive
195 description:
196 name: collection
197 url: "https://pub.dartlang.org"
198 source: hosted
199 - version: "1.14.11"
199 + version: "1.14.12"
200 convert:
201 dependency: transitive
202 description:
@@ -210,7 +210,7 @@ packages:
210 name: crypto
211 url: "https://pub.dartlang.org"
212 source: hosted
213 - version: "2.1.3"
213 + version: "2.1.4"
214 csslib:
215 dependency: transitive
216 description:
@@ -240,12 +240,12 @@ packages:
240 source: hosted
241 version: "1.2.9"
242 dartx:
243 - dependency: transitive
243 + dependency: "direct overridden"
244 description:
245 name: dartx
246 url: "https://pub.dartlang.org"
247 source: hosted
248 - version: "0.2.0"
248 + version: "0.3.0"
249 date_range_picker:
250 dependency: "direct main"
251 description:
@@ -259,7 +259,7 @@ packages:
259 name: devicelocale
260 url: "https://pub.dartlang.org"
261 source: hosted
262 - version: "0.2.1"
262 + version: "0.2.3"
263 dio:
264 dependency: "direct main"
265 description:
@@ -273,7 +273,7 @@ packages:
273 name: encrypt
274 url: "https://pub.dartlang.org"
275 source: hosted
276 - version: "4.0.0"
276 + version: "4.0.1"
277 esys_flutter_share:
278 dependency: "direct main"
279 description:
@@ -313,7 +313,7 @@ packages:
313 name: flutter_launcher_icons
314 url: "https://pub.dartlang.org"
315 source: hosted
316 - version: "0.7.4"
316 + version: "0.7.5"
317 flutter_localizations:
318 dependency: "direct main"
319 description: flutter
@@ -326,13 +326,20 @@ packages:
326 url: "https://pub.dartlang.org"
327 source: hosted
328 version: "0.3.0+1"
329 + flutter_plugin_android_lifecycle:
330 + dependency: transitive
331 + description:
332 + name: flutter_plugin_android_lifecycle
333 + url: "https://pub.dartlang.org"
334 + source: hosted
335 + version: "1.0.8"
336 flutter_secure_storage:
337 dependency: "direct main"
338 description:
339 name: flutter_secure_storage
340 url: "https://pub.dartlang.org"
341 source: hosted
335 - version: "3.3.1+1"
342 + version: "3.3.3"
343 flutter_slidable:
344 dependency: "direct main"
345 description:
@@ -384,21 +391,21 @@ packages:
391 name: hive
392 url: "https://pub.dartlang.org"
393 source: hosted
387 - version: "1.2.0"
394 + version: "1.4.1+1"
395 hive_flutter:
396 dependency: "direct main"
397 description:
398 name: hive_flutter
399 url: "https://pub.dartlang.org"
400 source: hosted
394 - version: "0.2.1"
401 + version: "0.3.0+2"
402 hive_generator:
403 dependency: "direct dev"
404 description:
405 name: hive_generator
406 url: "https://pub.dartlang.org"
407 source: hosted
401 - version: "0.6.0"
408 + version: "0.7.0+2"
409 html:
410 dependency: transitive
411 description:
@@ -412,42 +419,42 @@ packages:
419 name: http
420 url: "https://pub.dartlang.org"
421 source: hosted
415 - version: "0.12.0+2"
422 + version: "0.12.1"
423 http_multi_server:
424 dependency: transitive
425 description:
426 name: http_multi_server
427 url: "https://pub.dartlang.org"
428 source: hosted
422 - version: "2.1.0"
429 + version: "2.2.0"
430 http_parser:
431 dependency: transitive
432 description:
433 name: http_parser
434 url: "https://pub.dartlang.org"
435 source: hosted
429 - version: "3.1.3"
436 + version: "3.1.4"
437 image:
438 dependency: transitive
439 description:
440 name: image
441 url: "https://pub.dartlang.org"
442 source: hosted
436 - version: "2.1.4"
443 + version: "2.1.12"
444 intl:
445 dependency: "direct main"
446 description:
447 name: intl
448 url: "https://pub.dartlang.org"
449 source: hosted
443 - version: "0.16.0"
450 + version: "0.16.1"
451 io:
452 dependency: transitive
453 description:
454 name: io
455 url: "https://pub.dartlang.org"
456 source: hosted
450 - version: "0.3.3"
457 + version: "0.3.4"
458 js:
459 dependency: transitive
460 description:
@@ -461,7 +468,7 @@ packages:
468 name: json_annotation
469 url: "https://pub.dartlang.org"
470 source: hosted
464 - version: "3.0.0"
471 + version: "3.0.1"
472 kernel:
473 dependency: transitive
474 description:
@@ -475,14 +482,14 @@ packages:
482 name: local_auth
483 url: "https://pub.dartlang.org"
484 source: hosted
478 - version: "0.6.1"
485 + version: "0.6.2+3"
486 logging:
487 dependency: transitive
488 description:
489 name: logging
490 url: "https://pub.dartlang.org"
491 source: hosted
485 - version: "0.11.3+2"
492 + version: "0.11.4"
493 matcher:
494 dependency: transitive
495 description:
@@ -510,7 +517,7 @@ packages:
517 name: mobx
518 url: "https://pub.dartlang.org"
519 source: hosted
513 - version: "0.3.9+3"
520 + version: "0.3.10"
521 mobx_codegen:
522 dependency: "direct dev"
523 description:
@@ -524,28 +531,28 @@ packages:
531 name: node_interop
532 url: "https://pub.dartlang.org"
533 source: hosted
527 - version: "1.0.3"
534 + version: "1.1.1"
535 node_io:
536 dependency: transitive
537 description:
538 name: node_io
539 url: "https://pub.dartlang.org"
540 source: hosted
534 - version: "1.0.1+2"
541 + version: "1.1.1"
542 package_config:
543 dependency: transitive
544 description:
545 name: package_config
546 url: "https://pub.dartlang.org"
547 source: hosted
541 - version: "1.1.0"
548 + version: "1.9.3"
549 package_info:
550 dependency: "direct main"
551 description:
552 name: package_info
553 url: "https://pub.dartlang.org"
554 source: hosted
548 - version: "0.4.0+13"
555 + version: "0.4.0+18"
556 package_resolver:
557 dependency: transitive
558 description:
@@ -573,14 +580,28 @@ packages:
580 name: path_provider
581 url: "https://pub.dartlang.org"
582 source: hosted
576 - version: "1.5.1"
583 + version: "1.6.9"
584 + path_provider_macos:
585 + dependency: transitive
586 + description:
587 + name: path_provider_macos
588 + url: "https://pub.dartlang.org"
589 + source: hosted
590 + version: "0.0.4+3"
591 + path_provider_platform_interface:
592 + dependency: transitive
593 + description:
594 + name: path_provider_platform_interface
595 + url: "https://pub.dartlang.org"
596 + source: hosted
597 + version: "1.0.2"
598 pedantic:
599 dependency: "direct dev"
600 description:
601 name: pedantic
602 url: "https://pub.dartlang.org"
603 source: hosted
583 - version: "1.8.0+1"
604 + version: "1.9.0"
605 petitparser:
606 dependency: transitive
607 description:
@@ -595,6 +616,20 @@ packages:
616 url: "https://pub.dartlang.org"
617 source: hosted
618 version: "2.2.1"
619 + platform_detect:
620 + dependency: transitive
621 + description:
622 + name: platform_detect
623 + url: "https://pub.dartlang.org"
624 + source: hosted
625 + version: "1.4.0"
626 + plugin_platform_interface:
627 + dependency: transitive
628 + description:
629 + name: plugin_platform_interface
630 + url: "https://pub.dartlang.org"
631 + source: hosted
632 + version: "1.0.2"
633 pointycastle:
634 dependency: transitive
635 description:
@@ -609,6 +644,13 @@ packages:
644 url: "https://pub.dartlang.org"
645 source: hosted
646 version: "1.4.0"
647 + protobuf:
648 + dependency: transitive
649 + description:
650 + name: protobuf
651 + url: "https://pub.dartlang.org"
652 + source: hosted
653 + version: "1.0.1"
654 provider:
655 dependency: "direct main"
656 description:
@@ -622,7 +664,7 @@ packages:
664 name: pub_semver
665 url: "https://pub.dartlang.org"
666 source: hosted
625 - version: "1.4.2"
667 + version: "1.4.4"
668 pubspec_parse:
669 dependency: transitive
670 description:
@@ -643,7 +685,7 @@ packages:
685 name: quiver
686 url: "https://pub.dartlang.org"
687 source: hosted
646 - version: "2.0.5"
688 + version: "2.1.3"
689 rxdart:
690 dependency: "direct main"
691 description:
@@ -657,21 +699,35 @@ packages:
699 name: share
700 url: "https://pub.dartlang.org"
701 source: hosted
660 - version: "0.6.3+5"
702 + version: "0.6.4+3"
703 shared_preferences:
704 dependency: "direct main"
705 description:
706 name: shared_preferences
707 url: "https://pub.dartlang.org"
708 source: hosted
667 - version: "0.5.4+9"
709 + version: "0.5.7+3"
710 + shared_preferences_macos:
711 + dependency: transitive
712 + description:
713 + name: shared_preferences_macos
714 + url: "https://pub.dartlang.org"
715 + source: hosted
716 + version: "0.0.1+9"
717 shared_preferences_platform_interface:
718 dependency: transitive
719 description:
720 name: shared_preferences_platform_interface
721 url: "https://pub.dartlang.org"
722 source: hosted
674 - version: "1.0.1"
723 + version: "1.0.4"
724 + shared_preferences_web:
725 + dependency: transitive
726 + description:
727 + name: shared_preferences_web
728 + url: "https://pub.dartlang.org"
729 + source: hosted
730 + version: "0.1.2+7"
731 shelf:
732 dependency: transitive
733 description:
@@ -704,7 +760,7 @@ packages:
760 name: source_span
761 url: "https://pub.dartlang.org"
762 source: hosted
707 - version: "1.5.5"
763 + version: "1.7.0"
764 stack_trace:
765 dependency: transitive
766 description:
@@ -725,7 +781,7 @@ packages:
781 name: stream_transform
782 url: "https://pub.dartlang.org"
783 source: hosted
728 - version: "0.0.20"
784 + version: "1.2.0"
785 string_scanner:
786 dependency: transitive
787 description:
@@ -746,14 +802,14 @@ packages:
802 name: test_api
803 url: "https://pub.dartlang.org"
804 source: hosted
749 - version: "0.2.11"
805 + version: "0.2.15"
806 time:
807 dependency: transitive
808 description:
809 name: time
810 url: "https://pub.dartlang.org"
811 source: hosted
756 - version: "1.2.0"
812 + version: "1.3.0"
813 timing:
814 dependency: transitive
815 description:
@@ -774,21 +830,28 @@ packages:
830 name: url_launcher
831 url: "https://pub.dartlang.org"
832 source: hosted
777 - version: "5.3.0"
833 + version: "5.4.10"
834 + url_launcher_macos:
835 + dependency: transitive
836 + description:
837 + name: url_launcher_macos
838 + url: "https://pub.dartlang.org"
839 + source: hosted
840 + version: "0.0.1+7"
841 url_launcher_platform_interface:
842 dependency: transitive
843 description:
844 name: url_launcher_platform_interface
845 url: "https://pub.dartlang.org"
846 source: hosted
784 - version: "1.0.1"
847 + version: "1.0.7"
848 url_launcher_web:
849 dependency: transitive
850 description:
851 name: url_launcher_web
852 url: "https://pub.dartlang.org"
853 source: hosted
791 - version: "0.1.0+1"
854 + version: "0.1.1+6"
855 uuid:
856 dependency: "direct main"
857 description:
@@ -809,7 +872,7 @@ packages:
872 name: watcher
873 url: "https://pub.dartlang.org"
874 source: hosted
812 - version: "0.9.7+13"
875 + version: "0.9.7+15"
876 web_socket_channel:
877 dependency: transitive
878 description:
@@ -823,14 +886,14 @@ packages:
886 name: xml
887 url: "https://pub.dartlang.org"
888 source: hosted
826 - version: "3.5.0"
889 + version: "3.6.1"
890 yaml:
891 dependency: "direct main"
892 description:
893 name: yaml
894 url: "https://pub.dartlang.org"
895 source: hosted
833 - version: "2.2.0"
896 + version: "2.2.1"
897 sdks:
835 - dart: ">=2.6.0 <3.0.0"
836 - flutter: ">=1.12.8 <2.0.0"
898 + dart: ">=2.7.0 <3.0.0"
899 + flutter: ">=1.12.13+hotfix.5 <2.0.0"
pubspec.yaml
+7 -3
@@ -43,8 +43,8 @@ dependencies:
43 dio: 3.0.7
44 cw_monero:
45 path: ./cw_monero
46 - hive: ^1.2.0
47 - hive_flutter: ^0.2.1
46 + hive: ^1.4.1+1
47 + hive_flutter: ^0.3.0+2
48 local_auth: ^0.6.1
49 package_info: ^0.4.0+13
50 devicelocale: ^0.2.1
@@ -63,10 +63,14 @@ dev_dependencies:
63 sdk: flutter
64 build_runner: ^1.3.1
65 mobx_codegen: 0.3.3+1
66 - hive_generator: ^0.6.0
66 + hive_generator: ^0.7.0+2
67 flutter_launcher_icons: ^0.7.4
68 pedantic: ^1.8.0
69
70 +# Fix for hive https://github.com/hivedb/hive/issues/247#issuecomment-606838497
71 +dependency_overrides:
72 + dartx: ^0.3.0
73 +
74 flutter_icons:
75 image_path: "assets/images/app_logo.png"
76 android: true