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) {
File _walletFile =
File('${walletsDirectory.path}/$_walletNbr/wallet.dewif');

View File

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

View File

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