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, dewif: dewif,
password: pinCode, password: pinCode,
comment: payComment.text, comment: payComment.text,
derivation: derivation); derivation: derivation,
lang: appLang);
return result; return result;
} }

View File

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

View File

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

View File

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

View File

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

View File

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