Fix wallet generation moment; Fix reload myWallet view on creation

This commit is contained in:
poka 2021-03-06 20:06:41 +01:00
parent 83b9f92ca8
commit 47f27d2342
3 changed files with 49 additions and 22 deletions

View File

@ -89,6 +89,21 @@ class WalletOptionsProvider with ChangeNotifier {
} }
} }
Future checkPinOK(String _createdDewif, String _pin, int _pinLenght) async {
isWalletUnlock = false;
try {
if (await _getPubkeyFromDewif(_createdDewif, _pin, _pinLenght, 3) !=
'false') {
return true;
} else {
throw false;
}
} catch (e) {
print('ERROR READING FILE: $e');
return false;
}
}
int getPinLenght(_walletNbr) { int getPinLenght(_walletNbr) {
File _walletFile = File _walletFile =
File('${walletsDirectory.path}/$_walletNbr/wallet.dewif'); File('${walletsDirectory.path}/$_walletNbr/wallet.dewif');

View File

@ -21,7 +21,6 @@ class OnboardingStepThirteen extends StatelessWidget {
// Provider.of<MyWalletsProvider>(context); // Provider.of<MyWalletsProvider>(context);
CommonElements common = CommonElements(); CommonElements common = CommonElements();
_generateWalletProvider.pin.text = ''; _generateWalletProvider.pin.text = '';
// _generateWalletProvider.changePinCode(reload: false);
return Scaffold( return Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
@ -85,9 +84,9 @@ class OnboardingStepThirteen extends StatelessWidget {
primary: Color(0xffFFD58D), primary: Color(0xffFFD58D),
onPrimary: Colors.black, // foreground onPrimary: Colors.black, // foreground
), ),
onPressed: () { onPressed: () async {
_generateWalletProvider.changePinCode( generatedWallet = await _generateWalletProvider
reload: false); .changePinCode(reload: false);
}, },
child: Text("Choisir un autre code secret", child: Text("Choisir un autre code secret",
style: TextStyle(fontSize: 20))), style: TextStyle(fontSize: 20))),
@ -103,17 +102,13 @@ class OnboardingStepThirteen extends StatelessWidget {
onPrimary: Colors.white, // foreground onPrimary: Colors.white, // foreground
), ),
onPressed: () async { onPressed: () async {
// TODO: Store wallet here !
await _generateWalletProvider.storeWallet(
generatedWallet, 'Mon portefeuille courant', context,
isHD: true);
// myWalletProvider.listWallets =
// myWalletProvider.getAllWalletsNames();
_generateWalletProvider.isAskedWordValid = false; _generateWalletProvider.isAskedWordValid = false;
_generateWalletProvider.askedWordColor = Colors.black; _generateWalletProvider.askedWordColor = Colors.black;
Navigator.push( Navigator.push(
context, context,
SmoothTransition(page: OnboardingStepFourteen()), SmoothTransition(
page: OnboardingStepFourteen(
generatedWallet: generatedWallet)),
); );
}, },
child: Text("J'ai noté mon code secret", child: Text("J'ai noté mon code secret",

View File

@ -1,7 +1,9 @@
import 'dart:async'; import 'dart:async';
import 'dart:ui'; import 'dart:ui';
import 'package:dubp/dubp.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/models/myWallets.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';
@ -10,6 +12,12 @@ import 'package:provider/provider.dart';
// ignore: must_be_immutable // ignore: must_be_immutable
class OnboardingStepFourteen extends StatelessWidget { class OnboardingStepFourteen extends StatelessWidget {
OnboardingStepFourteen({
Key validationKey,
@required this.generatedWallet,
}) : super(key: validationKey);
NewWallet generatedWallet;
final int progress = 92; final int progress = 92;
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
var pinColor = Color(0xFFA4B600); var pinColor = Color(0xFFA4B600);
@ -46,6 +54,8 @@ class OnboardingStepFourteen extends StatelessWidget {
TextEditingController _enterPin = TextEditingController(); TextEditingController _enterPin = TextEditingController();
MyWalletsProvider _myWalletProvider = MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context); Provider.of<MyWalletsProvider>(context);
GenerateWalletsProvider _generateWalletProvider =
Provider.of<GenerateWalletsProvider>(context);
return Form( return Form(
key: formKey, key: formKey,
@ -95,22 +105,29 @@ class OnboardingStepFourteen extends StatelessWidget {
], ],
onCompleted: (_pin) async { onCompleted: (_pin) async {
print("Completed"); print("Completed");
final resultWallet = await _walletOptions.readLocalWallet( // final resultWallet = await _walletOptions.readLocalWallet(
_walletNbr, _pin.toUpperCase(), _pinLenght, _derivation); // _walletNbr, _pin.toUpperCase(), _pinLenght, _derivation);
if (resultWallet == 'bad') { final bool resultWallet = await _walletOptions.checkPinOK(
generatedWallet.dewif, _pin.toUpperCase(), _pinLenght);
if (resultWallet) {
pinColor = Colors.green[500];
print(generatedWallet.pin);
await _generateWalletProvider.storeWallet(
generatedWallet, 'Mon portefeuille courant', context,
isHD: true);
_myWalletProvider.getAllWalletsNames();
_walletOptions.reloadBuild();
_myWalletProvider.rebuildWidget();
Navigator.popUntil(
context,
ModalRoute.withName('/'),
);
} else {
errorController.add(ErrorAnimationType errorController.add(ErrorAnimationType
.shake); // Triggering error shake animation .shake); // Triggering error shake animation
hasError = true; hasError = true;
pinColor = Colors.red[600]; pinColor = Colors.red[600];
_walletOptions.reloadBuild(); _walletOptions.reloadBuild();
} else {
pinColor = Colors.green[500];
_myWalletProvider.getAllWalletsNames();
_walletOptions.reloadBuild();
Navigator.popUntil(
context,
ModalRoute.withName('/'),
);
} }
}, },
onChanged: (value) { onChanged: (value) {