From d0b7a24a9ecc5f04d638fae0234893188752584a Mon Sep 17 00:00:00 2001 From: Gringo Date: Sun, 21 Dec 2025 22:33:30 +0100 Subject: [PATCH 1/2] feat: add tests --- packages/ndk/test/filters_order_test.dart | 74 +++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 packages/ndk/test/filters_order_test.dart diff --git a/packages/ndk/test/filters_order_test.dart b/packages/ndk/test/filters_order_test.dart new file mode 100644 index 000000000..c26f56731 --- /dev/null +++ b/packages/ndk/test/filters_order_test.dart @@ -0,0 +1,74 @@ +import 'package:ndk/ndk.dart'; +import 'package:test/test.dart'; + +void main() { + test('order 1', () async { + final ndk = Ndk( + NdkConfig( + eventVerifier: Bip340EventVerifier(), + cache: MemCacheManager(), + bootstrapRelays: [ + "wss://nostr-01.uid.ovh", + "wss://nostr-02.uid.ovh", + "wss://relay.camelus.app", + "wss://nostr-01.yakihonne.com", + "wss://relay.primal.net", + "wss://relay.damus.io", + "wss://relay.snort.social", + "wss://purplepag.es", + "wss://nos.lol", + ], + logLevel: LogLevel.off, + ), + ); + + final query = ndk.requests.query( + filters: [ + Filter(kinds: [1984]), + Filter(kinds: [31988]), + ], + ); + + final events = await query.future; + + expect(events.where((e) => e.kind == 31988).length, greaterThan(0)); + expect(events.where((e) => e.kind == 1984).length, greaterThan(0)); + + await ndk.destroy(); + }); + + test('order 2', () async { + final ndk = Ndk( + NdkConfig( + eventVerifier: Bip340EventVerifier(), + cache: MemCacheManager(), + bootstrapRelays: [ + "wss://nostr-01.uid.ovh", + "wss://nostr-02.uid.ovh", + "wss://relay.camelus.app", + "wss://nostr-01.yakihonne.com", + "wss://relay.primal.net", + "wss://relay.damus.io", + "wss://relay.snort.social", + "wss://purplepag.es", + "wss://nos.lol", + ], + logLevel: LogLevel.off, + ), + ); + + final query = ndk.requests.query( + filters: [ + Filter(kinds: [31988]), + Filter(kinds: [1984]), + ], + ); + + final events = await query.future; + + expect(events.where((e) => e.kind == 31988).length, greaterThan(0)); + expect(events.where((e) => e.kind == 1984).length, greaterThan(0)); + + await ndk.destroy(); + }); +} From 753609caa4b2e1917168cd190d8ad75c4ea54788 Mon Sep 17 00:00:00 2001 From: fmar Date: Mon, 22 Dec 2025 01:34:54 +0100 Subject: [PATCH 2/2] use isolate.run --- .../repositories/verifiers/bip340_event_verifier.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ndk/lib/data_layer/repositories/verifiers/bip340_event_verifier.dart b/packages/ndk/lib/data_layer/repositories/verifiers/bip340_event_verifier.dart index eb43da84a..9db797749 100644 --- a/packages/ndk/lib/data_layer/repositories/verifiers/bip340_event_verifier.dart +++ b/packages/ndk/lib/data_layer/repositories/verifiers/bip340_event_verifier.dart @@ -1,3 +1,5 @@ +import 'dart:isolate'; + import 'package:bip340/bip340.dart' as bip340; import '../../../domain_layer/entities/nip_01_event.dart'; @@ -8,6 +10,8 @@ import '../../../domain_layer/repositories/event_verifier.dart'; class Bip340EventVerifier implements EventVerifier { @override Future verify(Nip01Event event) async { - return bip340.verify(event.pubKey, event.id, event.sig); + return await Isolate.run(() { + return bip340.verify(event.pubKey, event.id, event.sig); + }); } }