From cd71b0eb3d61964752b1c34a691c1179aae9677e Mon Sep 17 00:00:00 2001 From: poka <poka@p2p.legal> Date: Fri, 24 Dec 2021 15:27:38 +0100 Subject: [PATCH] Fix pubkey derivations and few things --- assets/avatars/trunc/0.png | Bin 9453 -> 0 bytes assets/avatars/trunc/1.png | Bin 11941 -> 0 bytes assets/avatars/trunc/2.png | Bin 11431 -> 0 bytes lib/globals.dart | 1 + lib/providers/cesium_plus.dart | 5 +- lib/providers/generate_wallets.dart | 8 +-- lib/providers/wallet_options.dart | 20 ++++--- lib/screens/history.dart | 7 +-- lib/screens/home.dart | 30 ++++++----- lib/screens/myWallets/generate_wallets.dart | 2 +- lib/screens/myWallets/unlocking_wallet.dart | 9 +++- lib/screens/myWallets/wallet_options.dart | 40 +++++--------- lib/screens/myWallets/wallets_home.dart | 11 +++- lib/screens/onBoarding/12.dart | 9 ++-- .../onBoarding/13_congratulations.dart | 49 ++++++++++-------- lib/screens/wallet_view.dart | 2 +- pubspec.lock | 2 +- pubspec.yaml | 4 +- 18 files changed, 109 insertions(+), 90 deletions(-) delete mode 100755 assets/avatars/trunc/0.png delete mode 100755 assets/avatars/trunc/1.png delete mode 100755 assets/avatars/trunc/2.png diff --git a/assets/avatars/trunc/0.png b/assets/avatars/trunc/0.png deleted file mode 100755 index c37955248205d6f9b1894967077db08d71913fe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9453 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 diff --git a/assets/avatars/trunc/1.png b/assets/avatars/trunc/1.png deleted file mode 100755 index 49023c9fb7e7ae97ab4dd5b1afe3da6a2d385202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11941 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 Z#xJ$u-YmLbzm@|4G7^g7HKGQA{{z-beeeJP diff --git a/assets/avatars/trunc/2.png b/assets/avatars/trunc/2.png deleted file mode 100755 index f9546ef96f3f88b13ad490a1cb54139070081898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11431 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 diff --git a/lib/globals.dart b/lib/globals.dart index 0f542818..abbaf476 100644 --- a/lib/globals.dart +++ b/lib/globals.dart @@ -14,6 +14,7 @@ late String appVersion; late SharedPreferences prefs; late String endPointGVA; const int pinLength = 5; +const String appLang = 'french'; late Box<WalletData> walletBox; late Box<ChestData> chestBox; diff --git a/lib/providers/cesium_plus.dart b/lib/providers/cesium_plus.dart index f52e8119..72c35cc2 100644 --- a/lib/providers/cesium_plus.dart +++ b/lib/providers/cesium_plus.dart @@ -60,11 +60,11 @@ class CesiumPlusProvider with ChangeNotifier { return [podRequest, queryGetAvatar, headers]; } - Future<String?> getName(String? _pubkey) async { + Future<String> getName(String? _pubkey) async { String? _name; if (g1WalletsBox.get(_pubkey)!.csName != null) { - return g1WalletsBox.get(_pubkey)!.csName; + return g1WalletsBox.get(_pubkey)!.csName!; } List queryOptions = await _buildQuery(_pubkey); @@ -97,6 +97,7 @@ class CesiumPlusProvider with ChangeNotifier { } _name = response.data['hits']['hits'][0]['_source']['title']; + _name ??= ''; g1WalletsBox.get(_pubkey)!.csName = _name; return _name; diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart index 91cdf8b5..43a389a5 100644 --- a/lib/providers/generate_wallets.dart +++ b/lib/providers/generate_wallets.dart @@ -157,7 +157,7 @@ class GenerateWalletsProvider with ChangeNotifier { try { actualWallet = await Dewif().generateDewif( generatedMnemonic, randomSecretCode(pinLength), - lang: 'french'); + lang: appLang); } catch (e) { log.e(e); } @@ -294,7 +294,7 @@ class GenerateWalletsProvider with ChangeNotifier { } List<String> generateWordList() { - generatedMnemonic = generateMnemonic(lang: 'french'); + generatedMnemonic = generateMnemonic(lang: appLang); List<String> _wordsList = []; String word; int _nbr = 1; @@ -333,8 +333,8 @@ class GenerateWalletsProvider with ChangeNotifier { cellController0.text = cellController1.text = cellController2.text = cellController3.text = cellController4.text = cellController5.text = cellController6.text = cellController7.text = cellController8.text = - cellController9.text = - cellController10.text = cellController11.text = ''; + cellController9.text = cellController10.text = + cellController11.text = ''; isFirstTimeSentenceComplete = true; notifyListeners(); } diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index c18f0623..1056d7cf 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -39,7 +39,7 @@ class WalletOptionsProvider with ChangeNotifier { } if (derivation != -1) { try { - final _wallet = HdWallet.fromDewif(_dewif!, _pin); + final _wallet = HdWallet.fromDewif(_dewif!, _pin, lang: appLang); pubkey.text = _wallet.getPubkey(derivation!); log.d(pubkey.text); notifyListeners(); @@ -66,15 +66,23 @@ class WalletOptionsProvider with ChangeNotifier { } String? readLocalWallet( - context, WalletData _wallet, String _pin, int _pinLenght) { + context, WalletData _wallet, String _pin, int _pinLenght, + {String? mnemonic}) { isWalletUnlock = false; + final String _localPubkey; + try { String? _localDewif = chestBox.get(_wallet.chest)!.dewif; - String _localPubkey; - if ((_localPubkey = _getPubkeyFromDewif( - _localDewif, _pin, _pinLenght, _wallet.derivation)) != - 'false') { + if (mnemonic == null) { + _localPubkey = _getPubkeyFromDewif( + _localDewif, _pin.toUpperCase(), _pinLenght, _wallet.derivation); + } else { + final _hdwallet = HdWallet.fromMnemonic(mnemonic); + _localPubkey = _hdwallet.getPubkey(_wallet.derivation!); + } + + if (_localPubkey != 'false') { pubkey.text = _localPubkey; isWalletUnlock = true; log.d(pubkey.text); diff --git a/lib/screens/history.dart b/lib/screens/history.dart index 315e733d..9f955512 100644 --- a/lib/screens/history.dart +++ b/lib/screens/history.dart @@ -295,11 +295,11 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { ]); } if (_avatar.hasData) { - g1WalletsBox.get(repository[2])!.avatar = + g1WalletsBox.get(repository[2])?.avatar = _avatar.data; return ClipOval(child: _avatar.data); } else { - g1WalletsBox.get(repository[2])!.avatar = + g1WalletsBox.get(repository[2])?.avatar = _cesiumPlusProvider .defaultAvatar(repository[2]); return _cesiumPlusProvider @@ -308,7 +308,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { }) : ClipOval( child: Image( - image: g1WalletsBox.get(repository[2])!.avatar!.image, + image: + g1WalletsBox.get(repository[2])!.avatar!.image, height: _avatarSize, ), ), diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 7f25c5ae..3e84f6b3 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -411,19 +411,21 @@ Widget welcomeHome(context) { ]), ), Expanded( - flex: 1, - child: Container( - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - Colors.transparent, - Colors.black.withOpacity(0.9), - ], - ), + flex: 1, + child: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.transparent, + Colors.black.withOpacity(0.9), + ], ), - child: Center( + ), + child: Center( + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 480), child: Column(children: <Widget>[ const Spacer(), Row(children: <Widget>[ @@ -505,7 +507,9 @@ Widget welcomeHome(context) { SizedBox(height: isTall ? 100 : 50) ]), ), - )) + ), + ), + ) ]), ); } diff --git a/lib/screens/myWallets/generate_wallets.dart b/lib/screens/myWallets/generate_wallets.dart index 17204d6c..dde9a071 100644 --- a/lib/screens/myWallets/generate_wallets.dart +++ b/lib/screens/myWallets/generate_wallets.dart @@ -120,7 +120,7 @@ class GenerateFastChestScreen extends StatelessWidget { _generateWalletProvider .generatedMnemonic!, _generateWalletProvider.pin.text, - lang: 'french'); + lang: appLang); await Navigator.push( context, MaterialPageRoute(builder: (context) { diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart index ba9b3554..a5fb762c 100644 --- a/lib/screens/myWallets/unlocking_wallet.dart +++ b/lib/screens/myWallets/unlocking_wallet.dart @@ -8,6 +8,7 @@ import 'package:gecko/providers/wallet_options.dart'; import 'package:flutter/material.dart'; import 'package:gecko/screens/myWallets/cesium_wallet_options.dart'; import 'package:gecko/screens/myWallets/choose_chest.dart'; +import 'package:gecko/screens/myWallets/wallets_home.dart'; import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:provider/provider.dart'; import 'package:gecko/globals.dart'; @@ -223,8 +224,12 @@ class UnlockingWallet extends StatelessWidget { cesiumWallet: currentChest); }), ) - : Navigator.pushNamed( - formKey.currentContext!, '/mywallets'); + : Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return const WalletsHome(); + }), + ); } else if (action == "pay") { resultPay = await _historyProvider.pay(context, _pin.toUpperCase()); diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index c7da2fb4..e900297a 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -27,8 +27,6 @@ class WalletOptions extends StatelessWidget { MyWalletsProvider _myWalletProvider = Provider.of<MyWalletsProvider>(context); - - _walletOptions.pubkey.text = log.d(_walletOptions.pubkey.text); final int _currentChest = _myWalletProvider.getCurrentChest()!; @@ -39,10 +37,7 @@ class WalletOptions extends StatelessWidget { onWillPop: () { _walletOptions.isEditing = false; _walletOptions.isBalanceBlur = true; - Navigator.popUntil( - context, - ModalRoute.withName('/mywallets'), - ); + Navigator.pop(context); return Future<bool>.value(true); }, child: Scaffold( @@ -55,10 +50,7 @@ class WalletOptions extends StatelessWidget { onPressed: () { _walletOptions.isEditing = false; _walletOptions.isBalanceBlur = true; - Navigator.popUntil( - context, - ModalRoute.withName('/mywallets'), - ); + Navigator.pop(context); }), title: SizedBox( height: 22, @@ -88,6 +80,7 @@ class WalletOptions extends StatelessWidget { ], )), child: Row( + crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ const Spacer(), @@ -138,8 +131,7 @@ class WalletOptions extends StatelessWidget { children: <Widget>[ InkWell( onTap: () async { - File newAvatar = - await (walletProvider.changeAvatar()); + File newAvatar = await (walletProvider.changeAvatar()); wallet.imageFile = newAvatar; walletProvider.reloadBuild(); }, @@ -155,10 +147,10 @@ class WalletOptions extends StatelessWidget { ), Positioned( right: 0, + top: 0, child: InkWell( onTap: () async { - File newAvatar = - await (walletProvider.changeAvatar()); + File newAvatar = await (walletProvider.changeAvatar()); wallet.imageFile = newAvatar; walletProvider.reloadBuild(); }, @@ -174,13 +166,6 @@ class WalletOptions extends StatelessWidget { Widget walletName(WalletOptionsProvider walletProvider, WalletOptionsProvider _walletOptions) { - int _nbrLinesName = 1; - _walletOptions.nameController.text.length >= 15 - ? _nbrLinesName = 2 - : _nbrLinesName = 1; - if (_walletOptions.nameController.text.length >= 26 && isTall) { - _nbrLinesName = 3; - } bool _isNewNameValid = false; if (_isNewNameValid == false) { _walletOptions.nameController.text = wallet.name!; @@ -197,7 +182,8 @@ class WalletOptions extends StatelessWidget { focusNode: walletProvider.walletNameFocus, enabled: walletProvider.isEditing, controller: walletProvider.nameController, - maxLines: _nbrLinesName, + minLines: 1, + maxLines: 3, textAlign: TextAlign.center, decoration: const InputDecoration( border: InputBorder.none, @@ -207,10 +193,10 @@ class WalletOptions extends StatelessWidget { contentPadding: EdgeInsets.all(15.0), ), style: TextStyle( - fontSize: isTall ? 27 : 23, - color: Colors.black, - fontWeight: FontWeight.w400, - fontFamily: 'Monospace'), + fontSize: isTall ? 27 : 23, + color: Colors.black, + fontWeight: FontWeight.w400, + ), ), Positioned( right: 0, @@ -253,7 +239,7 @@ class WalletOptions extends StatelessWidget { sigmaX: walletProvider.isBalanceBlur ? 6 : 0, sigmaY: walletProvider.isBalanceBlur ? 5 : 0), child: Text( - _balance.data.toString() + ' DU', + _balance.data.toString() + ' Ğ1', style: TextStyle( fontSize: isTall ? 20 : 18, ), diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart index 6fbcad9c..ede8c94e 100644 --- a/lib/screens/myWallets/wallets_home.dart +++ b/lib/screens/myWallets/wallets_home.dart @@ -5,6 +5,7 @@ import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/queries.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:flutter/material.dart'; +import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/myWallets/chest_options.dart'; import 'package:gecko/screens/myWallets/choose_chest.dart'; @@ -131,7 +132,8 @@ class WalletsHome extends StatelessWidget { Widget myWalletsTiles(BuildContext context) { MyWalletsProvider _myWalletProvider = Provider.of<MyWalletsProvider>(context); - + WalletOptionsProvider _walletOptions = + Provider.of<WalletOptionsProvider>(context, listen: false); final bool isWalletsExists = _myWalletProvider.checkIfWalletExist(); if (!isWalletsExists) { @@ -175,6 +177,8 @@ class WalletsHome extends StatelessWidget { padding: const EdgeInsets.all(16), child: GestureDetector( onTap: () { + _walletOptions.readLocalWallet(context, _repository, + _myWalletProvider.pinCode, pinLength); Navigator.push( context, SmoothTransition( @@ -260,6 +264,11 @@ class WalletsHome extends StatelessWidget { ), // dense: true, onTap: () { + _walletOptions.readLocalWallet( + context, + _repository, + _myWalletProvider.pinCode, + pinLength); Navigator.push( context, SmoothTransition( diff --git a/lib/screens/onBoarding/12.dart b/lib/screens/onBoarding/12.dart index 0bedd137..38327026 100644 --- a/lib/screens/onBoarding/12.dart +++ b/lib/screens/onBoarding/12.dart @@ -120,16 +120,15 @@ class OnboardingStepFourteen extends StatelessWidget { NewWallet generatedWallet = await Dewif().generateDewif( _generateWalletProvider.generatedMnemonic!, _generateWalletProvider.pin.text, - lang: 'french'); + lang: appLang); await _generateWalletProvider.storeHDWChest( generatedWallet, 'Mon portefeuille courant', context); _myWalletProvider.readAllWallets(_currentChest); // scheduleMicrotask(() { - _walletOptions.reloadBuild(); - // _myWalletProvider.rebuildWidget(); + // _walletOptions.reloadBuild(); + _myWalletProvider.rebuildWidget(); // }); - _generateWalletProvider.generatedMnemonic = - _generateWalletProvider.pin.text = ''; + _generateWalletProvider.generatedMnemonic = ''; Navigator.push( context, FaderTransition( diff --git a/lib/screens/onBoarding/13_congratulations.dart b/lib/screens/onBoarding/13_congratulations.dart index 4428bdd6..f7189c7d 100644 --- a/lib/screens/onBoarding/13_congratulations.dart +++ b/lib/screens/onBoarding/13_congratulations.dart @@ -4,6 +4,7 @@ import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; +import 'package:gecko/screens/myWallets/wallets_home.dart'; // ignore: must_be_immutable class OnboardingStepFiveteen extends StatelessWidget { @@ -33,28 +34,32 @@ class OnboardingStepFiveteen extends StatelessWidget { height: isTall ? 400 : 300, ), Expanded( - child: Align( - alignment: Alignment.bottomCenter, - child: SizedBox( - width: 400, - height: 62, - child: ElevatedButton( - key: const Key('goWalletHome'), - style: ElevatedButton.styleFrom( - elevation: 5, - primary: orangeC, - onPrimary: Colors.white, // foreground - ), - onPressed: () { - Navigator.pushNamedAndRemoveUntil( - context, - '/mywallets', - ModalRoute.withName('/'), - ); - }, - child: const Text("Accéder à mes portefeuilles", - style: TextStyle(fontSize: 20))), - ))), + child: Align( + alignment: Alignment.bottomCenter, + child: SizedBox( + width: 400, + height: 62, + child: ElevatedButton( + key: const Key('goWalletHome'), + style: ElevatedButton.styleFrom( + elevation: 5, + primary: orangeC, + onPrimary: Colors.white, // foreground + ), + onPressed: () { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) { + return const WalletsHome(); + }), + ModalRoute.withName('/'), + ); + }, + child: const Text("Accéder à mes portefeuilles", + style: TextStyle(fontSize: 20))), + ), + ), + ), const SizedBox(height: 80), ]), )); diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index f9db775d..c6d25ec3 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -248,7 +248,7 @@ class WalletViewScreen extends StatelessWidget { // onChanged: (v) => _searchProvider.rebuildWidget(), decoration: InputDecoration( hintText: '0.00', - suffix: const Text('DU/Ğ1'), + suffix: const Text('Ğ1'), filled: true, fillColor: Colors.transparent, // border: OutlineInputBorder( diff --git a/pubspec.lock b/pubspec.lock index b5a2db7c..7ca48ecf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -301,7 +301,7 @@ packages: name: durt url: "https://pub.dartlang.org" source: hosted - version: "0.1.5" + version: "0.1.5+2" fake_async: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c6b55fbb..45185795 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: Pay with G1. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 0.0.4+5 +version: 0.0.4+6 environment: sdk: '>=2.12.0 <3.0.0' @@ -62,7 +62,7 @@ dependencies: pull_to_refresh: ^2.0.0 dio: ^4.0.4 desktop_window: ^0.4.0 - durt: ^0.1.5 + durt: ^0.1.5+2 package_info_plus: ^1.3.0 flutter_icons: -- GitLab