diff --git a/lib/models/generateWallets.dart b/lib/models/generateWallets.dart index cc9dd25..05e27e1 100644 --- a/lib/models/generateWallets.dart +++ b/lib/models/generateWallets.dart @@ -46,7 +46,14 @@ class GenerateWalletsProvider with ChangeNotifier { if (isHD) { final int _derivationNbr = 3; - await configFile.writeAsString('$nbrWallet:$_name:$_derivationNbr'); + List _pubkeysTmp = await DubpRust.getBip32DewifAccountsPublicKeys( + dewif: wallet.dewif, + secretCode: wallet.pin, + accountsIndex: [_derivationNbr]); + String _pubkey = _pubkeysTmp[0]; + + await configFile + .writeAsString('$nbrWallet:$_name:$_derivationNbr:$_pubkey'); } else { await configFile.writeAsString('$nbrWallet:$_name'); } diff --git a/lib/models/myWallets.dart b/lib/models/myWallets.dart index f1d1faa..03d0072 100644 --- a/lib/models/myWallets.dart +++ b/lib/models/myWallets.dart @@ -26,6 +26,11 @@ class MyWalletsProvider with ChangeNotifier { Future importWallet() async {} String getAllWalletsNames() { + final bool _isWalletsExists = checkIfWalletExist(); + if (!_isWalletsExists) { + return ''; + } + if (listWallets != null && listWallets.isNotEmpty) { listWallets = ''; } @@ -42,8 +47,8 @@ class MyWalletsProvider with ChangeNotifier { if (listWallets != '') { listWallets += '\n'; } - listWallets += - "${element.split(':')[0]}:${element.split(':')[1]}:${element.split(':')[2]}"; + listWallets += element; + // listWallets += "${element.split(':')[0]}:${element.split(':')[1]}:${element.split(':')[2]}" }); }); @@ -59,6 +64,7 @@ class MyWalletsProvider with ChangeNotifier { if (_answer) { await walletsDirectory.delete(recursive: true); await walletsDirectory.create(); + notifyListeners(); Navigator.pop(context); } return 0; @@ -104,14 +110,18 @@ class MyWalletsProvider with ChangeNotifier { Future generateNewDerivation( context, String _name, int _walletNbr) async { + int _newDerivationNbr; final _walletConfig = File('${walletsDirectory.path}/$_walletNbr/config.txt'); - String _lastWallet = - await _walletConfig.readAsLines().then((value) => value.last); - int _lastDerivation = int.parse(_lastWallet.split(':')[2]); - // print(_lastDerivation); - int _newDerivationNbr = _lastDerivation + 3; + if (await _walletConfig.readAsString() == '') { + _newDerivationNbr = 3; + } else { + String _lastWallet = + await _walletConfig.readAsLines().then((value) => value.last); + int _lastDerivation = int.parse(_lastWallet.split(':')[2]); + _newDerivationNbr = _lastDerivation + 3; + } await _walletConfig.writeAsString('\n$_walletNbr:$_name:$_newDerivationNbr', mode: FileMode.append); diff --git a/lib/models/walletOptions.dart b/lib/models/walletOptions.dart index 65c15a0..3fd5257 100644 --- a/lib/models/walletOptions.dart +++ b/lib/models/walletOptions.dart @@ -161,7 +161,7 @@ class WalletOptionsProvider with ChangeNotifier { String newConfig = await _walletConfig.readAsLines().then((List lines) { lines.removeWhere( - (element) => element == '$_walletNbr:$_name:$_derivation'); + (element) => element.contains('$_walletNbr:$_name:$_derivation')); return lines.join('\n'); }); diff --git a/lib/screens/history.dart b/lib/screens/history.dart index 883068c..1297086 100644 --- a/lib/screens/history.dart +++ b/lib/screens/history.dart @@ -78,7 +78,10 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { errorBorder: InputBorder.none, disabledBorder: InputBorder.none, ), - style: TextStyle(fontSize: 14.0, fontWeight: FontWeight.bold)), + style: TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.bold, + fontFamily: 'Monospace')), if (_historyProvider.pubkey != '') historyQuery(context, _historyProvider), ])); @@ -273,7 +276,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { subtitle: Text( truncate(repository[2], 20, omission: "...", position: TruncatePosition.end), - style: TextStyle(fontSize: 11.0), + style: TextStyle(fontSize: 11.0, fontFamily: 'Monospace'), textAlign: TextAlign.center), trailing: Text("${repository[3]} Ğ1", style: TextStyle(fontSize: 14.0), diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart index 74f42b0..c593dd1 100644 --- a/lib/screens/myWallets/walletsHome.dart +++ b/lib/screens/myWallets/walletsHome.dart @@ -8,7 +8,6 @@ import 'package:provider/provider.dart'; // ignore: must_be_immutable class WalletsHome extends StatelessWidget { final _derivationKey = GlobalKey(); - final TextEditingController _newDerivationName = TextEditingController(); @override Widget build(BuildContext context) { @@ -88,20 +87,37 @@ class WalletsHome extends StatelessWidget { } Widget myWalletsList(BuildContext context) { - MyWalletsProvider myWalletProvider = + MyWalletsProvider _myWalletProvider = Provider.of(context); - List _listWallets = myWalletProvider.listWallets.split('\n'); + final bool isWalletsExists = _myWalletProvider.checkIfWalletExist(); + + if (!isWalletsExists) { + return Text(''); + } + + if (_myWalletProvider.listWallets == '') { + return Expanded( + child: Center( + child: Text( + 'Veuillez générer votre premier portefeuille', + style: TextStyle(fontSize: 17, fontWeight: FontWeight.w500), + ))); + } + + List _listWallets = _myWalletProvider.listWallets.split('\n'); return Expanded( child: ListView(children: [ SizedBox(height: 8), for (String _repository in _listWallets) ListTile( - contentPadding: const EdgeInsets.all(5.0), + contentPadding: const EdgeInsets.only(left: 7.0), leading: Padding( - padding: const EdgeInsets.all(15.0), + padding: const EdgeInsets.all(6.0), child: Text("0 Ğ1", style: TextStyle(fontSize: 14.0))), + // subtitle: Text(_repository.split(':')[3], + // style: TextStyle(fontSize: 12.0, fontFamily: 'Monospace')), title: Text(_repository.split(':')[1], style: TextStyle(fontSize: 16.0)), dense: true, @@ -118,8 +134,10 @@ class WalletsHome extends StatelessWidget { } Widget addNewDerivation(context, int _walletNbr) { + final TextEditingController _newDerivationName = TextEditingController(); MyWalletsProvider _myWalletProvider = Provider.of(context); + return AlertDialog( content: Stack( overflow: Overflow.visible, diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 736b6bc..5d59521 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -42,9 +42,9 @@ class SettingsScreen extends StatelessWidget { .redAccent, //Color(0xffFFD68E), // background onPrimary: Colors.black, // foreground ), - onPressed: () => { + onPressed: () async => { print('Suppression de tous les wallets'), - _myWallets.deleteAllWallet(context) + await _myWallets.deleteAllWallet(context) }, child: Text( "EFFACER TOUS MES PORTEFEUILLES, LE TEMPS DE L'ALPHA",