73 lines
1.9 KiB
Dart
73 lines
1.9 KiB
Dart
import 'package:file_transfer/controllers/file_share_controller.dart';
|
|
import 'package:file_transfer/controllers/home_controller.dart';
|
|
import 'package:file_transfer/pages/file_share_page.dart';
|
|
import 'package:file_transfer/pages/home_page.dart';
|
|
import 'package:file_transfer/routes.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:ndk/ndk.dart';
|
|
import 'package:ndk/shared/nips/nip01/bip340.dart';
|
|
import 'package:ndk_flutter/ndk_flutter.dart';
|
|
import 'package:toastification/toastification.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
final ndk = Ndk(
|
|
NdkConfig(
|
|
eventVerifier: kIsWeb ? WebEventVerifier() : Bip340EventVerifier(),
|
|
cache: MemCacheManager(),
|
|
),
|
|
);
|
|
Get.put(ndk);
|
|
|
|
final ndkFlutter = NdkFlutter(ndk: ndk);
|
|
Get.put(ndkFlutter);
|
|
|
|
await ndkFlutter.restoreAccountsState();
|
|
|
|
if (ndk.accounts.accounts.isEmpty) {
|
|
final keyPair = Bip340.generatePrivateKey();
|
|
ndk.accounts.loginPrivateKey(
|
|
pubkey: keyPair.publicKey,
|
|
privkey: keyPair.privateKey!,
|
|
);
|
|
|
|
await ndkFlutter.saveAccountsState();
|
|
}
|
|
|
|
runApp(const MainApp());
|
|
}
|
|
|
|
class MainApp extends StatelessWidget {
|
|
const MainApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ToastificationWrapper(
|
|
child: GetMaterialApp(
|
|
title: 'File Transfer',
|
|
theme: ThemeData.light(),
|
|
darkTheme: ThemeData.dark(),
|
|
getPages: [
|
|
GetPage(
|
|
name: AppRoutes.home,
|
|
page: () => const HomePage(),
|
|
binding: BindingsBuilder(() {
|
|
Get.put(HomePageController());
|
|
}),
|
|
),
|
|
GetPage(
|
|
name: AppRoutes.fileShare,
|
|
page: () => const FileSharePage(),
|
|
binding: BindingsBuilder(() {
|
|
Get.put(FileShareController());
|
|
}),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|