Files
amethyst/commonsUI
Vitor PamplonaandClaude Opus 5 e18d176481 feat: draw cyberspace avatars, and only the ones that paid
Kind 11333 carries the same SNO payload in a replaceable container, so it
now renders like any other object — except that §8.10 gates the drawing
rather than the parsing: an avatar that has not paid for its reach and its
detail, or whose content cannot be read, MUST NOT be drawn. An avatar is
the one thing in cyberspace that lands on other people's screens whether
they asked for it or not.

SnoAvatarEvent extends BaseReplaceableEvent rather than plain Event, which
is both what §8.10 means by moving the kind out of the addressable range
and what LocalCache needs to key it.

The payment check keeps both of §8.10's conditions separate, and the test
pins the case a shortcut gets wrong: an avatar owing 16 bits, committed to
30 and mined to 20 reads as 20 through Event.pow(), which clears the 16 it
owes while plainly falling short of the 30 its publisher committed to.

Not wired: replacing a user's NIP-01 profile picture with their cyberspace
avatar across the app. That is a product decision about every feed row,
not plumbing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JwXApJjoZYtkD3sPRWbPNa
2026-09-21 22:49:06 +00:00
..