diff --git a/.gitmodules b/.gitmodules index 6f0ff02..bc68d6a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "packages/libusb_ffi"] path = packages/libusb_ffi url = git@github.com:haorendashu/libusb_ffi.git +[submodule "packages/relay_isar_db"] + path = packages/relay_isar_db + url = git@github.com:haorendashu/relay_isar_db.git diff --git a/lib/component/user/nesigner_login_dialog.dart b/lib/component/user/nesigner_login_dialog.dart index 7e41b5f..860de3b 100644 --- a/lib/component/user/nesigner_login_dialog.dart +++ b/lib/component/user/nesigner_login_dialog.dart @@ -209,8 +209,6 @@ class _NesignerLoginDialog extends State { return; } - var aesKey = HashUtil.md5(pin); - if (bingKey) { if (StringUtil.isBlank(privateKey)) { BotToast.showText(text: s.Input_can_not_be_null); @@ -221,9 +219,9 @@ class _NesignerLoginDialog extends State { privateKey = Nip19.decode(privateKey); } - return RouterUtil.back(context, "$aesKey:$privateKey"); + return RouterUtil.back(context, "$pin:$privateKey"); } - return RouterUtil.back(context, aesKey); + return RouterUtil.back(context, pin); } } diff --git a/lib/component/user/user_login_dialog.dart b/lib/component/user/user_login_dialog.dart index df52ebf..c4be91d 100644 --- a/lib/component/user/user_login_dialog.dart +++ b/lib/component/user/user_login_dialog.dart @@ -48,9 +48,9 @@ class _UserLoginDialog extends CustState { } } - void checkNesigner() { + Future checkNesigner() async { try { - var exist = NesignerUtil.checkNesignerExist(); + var exist = await NesignerUtil.checkNesignerExist(); if (exist != existNesigner) { setState(() { existNesigner = exist; @@ -165,11 +165,11 @@ class _UserLoginDialog extends CustState { } var strs = nesignerInputStr.split(":"); - var aesKey = strs[0]; + var pinCode = strs[0]; var cancelFunc = BotToast.showLoading(); - var nesigner = Nesigner(aesKey); + var nesigner = Nesigner(pinCode); try { if (!(await nesigner.start())) { BotToast.showText(text: "Connect to nesigner fail."); @@ -178,9 +178,7 @@ class _UserLoginDialog extends CustState { if (strs.length > 1) { var privateKey = strs[1]; - var aesKeyBin = HEX.decode(aesKey); - var updateResult = - await nesigner.updateKey(Uint8List.fromList(aesKeyBin), privateKey); + var updateResult = await nesigner.updateKey(pinCode, privateKey); print("update result $updateResult"); } @@ -196,7 +194,7 @@ class _UserLoginDialog extends CustState { return; } - var keyStr = Nesigner.genKey(aesKey, pubkey: pubkey); + var keyStr = Nesigner.genKey(pinCode, pubkey: pubkey); keyProvider.addKey(keyStr); } finally { try { diff --git a/lib/const/base.dart b/lib/const/base.dart index 6291fa1..6e7b584 100644 --- a/lib/const/base.dart +++ b/lib/const/base.dart @@ -11,5 +11,6 @@ class Base { static double BASE_FONT_SIZE = 15; - static String USER_AGENT = "${Base.APP_NAME} ${PlatformUtil.getPlatformName()} ${Base.VERSION_NAME}"; + static String USER_AGENT = + "${Base.APP_NAME} ${PlatformUtil.getPlatformName()} ${Base.VERSION_NAME}"; } diff --git a/lib/data/db.dart b/lib/data/db.dart index af60185..7402e0a 100644 --- a/lib/data/db.dart +++ b/lib/data/db.dart @@ -1,6 +1,8 @@ import 'package:nostr_sdk/utils/db_util.dart'; import 'package:sqflite/sqflite.dart'; +import '../const/base.dart'; + class DB { static const _VERSION = 2; @@ -9,7 +11,7 @@ class DB { static Database? _database; static init() async { - String path = await DBUtil.getPath(_dbName); + String path = await DBUtil.getPath(Base.APP_NAME, _dbName); print("path $path"); try { diff --git a/lib/provider/build_in_relay_provider.dart b/lib/provider/build_in_relay_provider.dart index ead84be..ee19c59 100644 --- a/lib/provider/build_in_relay_provider.dart +++ b/lib/provider/build_in_relay_provider.dart @@ -84,7 +84,7 @@ class BuildInRelayProvider extends ChangeNotifier { RelayManager _getRelayManager() { if (_relayManager == null) { - _relayManager = RelayManager(rootIsolateToken); + _relayManager = RelayManager(rootIsolateToken, Base.APP_NAME); _relayManager!.openFilterCheck = true; _relayManager!.openDB = false; // _relayManager!.trafficCounter = trafficCounterProvider; diff --git a/lib/provider/key_provider.dart b/lib/provider/key_provider.dart index 2a3d3de..fd2153c 100644 --- a/lib/provider/key_provider.dart +++ b/lib/provider/key_provider.dart @@ -135,12 +135,12 @@ class KeyProvider extends ChangeNotifier { var key = keysMap[pubkey]; if (StringUtil.isNotBlank(key)) { if (Nesigner.isNesignerKey(key!)) { - var aesKey = Nesigner.getAesKeyFromKey(key); - if (StringUtil.isBlank(aesKey)) { + var pinCode = Nesigner.getPinCodeFromKey(key); + if (StringUtil.isBlank(pinCode)) { return null; } - nesigner = Nesigner(aesKey, pubkey: pubkey); + nesigner = Nesigner(pinCode, pubkey: pubkey); await nesigner.start(); _nesignerMap[pubkey] = nesigner; return nesigner; diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 649c5bc..1e1c195 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,20 +6,28 @@ #include "generated_plugin_registrant.h" +#include #include #include +#include #include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_libserialport_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterLibserialportPlugin"); + flutter_libserialport_plugin_register_with_registrar(flutter_libserialport_registrar); g_autoptr(FlPluginRegistrar) flutter_nesigner_sdk_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterNesignerSdkPlugin"); flutter_nesigner_sdk_plugin_register_with_registrar(flutter_nesigner_sdk_registrar); g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) isar_flutter_libs_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "IsarFlutterLibsPlugin"); + isar_flutter_libs_plugin_register_with_registrar(isar_flutter_libs_registrar); g_autoptr(FlPluginRegistrar) nesigner_adapter_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "NesignerAdapterPlugin"); nesigner_adapter_plugin_register_with_registrar(nesigner_adapter_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index f0022b6..01ab225 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,8 +3,10 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_libserialport flutter_nesigner_sdk flutter_secure_storage_linux + isar_flutter_libs nesigner_adapter open_file_linux screen_retriever_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 25dfb42..7ddef2c 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,8 +8,10 @@ import Foundation import cryptography_flutter import device_info_plus import flutter_inappwebview_macos +import flutter_libserialport import flutter_nesigner_sdk import flutter_secure_storage_macos +import isar_flutter_libs import nesigner_adapter import open_file_mac import path_provider_foundation @@ -22,8 +24,10 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { CryptographyFlutterPlugin.register(with: registry.registrar(forPlugin: "CryptographyFlutterPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) + FlutterLibserialportPlugin.register(with: registry.registrar(forPlugin: "FlutterLibserialportPlugin")) FlutterNesignerSdkPlugin.register(with: registry.registrar(forPlugin: "FlutterNesignerSdkPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) NesignerAdapterPlugin.register(with: registry.registrar(forPlugin: "NesignerAdapterPlugin")) OpenFilePlugin.register(with: registry.registrar(forPlugin: "OpenFilePlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/packages/flutter_nesigner_sdk b/packages/flutter_nesigner_sdk index eef82e1..9190b3c 160000 --- a/packages/flutter_nesigner_sdk +++ b/packages/flutter_nesigner_sdk @@ -1 +1 @@ -Subproject commit eef82e14fdbd5a3564668c785d4a11dd521322cb +Subproject commit 9190b3c0c5a7d8f790a88e6c0afd7da34b4b190a diff --git a/packages/nesigner_adapter b/packages/nesigner_adapter index cfbd39d..456b5c1 160000 --- a/packages/nesigner_adapter +++ b/packages/nesigner_adapter @@ -1 +1 @@ -Subproject commit cfbd39dc3c90c25f10a22d1a941678238afdb0b1 +Subproject commit 456b5c12165fb8f2321b538dc3089cbbd9f16223 diff --git a/packages/nostr_sdk b/packages/nostr_sdk index c8b1491..b7b3456 160000 --- a/packages/nostr_sdk +++ b/packages/nostr_sdk @@ -1 +1 @@ -Subproject commit c8b1491126aab6c42c7b21f04d6eaa293d277b89 +Subproject commit b7b34561943c9732bba0dbc3c60b8be5c4ed4c00 diff --git a/packages/relay_isar_db b/packages/relay_isar_db new file mode 160000 index 0000000..84a7c0a --- /dev/null +++ b/packages/relay_isar_db @@ -0,0 +1 @@ +Subproject commit 84a7c0a590981bb2333387466bc2da6b405ebad2 diff --git a/packages/relay_sdk b/packages/relay_sdk index 28d2c3b..549394d 160000 --- a/packages/relay_sdk +++ b/packages/relay_sdk @@ -1 +1 @@ -Subproject commit 28d2c3bcee55ae97016d52d754a4679e371561eb +Subproject commit 549394d570ebc7362ed571aeff8b4f4bee0190c1 diff --git a/pubspec.lock b/pubspec.lock index f7ebb66..0b64792 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -242,6 +242,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + dylib: + dependency: transitive + description: + name: dylib + sha256: bf609b3eb6492a3309b3d1dbe8f83a4031de5535dd7686be33487051cc760bb0 + url: "https://pub.dev" + source: hosted + version: "0.3.3" fake_async: dependency: transitive description: @@ -375,6 +383,15 @@ packages: url: "https://pub.dev" source: hosted version: "0.13.1" + flutter_libserialport: + dependency: transitive + description: + path: "." + ref: HEAD + resolved-ref: "3d80a2612d65e0bec85a71f183b0134755ee9123" + url: "https://github.com/haorendashu/flutter_libserialport" + source: git + version: "0.5.0" flutter_lints: dependency: "direct dev" description: @@ -525,6 +542,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.19.0" + isar: + dependency: transitive + description: + name: isar + sha256: e17a9555bc7f22ff26568b8c64d019b4ffa2dc6bd4cb1c8d9b269aefd32e53ad + url: "https://pub.isar-community.dev" + source: hosted + version: "3.1.8" + isar_flutter_libs: + dependency: transitive + description: + name: isar_flutter_libs + sha256: "78710781e658ce4bff59b3f38c5b2735e899e627f4e926e1221934e77b95231a" + url: "https://pub.isar-community.dev" + source: hosted + version: "3.1.8" js: dependency: transitive description: @@ -573,13 +606,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" - libusb: + libserialport: dependency: transitive description: - path: "packages/libusb_ffi" - relative: true - source: path - version: "0.4.23-dev.1+1" + name: libserialport + sha256: "392e1592def65282429832ec66fa25e9e163d3b37716b97691482e2406720727" + url: "https://pub.dev" + source: hosted + version: "0.3.0+1" lints: dependency: transitive description: @@ -914,6 +948,13 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.5" + relay_isar_db: + dependency: transitive + description: + path: "packages/relay_isar_db" + relative: true + source: path + version: "0.0.1" relay_sdk: dependency: "direct main" description: @@ -1190,6 +1231,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.2" + usb_serial: + dependency: transitive + description: + name: usb_serial + sha256: a605a600e34e7f28d4e80851ca3999ef747e42e406138887b8a88b8c382a8b07 + url: "https://pub.dev" + source: hosted + version: "0.5.2" uuid: dependency: transitive description: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 9d6797c..de861ea 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,8 +7,10 @@ #include "generated_plugin_registrant.h" #include +#include #include #include +#include #include #include #include @@ -16,10 +18,14 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi")); + FlutterLibserialportPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterLibserialportPlugin")); FlutterNesignerSdkPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterNesignerSdkPluginCApi")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + IsarFlutterLibsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("IsarFlutterLibsPlugin")); NesignerAdapterPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("NesignerAdapterPluginCApi")); ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 6777f7c..4258c7e 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,8 +4,10 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_inappwebview_windows + flutter_libserialport flutter_nesigner_sdk flutter_secure_storage_windows + isar_flutter_libs nesigner_adapter screen_retriever_windows window_manager