fix(nip09): honour a tags in deletion requests
A kind-5 request could only name events by `e` tag. Worse, one that carried `a` tags and no `e` tags built a filter with an empty id list, which matched every event by that author and marked them all deleted. Handle `a` tags per NIP-09: parse `kind:pubkey:d` (the `d` value may contain ':'), require the pubkey to be the request author and the kind to be replaceable or addressable, and remove only versions up to the request's `created_at` so a later re-publication survives. An empty `d` addresses a replaceable kind. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Tbyw6FwjhEJg3gHfPHxWt (cherry picked from commit e695f9c66881d3d520d40f0cd3e9c95d9435938c)
This commit is contained in:
parent
d2350f907d
commit
fd19acff97
5 changed files with 191 additions and 52 deletions
|
|
@ -24,8 +24,8 @@
|
|||
- [x] **NIP-04**: Encrypted Direct Message
|
||||
- if `AUTH` enabled: send only to the intended target
|
||||
- [x] **NIP-09**: Event Deletion
|
||||
- [x] 'e' tags: Delete regular events by event ID
|
||||
- [x] 'a' tags: Delete addressable events by address (kind:pubkey:d-identifier)
|
||||
- [x] `e` tags: delete events by id
|
||||
- [x] `a` tags: delete replaceable / addressable events by `kind:pubkey:d`
|
||||
- [x] **NIP-11**: Relay Information Document
|
||||
- > **Note**: the endpoint is NOT on the root level of the domain. It also includes a path (eg https://lnbits.link/nostrrelay/)
|
||||
- [ ] **NIP-12**: Generic Tag Queries
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue