feat: global NDK with account

This commit is contained in:
Gringo
2026-03-01 16:32:55 +01:00
parent 25cfeeac5b
commit 54ce0b03fc
3 changed files with 18 additions and 20 deletions
+2 -4
View File
@@ -10,8 +10,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_dropzone/flutter_dropzone.dart';
import 'package:get/get.dart';
import 'package:mime/mime.dart';
import 'package:ndk/data_layer/repositories/verifiers/bip340_event_verifier.dart';
import 'package:ndk_flutter/ndk_flutter.dart';
import 'package:toastification/toastification.dart';
class HomePageController extends GetxController {
@@ -69,10 +67,10 @@ class HomePageController extends GetxController {
);
final sharedFile = await shareFile(
ndk: Get.find(),
bytes: bytes,
contentType: mimeType,
filename: filename,
eventVerifier: kIsWeb ? WebEventVerifier() : Bip340EventVerifier(),
);
_sharedFile.value = sharedFile;
@@ -119,10 +117,10 @@ class HomePageController extends GetxController {
);
final sharedFile = await shareFile(
ndk: Get.find(),
bytes: file.bytes!,
contentType: mimeType,
filename: file.name,
eventVerifier: kIsWeb ? WebEventVerifier() : Bip340EventVerifier(),
);
_sharedFile.value = sharedFile;
+15 -2
View File
@@ -7,10 +7,11 @@ 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() {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final ndk = Ndk(
@@ -19,9 +20,21 @@ void main() {
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!,
);
}
runApp(const MainApp());
}
@@ -10,24 +10,11 @@ import 'package:ndk/ndk.dart';
import 'package:ndk/shared/nips/nip01/bip340.dart';
Future<SharedFile> shareFile({
required Ndk ndk,
required Uint8List bytes,
String? contentType,
String? filename,
EventVerifier? eventVerifier,
}) async {
final ndk = Ndk(
NdkConfig(
eventVerifier: eventVerifier ?? Bip340EventVerifier(),
cache: MemCacheManager(),
),
);
final keyPair = Bip340.generatePrivateKey();
ndk.accounts.loginPrivateKey(
pubkey: keyPair.publicKey,
privkey: keyPair.privateKey!,
);
final recipientKeyPair = Bip340.generatePrivateKey();
final encryptedBlob = await encryptBlob(bytes);