Skip to content

Commit 8b07dc7

Browse files
alltheseasclaude
andcommitted
Add NIP-62 writeTest cases
Tests vanish marker blocking, cross-pubkey isolation, kind 5 protection of kind 62, max-timestamp semantics, and boundary conditions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 86b052e commit 8b07dc7

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

test/writeTest.pl

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,71 @@
347347

348348

349349

350+
## NIP-62: Request to Vanish
351+
352+
doTest({
353+
desc => "NIP-62: Vanish blocks re-import of old events",
354+
events => [
355+
qq{--sec $ids->[0]->{sec} --content "hi" --kind 1 --created-at 5000 },
356+
qq{--sec $ids->[0]->{sec} --content "vanish" --kind 62 --created-at 6000 --tag relay "ALL_RELAYS" },
357+
qq{--sec $ids->[0]->{sec} --content "old" --kind 1 --created-at 5500 },
358+
qq{--sec $ids->[0]->{sec} --content "new" --kind 1 --created-at 7000 },
359+
],
360+
verify => [ 0, 1, 3, ],
361+
});
362+
363+
doTest({
364+
desc => "NIP-62: Vanish does not affect other pubkeys",
365+
events => [
366+
qq{--sec $ids->[0]->{sec} --content "hi" --kind 1 --created-at 5000 },
367+
qq{--sec $ids->[0]->{sec} --content "vanish" --kind 62 --created-at 6000 --tag relay "ALL_RELAYS" },
368+
qq{--sec $ids->[1]->{sec} --content "hi" --kind 1 --created-at 5000 },
369+
],
370+
verify => [ 0, 1, 2, ],
371+
});
372+
373+
doTest({
374+
desc => "NIP-62: Kind 5 cannot delete kind 62",
375+
events => [
376+
qq{--sec $ids->[0]->{sec} --content "vanish" --kind 62 --created-at 5000 --tag relay "ALL_RELAYS" },
377+
qq{--sec $ids->[0]->{sec} --content "delete" --kind 5 --created-at 6000 -e EV_0 },
378+
],
379+
verify => [ 0, 1, ],
380+
});
381+
382+
doTest({
383+
desc => "NIP-62: Multiple vanish requests use max timestamp",
384+
events => [
385+
qq{--sec $ids->[0]->{sec} --content "hi" --kind 1 --created-at 5000 },
386+
qq{--sec $ids->[0]->{sec} --content "vanish1" --kind 62 --created-at 4000 --tag relay "ALL_RELAYS" },
387+
qq{--sec $ids->[0]->{sec} --content "between" --kind 1 --created-at 4500 },
388+
qq{--sec $ids->[0]->{sec} --content "vanish2" --kind 62 --created-at 6000 --tag relay "ALL_RELAYS" },
389+
qq{--sec $ids->[0]->{sec} --content "blocked" --kind 1 --created-at 5500 },
390+
qq{--sec $ids->[0]->{sec} --content "after" --kind 1 --created-at 7000 },
391+
],
392+
verify => [ 0, 1, 2, 3, 5, ],
393+
});
394+
395+
doTest({
396+
desc => "NIP-62: Kind 62 event itself is preserved",
397+
events => [
398+
qq{--sec $ids->[0]->{sec} --content "vanish" --kind 62 --created-at 5000 --tag relay "ALL_RELAYS" },
399+
qq{--sec $ids->[0]->{sec} --content "vanish2" --kind 62 --created-at 6000 --tag relay "ALL_RELAYS" },
400+
],
401+
verify => [ 0, 1, ],
402+
});
403+
404+
doTest({
405+
desc => "NIP-62: Vanish at exact timestamp blocks that timestamp",
406+
events => [
407+
qq{--sec $ids->[0]->{sec} --content "vanish" --kind 62 --created-at 5000 --tag relay "ALL_RELAYS" },
408+
qq{--sec $ids->[0]->{sec} --content "exact" --kind 1 --created-at 5000 },
409+
qq{--sec $ids->[0]->{sec} --content "after" --kind 1 --created-at 5001 },
410+
],
411+
verify => [ 0, 2, ],
412+
});
413+
414+
350415
print "\nOK\n";
351416

352417

0 commit comments

Comments
 (0)