diff --git a/lib/main.dart b/lib/main.dart
index 0bc8c087e4c336a303265ea62b9448889f65ca17..50db8865b5e7bfc257d66b7de62a543bf2d78b28 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -18,7 +18,6 @@ import 'package:flutter/foundation.dart';
 import 'package:responsive_framework/responsive_framework.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:sentry_flutter/sentry_flutter.dart';
-import 'package:catcher/catcher.dart';
 
 final bool enableSentry = true;
 
@@ -117,7 +116,6 @@ class Gecko extends StatelessWidget {
                   ResponsiveBreakpoint.resize(1000, name: DESKTOP),
                 ],
                 background: Container(color: Color(0xFFF5F5F5))),
-            navigatorKey: Catcher.navigatorKey,
             title: 'Äžecko',
             theme: ThemeData(
               primaryColor: Color(0xffFFD58D),
diff --git a/lib/models/generateWallets.dart b/lib/models/generateWallets.dart
index 6629b21e59f34d106ed49b3615b2a8682ac99eda..a7bc55d6dc62d405a83ad701c7b42be7c400a4d1 100644
--- a/lib/models/generateWallets.dart
+++ b/lib/models/generateWallets.dart
@@ -71,8 +71,6 @@ class GenerateWalletsProvider with ChangeNotifier {
 
       await configFile
           .writeAsString('$nbrWallet:$_name:$_derivationNbr:$_pubkey');
-      print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
-      print('${wallet.pin} : $_name : $isHD');
       // Navigator.pop(context, true);
     } else {
       final int _derivationNbr = -1;
diff --git a/lib/models/history.dart b/lib/models/history.dart
index 0585c29042d8ed8ed18099d70653d1a5852a8dbe..d8da067a412e36208d892824af3dc7ba2c4317b9 100644
--- a/lib/models/history.dart
+++ b/lib/models/history.dart
@@ -210,7 +210,7 @@ class HistoryProvider with ChangeNotifier {
       final snackBar =
           SnackBar(content: Text(_message), duration: Duration(seconds: 2));
       isFirstBuild = false;
-      Scaffold.of(context).showSnackBar(snackBar);
+      ScaffoldMessenger.of(context).showSnackBar(snackBar);
     }
   }
 
@@ -229,7 +229,7 @@ class HistoryProvider with ChangeNotifier {
         content:
             Text("Cette clé publique a été copié dans votre presse-papier."),
         duration: Duration(seconds: 2));
-    Scaffold.of(context).showSnackBar(snackBar);
+    ScaffoldMessenger.of(context).showSnackBar(snackBar);
   }
 
   void switchProfileView() {
diff --git a/lib/models/walletOptions.dart b/lib/models/walletOptions.dart
index 5b0ac9df78ff0a78c3aba06c6ac4fec411c4992b..034f9a51341ec88ab0ac71cf3c5bf024696bc500 100644
--- a/lib/models/walletOptions.dart
+++ b/lib/models/walletOptions.dart
@@ -286,7 +286,7 @@ class WalletOptionsProvider with ChangeNotifier {
         content:
             Text("Cette clé publique a été copié dans votre presse-papier."),
         duration: Duration(seconds: 2));
-    Scaffold.of(context).showSnackBar(snackBar);
+    ScaffoldMessenger.of(context).showSnackBar(snackBar);
   }
 
   void reloadBuild() {
diff --git a/lib/screens/history.dart b/lib/screens/history.dart
index 5e8636ab86aff4157e6d9e87f38a2acac3552634..a8b4cb127f5347e9085a204de220b2dc70a4a9b8 100644
--- a/lib/screens/history.dart
+++ b/lib/screens/history.dart
@@ -314,7 +314,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
     TextEditingController payComment = new TextEditingController();
 
     return Stack(
-      overflow: Overflow.visible,
+      clipBehavior: Clip.hardEdge,
       children: <Widget>[
         Form(
           key: _formKey,
@@ -349,8 +349,9 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
               ),
               Padding(
                   padding: const EdgeInsets.only(top: 15),
-                  child: OutlineButton(
-                    borderSide: BorderSide(width: 2, color: Color(0xffD28928)),
+                  child: OutlinedButton(
+                    style: OutlinedButton.styleFrom(
+                        side: BorderSide(width: 2, color: Color(0xffD28928))),
                     onPressed: () {
                       if (_formKey.currentState.validate()) {
                         _formKey.currentState.save();
diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart
index d7ddd8482b8b7a7f494f1ad1dcdbc08fdd748e87..9f6dace71ae4701e16e129adeb956b78827fb53c 100644
--- a/lib/screens/myWallets/walletsHome.dart
+++ b/lib/screens/myWallets/walletsHome.dart
@@ -114,7 +114,7 @@ class WalletsHome extends StatelessWidget {
 
     return AlertDialog(
       content: Stack(
-        overflow: Overflow.visible,
+        clipBehavior: Clip.hardEdge,
         children: <Widget>[
           Form(
             key: _derivationKey,
@@ -133,16 +133,19 @@ class WalletsHome extends StatelessWidget {
                 SizedBox(height: 20),
                 Padding(
                   padding: const EdgeInsets.all(8.0),
-                  child: RaisedButton(
-                    child: Text("Créer"),
-                    color: Color(0xffFFD68E),
-                    onPressed: () async {
-                      await _myWalletProvider
-                          .generateNewDerivation(
-                              context, _newDerivationName.text, _walletNbr)
-                          .then((_) => _newDerivationName.text == '');
-                    },
-                  ),
+                  child: ElevatedButton(
+                      style: ElevatedButton.styleFrom(
+                        elevation: 1,
+                        primary: Color(0xffFFD68E), // background
+                        onPrimary: Colors.black, // foreground
+                      ),
+                      onPressed: () async {
+                        await _myWalletProvider
+                            .generateNewDerivation(
+                                context, _newDerivationName.text, _walletNbr)
+                            .then((_) => _newDerivationName.text == '');
+                      },
+                      child: Text("Créer")),
                 )
               ],
             ),
diff --git a/lib/screens/onBoarding/13_congratulations.dart b/lib/screens/onBoarding/13_congratulations.dart
index d55b6f444dcff77202f8f300df314b71cc9375c5..2cde659fe7df56f383dd733f48e6fcabecd8e0c7 100644
--- a/lib/screens/onBoarding/13_congratulations.dart
+++ b/lib/screens/onBoarding/13_congratulations.dart
@@ -2,7 +2,6 @@ import 'package:flutter/services.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/screens/commonElements.dart';
-import 'package:gecko/screens/myWallets/walletsHome.dart';
 
 // ignore: must_be_immutable
 class OnboardingStepFiveteen extends StatelessWidget {
@@ -45,9 +44,9 @@ class OnboardingStepFiveteen extends StatelessWidget {
                               context,
                               ModalRoute.withName('/'),
                             );
-                            Navigator.push(
+                            Navigator.pushNamed(
                               context,
-                              SmoothTransition(page: WalletsHome()),
+                              '/mywallets',
                             );
                           },
                           child: Text("Accéder à mes portefeuilles",
diff --git a/packages/dubp_rs/lib/dubp.dart b/packages/dubp_rs/lib/dubp.dart
index 94382c7fb63a8620aaf72b6c0000675393d59490..4bc00f0a6bad518e403fe8353956ef68b9c1a54e 100644
--- a/packages/dubp_rs/lib/dubp.dart
+++ b/packages/dubp_rs/lib/dubp.dart
@@ -91,8 +91,9 @@ class DubpRust {
         callback: _handleErrList);
     native.change_dewif_secret_code(
       sendPort.nativePort,
-      Utf8.toUtf8(dewif),
-      Utf8.toUtf8(oldPin),
+      // utf8.encoder(dewif),
+      StringUtf8Pointer(dewif).toNativeUtf8(),
+      StringUtf8Pointer(oldPin).toNativeUtf8(),
       0,
       secretCodeType.index,
       ram,
@@ -132,9 +133,9 @@ class DubpRust {
         callback: _handleErrList);
     native.gen_dewif_from_legacy(
       sendPort.nativePort,
-      Utf8.toUtf8(currency),
-      Utf8.toUtf8(salt),
-      Utf8.toUtf8(password),
+      StringUtf8Pointer(currency).toNativeUtf8(),
+      StringUtf8Pointer(salt).toNativeUtf8(),
+      StringUtf8Pointer(password).toNativeUtf8(),
       isMember ? 1 : 0,
       secretCodeType.index,
       ram,
@@ -165,9 +166,9 @@ class DubpRust {
         callback: _handleErrList);
     native.gen_dewif(
       sendPort.nativePort,
-      Utf8.toUtf8(currency),
+      StringUtf8Pointer(currency).toNativeUtf8(),
       language.index,
-      Utf8.toUtf8(mnemonic),
+      StringUtf8Pointer(mnemonic).toNativeUtf8(),
       0,
       secretCodeType.index,
       ram,
@@ -199,9 +200,9 @@ class DubpRust {
         callback: _handleErrList);
     native.get_bip32_dewif_accounts_pubkeys(
         sendPort.nativePort,
-        Utf8.toUtf8(currency),
-        Utf8.toUtf8(dewif),
-        Utf8.toUtf8(secretCode),
+        StringUtf8Pointer(currency).toNativeUtf8(),
+        StringUtf8Pointer(dewif).toNativeUtf8(),
+        StringUtf8Pointer(secretCode).toNativeUtf8(),
         accountsIndex.length,
         _listIntToPtrUint32(accountsIndex));
     return completer.future;
@@ -214,8 +215,8 @@ class DubpRust {
     final completer = Completer<List<String>>();
     final sendPort = singleCompletePort<List<String>, List>(completer,
         callback: _handleErrList);
-    native.get_dewif_meta(
-        sendPort.nativePort, Utf8.toUtf8(dewif), 0, secretCodeType.index);
+    native.get_dewif_meta(sendPort.nativePort,
+        StringUtf8Pointer(dewif).toNativeUtf8(), 0, secretCodeType.index);
     List<String> dewifMetaData = await completer.future;
 
     return Future.value(DewifMetaData._(dewifMetaData[0],
@@ -241,10 +242,10 @@ class DubpRust {
       sendPort.nativePort,
       accountIndexOpt ?? -1,
       addressIndexOpt ?? -1,
-      Utf8.toUtf8(currency),
-      Utf8.toUtf8(dewif),
+      StringUtf8Pointer(currency).toNativeUtf8(),
+      StringUtf8Pointer(dewif).toNativeUtf8(),
       externalOptInt,
-      Utf8.toUtf8(pin),
+      StringUtf8Pointer(pin).toNativeUtf8(),
     );
     return completer.future;
   }
@@ -255,7 +256,7 @@ class DubpRust {
       String dewif,
       SecretCodeType secretCodeType = SecretCodeType.letters}) {
     int res = native.get_dewif_secret_code_len(
-      Utf8.toUtf8(dewif),
+      StringUtf8Pointer(dewif).toNativeUtf8(),
       0,
       secretCodeType.index,
     );
@@ -276,8 +277,8 @@ class DubpRust {
         singleCompletePort<String, String>(completer, callback: _handleErr);
     native.get_legacy_pubkey(
       sendPort.nativePort,
-      Utf8.toUtf8(salt),
-      Utf8.toUtf8(password),
+      StringUtf8Pointer(salt).toNativeUtf8(),
+      StringUtf8Pointer(password).toNativeUtf8(),
     );
     return completer.future;
   }
@@ -296,9 +297,9 @@ class DubpRust {
         sendPort.nativePort,
         accountsIndex.length,
         _listIntToPtrUint32(accountsIndex),
-        Utf8.toUtf8(currency),
-        Utf8.toUtf8(dewif),
-        Utf8.toUtf8(secretCode));
+        StringUtf8Pointer(currency).toNativeUtf8(),
+        StringUtf8Pointer(dewif).toNativeUtf8(),
+        StringUtf8Pointer(secretCode).toNativeUtf8());
     return completer.future;
   }
 
@@ -327,11 +328,11 @@ class DubpRust {
       sendPort.nativePort,
       accountIndexOpt ?? -1,
       addressIndexOpt ?? -1,
-      Utf8.toUtf8(currency),
-      Utf8.toUtf8(dewif),
+      StringUtf8Pointer(currency).toNativeUtf8(),
+      StringUtf8Pointer(dewif).toNativeUtf8(),
       externalOptInt,
-      Utf8.toUtf8(secretCode),
-      Utf8.toUtf8(message),
+      StringUtf8Pointer(secretCode).toNativeUtf8(),
+      StringUtf8Pointer(message).toNativeUtf8(),
     );
     return completer.future;
   }
@@ -363,10 +364,10 @@ class DubpRust {
       sendPort.nativePort,
       accountIndexOpt ?? -1,
       addressIndexOpt ?? -1,
-      Utf8.toUtf8(currency),
-      Utf8.toUtf8(dewif),
+      StringUtf8Pointer(currency).toNativeUtf8(),
+      StringUtf8Pointer(dewif).toNativeUtf8(),
       externalOptInt,
-      Utf8.toUtf8(secretCode),
+      StringUtf8Pointer(secretCode).toNativeUtf8(),
       messages.length,
       _listStringToPtr(messages),
     );
@@ -376,7 +377,7 @@ class DubpRust {
 
   static Pointer<Uint32> _listIntToPtrUint32(List<int> list) {
     final listUint32 = list.map((i) => i.toUnsigned(31)).toList();
-    final Pointer<Uint32> ptr = allocate(count: listUint32.length);
+    final Pointer<Uint32> ptr = malloc.allocate(listUint32.length);
     for (var i = 0; i < listUint32.length; i++) {
       ptr[i] = listUint32[i];
     }
@@ -384,8 +385,9 @@ class DubpRust {
   }
 
   static Pointer<Pointer<Utf8>> _listStringToPtr(List<String> list) {
-    final listUtf8 = list.map(Utf8.toUtf8).toList();
-    final Pointer<Pointer<Utf8>> ptr = allocate(count: listUtf8.length);
+    final listUtf8 =
+        list.map((s) => StringUtf8Pointer(s).toNativeUtf8()).toList();
+    final Pointer<Pointer<Utf8>> ptr = malloc.allocate(listUtf8.length);
     for (var i = 0; i < listUtf8.length; i++) {
       ptr[i] = listUtf8[i];
     }
diff --git a/packages/dubp_rs/pubspec.lock b/packages/dubp_rs/pubspec.lock
index c5f7973f416a48e5f6057da9ebcc40ef1c5330d7..98f956261e0e41052a98a856ca5d6f235c925e93 100644
--- a/packages/dubp_rs/pubspec.lock
+++ b/packages/dubp_rs/pubspec.lock
@@ -7,70 +7,70 @@ packages:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.5.0-nullsafety.1"
+    version: "2.5.0"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0"
   characters:
     dependency: transitive
     description:
       name: characters
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.3"
+    version: "1.1.0"
   charcode:
     dependency: transitive
     description:
       name: charcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   clock:
     dependency: transitive
     description:
       name: clock
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0"
   collection:
     dependency: transitive
     description:
       name: collection
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.15.0-nullsafety.3"
+    version: "1.15.0"
   effective_dart:
     dependency: "direct dev"
     description:
       name: effective_dart
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0"
+    version: "1.3.1"
   fake_async:
     dependency: transitive
     description:
       name: fake_async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   ffi:
     dependency: "direct main"
     description:
       name: ffi
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.3"
+    version: "1.0.0"
   file_utils:
     dependency: transitive
     description:
       name: file_utils
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "1.0.0"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -87,7 +87,7 @@ packages:
       name: globbing
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.1"
+    version: "1.0.0"
   isolate:
     dependency: "direct main"
     description:
@@ -101,21 +101,21 @@ packages:
       name: matcher
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.10-nullsafety.1"
+    version: "0.12.10"
   meta:
     dependency: transitive
     description:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
+    version: "1.3.0"
   path:
     dependency: transitive
     description:
       name: path
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.1"
+    version: "1.8.0"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -127,63 +127,63 @@ packages:
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.2"
+    version: "1.8.0"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.0-nullsafety.1"
+    version: "1.10.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0"
   system_info:
     dependency: "direct main"
     description:
       name: system_info
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.3"
+    version: "1.0.0"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   test_api:
     dependency: transitive
     description:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.19-nullsafety.2"
+    version: "0.2.19"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
+    version: "1.3.0"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.3"
+    version: "2.1.0"
 sdks:
-  dart: ">=2.10.0-110 <2.11.0"
+  dart: ">=2.12.0 <3.0.0"
   flutter: ">=1.10.0"
diff --git a/packages/dubp_rs/pubspec.yaml b/packages/dubp_rs/pubspec.yaml
index bfc6dfad3ee90de37c5ab18834448ab124aaa2c4..bd3f6580aeab91f4507ef253d7a5e848af0a6c3a 100644
--- a/packages/dubp_rs/pubspec.yaml
+++ b/packages/dubp_rs/pubspec.yaml
@@ -9,12 +9,12 @@ environment:
 dependencies:
   flutter:
     sdk: flutter
-  ffi: ^0.1.3
+  ffi: ^1.0.0
   isolate: ^2.0.3
-  system_info: ^0.1.3
+  system_info: ^1.0.0
 
 dev_dependencies:
-  effective_dart: ^1.0.0
+  effective_dart: ^1.3.1
   flutter_test:
     sdk: flutter
 
diff --git a/pubspec.lock b/pubspec.lock
index fdb9a2ff82ce79cdc19abcd3f01f4c316a3dda31..e89bf23d80273b1ab4d418fba76735a78bdde945 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,35 +7,35 @@ packages:
       name: archive
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.13"
+    version: "3.1.2"
   args:
     dependency: transitive
     description:
       name: args
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.6.0"
+    version: "2.0.0"
   async:
     dependency: transitive
     description:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.5.0-nullsafety.1"
+    version: "2.5.0"
   barcode:
     dependency: transitive
     description:
       name: barcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.17.1"
+    version: "2.1.0"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0"
   bubble:
     dependency: "direct main"
     description:
@@ -43,104 +43,62 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.1.9+1"
-  catcher:
-    dependency: "direct main"
-    description:
-      name: catcher
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "0.4.1"
   characters:
     dependency: transitive
     description:
       name: characters
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.3"
+    version: "1.1.0"
   charcode:
     dependency: transitive
     description:
       name: charcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   clock:
     dependency: transitive
     description:
       name: clock
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0"
   collection:
     dependency: transitive
     description:
       name: collection
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.15.0-nullsafety.3"
+    version: "1.15.0"
   connectivity:
     dependency: transitive
     description:
       name: connectivity
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.2"
-  connectivity_for_web:
-    dependency: transitive
-    description:
-      name: connectivity_for_web
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "0.3.1+4"
+    version: "3.0.2"
   connectivity_macos:
     dependency: transitive
     description:
       name: connectivity_macos
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.0+7"
+    version: "0.2.0"
   connectivity_platform_interface:
     dependency: transitive
     description:
       name: connectivity_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.6"
-  convert:
-    dependency: transitive
-    description:
-      name: convert
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "2.1.1"
+    version: "2.0.1"
   crypto:
     dependency: "direct main"
     description:
       name: crypto
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.5"
-  device_info:
-    dependency: transitive
-    description:
-      name: device_info
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "1.0.0"
-  device_info_platform_interface:
-    dependency: transitive
-    description:
-      name: device_info_platform_interface
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "1.0.1"
-  dio:
-    dependency: transitive
-    description:
-      name: dio
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "3.0.10"
+    version: "3.0.0"
   dubp:
     dependency: "direct main"
     description:
@@ -154,7 +112,7 @@ packages:
       name: fake_async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   fast_base58:
     dependency: "direct main"
     description:
@@ -168,21 +126,21 @@ packages:
       name: ffi
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.3"
+    version: "1.0.0"
   file:
     dependency: transitive
     description:
       name: file
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "5.2.1"
+    version: "6.1.0"
   file_utils:
     dependency: transitive
     description:
       name: file_utils
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "1.0.0"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -194,7 +152,7 @@ packages:
       name: flutter_launcher_icons
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.8.1"
+    version: "0.9.0"
   flutter_logs:
     dependency: "direct main"
     description:
@@ -202,27 +160,20 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "2.1.3"
-  flutter_mailer:
-    dependency: transitive
-    description:
-      name: flutter_mailer
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "1.0.1"
   flutter_plugin_android_lifecycle:
     dependency: transitive
     description:
       name: flutter_plugin_android_lifecycle
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.11"
+    version: "2.0.0"
   flutter_svg:
     dependency: "direct main"
     description:
       name: flutter_svg
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.19.1"
+    version: "0.20.0-nullsafety.3"
   flutter_test:
     dependency: "direct dev"
     description: flutter
@@ -233,139 +184,132 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
-  fluttertoast:
-    dependency: transitive
-    description:
-      name: fluttertoast
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "7.1.6"
   globbing:
     dependency: transitive
     description:
       name: globbing
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.1"
+    version: "1.0.0"
   gql:
     dependency: transitive
     description:
       name: gql
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.4"
+    version: "0.13.0-nullsafety.2"
   gql_dedupe_link:
     dependency: transitive
     description:
       name: gql_dedupe_link
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.10"
+    version: "2.0.0-nullsafety.1"
   gql_error_link:
     dependency: transitive
     description:
       name: gql_error_link
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.1-alpha+1601131172858"
+    version: "0.2.0-nullsafety.1"
   gql_exec:
     dependency: transitive
     description:
       name: gql_exec
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.5"
+    version: "0.3.0-nullsafety.2"
   gql_http_link:
     dependency: transitive
     description:
       name: gql_http_link
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.2"
+    version: "0.4.0-nullsafety.1"
   gql_link:
     dependency: transitive
     description:
       name: gql_link
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.1"
+    version: "0.4.0-nullsafety.2"
   gql_transform_link:
     dependency: transitive
     description:
       name: gql_transform_link
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.5"
+    version: "0.2.0-nullsafety.1"
   graphql:
     dependency: transitive
     description:
       name: graphql
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.0.0"
+    version: "5.0.0-nullsafety.1"
   graphql_flutter:
     dependency: "direct main"
     description:
       name: graphql_flutter
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.0.0"
+    version: "5.0.0-nullsafety.1"
   hive:
     dependency: transitive
     description:
       name: hive
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.4.4+1"
+    version: "2.0.0"
   http:
     dependency: "direct main"
     description:
       name: http
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.2"
+    version: "0.13.0"
   http_parser:
     dependency: transitive
     description:
       name: http_parser
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.1.4"
+    version: "4.0.0"
   image:
     dependency: transitive
     description:
       name: image
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.19"
+    version: "3.0.1"
   image_gallery_saver:
     dependency: "direct main"
     description:
       name: image_gallery_saver
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.6.7"
+    version: "1.6.8"
   image_picker:
     dependency: "direct main"
     description:
       name: image_picker
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.6.7+15"
+    version: "0.7.2"
   image_picker_platform_interface:
     dependency: transitive
     description:
       name: image_picker_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.1"
+    version: "2.0.1"
   intl:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: intl
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.16.1"
+    version: "0.17.0"
   isolate:
     dependency: transitive
     description:
@@ -379,7 +323,7 @@ packages:
       name: js
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.6.2"
+    version: "0.6.3"
   logger:
     dependency: "direct main"
     description:
@@ -387,41 +331,20 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "0.9.4"
-  logging:
-    dependency: transitive
-    description:
-      name: logging
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "0.11.4"
-  mailer:
-    dependency: transitive
-    description:
-      name: mailer
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "3.3.0"
   matcher:
     dependency: transitive
     description:
       name: matcher
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.10-nullsafety.1"
+    version: "0.12.10"
   meta:
     dependency: transitive
     description:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
-  mime:
-    dependency: transitive
-    description:
-      name: mime
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "0.9.7"
+    version: "1.3.0"
   nested:
     dependency: transitive
     description:
@@ -435,7 +358,7 @@ packages:
       name: normalize
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.4.5"
+    version: "0.5.0-nullsafety.0"
   package_info:
     dependency: "direct main"
     description:
@@ -449,91 +372,91 @@ packages:
       name: path
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.1"
+    version: "1.8.0"
   path_drawing:
     dependency: transitive
     description:
       name: path_drawing
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.4.1+1"
+    version: "0.5.0-nullsafety.0"
   path_parsing:
     dependency: transitive
     description:
       name: path_parsing
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "0.2.0-nullsafety.0"
   path_provider:
     dependency: "direct main"
     description:
       name: path_provider
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.6.24"
+    version: "2.0.1"
   path_provider_linux:
     dependency: transitive
     description:
       name: path_provider_linux
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.1+2"
+    version: "2.0.0"
   path_provider_macos:
     dependency: transitive
     description:
       name: path_provider_macos
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.4+6"
+    version: "2.0.0"
   path_provider_platform_interface:
     dependency: transitive
     description:
       name: path_provider_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.4"
+    version: "2.0.1"
   path_provider_windows:
     dependency: transitive
     description:
       name: path_provider_windows
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.4+3"
+    version: "2.0.0"
   pdf:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: pdf
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.0"
+    version: "3.0.1"
   pedantic:
     dependency: transitive
     description:
       name: pedantic
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.2"
+    version: "1.11.0"
   permission_handler:
     dependency: "direct main"
     description:
       name: permission_handler
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "5.0.1+1"
+    version: "6.0.1"
   permission_handler_platform_interface:
     dependency: transitive
     description:
       name: permission_handler_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.1"
+    version: "3.0.0+1"
   petitparser:
     dependency: transitive
     description:
       name: petitparser
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.1.0"
+    version: "4.0.2"
   pin_code_fields:
     dependency: "direct main"
     description:
@@ -547,28 +470,28 @@ packages:
       name: platform
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.2.1"
+    version: "3.0.0"
   plugin_platform_interface:
     dependency: transitive
     description:
       name: plugin_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.3"
+    version: "2.0.0"
   printing:
     dependency: "direct main"
     description:
       name: printing
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.0.0"
+    version: "5.0.2"
   process:
     dependency: transitive
     description:
       name: process
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.0.13"
+    version: "4.1.0"
   provider:
     dependency: "direct main"
     description:
@@ -582,14 +505,14 @@ packages:
       name: qr
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0"
+    version: "2.0.0"
   qrscan:
     dependency: "direct main"
     description:
       name: qrscan
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.21"
+    version: "0.2.22"
   responsive_builder:
     dependency: "direct main"
     description:
@@ -610,14 +533,14 @@ packages:
       name: rxdart
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.24.1"
+    version: "0.26.0"
   sentry:
     dependency: "direct main"
     description:
       name: sentry
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.0.4"
+    version: "4.1.0-nullsafety.0"
   sentry_flutter:
     dependency: "direct main"
     description:
@@ -631,42 +554,42 @@ packages:
       name: shared_preferences
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.5.12+4"
+    version: "2.0.3"
   shared_preferences_linux:
     dependency: transitive
     description:
       name: shared_preferences_linux
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.2+4"
+    version: "2.0.0"
   shared_preferences_macos:
     dependency: transitive
     description:
       name: shared_preferences_macos
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.1+11"
+    version: "2.0.0"
   shared_preferences_platform_interface:
     dependency: transitive
     description:
       name: shared_preferences_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.4"
+    version: "2.0.0"
   shared_preferences_web:
     dependency: transitive
     description:
       name: shared_preferences_web
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.2+7"
+    version: "2.0.0"
   shared_preferences_windows:
     dependency: transitive
     description:
       name: shared_preferences_windows
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.2+2"
+    version: "2.0.0"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -678,28 +601,28 @@ packages:
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.2"
+    version: "1.8.0"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.0-nullsafety.1"
+    version: "1.10.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0"
   super_tooltip:
     dependency: "direct main"
     description:
@@ -720,21 +643,21 @@ packages:
       name: system_info
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.3"
+    version: "1.0.0"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0"
   test_api:
     dependency: transitive
     description:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.19-nullsafety.2"
+    version: "0.2.19"
   truncate:
     dependency: "direct main"
     description:
@@ -748,63 +671,56 @@ packages:
       name: typed_data
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
+    version: "1.3.0"
   uuid:
     dependency: transitive
     description:
       name: uuid
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.2.2"
-  uuid_enhanced:
-    dependency: transitive
-    description:
-      name: uuid_enhanced
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "3.0.2"
+    version: "3.0.1"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.3"
-  websocket:
+    version: "2.1.0"
+  web_socket_channel:
     dependency: transitive
     description:
-      name: websocket
+      name: web_socket_channel
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.0.5"
+    version: "2.0.0"
   win32:
     dependency: transitive
     description:
       name: win32
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.7.4"
+    version: "2.0.0"
   xdg_directories:
     dependency: transitive
     description:
       name: xdg_directories
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.2"
+    version: "0.2.0"
   xml:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: xml
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.5.1"
+    version: "5.0.2"
   yaml:
     dependency: transitive
     description:
       name: yaml
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.2.1"
+    version: "3.1.0"
 sdks:
-  dart: ">=2.10.0-110 <2.11.0"
-  flutter: ">=1.22.0 <2.0.0"
+  dart: ">=2.12.0 <3.0.0"
+  flutter: ">=1.24.0-7.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index bd656633a2e9cbb15134ba25bbdea645ab00b350..7179ea67a9291823f5351922e163b4533b4829d4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -15,31 +15,34 @@ dependencies:
     sdk: flutter
   dubp:
     path: packages/dubp_rs
-  flutter_launcher_icons: "^0.8.0"
-  qrscan: ^0.2.21
-  permission_handler:
-  image_gallery_saver:
-  image_picker:
-  graphql_flutter: ^4.0.0 #^3.1.0
+  flutter_launcher_icons: "^0.9.0"
+  qrscan: ^0.2.22
+  permission_handler: ^6.0.1
+  image_gallery_saver: ^1.6.8
+  image_picker: ^0.7.2
+  # graphql_flutter: ^4.0.1 #^3.1.0
+  graphql_flutter: ^5.0.0-nullsafety.1
   provider: ^4.3.2+3
   truncate: ^2.1.2
-  path_provider: ^1.6.24
+  path_provider: ^2.0.1
+  intl: ^0.17.0
   pin_code_fields: ^6.0.2
-  http: ^0.12.2
+  http: ^0.13.0
   super_tooltip: ^0.9.6
   package_info: ^0.4.3+2
-  printing: ^4.0.0
-  shared_preferences: ^0.5.12+4
+  xml: ^5.0.2
+  pdf: ^3.0.1
+  printing: ^5.0.2
+  shared_preferences: ^2.0.3
   sync_http: ^0.2.0
-  crypto: ^2.1.5
+  crypto: ^3.0.0
   fast_base58:
   logger: ^0.9.4
   flutter_logs: ^2.1.3
   sentry: ^4.0.4
   sentry_flutter: ^4.0.4
-  catcher: ^0.4.1
   bubble: ^1.1.9+1
-  flutter_svg: ^0.19.1
+  flutter_svg: ^0.20.0-nullsafety
   responsive_framework: ^0.0.14
   responsive_builder: ^0.3.0