From 48d997c835d95d1fd9a98799ade4307c4cdad861 Mon Sep 17 00:00:00 2001 From: poka Date: Thu, 19 May 2022 09:07:26 +0200 Subject: [PATCH] Globalized done --- lib/providers/cesium_plus.dart | 2 +- lib/providers/generate_wallets.dart | 28 ++++++++ lib/providers/substrate_sdk.dart | 7 +- lib/providers/wallet_options.dart | 4 +- lib/providers/wallets_profiles.dart | 2 +- lib/screens/myWallets/restore_chest.dart | 27 ++++++- lib/screens/myWallets/unlocking_wallet.dart | 9 ++- lib/screens/myWallets/wallet_options.dart | 79 +++++++++++---------- lib/screens/onBoarding/12.dart | 4 +- lib/screens/search_result.dart | 8 ++- pubspec.lock | 8 ++- pubspec.yaml | 5 +- 12 files changed, 124 insertions(+), 59 deletions(-) diff --git a/lib/providers/cesium_plus.dart b/lib/providers/cesium_plus.dart index 72c35cc..a50277b 100644 --- a/lib/providers/cesium_plus.dart +++ b/lib/providers/cesium_plus.dart @@ -63,7 +63,7 @@ class CesiumPlusProvider with ChangeNotifier { Future getName(String? _pubkey) async { String? _name; - if (g1WalletsBox.get(_pubkey)!.csName != null) { + if (g1WalletsBox.get(_pubkey)?.csName != null) { return g1WalletsBox.get(_pubkey)!.csName!; } diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart index 0ab36e1..cc1f670 100644 --- a/lib/providers/generate_wallets.dart +++ b/lib/providers/generate_wallets.dart @@ -390,6 +390,34 @@ class GenerateWalletsProvider with ChangeNotifier { } } + Future pasteMnemonic(BuildContext context) async { + final sentence = await Clipboard.getData('text/plain'); + int nbr = 0; + + List cells = [ + cellController0, + cellController1, + cellController2, + cellController3, + cellController4, + cellController5, + cellController6, + cellController7, + cellController8, + cellController9, + cellController10, + cellController11 + ]; + for (var word in sentence!.text!.split(' ')) { + bool isValid = isBipWord(word); + + if (isValid) { + cells[nbr].text = word; + } + nbr++; + } + } + void reloadBuild() { notifyListeners(); } diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index 9364700..e880910 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -151,9 +151,6 @@ class SubstrateSdk with ChangeNotifier { // sdk.api.setting.unsubscribeBestNumber(); account.balance = await getBalance(element.address!); result.add(account); - print('waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); - print(element.indexInfo); - print(element.memo); } return result; @@ -207,7 +204,7 @@ class SubstrateSdk with ChangeNotifier { return gen.mnemonic!; } - pay(BuildContext context, String address, double amount, + Future pay(BuildContext context, String address, double amount, String password) async { final sender = TxSenderData( keyring.current.address, @@ -227,8 +224,10 @@ class SubstrateSdk with ChangeNotifier { }, ); print(hash.toString()); + return true; } catch (err) { print(err.toString()); + return false; } } diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index 5a7db82..1b43113 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -17,7 +17,7 @@ class WalletOptionsProvider with ChangeNotifier { bool ischangedPin = false; TextEditingController newPin = TextEditingController(); bool isEditing = false; - bool isBalanceBlur = true; + bool isBalanceBlur = false; FocusNode walletNameFocus = FocusNode(); TextEditingController nameController = TextEditingController(); late bool isDefaultWallet; @@ -174,7 +174,7 @@ class WalletOptionsProvider with ChangeNotifier { String? getAddress(int chest, int derivation) { String? _address; walletBox.toMap().forEach((key, value) { - if (value.chest == chest) { + if (value.chest == chest && value.derivation == derivation) { _address = value.address!; return; } diff --git a/lib/providers/wallets_profiles.dart b/lib/providers/wallets_profiles.dart index 3e09355..5284843 100644 --- a/lib/providers/wallets_profiles.dart +++ b/lib/providers/wallets_profiles.dart @@ -97,7 +97,7 @@ class WalletsProfilesProvider with ChangeNotifier { if (regExp.hasMatch(pubkey) == true && pubkey.length > 42 && - pubkey.length < 45) { + pubkey.length < 50) { log.d("C'est une pubkey !"); this.pubkey = pubkey; diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart index 79c798e..61a6e14 100644 --- a/lib/screens/myWallets/restore_chest.dart +++ b/lib/screens/myWallets/restore_chest.dart @@ -92,7 +92,8 @@ class RestoreChest extends StatelessWidget { await Navigator.push( context, FaderTransition( - page: const OnboardingStepThirteen(), isFast: true), + page: const OnboardingStepThirteen(), + isFast: true), ); } else { await badMnemonicPopup(context); @@ -107,6 +108,30 @@ class RestoreChest extends StatelessWidget { ), // SizedBox(height: isTall ? 80 : 80), )) + else + Column(children: [ + const SizedBox(height: 20), + SizedBox( + width: 150, + height: 50, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + elevation: 4, + primary: yellowC, // background + onPrimary: Colors.black, // foreground + ), + onPressed: () { + generateWalletProvider.pasteMnemonic(context); + }, + child: const Text( + 'Coller depuis le\npresse-papier', + textAlign: TextAlign.center, + style: + TextStyle(fontSize: 16, fontWeight: FontWeight.w400), + ), + ), + ) + ]) ]), ), ), diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart index 13307ae..d20f222 100644 --- a/lib/screens/myWallets/unlocking_wallet.dart +++ b/lib/screens/myWallets/unlocking_wallet.dart @@ -4,7 +4,6 @@ import 'dart:async'; import 'package:flutter/services.dart'; import 'package:gecko/models/chest_data.dart'; import 'package:gecko/providers/substrate_sdk.dart'; -import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/wallet_options.dart'; @@ -144,8 +143,6 @@ class UnlockingWallet extends StatelessWidget { Provider.of(context); MyWalletsProvider _myWalletProvider = Provider.of(context); - WalletsProfilesProvider _historyProvider = - Provider.of(context); SubstrateSdk _sdk = Provider.of(context, listen: false); @@ -232,8 +229,10 @@ class UnlockingWallet extends StatelessWidget { ).then((value) => _myWalletProvider.cesiumSeed.clear()); } else if (action == "pay") { if (currentChest.isCesium!) { - final resultPay = await _historyProvider.pay(context); - await paymentsResult(context, resultPay); + //TODO: implement substrate pay + // final resultPay = await _historyProvider.pay(context); + // final resultPay = await _sdk.pay(context); + // await paymentsResult(context, resultPay); } else { Navigator.push( context, diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 66422e4..4b1a0ca 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -37,7 +37,7 @@ class WalletOptions extends StatelessWidget { return WillPopScope( onWillPop: () { _walletOptions.isEditing = false; - _walletOptions.isBalanceBlur = true; + _walletOptions.isBalanceBlur = false; Navigator.pop(context); return Future.value(true); }, @@ -50,7 +50,7 @@ class WalletOptions extends StatelessWidget { icon: const Icon(Icons.arrow_back, color: Colors.black), onPressed: () { _walletOptions.isEditing = false; - _walletOptions.isBalanceBlur = true; + _walletOptions.isBalanceBlur = false; Navigator.pop(context); }), title: SizedBox( @@ -90,7 +90,7 @@ class WalletOptions extends StatelessWidget { Column(children: [ walletName(walletProvider, _walletOptions), SizedBox(height: isTall ? 5 : 0), - balance(walletProvider), + balance(context, walletProvider), ]), const Spacer(flex: 3), ]), @@ -221,44 +221,49 @@ class WalletOptions extends StatelessWidget { ); } - Widget balance(WalletOptionsProvider walletProvider) { - SubstrateSdk _sdk = SubstrateSdk(); + Widget balance(BuildContext context, WalletOptionsProvider walletProvider) { + String balanceCache = ''; + return Column(children: [ - FutureBuilder( - future: _sdk.getBalance(walletProvider.address.text), - builder: (BuildContext context, AsyncSnapshot _balance) { - if (_balance.connectionState != ConnectionState.done || - _balance.hasError) { - return Text('', + Consumer(builder: (context, _sdk, _) { + return FutureBuilder( + future: _sdk.getBalance(walletProvider.address.text), + builder: (BuildContext context, AsyncSnapshot _balance) { + if (_balance.connectionState != ConnectionState.done || + _balance.hasError) { + return Text(balanceCache, + style: TextStyle( + fontSize: isTall ? 20 : 18, + )); + } + balanceCache = "${_balance.data.toString()} Ğ1"; + return ImageFiltered( + imageFilter: ImageFilter.blur( + sigmaX: walletProvider.isBalanceBlur ? 6 : 0, + sigmaY: walletProvider.isBalanceBlur ? 5 : 0), + child: Text( + _balance.data.toString() + ' Ğ1', style: TextStyle( fontSize: isTall ? 20 : 18, - )); - } - return ImageFiltered( - imageFilter: ImageFilter.blur( - sigmaX: walletProvider.isBalanceBlur ? 6 : 0, - sigmaY: walletProvider.isBalanceBlur ? 5 : 0), - child: Text( - _balance.data.toString() + ' Ğ1', - style: TextStyle( - fontSize: isTall ? 20 : 18, + ), ), - ), - ); - }), - const SizedBox(height: 5), - InkWell( - key: const Key('displayBalance'), - onTap: () { - walletProvider.bluringBalance(); - }, - child: Image.asset( - walletProvider.isBalanceBlur - ? 'assets/walletOptions/icon_oeuil.png' - : 'assets/walletOptions/icon_oeuil_close.png', - height: 35, - ), - ), + ); + }); + }), + + const SizedBox(height: 15), + // InkWell( + // key: const Key('displayBalance'), + // onTap: () { + // walletProvider.bluringBalance(); + // }, + // child: Image.asset( + // walletProvider.isBalanceBlur + // ? 'assets/walletOptions/icon_oeuil.png' + // : 'assets/walletOptions/icon_oeuil_close.png', + // height: 35, + // ), + // ), ]); } diff --git a/lib/screens/onBoarding/12.dart b/lib/screens/onBoarding/12.dart index 8dc0ab6..7fb4ffa 100644 --- a/lib/screens/onBoarding/12.dart +++ b/lib/screens/onBoarding/12.dart @@ -120,7 +120,9 @@ class OnboardingStepFourteen extends StatelessWidget { pinColor = Colors.green[500]; final address = await _sdk.importAccount( fromMnemonic: true, - mnemonic: _generateWalletProvider.generatedMnemonic!); + mnemonic: _generateWalletProvider.generatedMnemonic!, + derivePath: '/3', + password: _generateWalletProvider.pin.text); await _generateWalletProvider.storeHDWChest( address, 'Mon portefeuille courant', context); _myWalletProvider.readAllWallets(_currentChest); diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart index 347aace..4a52322 100644 --- a/lib/screens/search_result.dart +++ b/lib/screens/search_result.dart @@ -107,9 +107,11 @@ class SearchResultScreen extends StatelessWidget { ]); } if (_avatar.hasData) { - g1WalletsBox - .get(g1Wallet.pubkey)! - .avatar = _avatar.data; + final _w = + g1WalletsBox.get(g1Wallet.pubkey); + if (_w != null) { + _w.avatar = _avatar.data; + } return ClipOval(child: _avatar.data); } else { g1WalletsBox diff --git a/pubspec.lock b/pubspec.lock index bfcfcb1..f8d9947 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -974,9 +974,11 @@ packages: polkawallet_sdk: dependency: "direct main" description: - name: polkawallet_sdk - url: "https://pub.dartlang.org" - source: hosted + path: "." + ref: fixAndroidActivityVersion + resolved-ref: db17df1a7e421066dd88a16ed46c5cc945b77f82 + url: "https://github.com/poka-IT/sdk.git" + source: git version: "0.4.5" pool: dependency: transitive diff --git a/pubspec.yaml b/pubspec.yaml index 2da7456..841abfb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -75,7 +75,10 @@ dependencies: desktop_window: ^0.4.0 durt: ^0.1.6 package_info_plus: ^1.4.2 - polkawallet_sdk: ^0.4.5 + polkawallet_sdk: #^0.4.5 + git: + url: https://github.com/poka-IT/sdk.git + ref: fixAndroidActivityVersion flutter_icons: android: true