mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
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