ndk icon indicating copy to clipboard operation
ndk copied to clipboard

fix dexie cache filter

Open DanConwayDev opened this issue 1 year ago • 4 comments

by correcting the event format passed to nostr-tool's matchFilter

the dexie cache adaptor applies some simple filtering for efficiency reasons before using nostr-tool's matchFilter to apply the full NIP-01 ruleset

basic root cause analysis:

it is likely that nostr-tools changed the event format expected by matchFilter and this was missed during a dependancy upgrade for a number of reasons:

  1. the use of as any remove type checking
  2. nostr-tools doesn't use semantic versioning to highlight breaking changes
  3. a cursory test using simple filters would have returned correct results

DanConwayDev avatar Jun 10 '24 07:06 DanConwayDev

I'm not sure I understand the issue here? Is the cache adapter not returning the right results? Or returning no results?

erskingardner avatar Jun 10 '24 12:06 erskingardner

in some cases the cache adatper returns too many results take a filter that includes #a and #t the correct behavior is to return events that match both #a AND #t the cache adapter returns events for #a OR #t

it does this because it fails to call nostr-tool's matchFilter function correctly.

DanConwayDev avatar Jun 10 '24 13:06 DanConwayDev

Gotcha, thanks. I'll respond on the other thread now.

erskingardner avatar Jun 10 '24 13:06 erskingardner

hey @DanConwayDev -- finally had a chance to dig into this -- I think this PR is incorrect, the event you are using in this PR is the dexie representation of the event and not a nostr-tool compatible version.

I added a test to check and it seems the filter is being matched properly.

pablof7z avatar Jun 20 '24 22:06 pablof7z