Fix bugs reports in forum; change Sentry mode
This commit is contained in:
parent
2e10ee0743
commit
bde1028c70
|
@ -49,6 +49,7 @@ android {
|
|||
targetSdkVersion 29
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
|
@ -12,45 +12,84 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:catcher/catcher.dart';
|
||||
|
||||
// import 'dart:io';
|
||||
// import 'package:flutter_logs/flutter_logs.dart';
|
||||
// import 'package:downloads_path_provider/downloads_path_provider.dart';
|
||||
|
||||
final bool enableSentry = true;
|
||||
|
||||
// Future<String> getJsonEndpoints() {
|
||||
// return rootBundle.loadString('config/gva_endpoints.json');
|
||||
// }
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
HomeProvider _homeProvider = HomeProvider();
|
||||
await _homeProvider.getAppPath();
|
||||
await _homeProvider.createDefaultAvatar();
|
||||
appVersion = await _homeProvider.getAppVersion();
|
||||
prefs = await SharedPreferences.getInstance();
|
||||
final HiveStore _store =
|
||||
await HiveStore.open(path: '${appPath.path}/gqlCache');
|
||||
try {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// Get a valid GVA endpoint
|
||||
endPointGVA = await _homeProvider.getValidEndpoint();
|
||||
// var downloadsDirectory = DownloadsPathProvider.downloadsDirectory;
|
||||
// File logFile = File(downloadsDirectory.toString() + '/gecko.log');
|
||||
|
||||
if (kReleaseMode && enableSentry) {
|
||||
await SentryFlutter.init(
|
||||
(options) {
|
||||
options.dsn =
|
||||
'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110';
|
||||
},
|
||||
appRunner: () => runApp(Gecko(endPointGVA, _store)),
|
||||
);
|
||||
} else {
|
||||
print('Debug mode enabled: No sentry alerte');
|
||||
// await FlutterLogs.initLogs(
|
||||
// logLevelsEnabled: [
|
||||
// LogLevel.INFO,
|
||||
// LogLevel.WARNING,
|
||||
// LogLevel.ERROR,
|
||||
// LogLevel.SEVERE
|
||||
// ],
|
||||
// timeStampFormat: TimeStampFormat.TIME_FORMAT_READABLE,
|
||||
// directoryStructure: DirectoryStructure.FOR_EVENT,
|
||||
// logTypesEnabled: ["Locations", "APIs"],
|
||||
// logFileExtension: LogFileExtension.LOG,
|
||||
// logsWriteDirectoryName: downloadsDirectory.toString(),
|
||||
// logsExportDirectoryName: downloadsDirectory.toString());
|
||||
|
||||
runApp(Gecko(endPointGVA, _store));
|
||||
HomeProvider _homeProvider = HomeProvider();
|
||||
await _homeProvider.getAppPath();
|
||||
await _homeProvider.createDefaultAvatar();
|
||||
appVersion = await _homeProvider.getAppVersion();
|
||||
prefs = await SharedPreferences.getInstance();
|
||||
final HiveStore _store =
|
||||
await HiveStore.open(path: '${appPath.path}/gqlCache');
|
||||
|
||||
// Get a valid GVA endpoint
|
||||
endPointGVA = await _homeProvider.getValidEndpoint();
|
||||
|
||||
if (kReleaseMode && enableSentry) {
|
||||
CatcherOptions debugOptions = CatcherOptions(DialogReportMode(), [
|
||||
SentryHandler(SentryClient(SentryOptions(
|
||||
dsn:
|
||||
"https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110")))
|
||||
]);
|
||||
// CatcherOptions releaseOptions = CatcherOptions(NotificationReportMode(), [
|
||||
// EmailManualHandler(["poka@p2p.legal"])
|
||||
// ]);
|
||||
Catcher(
|
||||
rootWidget: Gecko(endPointGVA, _store), debugConfig: debugOptions);
|
||||
|
||||
// await SentryFlutter.init(
|
||||
// (options) {
|
||||
// options.dsn =
|
||||
// 'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110';
|
||||
// },
|
||||
// appRunner: () => runApp(Gecko(endPointGVA, _store)),
|
||||
// );
|
||||
} else {
|
||||
print('Debug mode enabled: No sentry alerte');
|
||||
|
||||
runApp(Gecko(endPointGVA, _store));
|
||||
}
|
||||
} catch (e, stack) {
|
||||
print(e);
|
||||
if (kReleaseMode) {
|
||||
await Sentry.captureException(
|
||||
e,
|
||||
stackTrace: stack,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class Gecko extends StatelessWidget {
|
||||
Gecko(this.randomEndpoint, this._store);
|
||||
final String randomEndpoint;
|
||||
|
@ -68,8 +107,8 @@ class Gecko extends StatelessWidget {
|
|||
link: _httpLink,
|
||||
),
|
||||
);
|
||||
|
||||
DubpRust.setup();
|
||||
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
// Provider(create: (context) => HistoryProvider()),
|
||||
|
@ -84,6 +123,7 @@ class Gecko extends StatelessWidget {
|
|||
child: GraphQLProvider(
|
||||
client: _client,
|
||||
child: MaterialApp(
|
||||
navigatorKey: Catcher.navigatorKey,
|
||||
title: 'Ğecko',
|
||||
theme: ThemeData(
|
||||
primaryColor: Color(0xffFFD58D),
|
||||
|
|
|
@ -7,7 +7,6 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart' as sentry;
|
||||
import 'package:pdf/pdf.dart';
|
||||
import 'package:pdf/widgets.dart' as pw;
|
||||
import 'package:printing/printing.dart';
|
||||
|
@ -81,6 +80,9 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
.writeAsString('$nbrWallet:$_name:$_derivationNbr:$_pubkey');
|
||||
}
|
||||
|
||||
print('CODE PIN :::');
|
||||
print(wallet.pin);
|
||||
|
||||
Navigator.pop(context, true);
|
||||
|
||||
return _name;
|
||||
|
@ -147,14 +149,8 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
this.actualWallet = await generateWallet(this.generatedMnemonic);
|
||||
walletIsGenerated = true;
|
||||
// notifyListeners();
|
||||
} catch (e, stack) {
|
||||
} catch (e) {
|
||||
print(e);
|
||||
if (kReleaseMode) {
|
||||
await sentry.Sentry.captureException(
|
||||
e,
|
||||
stackTrace: stack,
|
||||
);
|
||||
}
|
||||
}
|
||||
// await checkIfWalletExist();
|
||||
return generatedMnemonic;
|
||||
|
@ -167,14 +163,8 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
mnemonic: generatedMnemonic,
|
||||
secretCodeType: SecretCodeType.letters,
|
||||
walletType: WalletType.bip32Ed25519);
|
||||
} catch (e, stack) {
|
||||
} catch (e) {
|
||||
print(e);
|
||||
if (kReleaseMode) {
|
||||
await sentry.Sentry.captureException(
|
||||
e,
|
||||
stackTrace: stack,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
mnemonicController.text = generatedMnemonic;
|
||||
|
@ -243,6 +233,8 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
salt: _cesiumID, password: _cesiumPWD);
|
||||
|
||||
cesiumPubkey.text = _walletPubkey;
|
||||
pin.text = actualWallet.pin;
|
||||
isPinChanged = true;
|
||||
print(_walletPubkey);
|
||||
}
|
||||
|
||||
|
@ -274,13 +266,24 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
void showPinIfEmpty() {
|
||||
if (!isPinChanged) {
|
||||
changePinCode(reload: true);
|
||||
isPinChanged = true;
|
||||
}
|
||||
void resetImportView() {
|
||||
cesiumID.text = '';
|
||||
cesiumPWD.text = '';
|
||||
cesiumPubkey.text = '';
|
||||
pin.text = '';
|
||||
canImport = false;
|
||||
isPinChanged = false;
|
||||
isCesiumIDVisible = false;
|
||||
isCesiumPWDVisible = false;
|
||||
actualWallet = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
// void makeError() {
|
||||
// var tata = File(appPath.path + '/ddfhjftjfg');
|
||||
// tata.readAsLinesSync();
|
||||
// }
|
||||
|
||||
void reloadBuild() {
|
||||
notifyListeners();
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:sentry/sentry.dart' as sentry;
|
||||
import 'package:qrscan/qrscan.dart' as scanner;
|
||||
import 'dart:math';
|
||||
import 'package:intl/intl.dart';
|
||||
|
@ -28,14 +27,8 @@ class HistoryProvider with ChangeNotifier {
|
|||
String barcode;
|
||||
try {
|
||||
barcode = await scanner.scan();
|
||||
} catch (e, stack) {
|
||||
} catch (e) {
|
||||
print(e);
|
||||
if (kReleaseMode) {
|
||||
await sentry.Sentry.captureException(
|
||||
e,
|
||||
stackTrace: stack,
|
||||
);
|
||||
}
|
||||
return 'false';
|
||||
}
|
||||
if (barcode != null) {
|
||||
|
@ -63,7 +56,6 @@ class HistoryProvider with ChangeNotifier {
|
|||
getShortPubkey(pubkey);
|
||||
|
||||
this.outputPubkey.text = pubkey;
|
||||
print(pubkeyShort);
|
||||
|
||||
isHistoryScreen = false;
|
||||
historySwitchButtun = "Voir l'historique";
|
||||
|
|
|
@ -6,6 +6,8 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'dart:async';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/screens/history.dart';
|
||||
import 'package:gecko/screens/myWallets/walletsHome.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
|
@ -15,6 +17,8 @@ class HomeProvider with ChangeNotifier {
|
|||
Icon searchIcon = Icon(Icons.search);
|
||||
final TextEditingController searchQuery = new TextEditingController();
|
||||
Widget appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850]));
|
||||
List currentTab = [HistoryScreen(), WalletsHome()];
|
||||
|
||||
|
||||
get currentIndex => _currentIndex;
|
||||
|
||||
|
|
|
@ -48,7 +48,9 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
child: Container(
|
||||
height: 40.0,
|
||||
width: 40.0,
|
||||
child: Image.asset('images/scanner.png')),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 3),
|
||||
child: Image.asset('assets/qrcode-scan.png'))),
|
||||
backgroundColor: Color(
|
||||
0xffEFEFBF), //Color(0xffFFD68E), //Color.fromARGB(500, 204, 255, 255),
|
||||
),
|
||||
|
@ -174,7 +176,9 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
text: _historyProvider.pubkey));
|
||||
_historyProvider.snackCopyKey(context);
|
||||
},
|
||||
child: Text(_historyProvider.pubkeyShort,
|
||||
child: Text(
|
||||
_historyProvider
|
||||
.getShortPubkey(_historyProvider.pubkey),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.w800,
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/history.dart';
|
||||
import 'package:gecko/models/home.dart';
|
||||
import 'package:gecko/screens/history.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:ui';
|
||||
import 'package:gecko/screens/myWallets/walletsHome.dart';
|
||||
import 'package:gecko/screens/settings.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class HomeScreen extends StatelessWidget {
|
||||
var currentTab = [HistoryScreen(), WalletsHome()];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
|
||||
|
@ -116,7 +111,7 @@ class HomeScreen extends StatelessWidget {
|
|||
backgroundColor: Color(0xffFFD58D),
|
||||
),
|
||||
backgroundColor: Color(0xffF9F9F1),
|
||||
body: currentTab[_homeProvider.currentIndex],
|
||||
body: _homeProvider.currentTab[_homeProvider.currentIndex],
|
||||
bottomNavigationBar: BottomNavigationBar(
|
||||
backgroundColor: Color(0xffFFD58D),
|
||||
fixedColor: Colors.grey[850],
|
||||
|
|
|
@ -21,6 +21,8 @@ class GenerateWalletsScreen extends StatelessWidget {
|
|||
GenerateWalletsProvider _generateWalletProvider =
|
||||
Provider.of<GenerateWalletsProvider>(context);
|
||||
_generateWalletProvider.generateMnemonic();
|
||||
|
||||
// _generateWalletProvider.makeError();
|
||||
print('IS GENERATED ? : ' +
|
||||
_generateWalletProvider.walletIsGenerated.toString());
|
||||
return Scaffold(
|
||||
|
|
|
@ -18,19 +18,9 @@ class ImportWalletScreen extends StatelessWidget {
|
|||
WalletOptionsProvider _walletOptions =
|
||||
Provider.of<WalletOptionsProvider>(context);
|
||||
|
||||
_generateWalletProvider.showPinIfEmpty();
|
||||
|
||||
return WillPopScope(
|
||||
onWillPop: () {
|
||||
_generateWalletProvider.cesiumID.text = '';
|
||||
_generateWalletProvider.cesiumPWD.text = '';
|
||||
_generateWalletProvider.cesiumPubkey.text = '';
|
||||
_generateWalletProvider.pin.text = '';
|
||||
_generateWalletProvider.canImport = false;
|
||||
_generateWalletProvider.isPinChanged = false;
|
||||
_generateWalletProvider.isCesiumIDVisible = false;
|
||||
_generateWalletProvider.isCesiumPWDVisible = false;
|
||||
_generateWalletProvider.reloadBuild();
|
||||
_generateWalletProvider.resetImportView();
|
||||
return Future<bool>.value(true);
|
||||
},
|
||||
child: Scaffold(
|
||||
|
@ -38,15 +28,7 @@ class ImportWalletScreen extends StatelessWidget {
|
|||
leading: IconButton(
|
||||
icon: Icon(Icons.arrow_back, color: Colors.black),
|
||||
onPressed: () {
|
||||
_generateWalletProvider.cesiumID.text = '';
|
||||
_generateWalletProvider.cesiumPWD.text = '';
|
||||
_generateWalletProvider.cesiumPubkey.text = '';
|
||||
_generateWalletProvider.pin.text = '';
|
||||
_generateWalletProvider.canImport = false;
|
||||
_generateWalletProvider.isPinChanged = false;
|
||||
_generateWalletProvider.isCesiumIDVisible = false;
|
||||
_generateWalletProvider.isCesiumPWDVisible = false;
|
||||
_generateWalletProvider.reloadBuild();
|
||||
_generateWalletProvider.resetImportView();
|
||||
Navigator.of(context).pop();
|
||||
}),
|
||||
title: SizedBox(
|
||||
|
@ -195,6 +177,7 @@ class ImportWalletScreen extends StatelessWidget {
|
|||
.cesiumPWD.text)
|
||||
.then((value) {
|
||||
_myWalletProvider.rebuildWidget();
|
||||
_generateWalletProvider.resetImportView();
|
||||
});
|
||||
}
|
||||
: null,
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:provider/provider.dart';
|
|||
// ignore: must_be_immutable
|
||||
class WalletsHome extends StatelessWidget {
|
||||
final _derivationKey = GlobalKey<FormState>();
|
||||
int firstWalletDerivation;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -20,9 +21,14 @@ class WalletsHome extends StatelessWidget {
|
|||
myWalletProvider.listWallets = myWalletProvider.getAllWalletsNames();
|
||||
final bool isWalletsExists = myWalletProvider.checkIfWalletExist();
|
||||
|
||||
if (myWalletProvider.listWallets != '') {
|
||||
firstWalletDerivation =
|
||||
int.parse(myWalletProvider.listWallets.split('\n')[0].split(':')[2]);
|
||||
}
|
||||
|
||||
return Scaffold(
|
||||
floatingActionButton: Visibility(
|
||||
visible: (isWalletsExists),
|
||||
visible: (isWalletsExists && firstWalletDerivation != -1),
|
||||
child: Container(
|
||||
height: 80.0,
|
||||
width: 80.0,
|
||||
|
|
83
pubspec.lock
83
pubspec.lock
|
@ -36,6 +36,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0-nullsafety.1"
|
||||
catcher:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: catcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -106,6 +113,27 @@ packages:
|
|||
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"
|
||||
dubp:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -160,6 +188,20 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.8.1"
|
||||
flutter_logs:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_logs
|
||||
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:
|
||||
|
@ -177,6 +219,13 @@ 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:
|
||||
|
@ -317,6 +366,27 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.2"
|
||||
logger:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: logger
|
||||
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:
|
||||
|
@ -331,6 +401,13 @@ packages:
|
|||
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"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -500,19 +577,19 @@ packages:
|
|||
source: hosted
|
||||
version: "0.24.1"
|
||||
sentry:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sentry
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
version: "4.0.4"
|
||||
sentry_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sentry_flutter
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
version: "4.0.4"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
10
pubspec.yaml
10
pubspec.yaml
|
@ -5,7 +5,7 @@ description: A new Flutter project.
|
|||
# pub.dev using `pub publish`. This is preferred for private packages.
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
|
||||
version: 0.0.1+6
|
||||
version: 0.0.1+8
|
||||
|
||||
environment:
|
||||
sdk: ">=2.7.0 <3.0.0"
|
||||
|
@ -23,7 +23,6 @@ dependencies:
|
|||
graphql_flutter: ^4.0.0 #^3.1.0
|
||||
provider: ^4.3.2+3
|
||||
truncate: ^2.1.2
|
||||
sentry_flutter: ^4.0.1
|
||||
path_provider: ^1.6.24
|
||||
pin_code_fields: ^6.0.2
|
||||
http: ^0.12.2
|
||||
|
@ -34,7 +33,11 @@ dependencies:
|
|||
sync_http: ^0.2.0
|
||||
crypto: ^2.1.5
|
||||
fast_base58:
|
||||
|
||||
logger: ^0.9.4
|
||||
flutter_logs: ^2.1.3
|
||||
sentry: ^4.0.4
|
||||
sentry_flutter: ^4.0.4
|
||||
catcher: ^0.4.1
|
||||
|
||||
flutter_icons:
|
||||
android: "ic_launcher"
|
||||
|
@ -57,3 +60,4 @@ flutter:
|
|||
- assets/
|
||||
- assets/OpenSans-Regular.ttf
|
||||
- assets/icon_user.png
|
||||
- assets/qrcode-scan.png
|
||||
|
|
Loading…
Reference in New Issue