Compare commits
3 Commits
master
...
jsonificat
Author | SHA1 | Date |
---|---|---|
poka | 8a5be74074 | |
poka | 97c566f429 | |
poka | 62c6a0aa15 |
|
@ -8,6 +8,7 @@ Directory appPath;
|
||||||
Directory walletsDirectory;
|
Directory walletsDirectory;
|
||||||
File defaultWalletFile;
|
File defaultWalletFile;
|
||||||
File currentChestFile;
|
File currentChestFile;
|
||||||
|
File globalConf;
|
||||||
|
|
||||||
WalletData defaultWallet;
|
WalletData defaultWallet;
|
||||||
String appVersion;
|
String appVersion;
|
||||||
|
|
|
@ -44,6 +44,7 @@ Future<void> main() async {
|
||||||
await _homeProvider.getAppPath();
|
await _homeProvider.getAppPath();
|
||||||
await _homeProvider.createDefaultAvatar();
|
await _homeProvider.createDefaultAvatar();
|
||||||
await _walletsProvider.initWalletFolder();
|
await _walletsProvider.initWalletFolder();
|
||||||
|
await _walletsProvider.loadGlobalConfig();
|
||||||
// _walletsProvider.getDefaultWallet();
|
// _walletsProvider.getDefaultWallet();
|
||||||
appVersion = await _homeProvider.getAppVersion();
|
appVersion = await _homeProvider.getAppVersion();
|
||||||
prefs = await SharedPreferences.getInstance();
|
prefs = await SharedPreferences.getInstance();
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
class ChestData {
|
||||||
|
String dewif;
|
||||||
|
Map<int, WalletData> accounts;
|
||||||
|
int defaultWallet;
|
||||||
|
|
||||||
|
ChestData({dewif, accounts, defaultWallet});
|
||||||
|
factory ChestData.fromJson(Map<String, dynamic> json) =>
|
||||||
|
_$ChestDataFromJson(json);
|
||||||
|
Map<String, dynamic> toJson() => _$ChestDataToJson(this);
|
||||||
|
|
||||||
|
// Representation of ChestData when debugging
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return this.accounts.entries.join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class WalletData {
|
||||||
|
String name;
|
||||||
|
File avatar;
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
class MyWalletsProvider with ChangeNotifier {
|
class MyWalletsProvider with ChangeNotifier {
|
||||||
List<WalletData> listWallets = [];
|
List<WalletData> listWallets = [];
|
||||||
|
@ -11,32 +12,30 @@ class MyWalletsProvider with ChangeNotifier {
|
||||||
int pinLenght;
|
int pinLenght;
|
||||||
|
|
||||||
Future initWalletFolder() async {
|
Future initWalletFolder() async {
|
||||||
// getDefaultWallet();
|
|
||||||
|
|
||||||
final bool isWalletFolderExist = await walletsDirectory.exists();
|
final bool isWalletFolderExist = await walletsDirectory.exists();
|
||||||
if (!isWalletFolderExist) {
|
if (!isWalletFolderExist) {
|
||||||
await Directory(walletsDirectory.path).create();
|
await Directory(walletsDirectory.path).create();
|
||||||
}
|
}
|
||||||
|
|
||||||
File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
|
// File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
|
||||||
|
globalConf = File('${appPath.path}/config.json');
|
||||||
|
|
||||||
await _currentChestFile.create();
|
await globalConf.create();
|
||||||
await _currentChestFile.writeAsString('0');
|
await globalConf.writeAsString('0');
|
||||||
|
|
||||||
final bool isChestsExist =
|
final bool isChestsExist =
|
||||||
await Directory('${walletsDirectory.path}/0').exists();
|
await Directory('${walletsDirectory.path}/0').exists();
|
||||||
if (!isChestsExist) {
|
if (!isChestsExist) {
|
||||||
await Directory('${walletsDirectory.path}/0').create();
|
await Directory('${walletsDirectory.path}/0').create();
|
||||||
await Directory('${walletsDirectory.path}/1').create();
|
await Directory('${walletsDirectory.path}/1').create();
|
||||||
await File('${walletsDirectory.path}/0/list.conf').create();
|
await File('${walletsDirectory.path}/0/chest.json').create();
|
||||||
await File('${walletsDirectory.path}/0/order.conf').create();
|
await File('${walletsDirectory.path}/1/chest.json').create();
|
||||||
await File('${walletsDirectory.path}/1/list.conf').create();
|
|
||||||
await File('${walletsDirectory.path}/1/order.conf').create();
|
|
||||||
// getDefaultWallet();
|
// getDefaultWallet();
|
||||||
}
|
}
|
||||||
await getDefaultWalletAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future loadGlobalConfig() async {}
|
||||||
|
|
||||||
int getCurrentChest() {
|
int getCurrentChest() {
|
||||||
File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
|
File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
|
||||||
|
|
||||||
|
@ -105,29 +104,6 @@ class MyWalletsProvider with ChangeNotifier {
|
||||||
configLines.firstWhere((element) => element.startsWith(_id)));
|
configLines.firstWhere((element) => element.startsWith(_id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void getDefaultWallet() {
|
|
||||||
defaultWalletFile = File('${appPath.path}/defaultWallet');
|
|
||||||
|
|
||||||
if (!defaultWalletFile.existsSync()) {
|
|
||||||
File(defaultWalletFile.path).createSync();
|
|
||||||
defaultWalletFile.writeAsStringSync("0:0");
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultWallet = getWalletData(defaultWalletFile.readAsStringSync());
|
|
||||||
}
|
|
||||||
|
|
||||||
Future getDefaultWalletAsync() async {
|
|
||||||
defaultWalletFile = File('${appPath.path}/defaultWallet');
|
|
||||||
|
|
||||||
if (!await defaultWalletFile.exists()) {
|
|
||||||
await File(defaultWalletFile.path).create();
|
|
||||||
await defaultWalletFile.writeAsString("0:0");
|
|
||||||
} else {
|
|
||||||
defaultWallet =
|
|
||||||
await getWalletDataAsync(await defaultWalletFile.readAsString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<int> deleteAllWallet(context) async {
|
Future<int> deleteAllWallet(context) async {
|
||||||
MyWalletsProvider _myWalletProvider =
|
MyWalletsProvider _myWalletProvider =
|
||||||
Provider.of<MyWalletsProvider>(context, listen: false);
|
Provider.of<MyWalletsProvider>(context, listen: false);
|
||||||
|
@ -256,3 +232,34 @@ class WalletData {
|
||||||
return "${this.chest}:${this.number}";
|
return "${this.chest}:${this.number}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Chest data constructor
|
||||||
|
class ChestData {
|
||||||
|
String dewif;
|
||||||
|
Map accounts;
|
||||||
|
List<int> derivations;
|
||||||
|
Map<int, String> name;
|
||||||
|
Map<int, File> avatar;
|
||||||
|
int defaultWallet;
|
||||||
|
|
||||||
|
// Load data from JSON
|
||||||
|
ChestData(String elements) {
|
||||||
|
if (elements.isNotEmpty) {
|
||||||
|
Map<String, dynamic> jsonElements = jsonDecode(elements);
|
||||||
|
this.dewif = jsonElements['dewif'];
|
||||||
|
this.accounts = jsonElements['accounts'];
|
||||||
|
|
||||||
|
for (int _key in this.accounts.keys) {
|
||||||
|
derivations.add(_key);
|
||||||
|
this.name[_key] = this.accounts[_key]['name'];
|
||||||
|
this.avatar[_key] = this.accounts[_key]['avatar'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Representation of ChestData when debugging
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return this.accounts.entries.join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -29,14 +29,14 @@ const String getHistory = r'''
|
||||||
issuers
|
issuers
|
||||||
comment
|
comment
|
||||||
outputs
|
outputs
|
||||||
writtenTime
|
receivedTime
|
||||||
}
|
}
|
||||||
sending {
|
sending {
|
||||||
currency
|
currency
|
||||||
issuers
|
issuers
|
||||||
comment
|
comment
|
||||||
outputs
|
outputs
|
||||||
writtenTime
|
receivedTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentUd {
|
currentUd {
|
||||||
|
|
|
@ -146,7 +146,7 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
|
||||||
_myWalletProvider.listWallets =
|
_myWalletProvider.listWallets =
|
||||||
_myWalletProvider
|
_myWalletProvider
|
||||||
.readAllWallets(_currentChest);
|
.readAllWallets(_currentChest);
|
||||||
_myWalletProvider.getDefaultWallet();
|
// _myWalletProvider.getDefaultWallet();
|
||||||
scheduleMicrotask(() {
|
scheduleMicrotask(() {
|
||||||
_walletOptions.reloadBuild();
|
_walletOptions.reloadBuild();
|
||||||
_myWalletProvider.rebuildWidget();
|
_myWalletProvider.rebuildWidget();
|
||||||
|
|
|
@ -46,7 +46,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
|
|
||||||
_walletOptions.walletID = '0:${wallet.number}';
|
_walletOptions.walletID = '0:${wallet.number}';
|
||||||
|
|
||||||
_myWalletProvider.getDefaultWallet();
|
// _myWalletProvider.getDefaultWallet();
|
||||||
|
|
||||||
_walletOptions.isDefaultWallet =
|
_walletOptions.isDefaultWallet =
|
||||||
(defaultWallet.id() == _walletOptions.walletID);
|
(defaultWallet.id() == _walletOptions.walletID);
|
||||||
|
|
|
@ -28,7 +28,7 @@ class WalletsHome extends StatelessWidget {
|
||||||
if (myWalletProvider.listWallets.isEmpty) {
|
if (myWalletProvider.listWallets.isEmpty) {
|
||||||
firstWalletDerivation = myWalletProvider.listWallets[0].derivation;
|
firstWalletDerivation = myWalletProvider.listWallets[0].derivation;
|
||||||
|
|
||||||
myWalletProvider.getDefaultWallet();
|
// myWalletProvider.getDefaultWallet();
|
||||||
}
|
}
|
||||||
|
|
||||||
log.d("${myWalletProvider.pinCode},${myWalletProvider.pinLenght}");
|
log.d("${myWalletProvider.pinCode},${myWalletProvider.pinLenght}");
|
||||||
|
|
|
@ -122,7 +122,7 @@ class OnboardingStepFourteen extends StatelessWidget {
|
||||||
await _generateWalletProvider.storeHDWChest(
|
await _generateWalletProvider.storeHDWChest(
|
||||||
generatedWallet, 'Mon portefeuille courant', context);
|
generatedWallet, 'Mon portefeuille courant', context);
|
||||||
_myWalletProvider.readAllWallets(_currentChest);
|
_myWalletProvider.readAllWallets(_currentChest);
|
||||||
await _myWalletProvider.getDefaultWalletAsync();
|
// await _myWalletProvider.getDefaultWalletAsync();
|
||||||
scheduleMicrotask(() {
|
scheduleMicrotask(() {
|
||||||
_walletOptions.reloadBuild();
|
_walletOptions.reloadBuild();
|
||||||
_myWalletProvider.rebuildWidget();
|
_myWalletProvider.rebuildWidget();
|
||||||
|
|
Loading…
Reference in New Issue