Summary
NIP-02 contact lists use kind 3, which is a replaceable event under NIP-16. While NIP-16 replaceable event semantics are already tested generically, there are no integration tests confirming the specific contact list / follow list use case works end-to-end.
What to test
- Alice publishes a kind 3 event (contact list) → stored and retrievable
- Alice publishes a second kind 3 event (updated contact list) → replaces the first; only the latest is returned by REQ
- Tie-breaker: two kind 3 events with identical timestamps → only the one with the lower event ID is kept
- Bob subscribes to Alice's kind 3 events → receives her latest contact list
Relevant code
src/constants/base.ts — EventKinds.CONTACT_LIST
src/handlers/event-strategies/replaceable-event-strategy.ts
Suggested location
test/integration/features/nip-02/nip-02.feature
Summary
NIP-02 contact lists use kind 3, which is a replaceable event under NIP-16. While NIP-16 replaceable event semantics are already tested generically, there are no integration tests confirming the specific contact list / follow list use case works end-to-end.
What to test
Relevant code
src/constants/base.ts—EventKinds.CONTACT_LISTsrc/handlers/event-strategies/replaceable-event-strategy.tsSuggested location
test/integration/features/nip-02/nip-02.feature