This commit is contained in:
M 2020-05-26 18:27:10 +03:00
parent 8c6b99da42
commit b605a98811
27 changed files with 586 additions and 246 deletions

View file

@ -70,11 +70,11 @@ void _setLabelForSubaddress(Map<String, dynamic> args) {
}
Future addSubaddress({int accountIndex, String label}) async =>
compute(_addSubaddress, {'accountIndex': accountIndex, 'label': label});
compute<Map<String, Object>, void>(_addSubaddress, {'accountIndex': accountIndex, 'label': label});
Future setLabelForSubaddress(
{int accountIndex, int addressIndex, String label}) =>
compute(_setLabelForSubaddress, {
compute<Map<String, Object>, void>(_setLabelForSubaddress, {
'accountIndex': accountIndex,
'addressIndex': addressIndex,
'label': label

View file

@ -277,7 +277,7 @@ Future setupNode(
String password,
bool useSSL = false,
bool isLightWallet = false}) =>
compute(_setupNodeSync, {
compute<Map<String, Object>, void>(_setupNodeSync, {
'address': address,
'login': login,
'password': password,
@ -285,7 +285,7 @@ Future setupNode(
'isLightWallet': isLightWallet
});
Future store() => compute(_storeSync, 0);
Future store() => compute<int, void>(_storeSync, 0);
Future<bool> isConnected() => compute(_isConnected, 0);

View file

@ -32,10 +32,7 @@ final loadWalletNative = moneroApi
.asFunction<LoadWallet>();
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<Map<String, Object>, 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<Map<String, Object>, void>(_restoreFromKeys, {
'path': path,
'password': password,
'language': language,

View file

@ -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

View file

@ -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 = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
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>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
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 = "<group>"; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
@ -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;

View file

@ -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<PendingTransaction> 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;
}

View file

@ -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<N extends WalletCredentials,
RFS extends WalletCredentials, RFK extends WalletCredentials> {
Future<void> create(N credentials);
Future<void> restoreFromSeed(RFS credentials);
Future<void> restoreFromKeys(RFK credentials);
Future<void> openWallet(String name, String password);
Future<bool> isWalletExit(String name);
Future<void> 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<void> create(BitcoinNewWalletCredentials credentials) async {
// TODO: implement create
throw UnimplementedError();
}
@override
Future<bool> isWalletExit(String name) async {
// TODO: implement isWalletExit
throw UnimplementedError();
}
@override
Future<void> openWallet(String name, String password) async {
// TODO: implement openWallet
throw UnimplementedError();
}
Future<void> remove(String wallet) {
// TODO: implement remove
throw UnimplementedError();
}
@override
Future<void> restoreFromKeys(
BitcoinRestoreWalletFromWIFCredentials credentials) async {
// TODO: implement restoreFromKeys
throw UnimplementedError();
}
@override
Future<void> restoreFromSeed(
BitcoinRestoreWalletFromSeedCredentials credentials) async {
// TODO: implement restoreFromSeed
throw UnimplementedError();
}
}
/*
*
* BitcoinWalletListService
*
* */
class MoneroWalletListService extends WalletListService<
BitcoinNewWalletCredentials,
BitcoinRestoreWalletFromSeedCredentials,
BitcoinRestoreWalletFromWIFCredentials> {
@override
Future<void> create(BitcoinNewWalletCredentials credentials) async {
// TODO: implement create
throw UnimplementedError();
}
@override
Future<bool> isWalletExit(String name) async {
// TODO: implement isWalletExit
throw UnimplementedError();
}
@override
Future<void> openWallet(String name, String password) async {
// TODO: implement openWallet
throw UnimplementedError();
}
Future<void> remove(String wallet) {
// TODO: implement remove
throw UnimplementedError();
}
@override
Future<void> restoreFromKeys(
BitcoinRestoreWalletFromWIFCredentials credentials) async {
// TODO: implement restoreFromKeys
throw UnimplementedError();
}
@override
Future<void> 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<void> create(WalletCredentials credentials) async {
try {
state = WalletCreating();
await _service.create(credentials);
state = WalletCreatedSuccessfully();
} catch (e) {
state = WalletCreationFailure(error: e.toString());
}
}
Future<void> restoreFromKeys(WalletCredentials credentials) async {
try {
state = WalletCreating();
await _service.create(credentials);
state = WalletCreatedSuccessfully();
} catch (e) {
state = WalletCreationFailure(error: e.toString());
}
}
Future<void> 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<void> setupPinCode({@required String pin}) async {}
Future<bool> 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 {}

View file

@ -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),

View file

@ -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;

View file

@ -3,7 +3,7 @@ import 'package:hive/hive.dart';
part 'crypto_currency.g.dart';
@HiveType()
@HiveType(typeId: 0)
class CryptoCurrency extends EnumerableItem<int> with Serializable<int> {
const CryptoCurrency({final String title, final int raw})
: super(title: title, raw: raw);

View file

@ -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});

View file

@ -7,7 +7,7 @@ Future<String> presentQRScanner() async {
try {
final result = await BarcodeScanner.scan();
isQrScannerShown = false;
return result;
return result.rawContent;
} catch (e) {
isQrScannerShown = false;
rethrow;

View file

@ -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});

View file

@ -4,7 +4,7 @@ part 'wallet_type.g.dart';
const walletTypes = [WalletType.monero, WalletType.bitcoin];
@HiveType()
@HiveType(typeId: 5)
enum WalletType {
@HiveField(0)
monero,

View file

@ -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,

View file

@ -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});

View file

@ -41,16 +41,16 @@ abstract class AcountListStoreBase with Store {
StreamSubscription<Wallet> _onWalletChangeSubscription;
StreamSubscription<List<Account>> _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();

View file

@ -155,21 +155,21 @@ abstract class ActionListBase with Store {
StreamSubscription<BoxEvent> _onTransactionDescriptions;
StreamSubscription<BoxEvent> _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 =

View file

@ -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) {

View file

@ -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<void> _updateTrade() async {

View file

@ -29,14 +29,14 @@ abstract class NodeListBase with Store {
StreamSubscription<BoxEvent> _onNodesChangeSubscription;
@override
void dispose() {
super.dispose();
// @override
// void dispose() {
// super.dispose();
if (_onNodesChangeSubscription != null) {
_onNodesChangeSubscription.cancel();
}
}
// if (_onNodesChangeSubscription != null) {
// _onNodesChangeSubscription.cancel();
// }
// }
@action
void update() =>

View file

@ -39,16 +39,16 @@ abstract class SubadrressCreationStoreBase with Store {
StreamSubscription<Account> _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<void> add({String label}) async {
try {

View file

@ -33,19 +33,19 @@ abstract class SubaddressListStoreBase with Store {
StreamSubscription<Account> _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<void> _updateSubaddressList({int accountIndex}) async {
await _subaddressList.refresh(accountIndex: accountIndex);

View file

@ -29,15 +29,15 @@ abstract class SyncStoreBase with Store {
StreamSubscription<Wallet> _onWalletChangeSubscription;
StreamSubscription<SyncStatus> _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) {

View file

@ -63,22 +63,22 @@ abstract class WalletStoreBase with Store {
StreamSubscription<Account> _onAccountChangeSubscription;
StreamSubscription<Subaddress> _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) {

View file

@ -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"

View file

@ -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