WIP: refactor wallet format

This commit is contained in:
poka 2021-03-31 02:38:44 +02:00
parent d96b184e0a
commit e6ff487b3d
11 changed files with 126 additions and 116 deletions

View File

@ -1,4 +1,5 @@
import 'dart:io'; import 'dart:io';
import 'package:gecko/models/myWallets.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
// Files paths // Files paths
@ -7,7 +8,7 @@ Directory walletsDirectory;
File defaultWalletFile; File defaultWalletFile;
File currentChestFile; File currentChestFile;
String defaultWallet; WalletData defaultWallet;
String appVersion; String appVersion;
SharedPreferences prefs; SharedPreferences prefs;
String endPointGVA; String endPointGVA;

View File

@ -49,9 +49,9 @@ class HistoryProvider with ChangeNotifier {
} }
void pay(context, amount, comment) { void pay(context, amount, comment) {
String dewif = File(walletsDirectory.path + String dewif =
'${defaultWallet.split(':')[0]}/wallet.dewif') File(walletsDirectory.path + '${defaultWallet.chest}/wallet.dewif')
.readAsLinesSync()[0]; .readAsLinesSync()[0];
DubpRust.simplePaymentFromTransparentAccount( DubpRust.simplePaymentFromTransparentAccount(
accountIndex: 0, accountIndex: 0,
amount: 1, amount: 1,

View File

@ -6,8 +6,7 @@ import 'package:gecko/globals.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class MyWalletsProvider with ChangeNotifier { class MyWalletsProvider with ChangeNotifier {
String listWallets; List<WalletData> listWallets = [];
Future initWalletFolder() async { Future initWalletFolder() async {
getDefaultWallet(); getDefaultWallet();
@ -49,9 +48,9 @@ class MyWalletsProvider with ChangeNotifier {
return false; return false;
} }
final String _walletList = getAllWalletsNames(0); final List _walletList = readAllWallets(0);
if (_walletList == '') { if (_walletList.isEmpty) {
print('No wallets detected'); print('No wallets detected');
return false; return false;
} else { } else {
@ -60,61 +59,55 @@ class MyWalletsProvider with ChangeNotifier {
} }
} }
String getAllWalletsNames(int _chest) { List readAllWallets(int _chest) {
if (listWallets != null && listWallets.isNotEmpty) {
listWallets = '';
}
if (listWallets == null) {
listWallets = '';
}
print(walletsDirectory.path); print(walletsDirectory.path);
listWallets = [];
// int i = 0; // int i = 0;
File _walletConfig = File('${walletsDirectory.path}/$_chest/list.conf'); File _walletConfig = File('${walletsDirectory.path}/$_chest/list.conf');
_walletConfig.readAsLinesSync().forEach((element) { _walletConfig.readAsLinesSync().forEach((element) {
if (listWallets != '') { print(element);
listWallets += '\n'; listWallets.add(WalletData(element));
}
listWallets += element;
// listWallets += "${element.split(':')[0]}:${element.split(':')[1]}:${element.split(':')[2]}" // listWallets += "${element.split(':')[0]}:${element.split(':')[1]}:${element.split(':')[2]}"
}); });
print(listWallets); // listWallets.forEach((e) {
// print(e.name);
// });
// print(listWallets);
return listWallets; return listWallets;
} }
int getDerivationNbr(String _id) { WalletData getWalletData(String _id) {
int chest = int.parse(_id.split(':')[0]); int chest = int.parse(_id.split(':')[0]);
// int nbr = int.parse(_id.split(':')[1]); // int nbr = int.parse(_id.split(':')[1]);
final _walletConfig = File('${walletsDirectory.path}/$chest/list.conf'); final _walletConfig = File('${walletsDirectory.path}/$chest/list.conf');
int derivation;
_walletConfig.readAsLinesSync().forEach((element) { _walletConfig.readAsLinesSync().forEach((element) {
if ("${element.split(':')[0]}:${element.split(':')[1]}" == _id) { WalletData wallet = WalletData(element);
derivation = int.parse(element.split(':')[3]); if (_id == "${wallet.chest}:${wallet.number}") {
return wallet;
} }
}); });
return WalletData("0:0:Null:0");
return derivation;
} }
void getDefaultWallet() { void getDefaultWallet() {
defaultWalletFile = File('${appPath.path}/defaultWallet'); defaultWalletFile = File('${appPath.path}/defaultWallet');
bool isdefaultWalletFile = defaultWalletFile.existsSync(); if (!defaultWalletFile.existsSync()) {
if (!isdefaultWalletFile) {
File(defaultWalletFile.path).createSync(); File(defaultWalletFile.path).createSync();
} }
try { try {
defaultWallet = defaultWalletFile.readAsStringSync(); ////////////////////////////////////////////////////////////
defaultWallet = getWalletData(defaultWalletFile.readAsStringSync());
print("found default wallet $defaultWallet");
} catch (e) { } catch (e) {
defaultWallet = '0:0'; print("ERROR $e");
defaultWallet = WalletData('0:0:null:0');
} }
if (defaultWallet == '') defaultWallet = '0:0';
} }
Future<int> deleteAllWallet(context) async { Future<int> deleteAllWallet(context) async {
@ -159,7 +152,7 @@ class MyWalletsProvider with ChangeNotifier {
onPressed: () { onPressed: () {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_myWalletProvider.listWallets = _myWalletProvider.listWallets =
_myWalletProvider.getAllWalletsNames(getCurrentChest()); _myWalletProvider.readAllWallets(getCurrentChest());
_myWalletProvider.rebuildWidget(); _myWalletProvider.rebuildWidget();
}); });
Navigator.pop(context, true); Navigator.pop(context, true);
@ -203,3 +196,37 @@ class MyWalletsProvider with ChangeNotifier {
notifyListeners(); notifyListeners();
} }
} }
// wallet data contains elements identifying wallet
class WalletData {
int chest;
int number;
String name;
int derivation;
// constructor from ':'-separated string
WalletData(String element) {
List parts = element.split(':');
this.chest = int.parse(parts[0]);
this.number = int.parse(parts[1]);
this.name = parts[2];
this.derivation = int.parse(parts[3]);
}
// representation of WalletData when debugging
@override
String toString() {
return this.name;
}
// creates the ':'-separated string from the WalletData
String inLine() {
return "${this.chest}:${this.number}:${this.name}:${this.derivation}";
}
// returns only the id part of the ':'-separated string
String id() {
return "${this.chest}:${this.number}";
}
}

View File

@ -1,3 +1,4 @@
// import 'dart:ffi';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
@ -7,6 +8,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:async'; import 'dart:async';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
import 'package:gecko/models/myWallets.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:truncate/truncate.dart'; import 'package:truncate/truncate.dart';
import 'package:qrscan/qrscan.dart' as scanner; import 'package:qrscan/qrscan.dart' as scanner;
@ -74,15 +76,16 @@ class WalletOptionsProvider with ChangeNotifier {
} }
Future readLocalWallet( Future readLocalWallet(
int _walletNbr, String _pin, int _pinLenght, int derivation) async { context, WalletData _wallet, String _pin, int _pinLenght) async {
isWalletUnlock = false; isWalletUnlock = false;
// MyWalletsProvider _myWalletProvider = MyWalletsProvider();
try { try {
File _walletFile = File('${walletsDirectory.path}/0/wallet.dewif'); File _walletFile = File('${walletsDirectory.path}/0/wallet.dewif');
String _localDewif = await _walletFile.readAsString(); String _localDewif = await _walletFile.readAsString();
String _localPubkey; String _localPubkey;
if ((_localPubkey = await _getPubkeyFromDewif( if ((_localPubkey = await _getPubkeyFromDewif(
_localDewif, _pin, _pinLenght, derivation)) != _localDewif, _pin, _pinLenght, _wallet.derivation)) !=
'false') { 'false') {
this.pubkey.text = _localPubkey; this.pubkey.text = _localPubkey;
isWalletUnlock = true; isWalletUnlock = true;
@ -136,27 +139,15 @@ class WalletOptionsProvider with ChangeNotifier {
String newConfig = String newConfig =
await _walletConfig.readAsLines().then((List<String> lines) { await _walletConfig.readAsLines().then((List<String> lines) {
int nbrLines = lines.length; int nbrLines = lines.length;
// print(lines);
// print(nbrLines);
// int _index = lines.indexOf('0:$_walletNbr:$_walletName:$_derivation');
if (nbrLines != 1) { if (nbrLines != 1) {
for (String wLine in lines) { for (String wLine in lines) {
String wID = "${wLine.split(':')[0]}:${wLine.split(':')[1]}"; String wID = "${wLine.split(':')[0]}:${wLine.split(':')[1]}";
print(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
print(wLine);
String deri = wLine.split(':')[3]; String deri = wLine.split(':')[3];
print("($wID == $_walletID ???");
if (wID == _walletID) { if (wID == _walletID) {
lines.remove(wLine); lines.remove(wLine);
lines.add('$_walletID:$_newName:$deri'); lines.add('$_walletID:$_newName:$deri');
// return '$_walletID:$_newName:$deri';
print('OOUUUUUUUIIIIIIIIIIIIIIIIIII');
} }
} }
// lines.removeWhere((element) =>
// '${element.split(':')[0]}:${element.split(':')[1]}' == _walletID);
// lines.add('$_walletID:$_newName:$deri');
return lines.join('\n'); return lines.join('\n');
} else { } else {
return 'true'; return 'true';
@ -229,17 +220,16 @@ class WalletOptionsProvider with ChangeNotifier {
return nameState; return nameState;
} }
Future<int> deleteWallet(context, _walletNbr, _name, _derivation) async { Future<int> deleteWallet(context, wallet) async {
final bool _answer = await _confirmDeletingWallet(context, _name); final bool _answer = await _confirmDeletingWallet(context, wallet.name);
if (_answer) { if (_answer) {
final _walletConfig = File('${walletsDirectory.path}/0/list.conf'); final _walletConfig = File('${walletsDirectory.path}/0/list.conf');
if (_derivation != -1) { if (wallet.derivation != -1) {
String newConfig = String newConfig =
await _walletConfig.readAsLines().then((List<String> lines) { await _walletConfig.readAsLines().then((List<String> lines) {
lines.removeWhere((element) => lines.removeWhere((element) => element.contains(wallet.inLine()));
element.contains('0:$_walletNbr:$_name:$_derivation'));
return lines.join('\n'); return lines.join('\n');
}); });
@ -247,7 +237,8 @@ class WalletOptionsProvider with ChangeNotifier {
await _walletConfig.delete(); await _walletConfig.delete();
await _walletConfig.writeAsString(newConfig); await _walletConfig.writeAsString(newConfig);
} else { } else {
final _walletFile = Directory('${walletsDirectory.path}/$_walletNbr'); final _walletFile =
Directory('${walletsDirectory.path}/${wallet.number}');
await _walletFile.delete(recursive: true); await _walletFile.delete(recursive: true);
} }
Navigator.popUntil( Navigator.popUntil(

View File

@ -384,8 +384,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
// _historyProvider.pay(payAmount.text, payComment.text); // _historyProvider.pay(payAmount.text, payComment.text);
Navigator.push(context, Navigator.push(context,
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return UnlockingWallet( return UnlockingWallet(wallet: defaultWallet);
walletNbr: int.parse(defaultWallet));
})); }));
}, },
child: Padding( child: Padding(

View File

@ -138,8 +138,8 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
WidgetsBinding.instance WidgetsBinding.instance
.addPostFrameCallback((_) { .addPostFrameCallback((_) {
_myWalletProvider.listWallets = _myWalletProvider.listWallets =
_myWalletProvider.getAllWalletsNames( _myWalletProvider
_currentChest); .readAllWallets(_currentChest);
_myWalletProvider.rebuildWidget(); _myWalletProvider.rebuildWidget();
}); });
} }

View File

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:dubp/dubp.dart'; import 'package:dubp/dubp.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:gecko/models/myWallets.dart';
import 'package:gecko/models/walletOptions.dart'; import 'package:gecko/models/walletOptions.dart';
import 'package:gecko/screens/commonElements.dart'; import 'package:gecko/screens/commonElements.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -15,11 +16,9 @@ import 'package:provider/provider.dart';
class UnlockingWallet extends StatelessWidget { class UnlockingWallet extends StatelessWidget {
UnlockingWallet({ UnlockingWallet({
Key keyUnlockWallet, Key keyUnlockWallet,
@required this.walletNbr, @required this.wallet,
}) : super(key: keyUnlockWallet); }) : super(key: keyUnlockWallet);
int walletNbr; WalletData wallet;
String walletName;
int derivation;
// ignore: close_sinks // ignore: close_sinks
StreamController<ErrorAnimationType> errorController; StreamController<ErrorAnimationType> errorController;
@ -35,7 +34,7 @@ class UnlockingWallet extends StatelessWidget {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
WalletOptionsProvider _walletOptions = WalletOptionsProvider _walletOptions =
Provider.of<WalletOptionsProvider>(context); Provider.of<WalletOptionsProvider>(context);
final int _pinLenght = _walletOptions.getPinLenght(this.walletNbr); final int _pinLenght = _walletOptions.getPinLenght(this.wallet.number);
errorController = StreamController<ErrorAnimationType>(); errorController = StreamController<ErrorAnimationType>();
return Scaffold( return Scaffold(
@ -55,7 +54,7 @@ class UnlockingWallet extends StatelessWidget {
fontWeight: FontWeight.w400), fontWeight: FontWeight.w400),
), ),
SizedBox(height: 50), SizedBox(height: 50),
pinForm(context, _pinLenght, walletNbr, derivation), pinForm(context, _pinLenght, wallet.number, wallet.derivation),
]), ]),
), ),
GestureDetector( GestureDetector(
@ -128,10 +127,7 @@ class UnlockingWallet extends StatelessWidget {
onCompleted: (_pin) async { onCompleted: (_pin) async {
print("Completed"); print("Completed");
final resultWallet = await _walletOptions.readLocalWallet( final resultWallet = await _walletOptions.readLocalWallet(
this.walletNbr, context, this.wallet, _pin.toUpperCase(), _pinLenght);
_pin.toUpperCase(),
_pinLenght,
this.derivation);
if (resultWallet == 'bad') { if (resultWallet == 'bad') {
errorController.add(ErrorAnimationType errorController.add(ErrorAnimationType
.shake); // Triggering error shake animation .shake); // Triggering error shake animation
@ -144,7 +140,9 @@ class UnlockingWallet extends StatelessWidget {
Navigator.push( Navigator.push(
formKey.currentContext, formKey.currentContext,
SmoothTransition( SmoothTransition(
page: WalletOptions(walletNbr: walletNbr))); page: WalletOptions(
wallet: wallet,
)));
} }
}, },
onChanged: (value) { onChanged: (value) {

View File

@ -111,7 +111,7 @@ class WalletOptionsOld extends StatelessWidget with ChangeNotifier {
_myWalletProvider _myWalletProvider
.listWallets = .listWallets =
_myWalletProvider _myWalletProvider
.getAllWalletsNames( .readAllWallets(
_currentChest); _currentChest);
_myWalletProvider _myWalletProvider
.rebuildWidget(); .rebuildWidget();
@ -137,13 +137,15 @@ class WalletOptionsOld extends StatelessWidget with ChangeNotifier {
onPrimary: Colors.black, // foreground onPrimary: Colors.black, // foreground
), ),
onPressed: () async { onPressed: () async {
await _walletOptions.deleteWallet(context, await _walletOptions.deleteWallet(
walletNbr, walletName, derivation); context,
_myWalletProvider.getWalletData(
_walletOptions.walletID));
WidgetsBinding.instance WidgetsBinding.instance
.addPostFrameCallback((_) { .addPostFrameCallback((_) {
_myWalletProvider.listWallets = _myWalletProvider.listWallets =
_myWalletProvider _myWalletProvider
.getAllWalletsNames(_currentChest); .readAllWallets(_currentChest);
_myWalletProvider.rebuildWidget(); _myWalletProvider.rebuildWidget();
}); });
}, },

View File

@ -13,11 +13,9 @@ import 'package:flutter/services.dart';
// ignore: must_be_immutable // ignore: must_be_immutable
class WalletOptions extends StatelessWidget { class WalletOptions extends StatelessWidget {
WalletOptions({Key keyMyWallets, @required this.walletNbr}) WalletOptions({Key keyMyWallets, @required this.wallet})
: super(key: keyMyWallets); : super(key: keyMyWallets);
int walletNbr; WalletData wallet;
String walletName;
int derivation;
int _nbrLinesName = 1; int _nbrLinesName = 1;
bool _isNewNameValid = false; bool _isNewNameValid = false;
@ -37,9 +35,9 @@ class WalletOptions extends StatelessWidget {
if (_walletOptions.nameController.text == null || if (_walletOptions.nameController.text == null ||
_isNewNameValid == false) { _isNewNameValid == false) {
_walletOptions.nameController.text = walletName; _walletOptions.nameController.text = wallet.name;
} else { } else {
walletName = _walletOptions.nameController.text; wallet.name = _walletOptions.nameController.text;
} }
_walletOptions.nameController.text.length >= 15 _walletOptions.nameController.text.length >= 15
@ -48,13 +46,17 @@ class WalletOptions extends StatelessWidget {
if (_walletOptions.nameController.text.length >= 26 && isTall) if (_walletOptions.nameController.text.length >= 26 && isTall)
_nbrLinesName = 3; _nbrLinesName = 3;
_walletOptions.walletID = '0:$walletNbr'; _walletOptions.walletID = '0:${wallet.number}';
_myWalletProvider.getDefaultWallet(); _myWalletProvider.getDefaultWallet();
defaultWallet == _walletOptions.walletID _walletOptions.isDefaultWallet =
? _walletOptions.isDefaultWallet = true (defaultWallet.id() == _walletOptions.walletID);
: _walletOptions.isDefaultWallet = false;
int currentChest = _myWalletProvider.getCurrentChest();
print('roooooooooooooo');
print("$currentChest:${wallet.number}");
// print(_walletOptions.generateQRcode(_walletOptions.pubkey.text)); // print(_walletOptions.generateQRcode(_walletOptions.pubkey.text));
@ -248,7 +250,7 @@ class WalletOptions extends StatelessWidget {
// .addPostFrameCallback((_) { // .addPostFrameCallback((_) {
// _myWalletProvider.listWallets = // _myWalletProvider.listWallets =
// _myWalletProvider // _myWalletProvider
// .getAllWalletsNames( // .readAllWallets(
// _currentChest); // _currentChest);
// _myWalletProvider.rebuildWidget(); // _myWalletProvider.rebuildWidget();
// }); // });
@ -365,10 +367,9 @@ class WalletOptions extends StatelessWidget {
InkWell( InkWell(
onTap: !_walletOptions.isDefaultWallet onTap: !_walletOptions.isDefaultWallet
? () { ? () {
defaultWallet = '0:$walletNbr'; defaultWallet = wallet;
_walletOptions _walletOptions.defAsDefaultWallet(wallet.id());
.defAsDefaultWallet(_walletOptions.walletID); _myWalletProvider.readAllWallets(_currentChest);
_myWalletProvider.getAllWalletsNames(_currentChest);
} }
: null, : null,
child: SizedBox( child: SizedBox(
@ -395,11 +396,10 @@ class WalletOptions extends StatelessWidget {
SizedBox(height: 17 * ratio), SizedBox(height: 17 * ratio),
InkWell( InkWell(
onTap: () async { onTap: () async {
await _walletOptions.deleteWallet( await _walletOptions.deleteWallet(context, wallet);
context, walletNbr, walletName, derivation);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_myWalletProvider.listWallets = _myWalletProvider.listWallets =
_myWalletProvider.getAllWalletsNames(_currentChest); _myWalletProvider.readAllWallets(_currentChest);
_myWalletProvider.rebuildWidget(); _myWalletProvider.rebuildWidget();
}); });
}, },

View File

@ -24,12 +24,11 @@ class WalletsHome extends StatelessWidget {
final int _currentChest = myWalletProvider.getCurrentChest(); final int _currentChest = myWalletProvider.getCurrentChest();
myWalletProvider.listWallets = myWalletProvider.listWallets =
myWalletProvider.getAllWalletsNames(_currentChest); myWalletProvider.readAllWallets(_currentChest);
final bool isWalletsExists = myWalletProvider.checkIfWalletExist(); final bool isWalletsExists = myWalletProvider.checkIfWalletExist();
if (myWalletProvider.listWallets != '') { if (myWalletProvider.listWallets.isEmpty) {
firstWalletDerivation = firstWalletDerivation = myWalletProvider.listWallets[0].derivation;
int.parse(myWalletProvider.listWallets.split('\n')[0].split(':')[3]);
myWalletProvider.getDefaultWallet(); myWalletProvider.getDefaultWallet();
} }
@ -77,7 +76,7 @@ class WalletsHome extends StatelessWidget {
return Text(''); return Text('');
} }
if (_myWalletProvider.listWallets == '') { if (_myWalletProvider.listWallets.isEmpty) {
return Expanded( return Expanded(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
Center( Center(
@ -88,7 +87,7 @@ class WalletsHome extends StatelessWidget {
])); ]));
} }
List _listWallets = _myWalletProvider.listWallets.split('\n'); List _listWallets = _myWalletProvider.listWallets;
// final int nbrOfWallets = _listWallets.length; // final int nbrOfWallets = _listWallets.length;
// print(_listWallets); // print(_listWallets);
// print("${_listWallets[0].split(':')[0]}:${_listWallets[0].split(':')[2]}"); // print("${_listWallets[0].split(':')[0]}:${_listWallets[0].split(':')[2]}");
@ -100,15 +99,14 @@ class WalletsHome extends StatelessWidget {
crossAxisSpacing: 0, crossAxisSpacing: 0,
mainAxisSpacing: 0, mainAxisSpacing: 0,
children: <Widget>[ children: <Widget>[
for (String _repository in _listWallets) for (WalletData _repository in _listWallets)
Padding( Padding(
padding: EdgeInsets.all(16), padding: EdgeInsets.all(16),
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
Navigator.push(context, Navigator.push(context,
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return UnlockingWallet( return UnlockingWallet(wallet: _repository);
walletNbr: int.parse(_repository.split(':')[1]));
})); }));
}, },
child: ClipRRect( child: ClipRRect(
@ -135,11 +133,9 @@ class WalletsHome extends StatelessWidget {
)), )),
ListTile( ListTile(
// contentPadding: const EdgeInsets.only(left: 7.0), // contentPadding: const EdgeInsets.only(left: 7.0),
tileColor: tileColor: _repository == defaultWallet
"${_repository.split(':')[0]}:${_repository.split(':')[1]}" == ? Color(0xffD28928)
defaultWallet : Color(0xffFFD58D),
? Color(0xffD28928)
: Color(0xffFFD58D),
// leading: Text('IMAGE'), // leading: Text('IMAGE'),
// subtitle: Text(_repository.split(':')[3], // subtitle: Text(_repository.split(':')[3],
@ -148,22 +144,18 @@ class WalletsHome extends StatelessWidget {
child: Padding( child: Padding(
padding: padding:
EdgeInsets.symmetric(horizontal: 5), EdgeInsets.symmetric(horizontal: 5),
child: Text(_repository.split(':')[2], child: Text(_repository.name,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 16.0, fontSize: 16.0,
color: color: _repository == defaultWallet
"${_repository.split(':')[0]}:${_repository.split(':')[1]}" == ? Color(0xffF9F9F1)
defaultWallet : Colors.black)))),
? Color(0xffF9F9F1)
: Colors.black)))),
// dense: true, // dense: true,
onTap: () { onTap: () {
Navigator.push(context, Navigator.push(context,
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return UnlockingWallet( return UnlockingWallet(wallet: _repository);
walletNbr:
int.parse(_repository.split(':')[1]));
})); }));
}, },
) )

View File

@ -120,7 +120,7 @@ class OnboardingStepFourteen extends StatelessWidget {
print(generatedWallet.pin); print(generatedWallet.pin);
await _generateWalletProvider.storeHDWChest( await _generateWalletProvider.storeHDWChest(
generatedWallet, 'Mon portefeuille courant', context); generatedWallet, 'Mon portefeuille courant', context);
_myWalletProvider.getAllWalletsNames(_currentChest); _myWalletProvider.readAllWallets(_currentChest);
_walletOptions.reloadBuild(); _walletOptions.reloadBuild();
_myWalletProvider.rebuildWidget(); _myWalletProvider.rebuildWidget();
Navigator.push( Navigator.push(