diff --git a/lib/globals.dart b/lib/globals.dart
index 70cd2ae8ae2890d91149a9de387419bf4dc5f104..7ba792664b1a5d3598c4de3dcd1e87e1236b791c 100644
--- a/lib/globals.dart
+++ b/lib/globals.dart
@@ -8,23 +8,23 @@ import 'package:logger/logger.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
 // Files paths
-Directory appPath;
+Directory? appPath;
 
-String appVersion;
-SharedPreferences prefs;
-String endPointGVA;
-int ramSys;
-Box<WalletData> walletBox;
-Box<ChestData> chestBox;
-Box configBox;
-Box<G1WalletsList> g1WalletsBox;
+String? appVersion;
+SharedPreferences? prefs;
+String? endPointGVA;
+int? ramSys;
+late Box<WalletData> walletBox;
+late Box<ChestData> chestBox;
+late Box configBox;
+late Box<G1WalletsList> g1WalletsBox;
 
 String cesiumPod = "https://g1.data.le-sou.org";
 // String cesiumPod = "https://g1.data.e-is.pro";
 
 // Responsive ratios
-bool isTall;
-double ratio;
+late bool isTall;
+late double ratio;
 
 // Logger
 var log = Logger();
diff --git a/lib/main.dart b/lib/main.dart
index 74121ce1bf29b00136611e7d877fbdb8b1c39e01..5ce5d9770182cc66079cf6fb1242a9e30cf5c749 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -124,14 +124,14 @@ Future<void> main() async {
 }
 
 class Gecko extends StatelessWidget {
-  const Gecko(this.randomEndpoint, {Key key}) : super(key: key);
-  final String randomEndpoint;
+  const Gecko(this.randomEndpoint, {Key? key}) : super(key: key);
+  final String? randomEndpoint;
 
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
     final _httpLink = HttpLink(
-      randomEndpoint,
+      randomEndpoint!,
     );
 
     final _client = ValueNotifier(
@@ -160,7 +160,7 @@ class Gecko extends StatelessWidget {
         client: _client,
         child: MaterialApp(
           builder: (context, widget) => ResponsiveWrapper.builder(
-              BouncingScrollWrapper.builder(context, widget),
+              BouncingScrollWrapper.builder(context, widget!),
               maxWidth: 1200,
               minWidth: 480,
               defaultScale: true,
@@ -202,7 +202,7 @@ class Gecko extends StatelessWidget {
 // This http overriding is needed to fix fail certifcat checking for Duniter node on old Android version
 class MyHttpOverrides extends HttpOverrides {
   @override
-  HttpClient createHttpClient(SecurityContext context) {
+  HttpClient createHttpClient(SecurityContext? context) {
     return super.createHttpClient(context)
       ..badCertificateCallback =
           (X509Certificate cert, String host, int port) => true;
diff --git a/lib/models/cesium_plus.dart b/lib/models/cesium_plus.dart
index d99321c939121f895a26a9cf729c2db68b44fc8c..f52e811954913bc042f4c451ce896e6d99f90790 100644
--- a/lib/models/cesium_plus.dart
+++ b/lib/models/cesium_plus.dart
@@ -8,7 +8,7 @@ import 'package:path_provider/path_provider.dart';
 
 class CesiumPlusProvider with ChangeNotifier {
   TextEditingController cesiumName = TextEditingController();
-  Image defaultAvatar(double size) =>
+  Image defaultAvatar(double? size) =>
       Image.asset(('assets/icon_user.png'), height: size);
 
   CancelToken avatarCancelToken = CancelToken();
@@ -60,17 +60,17 @@ class CesiumPlusProvider with ChangeNotifier {
     return [podRequest, queryGetAvatar, headers];
   }
 
-  Future<String> getName(String _pubkey) async {
-    String _name;
+  Future<String?> getName(String? _pubkey) async {
+    String? _name;
 
-    if (g1WalletsBox.get(_pubkey).csName != null) {
-      return g1WalletsBox.get(_pubkey).csName;
+    if (g1WalletsBox.get(_pubkey)!.csName != null) {
+      return g1WalletsBox.get(_pubkey)!.csName;
     }
 
     List queryOptions = await _buildQuery(_pubkey);
 
     var dio = Dio();
-    Response response;
+    late Response response;
     try {
       response = await dio.post(
         queryOptions[0],
@@ -97,14 +97,14 @@ class CesiumPlusProvider with ChangeNotifier {
     }
     _name = response.data['hits']['hits'][0]['_source']['title'];
 
-    g1WalletsBox.get(_pubkey).csName = _name;
+    g1WalletsBox.get(_pubkey)!.csName = _name;
 
     return _name;
   }
 
-  Future<Image> getAvatar(String _pubkey, double size) async {
+  Future<Image?> getAvatar(String? _pubkey, double size) async {
     if (g1WalletsBox.get(_pubkey)?.avatar != null) {
-      return g1WalletsBox.get(_pubkey).avatar;
+      return g1WalletsBox.get(_pubkey)!.avatar;
     }
     var dio = Dio();
 
@@ -112,7 +112,7 @@ class CesiumPlusProvider with ChangeNotifier {
 
     List queryOptions = await _buildQuery(_pubkey);
 
-    Response response;
+    late Response response;
     try {
       response = await dio
           .post(queryOptions[0],
@@ -150,7 +150,7 @@ class CesiumPlusProvider with ChangeNotifier {
       fit: BoxFit.fitWidth,
     );
 
-    g1WalletsBox.get(_pubkey).avatar = finalAvatar;
+    g1WalletsBox.get(_pubkey)!.avatar = finalAvatar;
 
     return finalAvatar;
   }
diff --git a/lib/models/change_pin.dart b/lib/models/change_pin.dart
index 20141e70b68561f2f6d3287e21a7d810c2372f8c..965c269393fb96251d25eca7a792f2ddfdba5a4c 100644
--- a/lib/models/change_pin.dart
+++ b/lib/models/change_pin.dart
@@ -5,13 +5,13 @@ import 'package:gecko/globals.dart';
 class ChangePinProvider with ChangeNotifier {
   bool ischangedPin = false;
   TextEditingController newPin = TextEditingController();
-  String pinToGive;
+  String? pinToGive;
 
-  NewWallet get badWallet => null;
+  NewWallet? get badWallet => null;
 
-  NewWallet changePin(String _oldPin, {String newCustomPin}) {
+  NewWallet? changePin(String _oldPin, {String? newCustomPin}) {
     try {
-      final _dewif = chestBox.get(configBox.get('currentChest')).dewif;
+      final _dewif = chestBox.get(configBox.get('currentChest'))!.dewif!;
 
       // TODO: Durt: Detect if CesiumWallet
       NewWallet newWalletFile = Dewif().changePassword(
@@ -34,7 +34,7 @@ class ChangePinProvider with ChangeNotifier {
     // currentChest.dewif = _newWalletFile.dewif;
     // await chestBox.add(currentChest);
 
-    chestBox.get(configBox.get('currentChest')).dewif = _newWalletFile.dewif;
+    chestBox.get(configBox.get('currentChest'))!.dewif = _newWalletFile.dewif;
 
     Navigator.pop(context, pinToGive);
     pinToGive = '';
diff --git a/lib/models/chest_data.dart b/lib/models/chest_data.dart
index 9e01d9a7d962bf1beaf0c63187600ae76c79f548..48f5579d2d140d2d7b9c7b6458d68d846b445f93 100644
--- a/lib/models/chest_data.dart
+++ b/lib/models/chest_data.dart
@@ -7,22 +7,22 @@ part 'chest_data.g.dart';
 @HiveType(typeId: 1)
 class ChestData extends HiveObject {
   @HiveField(0)
-  String dewif;
+  String? dewif;
 
   @HiveField(2)
-  String name;
+  String? name;
 
   @HiveField(3)
-  int defaultWallet;
+  int? defaultWallet;
 
   @HiveField(4)
-  String imageName;
+  String? imageName;
 
   @HiveField(5)
-  File imageFile;
+  File? imageFile;
 
   @HiveField(6)
-  bool isCesium;
+  bool? isCesium;
 
   ChestData({
     this.dewif,
@@ -35,6 +35,6 @@ class ChestData extends HiveObject {
 
   @override
   String toString() {
-    return name;
+    return name!;
   }
 }
diff --git a/lib/models/chest_data.g.dart b/lib/models/chest_data.g.dart
index 1d0be58bef10267485a4a97b43e3fbd106508ed1..33cbaf338e1523b8f475e0c935df3bdf21005540 100644
--- a/lib/models/chest_data.g.dart
+++ b/lib/models/chest_data.g.dart
@@ -17,12 +17,12 @@ class ChestDataAdapter extends TypeAdapter<ChestData> {
       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
     };
     return ChestData(
-      dewif: fields[0] as String,
-      name: fields[2] as String,
-      defaultWallet: fields[3] as int,
-      imageName: fields[4] as String,
-      imageFile: fields[5] as File,
-      isCesium: fields[6] as bool,
+      dewif: fields[0] as String?,
+      name: fields[2] as String?,
+      defaultWallet: fields[3] as int?,
+      imageName: fields[4] as String?,
+      imageFile: fields[5] as File?,
+      isCesium: fields[6] as bool?,
     );
   }
 
diff --git a/lib/models/chest_provider.dart b/lib/models/chest_provider.dart
index 9af37a431c8e33e70d487470c96be56f26a44205..142ef4d7d660bb2fd099dfd8ceeefaa27b17d2db 100644
--- a/lib/models/chest_provider.dart
+++ b/lib/models/chest_provider.dart
@@ -1,3 +1,4 @@
+import 'dart:async';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
@@ -8,14 +9,14 @@ class ChestProvider with ChangeNotifier {
   }
 
   Future deleteChest(context, ChestData _chest) async {
-    final bool _answer = await _confirmDeletingChest(context, _chest.name);
+    final bool _answer = await (_confirmDeletingChest(context, _chest.name) as FutureOr<bool>);
 
     if (_answer) {
       await chestBox.delete(_chest.key);
       if (chestBox.isEmpty) {
         await configBox.put('currentChest', 0);
       } else {
-        int lastChest = chestBox.toMap().keys.first;
+        int? lastChest = chestBox.toMap().keys.first;
         await configBox.put('currentChest', lastChest);
       }
 
@@ -27,7 +28,7 @@ class ChestProvider with ChangeNotifier {
     }
   }
 
-  Future<bool> _confirmDeletingChest(context, String _walletName) async {
+  Future<bool?> _confirmDeletingChest(context, String? _walletName) async {
     return showDialog<bool>(
       context: context,
       barrierDismissible: true, // user must tap button!
diff --git a/lib/models/g1_wallets_list.dart b/lib/models/g1_wallets_list.dart
index 98fef2b6b23905060bac85140f007c95a5ce157c..1cc62ab42c90b36c97574d8e02643b978b0788a1 100644
--- a/lib/models/g1_wallets_list.dart
+++ b/lib/models/g1_wallets_list.dart
@@ -6,25 +6,25 @@ part 'g1_wallets_list.g.dart';
 @HiveType(typeId: 2)
 class G1WalletsList {
   @HiveField(0)
-  String pubkey;
+  String? pubkey;
 
   @HiveField(1)
-  double balance;
+  double? balance;
 
   @HiveField(3)
-  Id id;
+  Id? id;
 
   @HiveField(4)
-  Image avatar;
+  Image? avatar;
 
   @HiveField(5)
-  String username;
+  String? username;
 
   @HiveField(6)
-  String csName;
+  String? csName;
 
   @HiveField(7)
-  bool isMembre;
+  bool? isMembre;
 
   G1WalletsList({
     this.pubkey,
@@ -47,7 +47,7 @@ class G1WalletsList {
     data['pubkey'] = pubkey;
     data['balance'] = balance;
     if (id != null) {
-      data['id'] = id.toJson();
+      data['id'] = id!.toJson();
     }
     return data;
   }
@@ -55,8 +55,8 @@ class G1WalletsList {
 
 @HiveType(typeId: 3)
 class Id {
-  bool isMember;
-  String username;
+  bool? isMember;
+  String? username;
 
   Id({this.isMember, this.username});
 
diff --git a/lib/models/g1_wallets_list.g.dart b/lib/models/g1_wallets_list.g.dart
index 266daed94c90700ff7f64e0dee7fa6dd85a77032..bb7c15d7238fff7e6b71fb3b39002df840cdba36 100644
--- a/lib/models/g1_wallets_list.g.dart
+++ b/lib/models/g1_wallets_list.g.dart
@@ -19,13 +19,13 @@ class G1WalletsListAdapter extends TypeAdapter<G1WalletsList> {
       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
     };
     return G1WalletsList(
-      pubkey: fields[0] as String,
-      balance: fields[1] as double,
-      id: fields[3] as Id,
-      avatar: fields[4] as Image,
-      username: fields[5] as String,
-      csName: fields[6] as String,
-      isMembre: fields[7] as bool,
+      pubkey: fields[0] as String?,
+      balance: fields[1] as double?,
+      id: fields[3] as Id?,
+      avatar: fields[4] as Image?,
+      username: fields[5] as String?,
+      csName: fields[6] as String?,
+      isMembre: fields[7] as bool?,
     );
   }
 
diff --git a/lib/models/generate_wallets.dart b/lib/models/generate_wallets.dart
index bfdae692bc9184d1a218eff2d04c09173a9f46db..6cefd849044e06520b3f682c7a9bfba5f8c09356 100644
--- a/lib/models/generate_wallets.dart
+++ b/lib/models/generate_wallets.dart
@@ -15,16 +15,16 @@ import "package:unorm_dart/unorm_dart.dart" as unorm;
 class GenerateWalletsProvider with ChangeNotifier {
   GenerateWalletsProvider();
   // NewWallet generatedWallet;
-  NewWallet actualWallet;
+  NewWallet? actualWallet;
 
   FocusNode walletNameFocus = FocusNode();
-  Color askedWordColor = Colors.black;
+  Color? askedWordColor = Colors.black;
   bool isAskedWordValid = false;
 
-  int nbrWord;
-  String nbrWordAlpha;
+  late int nbrWord;
+  String? nbrWordAlpha;
 
-  String generatedMnemonic;
+  String? generatedMnemonic;
   bool walletIsGenerated = true;
 
   TextEditingController mnemonicController = TextEditingController();
@@ -37,7 +37,7 @@ class GenerateWalletsProvider with ChangeNotifier {
   bool isCesiumIDVisible = false;
   bool isCesiumPWDVisible = false;
   bool canImport = false;
-  CesiumWallet cesiumWallet;
+  late CesiumWallet cesiumWallet;
 
   // Import Chest
   TextEditingController cellController0 = TextEditingController();
@@ -58,7 +58,7 @@ class GenerateWalletsProvider with ChangeNotifier {
       NewWallet _wallet, String _name, BuildContext context) async {
     int chestNumber = 0;
     chestBox.toMap().forEach((key, value) {
-      if (!value.isCesium) {
+      if (!value.isCesium!) {
         chestNumber++;
       }
     });
@@ -77,7 +77,7 @@ class GenerateWalletsProvider with ChangeNotifier {
       isCesium: false,
     );
     await chestBox.add(thisChest);
-    int chestKey = chestBox.keys.last;
+    int? chestKey = chestBox.keys.last;
 
     WalletData myWallet = WalletData(
         chest: chestKey,
@@ -128,7 +128,7 @@ class GenerateWalletsProvider with ChangeNotifier {
     return rng.nextInt(12);
   }
 
-  String intToString(int _nbr) {
+  String? intToString(int _nbr) {
     Map nbrToString = {};
     nbrToString[1] = 'Premier';
     nbrToString[2] = 'Deuxième';
@@ -152,8 +152,8 @@ class GenerateWalletsProvider with ChangeNotifier {
     notifyListeners();
   }
 
-  Future<NewWallet> generateWallet(String generatedMnemonic,
-      {@required bool isImport}) async {
+  Future<NewWallet?> generateWallet(String generatedMnemonic,
+      {required bool isImport}) async {
     try {
       actualWallet = Dewif().generateDewif(
           generatedMnemonic, randomSecretCode(5),
@@ -164,14 +164,14 @@ class GenerateWalletsProvider with ChangeNotifier {
 
     if (!isImport) {
       mnemonicController.text = generatedMnemonic;
-      pin.text = actualWallet.password;
+      pin.text = actualWallet!.password;
     }
     // notifyListeners();
 
     return actualWallet;
   }
 
-  String changePinCode({bool reload}) {
+  String changePinCode({required bool reload}) {
     pin.text = randomSecretCode(5);
     if (reload) {
       notifyListeners();
@@ -179,7 +179,7 @@ class GenerateWalletsProvider with ChangeNotifier {
     return pin.text;
   }
 
-  Future<Uint8List> printWallet(String _title) async {
+  Future<Uint8List> printWallet(String? _title) async {
     final ByteData fontData =
         await rootBundle.load("assets/OpenSans-Regular.ttf");
     final pw.Font ttf = pw.Font.ttf(fontData.buffer.asByteData());
@@ -197,7 +197,7 @@ class GenerateWalletsProvider with ChangeNotifier {
             pw.Text("Phrase de restauration:",
                 style: pw.TextStyle(fontSize: 20, font: ttf)),
             pw.SizedBox(height: 10),
-            pw.Text(_title,
+            pw.Text(_title!,
                 style: pw.TextStyle(fontSize: 15, font: ttf),
                 textAlign: pw.TextAlign.center),
             pw.Expanded(
@@ -226,7 +226,7 @@ class GenerateWalletsProvider with ChangeNotifier {
     log.d(_walletPubkey);
   }
 
-  Future<int> importCesiumWallet() async {
+  Future<int?> importCesiumWallet() async {
     // String _walletPubkey = await DubpRust.getLegacyPublicKey(
     //     salt: _cesiumID, password: _cesiumPWD);
     // String shortPubkey = truncate(_walletPubkey, 9,
@@ -244,7 +244,7 @@ class GenerateWalletsProvider with ChangeNotifier {
 
     int chestNumber = 0;
     chestBox.toMap().forEach((key, value) {
-      if (value.isCesium) {
+      if (value.isCesium!) {
         chestNumber++;
       }
     });
@@ -268,7 +268,7 @@ class GenerateWalletsProvider with ChangeNotifier {
         isCesium: true);
 
     await chestBox.add(cesiumChest).then((value) => null);
-    int chestKey = await chestBox.toMap().keys.last;
+    int? chestKey = await chestBox.toMap().keys.last;
     // chestBox.toMap().
     await configBox.put('currentChest', chestKey);
 
@@ -299,7 +299,7 @@ class GenerateWalletsProvider with ChangeNotifier {
     String word;
     int _nbr = 1;
 
-    for (word in generatedMnemonic.split(' ')) {
+    for (word in generatedMnemonic!.split(' ')) {
       _wordsList.add("$_nbr:$word");
       _nbr++;
     }
@@ -318,7 +318,7 @@ class GenerateWalletsProvider with ChangeNotifier {
 
   bool isBipWordsList(List words) {
     bool isValid = true;
-    for (String word in words) {
+    for (String word in words as Iterable<String>) {
       // Needed for bad encoding of UTF-8
       word = word.replaceAll('é', 'é');
       word = word.replaceAll('è', 'è');
@@ -374,7 +374,7 @@ class GenerateWalletsProvider with ChangeNotifier {
     inputMnemonic = inputMnemonic.replaceAll('é', 'é');
     inputMnemonic = inputMnemonic.replaceAll('è', 'è');
 
-    NewWallet generatedWallet =
+    NewWallet? generatedWallet =
         await generateWallet(inputMnemonic, isImport: true);
 
     if (generatedWallet == null) {
diff --git a/lib/models/home.dart b/lib/models/home.dart
index 066c2391ee75a6d6443df54047c7bd1c365016fe..3160c3c3b9ab7c586991a2754514f49bf2ed19fb 100644
--- a/lib/models/home.dart
+++ b/lib/models/home.dart
@@ -13,8 +13,7 @@ import 'package:flutter/foundation.dart' show kIsWeb;
 import 'package:path_provider/path_provider.dart' as pp;
 
 class HomeProvider with ChangeNotifier {
-  int _currentIndex = 0;
-  bool isSearching;
+  bool? isSearching;
   Icon searchIcon = const Icon(Icons.search);
   final TextEditingController searchQuery = TextEditingController();
   Widget appBarTitle = Text('Äžecko', style: TextStyle(color: Colors.grey[850]));
@@ -24,15 +23,8 @@ class HomeProvider with ChangeNotifier {
   bool isFirstBuild = true;
   // AudioCache player = AudioCache(prefix: 'sounds/');
 
-  get currentIndex => _currentIndex;
-
-  set currentIndex(int index) {
-    _currentIndex = index;
-    notifyListeners();
-  }
-
   Future<void> initHive() async {
-    Directory hivePath;
+    late Directory hivePath;
 
     if (!kIsWeb) {
       if (Platform.isLinux || Platform.isMacOS) {
@@ -70,14 +62,14 @@ class HomeProvider with ChangeNotifier {
     return version + '+' + buildNumber;
   }
 
-  Future<String> getValidEndpoint() async {
+  Future<String?> getValidEndpoint() async {
     List _listEndpoints = await rootBundle
         .loadString('config/gva_endpoints.json')
         .then((jsonStr) => jsonDecode(jsonStr));
     _listEndpoints.shuffle();
 
     int i = 0;
-    String _endpoint;
+    String? _endpoint;
     int _statusCode = 0;
 
     final _client = HttpClient();
@@ -118,7 +110,7 @@ class HomeProvider with ChangeNotifier {
       }
     } while (_statusCode != 400);
 
-    log.i('ENDPOINT: ' + _endpoint);
+    log.i('ENDPOINT: ' + _endpoint!);
     return _endpoint;
   }
 
@@ -159,7 +151,7 @@ class HomeProvider with ChangeNotifier {
         _message =
             "Aucun noeud Duniter disponible, veuillez réessayer ultérieurement";
       } else {
-        _message = "Vous êtes connecté au noeud\n${endPointGVA.split('/')[2]}";
+        _message = "Vous êtes connecté au noeud\n${endPointGVA!.split('/')[2]}";
       }
       final snackBar = SnackBar(
           content: Text(_message), duration: const Duration(seconds: 2));
diff --git a/lib/models/my_wallets.dart b/lib/models/my_wallets.dart
index 8a45bb01e74d0ff23e85a8993765007a39377ce2..d1d5e7c2963d8eff252bf3c9ca74010ccd1ea1fd 100644
--- a/lib/models/my_wallets.dart
+++ b/lib/models/my_wallets.dart
@@ -5,10 +5,10 @@ import 'package:gecko/models/wallet_data.dart';
 
 class MyWalletsProvider with ChangeNotifier {
   List<WalletData> listWallets = [];
-  String pinCode;
-  int pinLenght;
+  late String pinCode;
+  int? pinLenght;
 
-  int getCurrentChest() {
+  int? getCurrentChest() {
     if (configBox.get('currentChest') == null) {
       configBox.put('currentChest', 0);
     }
@@ -25,7 +25,7 @@ class MyWalletsProvider with ChangeNotifier {
     }
   }
 
-  List<WalletData> readAllWallets(int _chest) {
+  List<WalletData> readAllWallets(int? _chest) {
     listWallets.clear();
     walletBox.toMap().forEach((key, value) {
       if (value.chest == _chest) {
@@ -36,11 +36,11 @@ class MyWalletsProvider with ChangeNotifier {
     return listWallets;
   }
 
-  WalletData getWalletData(List<int> _id) {
+  WalletData? getWalletData(List<int?> _id) {
     if (_id.isEmpty) return WalletData();
-    int _chest = _id[0];
-    int _nbr = _id[1];
-    WalletData _targetedWallet;
+    int? _chest = _id[0];
+    int? _nbr = _id[1];
+    WalletData? _targetedWallet;
 
     walletBox.toMap().forEach((key, value) {
       if (value.chest == _chest && value.number == _nbr) {
@@ -52,11 +52,11 @@ class MyWalletsProvider with ChangeNotifier {
     return _targetedWallet;
   }
 
-  WalletData getDefaultWallet(int chest) {
+  WalletData? getDefaultWallet(int? chest) {
     if (chestBox.isEmpty) {
       return WalletData(chest: 0, number: 0);
     } else {
-      int defaultWalletNumber = chestBox.get(chest).defaultWallet;
+      int? defaultWalletNumber = chestBox.get(chest)!.defaultWallet;
       return getWalletData([chest, defaultWalletNumber]);
     }
   }
@@ -65,7 +65,7 @@ class MyWalletsProvider with ChangeNotifier {
     try {
       log.w('DELETE ALL WALLETS ?');
 
-      final bool _answer = await _confirmDeletingAllWallets(context);
+      final bool _answer = await (_confirmDeletingAllWallets(context) as FutureOr<bool>);
       if (_answer) {
         await walletBox.clear();
         await chestBox.clear();
@@ -84,7 +84,7 @@ class MyWalletsProvider with ChangeNotifier {
     }
   }
 
-  Future<bool> _confirmDeletingAllWallets(context) async {
+  Future<bool?> _confirmDeletingAllWallets(context) async {
     return showDialog<bool>(
       context: context,
       barrierDismissible: true, // user must tap button!
@@ -116,15 +116,15 @@ class MyWalletsProvider with ChangeNotifier {
   Future<void> generateNewDerivation(context, String _name) async {
     int _newDerivationNbr;
     int _newWalletNbr;
-    int _chest = getCurrentChest();
+    int? _chest = getCurrentChest();
     List<WalletData> _walletConfig = readAllWallets(_chest);
 
     if (_walletConfig.isEmpty) {
       _newDerivationNbr = 3;
       _newWalletNbr = 0;
     } else {
-      _newDerivationNbr = _walletConfig.last.derivation + 3;
-      _newWalletNbr = _walletConfig.last.number + 1;
+      _newDerivationNbr = _walletConfig.last.derivation! + 3;
+      _newWalletNbr = _walletConfig.last.number! + 1;
     }
 
     WalletData newWallet = WalletData(
diff --git a/lib/models/search.dart b/lib/models/search.dart
index f17b7e11f2f7a55bc5d0f85d250a7a39bd230467..d2fd4627b9099cc9a5807c3f89eb5c0a912b8706 100644
--- a/lib/models/search.dart
+++ b/lib/models/search.dart
@@ -25,7 +25,7 @@ class SearchProvider with ChangeNotifier {
       // final response = await http.get(url);
 
       var dio = Dio();
-      Response response;
+      late Response response;
       try {
         response = await dio.get(
           'https://g1-stats.axiom-team.fr/data/forbes.json',
@@ -40,8 +40,8 @@ class SearchProvider with ChangeNotifier {
         log.e(e);
       }
 
-      List<G1WalletsList> _listWallets = _parseG1Wallets(response.data);
-      Map<String, G1WalletsList> _mapWallets = {
+      List<G1WalletsList> _listWallets = _parseG1Wallets(response.data)!;
+      Map<String?, G1WalletsList> _mapWallets = {
         for (var e in _listWallets) e.pubkey: e
       };
 
@@ -51,11 +51,11 @@ class SearchProvider with ChangeNotifier {
 
     g1WalletsBox.toMap().forEach((key, value) {
       if ((value.id != null &&
-              value.id.username != null &&
-              value.id.username
+              value.id!.username != null &&
+              value.id!.username!
                   .toLowerCase()
                   .contains(searchController.text)) ||
-          value.pubkey.contains(searchController.text)) {
+          value.pubkey!.contains(searchController.text)) {
         searchResult.add(value);
         return;
       }
@@ -70,7 +70,7 @@ class SearchProvider with ChangeNotifier {
   }
 }
 
-List<G1WalletsList> _parseG1Wallets(var responseBody) {
+List<G1WalletsList>? _parseG1Wallets(var responseBody) {
   final parsed = responseBody.cast<Map<String, dynamic>>();
 
   return parsed
diff --git a/lib/models/wallet_data.dart b/lib/models/wallet_data.dart
index 20ea9ef5bb0eec8831fd963ed6a132d19eb8139d..fc7cf51548f96b6e6fd5b89edd3620c65cb0c3ea 100644
--- a/lib/models/wallet_data.dart
+++ b/lib/models/wallet_data.dart
@@ -7,22 +7,22 @@ part 'wallet_data.g.dart';
 @HiveType(typeId: 0)
 class WalletData extends HiveObject {
   @HiveField(0)
-  int chest;
+  int? chest;
 
   @HiveField(1)
-  int number;
+  int? number;
 
   @HiveField(2)
-  String name;
+  String? name;
 
   @HiveField(3)
-  int derivation;
+  int? derivation;
 
   @HiveField(4)
-  String imageName;
+  String? imageName;
 
   @HiveField(5)
-  File imageFile;
+  File? imageFile;
 
   WalletData(
       {this.chest,
@@ -35,7 +35,7 @@ class WalletData extends HiveObject {
   // representation of WalletData when debugging
   @override
   String toString() {
-    return name;
+    return name!;
   }
 
   // creates the ':'-separated string from the WalletData
@@ -44,7 +44,7 @@ class WalletData extends HiveObject {
   }
 
   // returns only the id part of the ':'-separated string
-  List<int> id() {
+  List<int?> id() {
     return [chest, number];
   }
 }
diff --git a/lib/models/wallet_data.g.dart b/lib/models/wallet_data.g.dart
index 3f8ee5270490bee6ef983fa41a1a6b59676e2c57..56f2ce8b20ab3e30435280268e1cb6432fccb802 100644
--- a/lib/models/wallet_data.g.dart
+++ b/lib/models/wallet_data.g.dart
@@ -17,12 +17,12 @@ class WalletDataAdapter extends TypeAdapter<WalletData> {
       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
     };
     return WalletData(
-      chest: fields[0] as int,
-      number: fields[1] as int,
-      name: fields[2] as String,
-      derivation: fields[3] as int,
-      imageName: fields[4] as String,
-      imageFile: fields[5] as File,
+      chest: fields[0] as int?,
+      number: fields[1] as int?,
+      name: fields[2] as String?,
+      derivation: fields[3] as int?,
+      imageName: fields[4] as String?,
+      imageFile: fields[5] as File?,
     );
   }
 
diff --git a/lib/models/wallet_options.dart b/lib/models/wallet_options.dart
index 20bb30d100e8c33409282f39136ffaf630489e36..9690275625584ae179c3c29615cd09fd64f2e901 100644
--- a/lib/models/wallet_options.dart
+++ b/lib/models/wallet_options.dart
@@ -21,12 +21,12 @@ class WalletOptionsProvider with ChangeNotifier {
   bool isBalanceBlur = true;
   FocusNode walletNameFocus = FocusNode();
   TextEditingController nameController = TextEditingController();
-  bool isDefaultWallet;
+  late bool isDefaultWallet;
 
-  Future<NewWallet> get badWallet => null;
+  Future<NewWallet>? get badWallet => null;
 
   String _getPubkeyFromDewif(
-      String _dewif, _pin, int _pinLenght, int derivation) {
+      String? _dewif, _pin, int _pinLenght, int? derivation) {
     RegExp regExp = RegExp(
       r'^[A-Z0-9]+$',
       caseSensitive: false,
@@ -39,25 +39,25 @@ class WalletOptionsProvider with ChangeNotifier {
     }
     if (derivation != -1) {
       try {
-        final _wallet = HdWallet.fromDewif(_dewif, _pin);
-        pubkey.text = _wallet.getPubkey(derivation);
+        final _wallet = HdWallet.fromDewif(_dewif!, _pin);
+        pubkey.text = _wallet.getPubkey(derivation!);
         log.d(pubkey.text);
         notifyListeners();
 
         return pubkey.text;
       } catch (e) {
-        log.w('Bad PIN code !\n' + e);
+        log.w('Bad PIN code !\n' + e.toString());
         notifyListeners();
 
         return 'false';
       }
     } else {
       try {
-        pubkey.text = CesiumWallet.fromDewif(_dewif, _pin).pubkey;
+        pubkey.text = CesiumWallet.fromDewif(_dewif!, _pin).pubkey;
         notifyListeners();
         return pubkey.text;
       } catch (e) {
-        log.w('Bad PIN code !\n' + e);
+        log.w('Bad PIN code !\n' + e.toString());
         notifyListeners();
 
         return 'false';
@@ -65,11 +65,11 @@ class WalletOptionsProvider with ChangeNotifier {
     }
   }
 
-  String readLocalWallet(
+  String? readLocalWallet(
       context, WalletData _wallet, String _pin, int _pinLenght) {
     isWalletUnlock = false;
     try {
-      String _localDewif = chestBox.get(_wallet.chest).dewif;
+      String? _localDewif = chestBox.get(_wallet.chest)!.dewif;
       String _localPubkey;
 
       if ((_localPubkey = _getPubkeyFromDewif(
@@ -108,15 +108,15 @@ class WalletOptionsProvider with ChangeNotifier {
     return 5;
   }
 
-  void _renameWallet(List<int> _walletID, _newName, {bool isCesium}) async {
+  void _renameWallet(List<int?> _walletID, _newName, {required bool isCesium}) async {
     if (isCesium) {
-      ChestData _chestTarget = chestBox.get(_walletID[0]);
+      ChestData _chestTarget = chestBox.get(_walletID[0])!;
       _chestTarget.name = _newName;
       await chestBox.put(_chestTarget.key, _chestTarget);
     } else {
       MyWalletsProvider myWalletClass = MyWalletsProvider();
 
-      WalletData _walletTarget = myWalletClass.getWalletData(_walletID);
+      WalletData _walletTarget = myWalletClass.getWalletData(_walletID)!;
       _walletTarget.name = _newName;
       await walletBox.put(_walletTarget.key, _walletTarget);
     }
@@ -124,12 +124,12 @@ class WalletOptionsProvider with ChangeNotifier {
     _newWalletName.text = '';
   }
 
-  bool editWalletName(List<int> _wID, {bool isCesium}) {
+  bool editWalletName(List<int?> _wID, {bool? isCesium}) {
     bool nameState;
     if (isEditing) {
       if (!nameController.text.contains(':') &&
           nameController.text.length <= 39) {
-        _renameWallet(_wID, nameController.text, isCesium: isCesium);
+        _renameWallet(_wID, nameController.text, isCesium: isCesium!);
         nameState = true;
       } else {
         nameState = false;
@@ -144,7 +144,7 @@ class WalletOptionsProvider with ChangeNotifier {
   }
 
   Future<int> deleteWallet(context, WalletData wallet) async {
-    final bool _answer = await _confirmDeletingWallet(context, wallet.name);
+    final bool _answer = await (_confirmDeletingWallet(context, wallet.name) as FutureOr<bool>);
 
     if (_answer) {
       walletBox.delete(wallet.key);
@@ -157,7 +157,7 @@ class WalletOptionsProvider with ChangeNotifier {
     return 0;
   }
 
-  Future<bool> _confirmDeletingWallet(context, _walletName) async {
+  Future<bool?> _confirmDeletingWallet(context, _walletName) async {
     return showDialog<bool>(
       context: context,
       barrierDismissible: true, // user must tap button!
@@ -224,7 +224,7 @@ class WalletOptionsProvider with ChangeNotifier {
     File _image;
     final picker = ImagePicker();
 
-    XFile pickedFile = await picker.pickImage(source: ImageSource.gallery);
+    XFile? pickedFile = await picker.pickImage(source: ImageSource.gallery);
 
     if (pickedFile != null) {
       _image = File(pickedFile.path);
diff --git a/lib/models/wallets_profiles.dart b/lib/models/wallets_profiles.dart
index 85879e455329b0708a8f0b4cbeda5933aea806ac..562b094a13a33ba437b7fbfea251bf71f4012ffd 100644
--- a/lib/models/wallets_profiles.dart
+++ b/lib/models/wallets_profiles.dart
@@ -19,18 +19,18 @@ import 'package:fast_base58/fast_base58.dart';
 class WalletsProfilesProvider with ChangeNotifier {
   WalletsProfilesProvider(this.pubkey);
 
-  String pubkey = '';
+  String? pubkey = '';
   String pubkeyShort = '';
   final TextEditingController outputPubkey = TextEditingController();
-  List transBC;
-  String fetchMoreCursor;
-  Map pageInfo;
+  List? transBC;
+  String? fetchMoreCursor;
+  Map? pageInfo;
   bool isHistoryScreen = false;
   String historySwitchButtun = "Voir l'historique";
-  String rawSvg;
+  String? rawSvg;
   TextEditingController payAmount = TextEditingController();
   TextEditingController payComment = TextEditingController();
-  num balance;
+  num? balance;
   int nRepositories = 20;
   int nPage = 1;
 
@@ -38,7 +38,7 @@ class WalletsProfilesProvider with ChangeNotifier {
     if (Platform.isAndroid || Platform.isIOS) {
       await Permission.camera.request();
     }
-    String barcode;
+    String? barcode;
     try {
       barcode = await scanner.scan();
     } catch (e) {
@@ -61,20 +61,20 @@ class WalletsProfilesProvider with ChangeNotifier {
 
   Future<String> pay(BuildContext context, String pinCode) async {
     MyWalletsProvider _myWalletModel = MyWalletsProvider();
-    int currentChest = configBox.get('currentChest');
-    WalletData defaultWallet = _myWalletModel.getDefaultWallet(currentChest);
+    int? currentChest = configBox.get('currentChest');
+    WalletData? defaultWallet = _myWalletModel.getDefaultWallet(currentChest);
 
-    String dewif = chestBox.get(currentChest).dewif;
-    int derivation;
+    String dewif = chestBox.get(currentChest)!.dewif!;
+    int? derivation;
 
-    if (chestBox.get(currentChest).isCesium) {
+    if (chestBox.get(currentChest)!.isCesium!) {
       derivation = -1;
     } else {
-      derivation = defaultWallet.derivation;
+      derivation = defaultWallet!.derivation;
     }
 
-    String result = await Gva(node: endPointGVA).pay(
-        recipient: pubkey,
+    String result = await Gva(node: endPointGVA!).pay(
+        recipient: pubkey!,
         amount: double.parse(payAmount.text),
         dewif: dewif,
         password: pinCode,
@@ -147,7 +147,7 @@ class WalletsProfilesProvider with ChangeNotifier {
     for (final trans in txs) {
       var direction = trans['direction'];
       final transaction = trans['node'];
-      String output;
+      String? output;
       if (direction == "RECEIVED") {
         for (String line in transaction['outputs']) {
           if (line.contains(_pubkey)) {
@@ -194,14 +194,14 @@ class WalletsProfilesProvider with ChangeNotifier {
     return transBC;
   }
 
-  FetchMoreOptions checkQueryResult(result, opts, _pubkey) {
-    final List<dynamic> blockchainTX =
-        (result.data['txsHistoryBc']['both']['edges'] as List<dynamic>);
+  FetchMoreOptions? checkQueryResult(result, opts, _pubkey) {
+    final List<dynamic>? blockchainTX =
+        (result.data['txsHistoryBc']['both']['edges'] as List<dynamic>?);
     // final List<dynamic> mempoolTX =
     //     (result.data['txsHistoryMp']['receiving'] as List<dynamic>);
 
     pageInfo = result.data['txsHistoryBc']['both']['pageInfo'];
-    fetchMoreCursor = pageInfo['endCursor'];
+    fetchMoreCursor = pageInfo!['endCursor'];
     if (fetchMoreCursor == null) nPage = 1;
 
     if (nPage == 1) {
@@ -216,9 +216,9 @@ class WalletsProfilesProvider with ChangeNotifier {
         variables: {'cursor': fetchMoreCursor, 'number': nRepositories},
         updateQuery: (previousResultData, fetchMoreResultData) {
           final List<dynamic> repos = [
-            ...previousResultData['txsHistoryBc']['both']['edges']
+            ...previousResultData!['txsHistoryBc']['both']['edges']
                 as List<dynamic>,
-            ...fetchMoreResultData['txsHistoryBc']['both']['edges']
+            ...fetchMoreResultData!['txsHistoryBc']['both']['edges']
                 as List<dynamic>
           ];
 
@@ -287,7 +287,7 @@ class WalletsProfilesProvider with ChangeNotifier {
   //   return balance;
   // }
 
-  Future<num> getBalance(String _pubkey) async {
+  Future<num?> getBalance(String? _pubkey) async {
     while (balance == null) {
       await Future.delayed(const Duration(milliseconds: 50));
     }
diff --git a/lib/screens/avatar_fullscreen.dart b/lib/screens/avatar_fullscreen.dart
index 8f833dc9ffbccf43831e2dc7b4f9c61c06f00591..682e29012b5fea163efb0557410c1733c014181c 100644
--- a/lib/screens/avatar_fullscreen.dart
+++ b/lib/screens/avatar_fullscreen.dart
@@ -8,11 +8,11 @@ import 'package:flutter/material.dart';
 class AvatarFullscreen extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
 
-  AvatarFullscreen(this.avatar, {this.title, this.color, Key key})
+  AvatarFullscreen(this.avatar, {this.title, this.color, Key? key})
       : super(key: key);
-  final Image avatar;
-  final String title;
-  final Color color;
+  final Image? avatar;
+  final String? title;
+  final Color? color;
 
   @override
   Widget build(BuildContext context) {
@@ -43,8 +43,8 @@ class AvatarFullscreen extends StatelessWidget {
             // height: MediaQuery.of(context).size.height,
             // width: MediaQuery.of(context).size.width,
             child: Image(
-                image: avatar.image,
-                height: avatar.height,
+                image: avatar!.image,
+                height: avatar!.height,
                 fit: BoxFit.fitWidth),
           ),
         ),
diff --git a/lib/screens/common_elements.dart b/lib/screens/common_elements.dart
index bb36379774114e721f8bc503f6459fcaebd29a75..c9e040ba7d8f8484169903d303b9d41cb75a84fd 100644
--- a/lib/screens/common_elements.dart
+++ b/lib/screens/common_elements.dart
@@ -8,7 +8,7 @@ class CommonElements {
     return const Text('Coucou');
   }
 
-  Widget bubbleSpeak(String text, {double long, Key textKey}) {
+  Widget bubbleSpeak(String text, {double? long, Key? textKey}) {
     return Bubble(
       padding: long == null
           ? const BubbleEdges.all(18)
@@ -26,7 +26,7 @@ class CommonElements {
     );
   }
 
-  Widget bubbleSpeakRich(List<TextSpan> text, {Key textKey}) {
+  Widget bubbleSpeakRich(List<TextSpan> text, {Key? textKey}) {
     return Bubble(
       padding: const BubbleEdges.all(18),
       elevation: 5,
@@ -130,7 +130,7 @@ class CommonElements {
 }
 
 class SmoothTransition extends PageRouteBuilder {
-  final Widget page;
+  final Widget? page;
   SmoothTransition({this.page})
       : super(
           pageBuilder: (
@@ -141,8 +141,8 @@ class SmoothTransition extends PageRouteBuilder {
               TweenAnimationBuilder(
             duration: const Duration(seconds: 5),
             tween: Tween(begin: 200, end: 200),
-            builder: (BuildContext context, dynamic value, Widget child) {
-              return page;
+            builder: (BuildContext context, dynamic value, Widget? child) {
+              return page!;
             },
           ),
         );
@@ -152,7 +152,7 @@ class FaderTransition extends PageRouteBuilder {
   final Widget page;
   final bool isFast;
 
-  FaderTransition({@required this.page, @required this.isFast})
+  FaderTransition({required this.page, required this.isFast})
       : super(
           pageBuilder: (
             BuildContext context,
@@ -175,7 +175,7 @@ class FaderTransition extends PageRouteBuilder {
 }
 
 class SlideLeftRoute extends PageRouteBuilder {
-  final Widget page;
+  final Widget? page;
   SlideLeftRoute({this.page})
       : super(
           pageBuilder: (
@@ -183,7 +183,7 @@ class SlideLeftRoute extends PageRouteBuilder {
             Animation<double> animation,
             Animation<double> secondaryAnimation,
           ) =>
-              page,
+              page!,
           transitionsBuilder: (
             BuildContext context,
             Animation<double> animation,
@@ -207,7 +207,7 @@ class GeckoSpeechAppBar extends StatelessWidget with PreferredSizeWidget {
 
   GeckoSpeechAppBar(
     this.title, {
-    Key key,
+    Key? key,
   })  : preferredSize = const Size.fromHeight(105.4),
         super(key: key);
 
diff --git a/lib/screens/history.dart b/lib/screens/history.dart
index 7a1de5a59da1061ef1c63292ee53735d83887c52..8ed13fda7599997f50006a629f5f10d8ce52b8af 100644
--- a/lib/screens/history.dart
+++ b/lib/screens/history.dart
@@ -12,16 +12,16 @@ import 'package:provider/provider.dart';
 
 // ignore: must_be_immutable
 class HistoryScreen extends StatelessWidget with ChangeNotifier {
-  HistoryScreen({@required this.pubkey, this.avatar, this.username, Key key})
+  HistoryScreen({required this.pubkey, this.avatar, this.username, Key? key})
       : super(key: key);
   final ScrollController scrollController = ScrollController();
   final double avatarsSize = 80;
-  final String pubkey;
-  final String username;
-  final Image avatar;
+  final String? pubkey;
+  final String? username;
+  final Image? avatar;
 
-  FetchMore fetchMore;
-  FetchMoreOptions opts;
+  FetchMore? fetchMore;
+  FetchMoreOptions? opts;
 
   final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
 
@@ -32,8 +32,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
         Provider.of<WalletsProfilesProvider>(context, listen: false);
     CesiumPlusProvider _cesiumPlusProvider =
         Provider.of<CesiumPlusProvider>(context, listen: false);
-    log.i('Build pubkey : ' + pubkey);
-    WidgetsBinding.instance.addPostFrameCallback((_) {});
+    log.i('Build pubkey : ' + pubkey!);
+    WidgetsBinding.instance!.addPostFrameCallback((_) {});
 
     _historyProvider.balance = _historyProvider.transBC = null;
 
@@ -72,7 +72,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
             },
           ),
           builder: (QueryResult result, {fetchMore, refetch}) {
-            if (result.isLoading && result?.data == null) {
+            if (result.isLoading && result.data == null) {
               return const Center(
                 child: CircularProgressIndicator(),
               );
@@ -87,7 +87,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                   style: TextStyle(fontSize: 18),
                 )
               ]);
-            } else if (result?.data == null) {
+            } else if (result.data == null) {
               return Column(children: const <Widget>[
                 SizedBox(height: 50),
                 Text(
@@ -97,11 +97,11 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
               ]);
             }
 
-            if (result?.data['balance'] == null) {
+            if (result.data!['balance'] == null) {
               _historyProvider.balance = 0.0;
             } else {
               _historyProvider.balance = _historyProvider
-                  .removeDecimalZero(result.data['balance']['amount'] / 100);
+                  .removeDecimalZero(result.data!['balance']['amount'] / 100);
             }
 
             if (result.isNotLoading) {
@@ -120,13 +120,13 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                     ),
                   ),
                 ),
-                onNotification: (t) {
+                onNotification: (dynamic t) {
                   if (t is ScrollEndNotification &&
                       scrollController.position.pixels >=
                           scrollController.position.maxScrollExtent * 0.7 &&
-                      _historyProvider.pageInfo['hasPreviousPage'] &&
+                      _historyProvider.pageInfo!['hasPreviousPage'] &&
                       result.isNotLoading) {
-                    fetchMore(opts);
+                    fetchMore!(opts!);
                   }
                   return true;
                 });
@@ -151,14 +151,14 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
         : Column(children: <Widget>[
             getTransactionTile(context, _historyProvider),
             if (result.isLoading &&
-                _historyProvider.pageInfo['hasPreviousPage'])
+                _historyProvider.pageInfo!['hasPreviousPage'])
               Row(
                 mainAxisAlignment: MainAxisAlignment.center,
                 children: const <Widget>[
                   CircularProgressIndicator(),
                 ],
               ),
-            if (!_historyProvider.pageInfo['hasPreviousPage'])
+            if (!_historyProvider.pageInfo!['hasPreviousPage'])
               Column(
                 children: const <Widget>[
                   SizedBox(height: 15),
@@ -176,8 +176,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
     CesiumPlusProvider _cesiumPlusProvider =
         Provider.of<CesiumPlusProvider>(context, listen: false);
     int keyID = 0;
-    String dateDelimiter;
-    String lastDateDelimiter;
+    String? dateDelimiter;
+    String? lastDateDelimiter;
     const double _avatarSize = 200;
 
     bool isTody = false;
@@ -200,15 +200,15 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
     };
 
     return Column(
-        children: _historyProvider.transBC.map((repository) {
+        children: _historyProvider.transBC!.map((repository) {
       DateTime now = DateTime.now();
       DateTime date = DateTime.fromMillisecondsSinceEpoch(repository[0] * 1000);
 
       String dateForm;
       if ({4, 10, 11, 12}.contains(date.month)) {
-        dateForm = "${date.day} ${monthsInYear[date.month].substring(0, 3)}.";
+        dateForm = "${date.day} ${monthsInYear[date.month]!.substring(0, 3)}.";
       } else if ({1, 2, 7, 9}.contains(date.month)) {
-        dateForm = "${date.day} ${monthsInYear[date.month].substring(0, 4)}.";
+        dateForm = "${date.day} ${monthsInYear[date.month]!.substring(0, 4)}.";
       } else {
         dateForm = "${date.day} ${monthsInYear[date.month]}";
       }
@@ -258,7 +258,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
           Padding(
             padding: const EdgeInsets.symmetric(vertical: 30),
             child: Text(
-              dateDelimiter,
+              dateDelimiter!,
               style: TextStyle(
                   fontSize: 23, color: orangeC, fontWeight: FontWeight.w300),
             ),
@@ -276,7 +276,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                           future: _cesiumPlusProvider.getAvatar(
                               repository[2], _avatarSize),
                           builder: (BuildContext context,
-                              AsyncSnapshot<Image> _avatar) {
+                              AsyncSnapshot<Image?> _avatar) {
                             if (_avatar.connectionState !=
                                     ConnectionState.done ||
                                 _avatar.hasError) {
@@ -295,11 +295,11 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                               ]);
                             }
                             if (_avatar.hasData) {
-                              g1WalletsBox.get(repository[2]).avatar =
-                                  _avatar?.data;
-                              return ClipOval(child: _avatar?.data);
+                              g1WalletsBox.get(repository[2])!.avatar =
+                                  _avatar.data;
+                              return ClipOval(child: _avatar.data);
                             } else {
-                              g1WalletsBox.get(repository[2]).avatar =
+                              g1WalletsBox.get(repository[2])!.avatar =
                                   _cesiumPlusProvider
                                       .defaultAvatar(repository[2]);
                               return _cesiumPlusProvider
@@ -308,7 +308,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                           })
                       : ClipOval(
                           child: Image(
-                            image: g1WalletsBox.get(repository[2]).avatar.image,
+                            image: g1WalletsBox.get(repository[2])!.avatar!.image,
                             height: _avatarSize,
                           ),
                         ),
@@ -407,7 +407,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                               _historyProvider.snackCopyKey(context);
                             },
                             child: Text(
-                              _historyProvider.getShortPubkey(pubkey),
+                              _historyProvider.getShortPubkey(pubkey!),
                               style: const TextStyle(
                                 fontSize: 30,
                                 fontWeight: FontWeight.w800,
@@ -425,17 +425,17 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                               },
                             ),
                             builder: (QueryResult result,
-                                {VoidCallback refetch, FetchMore fetchMore}) {
+                                {VoidCallback? refetch, FetchMore? fetchMore}) {
                               if (result.isLoading || result.hasException) {
                                 return const Text('...');
-                              } else if (result?.data['idty'] == null ||
-                                  result?.data['idty']['username'] == null) {
+                              } else if (result.data!['idty'] == null ||
+                                  result.data!['idty']['username'] == null) {
                                 return const Text('');
                               } else {
                                 return SizedBox(
                                   width: 230,
                                   child: Text(
-                                    result?.data['idty']['username'] ?? '',
+                                    result.data!['idty']['username'] ?? '',
                                     style: const TextStyle(
                                       fontSize: 27,
                                       color: Color(0xff814C00),
@@ -449,7 +449,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                           SizedBox(
                             width: 230,
                             child: Text(
-                              username,
+                              username!,
                               style: const TextStyle(
                                 fontSize: 27,
                                 color: Color(0xff814C00),
@@ -461,13 +461,13 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                   FutureBuilder(
                       future: _historyProvider.getBalance(pubkey),
                       builder:
-                          (BuildContext context, AsyncSnapshot<num> _balance) {
+                          (BuildContext context, AsyncSnapshot<num?> _balance) {
                         if (_balance.connectionState != ConnectionState.done ||
                             _balance.hasError) {
                           return const Text('...');
                         }
                         return Text(
-                          "${_balance?.data.toString()} Äž1",
+                          "${_balance.data.toString()} Äž1",
                           textAlign: TextAlign.center,
                           style: const TextStyle(
                               fontSize: 22, fontWeight: FontWeight.w500),
@@ -481,7 +481,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                 FutureBuilder(
                     future: _cesiumPlusProvider.getAvatar(pubkey, _avatarSize),
                     builder:
-                        (BuildContext context, AsyncSnapshot<Image> _avatar) {
+                        (BuildContext context, AsyncSnapshot<Image?> _avatar) {
                       if (_avatar.connectionState != ConnectionState.done) {
                         return Stack(children: [
                           ClipOval(
@@ -507,13 +507,13 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                             Navigator.push(
                               context,
                               MaterialPageRoute(builder: (context) {
-                                return AvatarFullscreen(_avatar?.data);
+                                return AvatarFullscreen(_avatar.data);
                               }),
                             );
                           },
                           child: ClipOval(
                             child: Image(
-                              image: _avatar?.data?.image,
+                              image: _avatar.data!.image,
                               height: _avatarSize,
                               fit: BoxFit.cover,
                             ),
@@ -537,7 +537,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                   },
                   child: ClipOval(
                     child: Image(
-                      image: avatar.image,
+                      image: avatar!.image,
                       height: _avatarSize,
                       fit: BoxFit.cover,
                     ),
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 4c65be5edd56aa7e14cbcd637a4f3af0ee90512a..0523d23c6887a0a3a02db482f1a0a5072463379b 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -15,7 +15,7 @@ import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
 
 class HomeScreen extends StatelessWidget {
-  const HomeScreen({Key key}) : super(key: key);
+  const HomeScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -84,7 +84,7 @@ class HomeScreen extends StatelessWidget {
       body: Builder(
         builder: (ctx) => StatefulWrapper(
             onInit: () {
-              WidgetsBinding.instance.addPostFrameCallback((_) {
+              WidgetsBinding.instance!.addPostFrameCallback((_) {
                 if (isWalletsExists) homeClass.snackNode(ctx);
               });
             },
@@ -254,7 +254,7 @@ Widget geckHome(context) {
                                   image: AssetImage('assets/home/wallet.png'),
                                   height: 75)),
                           onTap: () {
-                            WalletData defaultWallet =
+                            WalletData? defaultWallet =
                                 _myWalletProvider.getDefaultWallet(
                                     configBox.get('currentChest'));
                             Navigator.push(
@@ -513,7 +513,7 @@ Widget welcomeHome(context) {
 class StatefulWrapper extends StatefulWidget {
   final Function onInit;
   final Widget child;
-  const StatefulWrapper({Key key, @required this.onInit, @required this.child})
+  const StatefulWrapper({Key? key, required this.onInit, required this.child})
       : super(key: key);
   @override
   _StatefulWrapperState createState() => _StatefulWrapperState();
@@ -522,9 +522,7 @@ class StatefulWrapper extends StatefulWidget {
 class _StatefulWrapperState extends State<StatefulWrapper> {
   @override
   void initState() {
-    if (widget.onInit != null) {
-      widget.onInit();
-    }
+    widget.onInit();
     super.initState();
   }
 
@@ -534,7 +532,7 @@ class _StatefulWrapperState extends State<StatefulWrapper> {
   }
 }
 
-Widget bubbleSpeak(String text, {double long, Key textKey}) {
+Widget bubbleSpeak(String text, {double? long, Key? textKey}) {
   return Bubble(
     padding: long == null
         ? const BubbleEdges.all(20)
diff --git a/lib/screens/myWallets/cesium_wallet_options.dart b/lib/screens/myWallets/cesium_wallet_options.dart
index a6509f5c43ab60cc9d10cee40d87c298df4788d9..d71bd46605632e3e5023ed41bf2591e06927275c 100644
--- a/lib/screens/myWallets/cesium_wallet_options.dart
+++ b/lib/screens/myWallets/cesium_wallet_options.dart
@@ -1,3 +1,4 @@
+import 'dart:async';
 import 'dart:io';
 import 'dart:ui';
 import 'package:flutter/material.dart';
@@ -20,7 +21,7 @@ bool _isNewNameValid = false;
 
 class CesiumWalletOptions extends StatelessWidget {
   const CesiumWalletOptions(
-      {Key key, Key keyMyWallets, @required this.cesiumWallet})
+      {Key? key, Key? keyMyWallets, required this.cesiumWallet})
       : super(key: key);
 
   final ChestData cesiumWallet;
@@ -40,9 +41,8 @@ class CesiumWalletOptions extends StatelessWidget {
     final String shortPubkey =
         _walletOptions.getShortPubkey(_walletOptions.pubkey.text);
 
-    if (_walletOptions.nameController.text == null ||
-        _isNewNameValid == false) {
-      _walletOptions.nameController.text = cesiumWallet.name;
+    if (_isNewNameValid == false) {
+      _walletOptions.nameController.text = cesiumWallet.name!;
     } else {
       cesiumWallet.name = _walletOptions.nameController.text;
     }
@@ -106,10 +106,8 @@ class CesiumWalletOptions extends StatelessWidget {
                     const SizedBox(width: 25),
                     InkWell(
                       onTap: () async {
-                        File newAvatar = await _walletOptions.changeAvatar();
-                        if (newAvatar != null) {
+                        File newAvatar = await (_walletOptions.changeAvatar() as FutureOr<File>);
                           cesiumWallet.imageFile = newAvatar;
-                        }
                         _walletOptions.reloadBuild();
                       },
                       child: cesiumWallet.imageFile == null
@@ -117,14 +115,12 @@ class CesiumWalletOptions extends StatelessWidget {
                               'assets/chests/${cesiumWallet.imageName}',
                               width: 110,
                             )
-                          : Image.file(cesiumWallet.imageFile, width: 110),
+                          : Image.file(cesiumWallet.imageFile!, width: 110),
                     ),
                     InkWell(
                         onTap: () async {
-                          File newAvatar = await _walletOptions.changeAvatar();
-                          if (newAvatar != null) {
+                          File newAvatar = await (_walletOptions.changeAvatar() as FutureOr<File>);
                             cesiumWallet.imageFile = newAvatar;
-                          }
                           _walletOptions.reloadBuild();
                         },
                         child: Column(children: <Widget>[
@@ -170,7 +166,7 @@ class CesiumWalletOptions extends StatelessWidget {
                               // pollInterval: Duration(seconds: 1),
                             ),
                             builder: (QueryResult result,
-                                {VoidCallback refetch, FetchMore fetchMore}) {
+                                {VoidCallback? refetch, FetchMore? fetchMore}) {
                               if (result.hasException) {
                                 return Text(result.exception.toString());
                               }
@@ -181,13 +177,13 @@ class CesiumWalletOptions extends StatelessWidget {
 
                               // List repositories = result.data['viewer']['repositories']['nodes'];
                               String wBalanceUD;
-                              if (result.data['balance'] == null) {
+                              if (result.data!['balance'] == null) {
                                 wBalanceUD = '0.0';
                               } else {
                                 int wBalanceG1 =
-                                    result.data['balance']['amount'];
+                                    result.data!['balance']['amount'];
                                 int currentUD =
-                                    result.data['currentUd']['amount'];
+                                    result.data!['currentUd']['amount'];
                                 double wBalanceUDBrut =
                                     wBalanceG1 / currentUD; // .toString();
                                 wBalanceUD = double.parse(
@@ -357,7 +353,7 @@ class CesiumWalletOptions extends StatelessWidget {
                 key: const Key('changePin'),
                 onTap: () async {
                   // await _chestProvider.changePin(context, cesiumWallet);
-                  String newPin = await Navigator.push(
+                  String? newPin = await Navigator.push(
                     context,
                     MaterialPageRoute(
                       builder: (context) {
diff --git a/lib/screens/myWallets/change_pin.dart b/lib/screens/myWallets/change_pin.dart
index be4e011d882b360d9f7ed66eee61aa92be7f8b08..17b1a823b21f7df33eea19458a2dc7bcf2092049 100644
--- a/lib/screens/myWallets/change_pin.dart
+++ b/lib/screens/myWallets/change_pin.dart
@@ -10,13 +10,13 @@ import 'package:provider/provider.dart';
 // ignore: must_be_immutable
 class ChangePinScreen extends StatelessWidget with ChangeNotifier {
   ChangePinScreen(
-      {Key keyMyWallets,
-      @required this.walletName,
-      @required this.walletProvider})
+      {Key? keyMyWallets,
+      required this.walletName,
+      required this.walletProvider})
       : super(key: keyMyWallets);
-  final String walletName;
+  final String? walletName;
   final MyWalletsProvider walletProvider;
-  Directory appPath;
+  Directory? appPath;
 
   @override
   Widget build(BuildContext context) {
@@ -41,7 +41,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
               }),
           title: SizedBox(
             height: 22,
-            child: Text(walletName),
+            child: Text(walletName!),
           ),
         ),
         body: Center(
@@ -98,7 +98,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
                   onPressed: () {
                     NewWallet _newWalletFile = _changePin.changePin(
                         walletProvider.pinCode,
-                        newCustomPin: _changePin.newPin.text);
+                        newCustomPin: _changePin.newPin.text)!;
                     _changePin.newPin.text = '';
                     _changePin.storeNewPinChest(context, _newWalletFile);
                     walletProvider.pinCode = _changePin.newPin.text;
@@ -120,7 +120,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
 class StatefulWrapper extends StatefulWidget {
   final Function onInit;
   final Widget child;
-  const StatefulWrapper({Key key, @required this.onInit, @required this.child})
+  const StatefulWrapper({Key? key, required this.onInit, required this.child})
       : super(key: key);
   @override
   _StatefulWrapperState createState() => _StatefulWrapperState();
@@ -129,9 +129,7 @@ class StatefulWrapper extends StatefulWidget {
 class _StatefulWrapperState extends State<StatefulWrapper> {
   @override
   void initState() {
-    if (widget.onInit != null) {
-      widget.onInit();
-    }
+    widget.onInit();
     super.initState();
   }
 
diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart
index 95f5ea7892b37c6286d665017d91fd8c3bf26867..3941562c98982aa8c90b6bda12d830eb61bfeebc 100644
--- a/lib/screens/myWallets/chest_options.dart
+++ b/lib/screens/myWallets/chest_options.dart
@@ -8,7 +8,7 @@ import 'package:gecko/screens/myWallets/change_pin.dart';
 import 'package:provider/provider.dart';
 
 class ChestOptions extends StatelessWidget {
-  const ChestOptions({Key keyMyWallets, @required this.walletProvider})
+  const ChestOptions({Key? keyMyWallets, required this.walletProvider})
       : super(key: keyMyWallets);
   final MyWalletsProvider walletProvider;
 
@@ -18,7 +18,7 @@ class ChestOptions extends StatelessWidget {
     ChestProvider _chestProvider =
         Provider.of<ChestProvider>(context, listen: false);
 
-    ChestData currentChest = chestBox.get(configBox.get('currentChest'));
+    ChestData currentChest = chestBox.get(configBox.get('currentChest'))!;
 
     return Scaffold(
       resizeToAvoidBottomInset: false,
@@ -34,7 +34,7 @@ class ChestOptions extends StatelessWidget {
               }),
           title: SizedBox(
             height: 22,
-            child: Text(currentChest.name),
+            child: Text(currentChest.name!),
           )),
       body: Builder(
         builder: (ctx) => SafeArea(
@@ -44,7 +44,7 @@ class ChestOptions extends StatelessWidget {
               key: const Key('changePin'),
               onTap: () async {
                 // await _chestProvider.changePin(context, cesiumWallet);
-                String pinResult = await Navigator.push(
+                String? pinResult = await Navigator.push(
                   context,
                   MaterialPageRoute(
                     builder: (context) {
diff --git a/lib/screens/myWallets/choose_chest.dart b/lib/screens/myWallets/choose_chest.dart
index 7179903d187a71ec0a5aa201892d802fc7095145..1d2622f8794fbfd4e9b234b62ac018774111f929 100644
--- a/lib/screens/myWallets/choose_chest.dart
+++ b/lib/screens/myWallets/choose_chest.dart
@@ -9,8 +9,8 @@ import 'package:carousel_slider/carousel_slider.dart';
 import 'package:provider/provider.dart';
 
 class ChooseChest extends StatefulWidget {
-  const ChooseChest({this.action, Key key}) : super(key: key);
-  final String action;
+  const ChooseChest({this.action, Key? key}) : super(key: key);
+  final String? action;
 
   @override
   State<StatefulWidget> createState() {
@@ -22,7 +22,7 @@ class ChooseChest extends StatefulWidget {
 class _ChooseChestState extends State<ChooseChest> {
   TextEditingController tplController = TextEditingController();
   CarouselController buttonCarouselController = CarouselController();
-  int currentChest = configBox.get('currentChest');
+  int? currentChest = configBox.get('currentChest');
 
   @override
   Widget build(BuildContext context) {
@@ -51,7 +51,7 @@ class _ChooseChestState extends State<ChooseChest> {
                   setState(() {});
                 },
                 enableInfiniteScroll: false,
-                initialPage: currentChest,
+                initialPage: currentChest!,
                 enlargeCenterPage: true,
                 viewportFraction: 0.6,
               ),
@@ -65,12 +65,12 @@ class _ChooseChestState extends State<ChooseChest> {
                               height: 150,
                             )
                           : Image.file(
-                              i.value.imageFile,
+                              i.value.imageFile!,
                               height: 150,
                             ),
                       const SizedBox(height: 30),
                       Text(
-                        i.value.name,
+                        i.value.name!,
                         style: const TextStyle(fontSize: 21),
                       ),
                     ]);
@@ -113,7 +113,7 @@ class _ChooseChestState extends State<ChooseChest> {
                 ),
                 onPressed: () {
                   configBox.put('currentChest', currentChest);
-                  WalletData defaultWallet =
+                  WalletData? defaultWallet =
                       _myWalletProvider.getDefaultWallet(currentChest);
                   _myWalletProvider.rebuildWidget();
                   Navigator.pushAndRemoveUntil(
diff --git a/lib/screens/myWallets/confirm_wallet_storage.dart b/lib/screens/myWallets/confirm_wallet_storage.dart
index 0cab27fa3d9d6cdf17b025cea0b569b49a70f2fa..5e86205a6233fcae725b902b4dbbb7bade0e5abd 100644
--- a/lib/screens/myWallets/confirm_wallet_storage.dart
+++ b/lib/screens/myWallets/confirm_wallet_storage.dart
@@ -11,13 +11,13 @@ import 'package:provider/provider.dart';
 // ignore: must_be_immutable
 class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
   ConfirmStoreWallet({
-    Key validationKey,
-    @required this.generatedMnemonic,
-    @required this.generatedWallet,
+    Key? validationKey,
+    required this.generatedMnemonic,
+    required this.generatedWallet,
   }) : super(key: validationKey);
 
-  String generatedMnemonic;
-  NewWallet generatedWallet;
+  String? generatedMnemonic;
+  NewWallet? generatedWallet;
 
   final TextEditingController _mnemonicController = TextEditingController();
   final TextEditingController _inputRestoreWord = TextEditingController();
@@ -31,9 +31,9 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
         Provider.of<GenerateWalletsProvider>(context);
     MyWalletsProvider _myWalletProvider =
         Provider.of<MyWalletsProvider>(context);
-    final int _currentChest = _myWalletProvider.getCurrentChest();
+    final int? _currentChest = _myWalletProvider.getCurrentChest();
 
-    _mnemonicController.text = generatedMnemonic;
+    _mnemonicController.text = generatedMnemonic!;
     return WillPopScope(
         onWillPop: () {
           _generateWalletProvider.isAskedWordValid = false;
@@ -135,7 +135,7 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
                                     walletName.text != '')
                                 ? () async {
                                     _generateWalletProvider.storeHDWChest(
-                                        generatedWallet,
+                                        generatedWallet!,
                                         walletName.text,
                                         context);
                                     _generateWalletProvider.isAskedWordValid =
diff --git a/lib/screens/myWallets/generate_wallets.dart b/lib/screens/myWallets/generate_wallets.dart
index bad81b328bda65a75b0279892e0559cd4aa01756..74eafeb801cc2f124ce7838ed9dc8c522ed54980 100644
--- a/lib/screens/myWallets/generate_wallets.dart
+++ b/lib/screens/myWallets/generate_wallets.dart
@@ -10,7 +10,7 @@ import 'package:super_tooltip/super_tooltip.dart';
 
 // ignore: must_be_immutable
 class GenerateFastChestScreen extends StatelessWidget {
-  SuperTooltip tooltip;
+  SuperTooltip? tooltip;
   bool hasError = false;
   String validPin = 'NO PIN';
   String currentText = "";
@@ -19,7 +19,7 @@ class GenerateFastChestScreen extends StatelessWidget {
   final GlobalKey _toolTipSentence = GlobalKey();
   final GlobalKey _toolTipSecret = GlobalKey();
 
-  GenerateFastChestScreen({Key key}) : super(key: key);
+  GenerateFastChestScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -30,7 +30,7 @@ class GenerateFastChestScreen extends StatelessWidget {
     if (_generateWalletProvider.mnemonicController.text == '') {
       _generateWalletProvider.generateWordList();
       _generateWalletProvider.mnemonicController.text =
-          _generateWalletProvider.generatedMnemonic;
+          _generateWalletProvider.generatedMnemonic!;
       _generateWalletProvider.pin.text = randomSecretCode(5);
     }
 
@@ -50,7 +50,7 @@ class GenerateFastChestScreen extends StatelessWidget {
               onPressed: () {
                 _generateWalletProvider.generateWordList();
                 _generateWalletProvider.mnemonicController.text =
-                    _generateWalletProvider.generatedMnemonic;
+                    _generateWalletProvider.generatedMnemonic!;
               },
               child: SizedBox(
                 height: 40.0,
@@ -118,7 +118,7 @@ class GenerateFastChestScreen extends StatelessWidget {
                                 _generateWalletProvider.actualWallet = Dewif()
                                     .generateDewif(
                                         _generateWalletProvider
-                                            .generatedMnemonic,
+                                            .generatedMnemonic!,
                                         _generateWalletProvider.pin.text,
                                         lang: 'french');
                                 await Navigator.push(
@@ -189,9 +189,9 @@ class GenerateFastChestScreen extends StatelessWidget {
 
 // ignore: must_be_immutable
 class PrintWallet extends StatelessWidget {
-  const PrintWallet(this.sentence, {Key key}) : super(key: key);
+  const PrintWallet(this.sentence, {Key? key}) : super(key: key);
 
-  final String sentence;
+  final String? sentence;
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/myWallets/import_cesium_wallet.dart b/lib/screens/myWallets/import_cesium_wallet.dart
index e4c56b24cd1fa2e4b88322c7ad81cf5401ec5005..84a1052d501564d88237fdf3c94f87c86dc3824a 100644
--- a/lib/screens/myWallets/import_cesium_wallet.dart
+++ b/lib/screens/myWallets/import_cesium_wallet.dart
@@ -11,13 +11,13 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
 import 'package:provider/provider.dart';
 
 class ImportWalletScreen extends StatelessWidget {
-  const ImportWalletScreen({Key key}) : super(key: key);
+  const ImportWalletScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
     GlobalKey _toolTipSecret = GlobalKey();
-    Timer _debounce;
+    Timer? _debounce;
     GenerateWalletsProvider _generateWalletProvider =
         Provider.of<GenerateWalletsProvider>(context, listen: false);
     WalletOptionsProvider _walletOptions =
@@ -54,7 +54,7 @@ class ImportWalletScreen extends StatelessWidget {
                   autofocus: true,
                   onChanged: (text) {
                     if (_debounce?.isActive ?? false) {
-                      _debounce.cancel();
+                      _debounce!.cancel();
                     }
                     _debounce = Timer(const Duration(milliseconds: 600), () {
                       walletProvider
@@ -92,7 +92,7 @@ class ImportWalletScreen extends StatelessWidget {
                 return TextFormField(
                   onChanged: (text) {
                     if (_debounce?.isActive ?? false) {
-                      _debounce.cancel();
+                      _debounce!.cancel();
                     }
                     _debounce = Timer(const Duration(milliseconds: 600), () {
                       walletProvider
diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart
index a63a653f3c08455d11e02e81d1e077636452a87c..2e1f47762d47013d44aef31e6d88d005827a6a26 100644
--- a/lib/screens/myWallets/restore_chest.dart
+++ b/lib/screens/myWallets/restore_chest.dart
@@ -10,7 +10,7 @@ import 'package:provider/provider.dart';
 // import 'package:provider/provider.dart';
 
 class RestoreChest extends StatelessWidget {
-  const RestoreChest({Key key}) : super(key: key);
+  const RestoreChest({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -160,7 +160,7 @@ class RestoreChest extends StatelessWidget {
     );
   }
 
-  Future<bool> badMnemonicPopup(BuildContext context) async {
+  Future<bool?> badMnemonicPopup(BuildContext context) async {
     return showDialog<bool>(
       context: context,
       barrierDismissible: true, // user must tap button!
diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart
index 9370d25bf5c13bd1ceaa94fb6166938567f4edf1..3e3f71a6d54d0c83eafd550f711bdc73f748e0cb 100644
--- a/lib/screens/myWallets/unlocking_wallet.dart
+++ b/lib/screens/myWallets/unlocking_wallet.dart
@@ -15,17 +15,17 @@ import 'package:gecko/globals.dart';
 // ignore: must_be_immutable
 class UnlockingWallet extends StatelessWidget {
   UnlockingWallet(
-      {Key keyUnlockWallet, @required this.wallet, @required this.action})
+      {Key? keyUnlockWallet, required this.wallet, required this.action})
       : super(key: keyUnlockWallet);
-  WalletData wallet;
+  WalletData? wallet;
   String action;
 
   // ignore: close_sinks
-  StreamController<ErrorAnimationType> errorController;
+  StreamController<ErrorAnimationType>? errorController;
   final formKey = GlobalKey<FormState>();
-  var pinColor = const Color(0xffF9F9F1);
+  Color? pinColor = const Color(0xffF9F9F1);
   var walletPin = '';
-  String resultPay;
+  String? resultPay;
 
   @override
   Widget build(BuildContext context) {
@@ -35,13 +35,13 @@ class UnlockingWallet extends StatelessWidget {
     final double statusBarHeight = MediaQuery.of(context).padding.top;
 
     int _pinLenght;
-    ChestData currentChest = chestBox.get(configBox.get('currentChest'));
+    ChestData currentChest = chestBox.get(configBox.get('currentChest'))!;
 
-    if (currentChest.isCesium) {
+    if (currentChest.isCesium!) {
       _pinLenght = _walletOptions.getPinLenght(currentChest.dewif);
       wallet = WalletData(derivation: -1, chest: currentChest.key);
     } else {
-      _pinLenght = _walletOptions.getPinLenght(wallet.number);
+      _pinLenght = _walletOptions.getPinLenght(wallet!.number);
     }
     errorController = StreamController<ErrorAnimationType>();
 
@@ -77,14 +77,14 @@ class UnlockingWallet extends StatelessWidget {
                               width: isTall ? 130 : 100,
                             )
                           : Image.file(
-                              currentChest.imageFile,
+                              currentChest.imageFile!,
                               width: isTall ? 130 : 100,
                             ),
                       const SizedBox(width: 5),
                       SizedBox(
                           width: 250,
                           child: Text(
-                            currentChest.name,
+                            currentChest.name!,
                             textAlign: TextAlign.center,
                             style: const TextStyle(
                                 fontSize: 25,
@@ -165,7 +165,7 @@ class UnlockingWallet extends StatelessWidget {
             obscuringCharacter: '*',
             animationType: AnimationType.fade,
             validator: (v) {
-              if (v.length < _pinLenght) {
+              if (v!.length < _pinLenght) {
                 return "Votre code PIN fait $_pinLenght caractères";
               } else {
                 return null;
@@ -198,8 +198,8 @@ class UnlockingWallet extends StatelessWidget {
             onCompleted: (_pin) async {
               log.d("Completed");
               _myWalletProvider.pinCode = _pin;
-              final String resultWallet = _walletOptions.readLocalWallet(
-                  context, wallet, _pin.toUpperCase(), _pinLenght);
+              final String? resultWallet = _walletOptions.readLocalWallet(
+                  context, wallet!, _pin.toUpperCase(), _pinLenght);
               // _myWalletProvider.pinCode = _pin.toUpperCase();
               _myWalletProvider.pinLenght = _pinLenght;
 
@@ -213,7 +213,7 @@ class UnlockingWallet extends StatelessWidget {
                 pinColor = Colors.green[400];
                 // await Future.delayed(Duration(milliseconds: 50));
                 if (action == "mywallets") {
-                  currentChest.isCesium
+                  currentChest.isCesium!
                       ? Navigator.push(
                           context,
                           MaterialPageRoute(builder: (context) {
@@ -222,7 +222,7 @@ class UnlockingWallet extends StatelessWidget {
                           }),
                         )
                       : Navigator.pushNamed(
-                          formKey.currentContext, '/mywallets');
+                          formKey.currentContext!, '/mywallets');
                 } else if (action == "pay") {
                   resultPay =
                       await _historyProvider.pay(context, _pin.toUpperCase());
@@ -239,7 +239,7 @@ class UnlockingWallet extends StatelessWidget {
     );
   }
 
-  Future<bool> _paymentsResult(context) {
+  Future<bool?> _paymentsResult(context) {
     if (resultPay != "success") log.i(resultPay);
     return showDialog<bool>(
       context: context,
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index 62650e27cfb8f8d028eeac0403931433fc38bb83..9585b44c58fa76f2e5c64b5d5d241ea914e29650 100644
--- a/lib/screens/myWallets/wallet_options.dart
+++ b/lib/screens/myWallets/wallet_options.dart
@@ -1,3 +1,4 @@
+import 'dart:async';
 import 'dart:io';
 import 'dart:ui';
 import 'package:flutter/material.dart';
@@ -15,7 +16,7 @@ import 'package:qr_flutter/qr_flutter.dart';
 
 // ignore: must_be_immutable
 class WalletOptions extends StatelessWidget {
-  WalletOptions({Key keyMyWallets, @required this.wallet})
+  WalletOptions({Key? keyMyWallets, required this.wallet})
       : super(key: keyMyWallets);
   WalletData wallet;
   int _nbrLinesName = 1;
@@ -33,13 +34,12 @@ class WalletOptions extends StatelessWidget {
 
     log.d(_walletOptions.pubkey.text);
 
-    final int _currentChest = _myWalletProvider.getCurrentChest();
+    final int? _currentChest = _myWalletProvider.getCurrentChest();
     final String shortPubkey =
         _walletOptions.getShortPubkey(_walletOptions.pubkey.text);
 
-    if (_walletOptions.nameController.text == null ||
-        _isNewNameValid == false) {
-      _walletOptions.nameController.text = wallet.name;
+    if (_isNewNameValid == false) {
+      _walletOptions.nameController.text = wallet.name!;
     } else {
       wallet.name = _walletOptions.nameController.text;
     }
@@ -52,11 +52,11 @@ class WalletOptions extends StatelessWidget {
     }
 
     WalletData defaultWallet =
-        _myWalletProvider.getDefaultWallet(_currentChest);
+        _myWalletProvider.getDefaultWallet(_currentChest)!;
 
     _walletOptions.isDefaultWallet = (defaultWallet.number == wallet.id()[1]);
 
-    int currentChest = _myWalletProvider.getCurrentChest();
+    int? currentChest = _myWalletProvider.getCurrentChest();
 
     log.d("Wallet options: $currentChest:${wallet.number}");
 
@@ -116,10 +116,8 @@ class WalletOptions extends StatelessWidget {
                     const SizedBox(width: 25),
                     InkWell(
                       onTap: () async {
-                        File newAvatar = await walletProvider.changeAvatar();
-                        if (newAvatar != null) {
+                        File newAvatar = await (walletProvider.changeAvatar() as FutureOr<File>);
                           wallet.imageFile = newAvatar;
-                        }
                         walletProvider.reloadBuild();
                       },
                       child: wallet.imageFile == null
@@ -128,16 +126,14 @@ class WalletOptions extends StatelessWidget {
                               width: 110,
                             )
                           : Image.file(
-                              wallet.imageFile,
+                              wallet.imageFile!,
                               width: 110,
                             ),
                     ),
                     InkWell(
                         onTap: () async {
-                          File newAvatar = await walletProvider.changeAvatar();
-                          if (newAvatar != null) {
+                          File newAvatar = await (walletProvider.changeAvatar() as FutureOr<File>);
                             wallet.imageFile = newAvatar;
-                          }
                           walletProvider.reloadBuild();
                         },
                         child: Column(children: <Widget>[
@@ -183,7 +179,7 @@ class WalletOptions extends StatelessWidget {
                               // pollInterval: Duration(seconds: 1),
                             ),
                             builder: (QueryResult result,
-                                {VoidCallback refetch, FetchMore fetchMore}) {
+                                {VoidCallback? refetch, FetchMore? fetchMore}) {
                               if (result.hasException) {
                                 return Text(result.exception.toString());
                               }
@@ -194,15 +190,15 @@ class WalletOptions extends StatelessWidget {
 
                               // List repositories = result.data['viewer']['repositories']['nodes'];
                               String wBalanceUD;
-                              if (result.data['balance'] == null) {
+                              if (result.data!['balance'] == null) {
                                 wBalanceUD = '0.0';
                               } else if (result.hasException) {
                                 wBalanceUD = '?';
                               } else {
                                 int wBalanceG1 =
-                                    result.data['balance']['amount'];
+                                    result.data!['balance']['amount'];
                                 int currentUD =
-                                    result.data['currentUd']['amount'];
+                                    result.data!['currentUd']['amount'];
                                 double wBalanceUDBrut =
                                     wBalanceG1 / currentUD; // .toString();
                                 wBalanceUD = double.parse(
@@ -366,7 +362,7 @@ class WalletOptions extends StatelessWidget {
                                       width: 110,
                                     )
                                   : Image.file(
-                                      wallet.imageFile,
+                                      wallet.imageFile!,
                                       width: 110,
                                     ));
                         }),
@@ -393,7 +389,7 @@ class WalletOptions extends StatelessWidget {
                     onTap: !walletProvider.isDefaultWallet
                         ? () {
                             defaultWallet = wallet;
-                            chestBox.get(currentChest).defaultWallet =
+                            chestBox.get(currentChest)!.defaultWallet =
                                 wallet.number;
                             _myWalletProvider.readAllWallets(_currentChest);
                             _myWalletProvider.rebuildWidget();
@@ -432,7 +428,7 @@ class WalletOptions extends StatelessWidget {
                           ? () async {
                               await walletProvider.deleteWallet(
                                   context, wallet);
-                              WidgetsBinding.instance.addPostFrameCallback((_) {
+                              WidgetsBinding.instance!.addPostFrameCallback((_) {
                                 _myWalletProvider.listWallets =
                                     _myWalletProvider
                                         .readAllWallets(_currentChest);
diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart
index 74025c87f813a291c82e58fe1dcde5e23160fc14..f3057c9ca9d0586f9f37b3763bdb25a6265b17d9 100644
--- a/lib/screens/myWallets/wallets_home.dart
+++ b/lib/screens/myWallets/wallets_home.dart
@@ -13,7 +13,7 @@ import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
 
 class WalletsHome extends StatelessWidget {
-  const WalletsHome({Key key}) : super(key: key);
+  const WalletsHome({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -21,8 +21,8 @@ class WalletsHome extends StatelessWidget {
     MyWalletsProvider myWalletProvider =
         Provider.of<MyWalletsProvider>(context);
 
-    final int _currentChestNumber = myWalletProvider.getCurrentChest();
-    final ChestData _currentChest = chestBox.get(_currentChestNumber);
+    final int? _currentChestNumber = myWalletProvider.getCurrentChest();
+    final ChestData _currentChest = chestBox.get(_currentChestNumber)!;
     myWalletProvider.listWallets =
         myWalletProvider.readAllWallets(_currentChestNumber);
 
@@ -45,7 +45,7 @@ class WalletsHome extends StatelessWidget {
                   ModalRoute.withName('/'),
                 );
               }),
-          title: Text(_currentChest.name,
+          title: Text(_currentChest.name!,
               key: const Key('myWallets'),
               style: TextStyle(color: Colors.grey[850])),
           backgroundColor: const Color(0xffFFD58D),
@@ -146,7 +146,7 @@ class WalletsHome extends StatelessWidget {
     }
 
     List _listWallets = _myWalletProvider.listWallets;
-    WalletData defaultWallet =
+    WalletData? defaultWallet =
         _myWalletProvider.getDefaultWallet(configBox.get('currentChest'));
 
     return CustomScrollView(slivers: <Widget>[
@@ -158,7 +158,7 @@ class WalletsHome extends StatelessWidget {
           crossAxisSpacing: 0,
           mainAxisSpacing: 0,
           children: <Widget>[
-            for (WalletData _repository in _listWallets)
+            for (WalletData _repository in _listWallets as Iterable<WalletData>)
               Padding(
                   padding: const EdgeInsets.all(16),
                   child: GestureDetector(
@@ -196,7 +196,7 @@ class WalletsHome extends StatelessWidget {
                                 gradient: RadialGradient(
                               radius: 0.6,
                               colors: [
-                                Colors.green[400],
+                                Colors.green[400]!,
                                 const Color(0xFFE7E7A6),
                               ],
                             )),
@@ -210,7 +210,7 @@ class WalletsHome extends StatelessWidget {
                                         scale: 0.5,
                                       )
                                     : Image.file(
-                                        _repository.imageFile,
+                                        _repository.imageFile!,
                                         alignment: Alignment.bottomCenter,
                                         scale: 0.5,
                                       ),
@@ -222,7 +222,7 @@ class WalletsHome extends StatelessWidget {
                                     bottom: Radius.circular(12))),
                             // contentPadding: const EdgeInsets.only(left: 7.0),
                             tileColor:
-                                _repository.id()[1] == defaultWallet.id()[1]
+                                _repository.id()[1] == defaultWallet!.id()[1]
                                     ? orangeC
                                     : const Color(0xffFFD58D),
                             // leading: Text('IMAGE'),
@@ -234,7 +234,7 @@ class WalletsHome extends StatelessWidget {
                                 padding:
                                     const EdgeInsets.symmetric(horizontal: 5),
                                 child: Text(
-                                  _repository.name,
+                                  _repository.name!,
                                   textAlign: TextAlign.center,
                                   style: TextStyle(
                                       fontSize: 17.0,
@@ -287,7 +287,7 @@ class WalletsHome extends StatelessWidget {
           // pollInterval: Duration(seconds: 1),
         ),
         builder: (QueryResult result,
-            {VoidCallback refetch, FetchMore fetchMore}) {
+            {VoidCallback? refetch, FetchMore? fetchMore}) {
           if (result.hasException) {
             return Text(result.exception.toString());
           }
@@ -296,11 +296,11 @@ class WalletsHome extends StatelessWidget {
             return const Text('Loading');
           }
           String wBalanceUD;
-          if (result.data['balance'] == null) {
+          if (result.data!['balance'] == null) {
             wBalanceUD = '0.0';
           } else {
-            int wBalanceG1 = result.data['balance']['amount'];
-            int currentUD = result.data['currentUd']['amount'];
+            int wBalanceG1 = result.data!['balance']['amount'];
+            int currentUD = result.data!['currentUd']['amount'];
             double wBalanceUDBrut = wBalanceG1 / currentUD; // .toString();
             wBalanceUD =
                 double.parse((wBalanceUDBrut).toStringAsFixed(2)).toString();
@@ -314,7 +314,7 @@ class WalletsHome extends StatelessWidget {
         Provider.of<MyWalletsProvider>(context);
 
     String _newDerivationName =
-        'Portefeuille ${_myWalletProvider.listWallets.last.number + 2}';
+        'Portefeuille ${_myWalletProvider.listWallets.last.number! + 2}';
     return Padding(
         padding: const EdgeInsets.all(16),
         child: ClipRRect(
@@ -371,10 +371,10 @@ class ClipOvalShadow extends StatelessWidget {
   final Widget child;
 
   const ClipOvalShadow({
-    Key key,
-    @required this.shadow,
-    @required this.clipper,
-    @required this.child,
+    Key? key,
+    required this.shadow,
+    required this.clipper,
+    required this.child,
   }) : super(key: key);
 
   @override
@@ -393,7 +393,7 @@ class _ClipOvalShadowPainter extends CustomPainter {
   final Shadow shadow;
   final CustomClipper<Rect> clipper;
 
-  _ClipOvalShadowPainter({@required this.shadow, @required this.clipper});
+  _ClipOvalShadowPainter({required this.shadow, required this.clipper});
 
   @override
   void paint(Canvas canvas, Size size) {
diff --git a/lib/screens/onBoarding/0_no_keychain_found.dart b/lib/screens/onBoarding/0_no_keychain_found.dart
index 685bc27b19691fa2e1bf6b59802cf490eda54a43..12fe69957b6adaa2c52c294d70127f219531dff1 100644
--- a/lib/screens/onBoarding/0_no_keychain_found.dart
+++ b/lib/screens/onBoarding/0_no_keychain_found.dart
@@ -8,7 +8,7 @@ import 'package:gecko/screens/myWallets/import_cesium_wallet.dart';
 import 'package:gecko/screens/onBoarding/1.dart';
 
 class NoKeyChainScreen extends StatelessWidget {
-  const NoKeyChainScreen({Key key}) : super(key: key);
+  const NoKeyChainScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/1.dart b/lib/screens/onBoarding/1.dart
index 6cbd97c6e1e82f0cd55942e0e517fdef7204338b..9bd7cc5219b9ebab6ad61779c2c040e2bb5d85fc 100644
--- a/lib/screens/onBoarding/1.dart
+++ b/lib/screens/onBoarding/1.dart
@@ -13,7 +13,7 @@ class OnboardingStepOne extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 1;
 
-  OnboardingStepOne({Key key}) : super(key: key);
+  OnboardingStepOne({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/10.dart b/lib/screens/onBoarding/10.dart
index e90f72db619ef4022dcec713ca8959c76f77ae8a..8392644513cd6af5cd047bab009ce49dc447827c 100644
--- a/lib/screens/onBoarding/10.dart
+++ b/lib/screens/onBoarding/10.dart
@@ -11,7 +11,7 @@ class OnboardingStepTwelve extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 9;
 
-  OnboardingStepTwelve({Key key}) : super(key: key);
+  OnboardingStepTwelve({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/11.dart b/lib/screens/onBoarding/11.dart
index ecc5f4b35fe3e1d0e82ae5cd73b906760a3888ee..9c670eba7f443c3932803cc0ca8f4e9cd3c7567c 100644
--- a/lib/screens/onBoarding/11.dart
+++ b/lib/screens/onBoarding/11.dart
@@ -11,7 +11,7 @@ import 'package:provider/provider.dart';
 class OnboardingStepThirteen extends StatelessWidget {
   final int progress = 10;
 
-  const OnboardingStepThirteen({Key key}) : super(key: key);
+  const OnboardingStepThirteen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/12.dart b/lib/screens/onBoarding/12.dart
index 3e6b7f6548f87700f661d313d9c5f917f9ec8386..05345e2a53068f96103774eaa83878b9d3efc63d 100644
--- a/lib/screens/onBoarding/12.dart
+++ b/lib/screens/onBoarding/12.dart
@@ -16,12 +16,12 @@ import 'package:provider/provider.dart';
 // ignore: must_be_immutable
 class OnboardingStepFourteen extends StatelessWidget {
   OnboardingStepFourteen({
-    Key validationKey,
+    Key? validationKey,
   }) : super(key: validationKey);
 
   final int progress = 11;
   final formKey = GlobalKey<FormState>();
-  var pinColor = const Color(0xFFA4B600);
+  Color? pinColor = const Color(0xFFA4B600);
   bool hasError = false;
 
   @override
@@ -62,7 +62,7 @@ class OnboardingStepFourteen extends StatelessWidget {
     GenerateWalletsProvider _generateWalletProvider =
         Provider.of<GenerateWalletsProvider>(context);
 
-    final int _currentChest = _myWalletProvider.getCurrentChest();
+    final int? _currentChest = _myWalletProvider.getCurrentChest();
 
     return Form(
       key: formKey,
@@ -81,7 +81,7 @@ class OnboardingStepFourteen extends StatelessWidget {
             obscuringCharacter: '*',
             animationType: AnimationType.fade,
             validator: (v) {
-              if (v.length < _pinLenght) {
+              if (v!.length < _pinLenght) {
                 return "Votre code PIN fait $_pinLenght caractères";
               } else {
                 return null;
@@ -118,7 +118,7 @@ class OnboardingStepFourteen extends StatelessWidget {
               if (_pin.toUpperCase() == _generateWalletProvider.pin.text) {
                 pinColor = Colors.green[500];
                 NewWallet generatedWallet = Dewif().generateDewif(
-                    _generateWalletProvider.generatedMnemonic,
+                    _generateWalletProvider.generatedMnemonic!,
                     _generateWalletProvider.pin.text,
                     lang: 'french');
                 _generateWalletProvider.storeHDWChest(
diff --git a/lib/screens/onBoarding/13_congratulations.dart b/lib/screens/onBoarding/13_congratulations.dart
index ae2ec6f8fd9c0f7e31ef7e5e649b18aa71bf805f..4428bdd6d0addc13a4a41a653968543e4512aa42 100644
--- a/lib/screens/onBoarding/13_congratulations.dart
+++ b/lib/screens/onBoarding/13_congratulations.dart
@@ -10,7 +10,7 @@ class OnboardingStepFiveteen extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 12;
 
-  OnboardingStepFiveteen({Key key}) : super(key: key);
+  OnboardingStepFiveteen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/2.dart b/lib/screens/onBoarding/2.dart
index 19e2cbf04cd46033de43c0351126c0aec5b7502c..04c34950597611b77a7e94726084bb74da2eccb0 100644
--- a/lib/screens/onBoarding/2.dart
+++ b/lib/screens/onBoarding/2.dart
@@ -14,7 +14,7 @@ class OnboardingStepTwo extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 2;
 
-  OnboardingStepTwo({Key key}) : super(key: key);
+  OnboardingStepTwo({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/3.dart b/lib/screens/onBoarding/3.dart
index 815741b6026d7805467161a41da8e9546451e80e..41b9ec3dcba7dbe661bf86f95b593c46d6974349 100644
--- a/lib/screens/onBoarding/3.dart
+++ b/lib/screens/onBoarding/3.dart
@@ -11,7 +11,7 @@ class OnboardingStepFor extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 3;
 
-  OnboardingStepFor({Key key}) : super(key: key);
+  OnboardingStepFor({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/4.dart b/lib/screens/onBoarding/4.dart
index bd0317bca510a06ad030869eed22eb14852355e6..a06423190813b2364d4f9e0ee0a071ec5abf081f 100644
--- a/lib/screens/onBoarding/4.dart
+++ b/lib/screens/onBoarding/4.dart
@@ -11,7 +11,7 @@ class OnboardingStepFive extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 4;
 
-  OnboardingStepFive({Key key}) : super(key: key);
+  OnboardingStepFive({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/5.dart b/lib/screens/onBoarding/5.dart
index dbe5ee75ae81540be2ffbf2a48a7382e417ff6f7..7ca67f68f8943bdf8aaa89d98e18ca3984754cbc 100644
--- a/lib/screens/onBoarding/5.dart
+++ b/lib/screens/onBoarding/5.dart
@@ -11,7 +11,7 @@ class OnboardingStepSeven extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 5;
 
-  OnboardingStepSeven({Key key}) : super(key: key);
+  OnboardingStepSeven({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/6.dart b/lib/screens/onBoarding/6.dart
index 741947d97693defe721c23564a400383948938f4..0c677a5ee7d34075e6b4ad33ac9a2c0684d47b3e 100644
--- a/lib/screens/onBoarding/6.dart
+++ b/lib/screens/onBoarding/6.dart
@@ -12,7 +12,7 @@ class OnboardingStepEight extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 6;
 
-  OnboardingStepEight({Key key}) : super(key: key);
+  OnboardingStepEight({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/7.dart b/lib/screens/onBoarding/7.dart
index b49e759f95d033b64a27bb574754741379e98065..cda32c8572dcb5042e81226875edca63716f898e 100644
--- a/lib/screens/onBoarding/7.dart
+++ b/lib/screens/onBoarding/7.dart
@@ -14,7 +14,7 @@ class OnboardingStepNine extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 6;
 
-  OnboardingStepNine({Key key}) : super(key: key);
+  OnboardingStepNine({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -176,9 +176,9 @@ Widget arrayCell(dataWord) {
 
 // ignore: must_be_immutable
 class PrintWallet extends StatelessWidget {
-  const PrintWallet(this.sentence, {Key key}) : super(key: key);
+  const PrintWallet(this.sentence, {Key? key}) : super(key: key);
 
-  final String sentence;
+  final String? sentence;
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/onBoarding/8.dart b/lib/screens/onBoarding/8.dart
index 06de8ddacb03c468342454166a2db36c817c8d78..cca131098e87135ab6a774ce5d3c598b333c01cf 100644
--- a/lib/screens/onBoarding/8.dart
+++ b/lib/screens/onBoarding/8.dart
@@ -10,11 +10,11 @@ import 'package:provider/provider.dart';
 // ignore: must_be_immutable
 class OnboardingStepTen extends StatelessWidget {
   OnboardingStepTen({
-    Key validationKey,
-    @required this.generatedMnemonic,
+    Key? validationKey,
+    required this.generatedMnemonic,
   }) : super(key: validationKey);
 
-  String generatedMnemonic;
+  String? generatedMnemonic;
   TextEditingController tplController = TextEditingController();
   TextEditingController wordController = TextEditingController();
   final TextEditingController _mnemonicController = TextEditingController();
@@ -27,7 +27,7 @@ class OnboardingStepTen extends StatelessWidget {
     GenerateWalletsProvider _generateWalletProvider =
         Provider.of<GenerateWalletsProvider>(context);
     CommonElements common = CommonElements();
-    _mnemonicController.text = generatedMnemonic;
+    _mnemonicController.text = generatedMnemonic!;
 
     return WillPopScope(
         onWillPop: () {
@@ -70,7 +70,7 @@ class OnboardingStepTen extends StatelessWidget {
                     decoration: BoxDecoration(
                         borderRadius: BorderRadius.circular(7),
                         border: Border.all(
-                          color: Colors.grey[600],
+                          color: Colors.grey[600]!,
                           width: 3,
                         )),
                     width: 430,
diff --git a/lib/screens/onBoarding/9.dart b/lib/screens/onBoarding/9.dart
index 35b285ee1c826c3a0cd6889612dbb46d9428f7f9..bf0d938fdceedd4b07d1d51fa9ec55a81f38c7e4 100644
--- a/lib/screens/onBoarding/9.dart
+++ b/lib/screens/onBoarding/9.dart
@@ -11,7 +11,7 @@ class OnboardingStepEleven extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
   final int progress = 8;
 
-  OnboardingStepEleven({Key key}) : super(key: key);
+  OnboardingStepEleven({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/search.dart b/lib/screens/search.dart
index 39e43374f2f75bccfb1849a3c95ea9fe70d5fc60..5357a24402753c8cb8e2747f628a1ef84d520394 100644
--- a/lib/screens/search.dart
+++ b/lib/screens/search.dart
@@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
 // import 'package:provider/provider.dart';
 
 class SearchScreen extends StatelessWidget {
-  const SearchScreen({Key key}) : super(key: key);
+  const SearchScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -59,11 +59,11 @@ class SearchScreen extends StatelessWidget {
                     ),
                     border: OutlineInputBorder(
                         borderSide:
-                            BorderSide(color: Colors.grey[500], width: 2),
+                            BorderSide(color: Colors.grey[500]!, width: 2),
                         borderRadius: BorderRadius.circular(8)),
                     focusedBorder: OutlineInputBorder(
                       borderSide:
-                          BorderSide(color: Colors.grey[500], width: 2.5),
+                          BorderSide(color: Colors.grey[500]!, width: 2.5),
                       borderRadius: BorderRadius.circular(8),
                     ),
                     contentPadding: const EdgeInsets.all(20),
diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart
index bcaa6c07670ec686e72c029edb0adea50a4099a1..fabf899ef87d2d0ea8d3d9f0a937e07564d961f2 100644
--- a/lib/screens/search_result.dart
+++ b/lib/screens/search_result.dart
@@ -9,7 +9,7 @@ import 'package:gecko/screens/wallet_view.dart';
 import 'package:provider/provider.dart';
 
 class SearchResultScreen extends StatelessWidget {
-  const SearchResultScreen({Key key}) : super(key: key);
+  const SearchResultScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -64,11 +64,11 @@ class SearchResultScreen extends StatelessWidget {
             const SizedBox(height: 20),
             FutureBuilder(
               future: _searchProvider.searchBlockchain(),
-              builder: (context, snapshot) {
+              builder: (context, AsyncSnapshot<List?> snapshot) {
                 if (snapshot.connectionState == ConnectionState.done) {
                   return Expanded(
                     child: ListView(children: <Widget>[
-                      for (G1WalletsList g1Wallet in snapshot.data)
+                      for (G1WalletsList g1Wallet in snapshot.data ?? [])
                         Padding(
                           padding: const EdgeInsets.symmetric(horizontal: 5),
                           child: ListTile(
@@ -81,13 +81,13 @@ class SearchResultScreen extends StatelessWidget {
                                       null
                                   ? ClipOval(
                                       child: g1WalletsBox
-                                          .get(g1Wallet.pubkey)
+                                          .get(g1Wallet.pubkey)!
                                           .avatar)
                                   : FutureBuilder(
                                       future: _cesiumPlusProvider.getAvatar(
                                           g1Wallet.pubkey, _avatarSize),
                                       builder: (BuildContext context,
-                                          AsyncSnapshot<Image> _avatar) {
+                                          AsyncSnapshot<Image?> _avatar) {
                                         if (_avatar.connectionState !=
                                                 ConnectionState.done ||
                                             _avatar.hasError) {
@@ -108,12 +108,12 @@ class SearchResultScreen extends StatelessWidget {
                                         }
                                         if (_avatar.hasData) {
                                           g1WalletsBox
-                                              .get(g1Wallet.pubkey)
+                                              .get(g1Wallet.pubkey)!
                                               .avatar = _avatar.data;
                                           return ClipOval(child: _avatar.data);
                                         } else {
                                           g1WalletsBox
-                                                  .get(g1Wallet.pubkey)
+                                                  .get(g1Wallet.pubkey)!
                                                   .avatar =
                                               _cesiumPlusProvider
                                                   .defaultAvatar(_avatarSize);
@@ -124,7 +124,7 @@ class SearchResultScreen extends StatelessWidget {
                               title: Row(children: <Widget>[
                                 Text(
                                     _walletsProfilesClass
-                                        .getShortPubkey(g1Wallet.pubkey),
+                                        .getShortPubkey(g1Wallet.pubkey!),
                                     style: const TextStyle(
                                         fontSize: 18,
                                         fontFamily: 'Monospace',
@@ -132,7 +132,7 @@ class SearchResultScreen extends StatelessWidget {
                                     textAlign: TextAlign.center),
                               ]),
                               subtitle: Row(children: <Widget>[
-                                Text(g1Wallet?.id?.username ?? '',
+                                Text(g1Wallet.id?.username ?? '',
                                     style: const TextStyle(
                                         fontSize: 18,
                                         fontWeight: FontWeight.w500),
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index 9b6699ceb8f15a652a93a50cc865d51d980be823..8e69cdb3a49425efd221f71eb8117d8161299b20 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -9,20 +9,20 @@ import 'package:gecko/globals.dart';
 
 // ignore: must_be_immutable
 class SettingsScreen extends StatelessWidget {
-  String generatedMnemonic;
+  String? generatedMnemonic;
   bool walletIsGenerated = false;
-  NewWallet actualWallet;
-  String newWalletName;
+  NewWallet? actualWallet;
+  String? newWalletName;
 
   bool hasError = false;
   String validPin = 'NO PIN';
   String currentText = "";
   var pinColor = Colors.grey[300];
-  Directory appPath;
+  Directory? appPath;
 
   final MyWalletsProvider _myWallets = MyWalletsProvider();
 
-  SettingsScreen({Key key}) : super(key: key);
+  SettingsScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/template_screen.dart b/lib/screens/template_screen.dart
index e8858c78b21cfad4b1e97f012fb9faf46d506ba1..faa92eceefd042ff637c60e119f2ccae57e04785 100644
--- a/lib/screens/template_screen.dart
+++ b/lib/screens/template_screen.dart
@@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
 class TemplateScreen extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
 
-  TemplateScreen({Key key}) : super(key: key);
+  TemplateScreen({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index e474236ee65187fac6b9f71dc9adfbf919631e9b..f272948440703bde5df846685ceb60eafe1773ca 100644
--- a/lib/screens/wallet_view.dart
+++ b/lib/screens/wallet_view.dart
@@ -15,11 +15,11 @@ import 'package:provider/provider.dart';
 
 class WalletViewScreen extends StatelessWidget {
   const WalletViewScreen(
-      {@required this.pubkey, this.username, this.avatar, Key key})
+      {required this.pubkey, this.username, this.avatar, Key? key})
       : super(key: key);
-  final String pubkey;
-  final String username;
-  final Image avatar;
+  final String? pubkey;
+  final String? username;
+  final Image? avatar;
   final double buttonSize = 100;
   final double buttonFontSize = 18;
 
@@ -186,7 +186,7 @@ class WalletViewScreen extends StatelessWidget {
     //     Provider.of<WalletsProfilesProvider>(context);
     const double shapeSize = 20;
     MyWalletsProvider _myWalletProvider = MyWalletsProvider();
-    WalletData defaultWallet =
+    WalletData? defaultWallet =
         _myWalletProvider.getDefaultWallet(configBox.get('currentChest'));
 
     showModalBottomSheet<void>(
@@ -257,7 +257,7 @@ class WalletViewScreen extends StatelessWidget {
                               //     borderRadius: BorderRadius.circular(8)),
                               focusedBorder: OutlineInputBorder(
                                 borderSide: BorderSide(
-                                    color: Colors.grey[500], width: 2),
+                                    color: Colors.grey[500]!, width: 2),
                                 borderRadius: BorderRadius.circular(8),
                               ),
                               contentPadding: const EdgeInsets.all(20),
@@ -342,7 +342,7 @@ class WalletViewScreen extends StatelessWidget {
                         _historyProvider.snackCopyKey(context);
                       },
                       child: Text(
-                        _historyProvider.getShortPubkey(pubkey),
+                        _historyProvider.getShortPubkey(pubkey!),
                         style: const TextStyle(
                           fontSize: 30,
                           fontWeight: FontWeight.w800,
@@ -361,20 +361,20 @@ class WalletViewScreen extends StatelessWidget {
                         },
                       ),
                       builder: (QueryResult result,
-                          {VoidCallback refetch, FetchMore fetchMore}) {
+                          {VoidCallback? refetch, FetchMore? fetchMore}) {
                         if (result.isLoading || result.hasException) {
                           return const Text('...');
-                        } else if (result.data['idty'] == null ||
-                            result.data['idty']['username'] == null) {
+                        } else if (result.data!['idty'] == null ||
+                            result.data!['idty']['username'] == null) {
                           g1WalletsBox.get(pubkey)?.username = '';
                           return const Text('');
                         } else {
                           g1WalletsBox.get(pubkey)?.username =
-                              result?.data['idty']['username'] ?? '';
+                              result.data!['idty']['username'] ?? '';
                           return SizedBox(
                             width: 230,
                             child: Text(
-                              result?.data['idty']['username'] ?? '',
+                              result.data!['idty']['username'] ?? '',
                               style: const TextStyle(
                                 fontSize: 27,
                                 color: Color(0xff814C00),
@@ -389,7 +389,7 @@ class WalletViewScreen extends StatelessWidget {
                     SizedBox(
                       width: 230,
                       child: Text(
-                        g1WalletsBox.get(pubkey)?.username,
+                        g1WalletsBox.get(pubkey)?.username ?? '',
                         style: const TextStyle(
                           fontSize: 27,
                           color: Color(0xff814C00),
@@ -400,7 +400,7 @@ class WalletViewScreen extends StatelessWidget {
                     SizedBox(
                       width: 230,
                       child: Text(
-                        username,
+                        username!,
                         style: const TextStyle(
                           fontSize: 27,
                           color: Color(0xff814C00),
@@ -415,7 +415,7 @@ class WalletViewScreen extends StatelessWidget {
                         return SizedBox(
                           width: 230,
                           child: Text(
-                            snapshot.data ?? '-',
+                            snapshot.data.toString(),
                             style: const TextStyle(
                                 fontSize: 18, color: Colors.black),
                           ),
@@ -429,7 +429,7 @@ class WalletViewScreen extends StatelessWidget {
                 FutureBuilder(
                     future: _cesiumPlusProvider.getAvatar(pubkey, _avatarSize),
                     builder:
-                        (BuildContext context, AsyncSnapshot<Image> _avatar) {
+                        (BuildContext context, AsyncSnapshot<Image?> _avatar) {
                       if (_avatar.connectionState != ConnectionState.done) {
                         return Stack(children: [
                           ClipOval(
@@ -461,7 +461,7 @@ class WalletViewScreen extends StatelessWidget {
                           },
                           child: ClipOval(
                             child: Image(
-                              image: _avatar.data.image,
+                              image: _avatar.data!.image,
                               height: _avatarSize,
                               fit: BoxFit.cover,
                             ),
@@ -485,7 +485,7 @@ class WalletViewScreen extends StatelessWidget {
                   },
                   child: ClipOval(
                     child: Image(
-                      image: avatar.image,
+                      image: avatar!.image,
                       height: _avatarSize,
                       fit: BoxFit.cover,
                     ),
diff --git a/pubspec.yaml b/pubspec.yaml
index 1a8101d0216ec8c6583f87a04a0c370ef22cbe45..a240afe0ce653f884f72225a820bfda6ffbcd839 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -8,7 +8,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 version: 0.0.4+4
 
 environment:
-  sdk: ">=2.7.0 <3.0.0"
+  sdk: '>=2.12.0 <3.0.0'
 
 dependencies:  
   flutter:
diff --git a/test_driver/app_test.dart b/test_driver/app_test.dart
index 0efe479d18f4ece1df5f424eec3b32a27170cc64..029b13afd3edb2e4b7348e0dcf2116065d959a7a 100644
--- a/test_driver/app_test.dart
+++ b/test_driver/app_test.dart
@@ -15,19 +15,19 @@ void main() {
     final manageWalletsFinder = find.byValueKey('manageWallets');
     // final buttonFinder = find.byValueKey('increment');
 
-    FlutterDriver driver;
-    String pinCode;
+    FlutterDriver? driver;
+    String? pinCode;
 
     // Connect to the Flutter driver before running any tests.
     setUpAll(() async {
       driver = await FlutterDriver.connect();
-      await driver.waitUntilFirstFrameRasterized();
+      await driver!.waitUntilFirstFrameRasterized();
     });
 
     // Close the connection to the driver after the tests have completed.
     tearDownAll(() async {
       if (driver != null) {
-        driver.close();
+        driver!.close();
       }
     });
 
@@ -35,12 +35,12 @@ void main() {
 
     // Function to tap the widget by key
     Future tapOn(String key) async {
-      await driver.tap(find.byValueKey(key));
+      await driver!.tap(find.byValueKey(key));
     }
 
     // Easy get text
     Future<String> getText(String text) async {
-      return await driver.getText(find.byValueKey(
+      return await driver!.getText(find.byValueKey(
         text,
       ));
     }
@@ -63,7 +63,7 @@ void main() {
     Future<bool> isPresent(SerializableFinder byValueKey,
         {Duration timeout = const Duration(seconds: 1)}) async {
       try {
-        await driver.waitFor(byValueKey, timeout: timeout);
+        await driver!.waitFor(byValueKey, timeout: timeout);
         return true;
       } catch (exception) {
         return false;
@@ -97,7 +97,7 @@ void main() {
     }
 
     // Fast creation of new Keychain
-    Future<String> createNewKeychain(String name) async {
+    Future<String?> createNewKeychain(String name) async {
       await tapOn('drawerMenu');
       await sleep(300);
       await tapOn('parameters');
@@ -110,9 +110,9 @@ void main() {
       pinCode = await getText('generatedPin');
       await tapOn('storeKeychain');
       await sleep(100);
-      await driver.enterText('triche');
+      await driver!.enterText('triche');
       await tapOn('walletName');
-      await driver.enterText(name);
+      await driver!.enterText(name);
       await sleep(50);
       await tapOn('confirmStorage');
       await sleep(300);
@@ -124,7 +124,7 @@ void main() {
     test('OnBoarding - Open wallets management', (
         {timeout = Timeout.none}) async {
       // await driver.runUnsynchronized(() async { // Needed if we want to manage async drivers
-      await driver.tap(manageWalletsFinder);
+      await driver!.tap(manageWalletsFinder);
 
       // If a wallet exist, go to delete theme all
       if (!await isPresent(find.byValueKey('goStep1'))) {
@@ -132,7 +132,7 @@ void main() {
 
         await deleteAllWallets();
 
-        await driver.tap(manageWalletsFinder);
+        await driver!.tap(manageWalletsFinder);
       }
 
       // Get the SerializableFinder for text widget with key 'textOnboarding'
@@ -143,7 +143,7 @@ void main() {
       await sleep(100);
 
       // Verify onboarding is starting, with text
-      expect(await driver.getText(textOnboarding),
+      expect(await driver!.getText(textOnboarding),
           "Je ne connais pour l’instant aucun de vos portefeuilles.\n\nVous pouvez en créer un nouveau, ou bien importer un portefeuille Cesium existant.");
     });
 
@@ -157,7 +157,7 @@ void main() {
       await tapOn('goStep6');
 
       expect(
-          await driver.getText(find.byValueKey(
+          await driver!.getText(find.byValueKey(
             'step6',
           )),
           "J’ai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.");
@@ -189,10 +189,10 @@ void main() {
         )];
 
         // Enter the expected word
-        await driver.enterText(goodWord);
+        await driver!.enterText(goodWord);
 
         // Check if word is valid
-        await driver.waitFor(find.text("C'est le bon mot !"));
+        await driver!.waitFor(find.text("C'est le bon mot !"));
 
         // Continue onboarding workflow
         await tapOn('goStep9');
@@ -245,7 +245,7 @@ void main() {
       // await tapOn('formKey2');
 
       //Enter good secret code
-      await driver.enterText(pinCode);
+      await driver!.enterText(pinCode!);
 
       expect(await getText('step13'),
           "Top !\n\nVotre trousseau de clef et votre portefeuille ont été créés avec un immense succès.\n\nFélicitations !");
@@ -259,29 +259,29 @@ void main() {
       await sleep(300);
 
       // Go to first derivation and rename it
-      await driver.tap(find.text('Mon portefeuille courant'));
+      await driver!.tap(find.text('Mon portefeuille courant'));
       await sleep(300);
       await tapOn('renameWallet');
       await sleep(100);
       await tapOn('walletName');
       await sleep(100);
-      await driver.enterText('Renommage wallet 1');
+      await driver!.enterText('Renommage wallet 1');
       await sleep(300);
       await tapOn('renameWallet');
       await sleep(400);
-      await driver.waitFor(find.text('Renommage wallet 1'), timeout: timeout);
+      await driver!.waitFor(find.text('Renommage wallet 1'), timeout: timeout);
       // expect(await getText('walletName'), "Renommage wallet 1");
       await goBack();
     });
 
     test('My wallets - Create a derivations, open thems, tap all buttons', (
         {timeout = const Duration(seconds: 2)}) async {
-      await driver.waitFor(find.text('Renommage wallet 1'), timeout: timeout);
+      await driver!.waitFor(find.text('Renommage wallet 1'), timeout: timeout);
       // Add a second derivation
       await createDerivation();
 
       // Go to second derivation options
-      await driver.tap(find.text('Portefeuille 2'));
+      await driver!.tap(find.text('Portefeuille 2'));
       await sleep(100);
 
       // Test options
@@ -297,7 +297,7 @@ void main() {
       await tapOn('setDefaultWallet');
       await sleep(50);
       await tapOn('copyPubkey');
-      await driver.waitFor(find
+      await driver!.waitFor(find
           .text('Cette clé publique a été copié dans votre presse-papier.'));
       await goBack();
 
@@ -309,7 +309,7 @@ void main() {
       await sleep(50);
 
       // Go to third derivation options
-      await driver.tap(find.text('Portefeuille 3'));
+      await driver!.tap(find.text('Portefeuille 3'));
       await sleep(100);
       await tapOn('displayBalance');
 
@@ -320,7 +320,7 @@ void main() {
     test('My wallets - Extra tests', (
         {timeout = const Duration(seconds: 2)}) async {
       // Add derivation 5,6 and 7
-      await driver.waitFor(find.text('Portefeuille 4'), timeout: timeout);
+      await driver!.waitFor(find.text('Portefeuille 4'), timeout: timeout);
       await createDerivation();
       await createDerivation();
       await createDerivation();
@@ -331,27 +331,27 @@ void main() {
       await tapOn('manageWallets');
       await sleep(200);
       //Enter secret code
-      await driver.enterText(pinCode);
+      await driver!.enterText(pinCode!);
       await sleep(200);
 
       // Go to derivation 6 and delete it
-      await driver.tap(find.text('Portefeuille 6'));
+      await driver!.tap(find.text('Portefeuille 6'));
       await sleep(100);
       await deleteWallet(true);
 
       // Go to 2nd derivation and check if it's de default
-      await driver.tap(find.text('Portefeuille 2'));
-      await driver.waitFor(find.text('Ce portefeuille est celui par defaut'));
+      await driver!.tap(find.text('Portefeuille 2'));
+      await driver!.waitFor(find.text('Ce portefeuille est celui par defaut'));
       await tapOn('setDefaultWallet');
       await sleep(100);
-      await driver.waitFor(find.text('Ce portefeuille est celui par defaut'));
+      await driver!.waitFor(find.text('Ce portefeuille est celui par defaut'));
       await sleep(300);
 
       // Display history, copy pubkey, go back and rename wallet name
       await tapOn('displayHistory');
       await sleep(400);
       await tapOn('copyPubkey');
-      await driver.waitFor(find
+      await driver!.waitFor(find
           .text('Cette clé publique a été copié dans votre presse-papier.'));
       await sleep(800);
       await goBack();
@@ -360,70 +360,70 @@ void main() {
       await sleep(100);
       await tapOn('walletName');
       await sleep(100);
-      await driver.enterText('Renommage wallet 2');
+      await driver!.enterText('Renommage wallet 2');
       await sleep(300);
       await tapOn('renameWallet');
       await sleep(400);
       await goBack();
-      await driver.waitFor(find.text('Renommage wallet 2'));
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.waitFor(find.text('Renommage wallet 2'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await createDerivation();
-      await driver.scrollIntoView(find.text('+'));
+      await driver!.scrollIntoView(find.text('+'));
       await createDerivation();
       await sleep(400);
 
       // Scroll the wallet screen until Derivation 20 and open it
-      await driver.scrollUntilVisible(
+      await driver!.scrollUntilVisible(
         find.byValueKey('listWallets'),
         find.text('Portefeuille 20'),
         dyScroll: -300.0,
       );
 
-      await driver.waitFor(find.text('Portefeuille 20'));
+      await driver!.waitFor(find.text('Portefeuille 20'));
       await sleep(400);
-      await driver.tap(find.text('Portefeuille 20'));
+      await driver!.tap(find.text('Portefeuille 20'));
       await tapOn('copyPubkey');
     });
 
     test('Search - Search Pi profile, navigate in history transactions', (
         {timeout = const Duration(seconds: 2)}) async {
-      await driver.waitFor(find.text('Portefeuille 20'), timeout: timeout);
+      await driver!.waitFor(find.text('Portefeuille 20'), timeout: timeout);
       await goBack();
       await goBack();
       await sleep(200);
       await tapOn('searchIcon');
       await sleep(400);
-      await driver.enterText('D2meevcAHFTS2gQMvmRW5Hzi25jDdikk4nC4u1FkwRaU');
+      await driver!.enterText('D2meevcAHFTS2gQMvmRW5Hzi25jDdikk4nC4u1FkwRaU');
       await sleep(100);
       await tapOn('copyPubkey');
       await sleep(500);
       await tapOn('switchPayHistory');
       await sleep(1200);
       // await driver.scrollIntoView(find.byValueKey('listTransactions'));
-      await driver.scrollUntilVisible(
+      await driver!.scrollUntilVisible(
         find.byValueKey('listTransactions'),
         find.byValueKey('transaction35'),
         dyScroll: -600.0,
       );
       await sleep(100);
       await tapOn('transaction33');
-      await driver.waitFor(find.text('Commentaire:'));
+      await driver!.waitFor(find.text('Commentaire:'));
 
       // Want to paste pubkey copied, but doesn't work actualy with flutter driver: https://github.com/flutter/flutter/issues/47448
       // final ClipboardData pubkeyCopied =
@@ -435,19 +435,19 @@ void main() {
 
     test('Wallet generation - Fast wallets generations', (
         {timeout = const Duration(seconds: 2)}) async {
-      await driver.waitFor(find.text('Commentaire:'), timeout: timeout);
+      await driver!.waitFor(find.text('Commentaire:'), timeout: timeout);
       await goBack();
       await goBack();
       await deleteAllWallets();
       await sleep(100);
-      final String pincode = await createNewKeychain('Fast wallet');
+      final String pincode = await (createNewKeychain('Fast wallet') as FutureOr<String>);
       await sleep(200);
-      await driver.enterText(pincode);
+      await driver!.enterText(pincode);
       await sleep(100);
       await createDerivation();
       await sleep(100);
-      await driver.tap(find.text('Fast wallet'));
-      await driver.waitFor(find.text('Fast wallet'));
+      await driver!.tap(find.text('Fast wallet'));
+      await driver!.waitFor(find.text('Fast wallet'));
       // Wait 3 seconds at the end
       await sleep(3000);
     });