Fix payments from HDWallets

This commit is contained in:
poka 2021-12-27 20:15:12 +01:00
parent cd71b0eb3d
commit f05c335073
6 changed files with 108 additions and 89 deletions

View File

@ -79,7 +79,8 @@ class WalletsProfilesProvider with ChangeNotifier {
dewif: dewif,
password: pinCode,
comment: payComment.text,
derivation: derivation);
derivation: derivation,
lang: appLang);
return result;
}

View File

@ -148,6 +148,9 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
await Future.delayed(
const Duration(milliseconds: 50));
_myWalletProvider.rebuildWidget();
_generateWalletProvider.pin.text = '';
_generateWalletProvider
.mnemonicController.text = '';
Navigator.pushAndRemoveUntil(context,
MaterialPageRoute(builder: (context) {
return UnlockingWallet(

View File

@ -34,9 +34,22 @@ class GenerateFastChestScreen extends StatelessWidget {
_generateWalletProvider.pin.text = randomSecretCode(pinLength);
}
return Scaffold(
return WillPopScope(
onWillPop: () {
_generateWalletProvider.pin.text = '';
_generateWalletProvider.mnemonicController.text = '';
return Future<bool>.value(true);
},
child: Scaffold(
appBar: AppBar(
toolbarHeight: 60 * ratio,
leading: IconButton(
icon: const Icon(Icons.arrow_back, color: Colors.black),
onPressed: () {
_generateWalletProvider.pin.text = '';
_generateWalletProvider.mnemonicController.text = '';
Navigator.of(context).pop();
}),
title: const SizedBox(
height: 22,
child: Text('Générer un trousseau'),
@ -61,95 +74,96 @@ class GenerateFastChestScreen extends StatelessWidget {
floattingYellow, //smoothYellow, //Color.fromARGB(500, 204, 255, 255),
))),
body: Builder(
builder: (ctx) => SafeArea(
child: Column(children: <Widget>[
const SizedBox(height: 20),
toolTips(_toolTipSentence, 'Phrase de restauration:',
"Notez et gardez cette phrase précieusement sur un papier, elle vous servira à restaurer votre portefeuille sur un autre appareil"),
TextField(
enabled: false,
controller: _generateWalletProvider.mnemonicController,
maxLines: 3,
textAlign: TextAlign.center,
decoration: const InputDecoration(
contentPadding: EdgeInsets.all(15.0),
),
style: const TextStyle(
fontSize: 22.0,
color: Colors.black,
fontWeight: FontWeight.w400)),
const SizedBox(height: 8),
toolTips(_toolTipSecret, 'Code secret:',
"Retenez bien votre code secret, il vous sera demandé à chaque paiement, ainsi que pour configurer votre portefeuille"),
Stack(
alignment: Alignment.centerRight,
children: <Widget>[
TextField(
key: const Key('generatedPin'),
enabled: false,
controller: _generateWalletProvider.pin,
maxLines: 1,
textAlign: TextAlign.center,
decoration: const InputDecoration(),
style: const TextStyle(
fontSize: 30.0,
color: Colors.black,
fontWeight: FontWeight.bold)),
IconButton(
icon: const Icon(Icons.replay),
color: orangeC,
onPressed: () {
_generateWalletProvider.changePinCode(reload: true);
},
),
],
),
const SizedBox(height: 20),
ElevatedButton(
key: const Key('storeKeychain'),
style: ElevatedButton.styleFrom(
primary: yellowC, // background
onPrimary: Colors.black, // foreground
),
onPressed: _generateWalletProvider.walletIsGenerated
? () async {
_generateWalletProvider.nbrWord =
_generateWalletProvider.getRandomInt();
_generateWalletProvider.actualWallet =
await Dewif().generateDewif(
_generateWalletProvider
.generatedMnemonic!,
_generateWalletProvider.pin.text,
lang: appLang);
await Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return ConfirmStoreWallet(
generatedMnemonic:
_generateWalletProvider
.generatedMnemonic,
generatedWallet: _generateWalletProvider
.actualWallet);
}),
);
}
: null,
child: const Text('Enregistrer ce trousseau',
style: TextStyle(fontSize: 20))),
const SizedBox(height: 20),
GestureDetector(
onTap: () {
Navigator.push(
builder: (ctx) => SafeArea(
child: Column(children: <Widget>[
const SizedBox(height: 20),
toolTips(_toolTipSentence, 'Phrase de restauration:',
"Notez et gardez cette phrase précieusement sur un papier, elle vous servira à restaurer votre portefeuille sur un autre appareil"),
TextField(
enabled: false,
controller: _generateWalletProvider.mnemonicController,
maxLines: 3,
textAlign: TextAlign.center,
decoration: const InputDecoration(
contentPadding: EdgeInsets.all(15.0),
),
style: const TextStyle(
fontSize: 22.0,
color: Colors.black,
fontWeight: FontWeight.w400)),
const SizedBox(height: 8),
toolTips(_toolTipSecret, 'Code secret:',
"Retenez bien votre code secret, il vous sera demandé à chaque paiement, ainsi que pour configurer votre portefeuille"),
Stack(
alignment: Alignment.centerRight,
children: <Widget>[
TextField(
key: const Key('generatedPin'),
enabled: false,
controller: _generateWalletProvider.pin,
maxLines: 1,
textAlign: TextAlign.center,
decoration: const InputDecoration(),
style: const TextStyle(
fontSize: 30.0,
color: Colors.black,
fontWeight: FontWeight.bold)),
IconButton(
icon: const Icon(Icons.replay),
color: orangeC,
onPressed: () {
_generateWalletProvider.changePinCode(reload: true);
},
),
],
),
const SizedBox(height: 20),
ElevatedButton(
key: const Key('storeKeychain'),
style: ElevatedButton.styleFrom(
primary: yellowC, // background
onPrimary: Colors.black, // foreground
),
onPressed: _generateWalletProvider.walletIsGenerated
? () async {
_generateWalletProvider.nbrWord =
_generateWalletProvider.getRandomInt();
_generateWalletProvider.actualWallet = await Dewif()
.generateDewif(
_generateWalletProvider.generatedMnemonic!,
_generateWalletProvider.pin.text,
lang: appLang);
await Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return PrintWallet(
_generateWalletProvider.generatedMnemonic);
return ConfirmStoreWallet(
generatedMnemonic:
_generateWalletProvider.generatedMnemonic,
generatedWallet:
_generateWalletProvider.actualWallet);
}),
);
},
child: const Icon(Icons.print))
]),
)));
}
: null,
child: const Text('Enregistrer ce trousseau',
style: TextStyle(fontSize: 20))),
const SizedBox(height: 20),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return PrintWallet(
_generateWalletProvider.generatedMnemonic);
}),
);
},
child: const Icon(Icons.print))
]),
),
),
),
);
}
Widget toolTips(_key, _text, _message) {

View File

@ -192,6 +192,7 @@ class ImportWalletScreen extends StatelessWidget {
}),
ModalRoute.withName('/'),
);
_generateWalletProvider.resetCesiumImportView();
}
: null,
child: const Text(

View File

@ -301,7 +301,7 @@ packages:
name: durt
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.5+2"
version: "0.1.5+7"
fake_async:
dependency: transitive
description:

View File

@ -62,7 +62,7 @@ dependencies:
pull_to_refresh: ^2.0.0
dio: ^4.0.4
desktop_window: ^0.4.0
durt: ^0.1.5+2
durt: ^0.1.5+7
package_info_plus: ^1.3.0
flutter_icons: