mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-12 09:13:23 +00:00
Make the Podcasting-2.0 `value` block first-class across read and publish. Actual Lightning execution (keysend to node recipients, LNURL fan-out to lnaddress recipients, weighted by split) is a separate wallet/NWC effort and is NOT done here — this lands the data model, display, and authoring. quartz: - PodcastValue / PodcastValueRecipient (@Serializable): amount, currency, recipients[] (name, type node|lnaddress, address, split weight, fee, custom*). - Episode `["value", "<json>"]` tag (ValueTag) + accessor/builder; show value is parsed from the kind:30078 JSON. Exposed via the shared abstraction as PodcastEpisode.episodeValue() and PodcastShow.showValue() (interface defaults, so NIP-F4 returns null). Round-trip + JSON-parse tests. amethyst: - PodcastValueSplits: a tinted "Value-for-Value" card listing each recipient with its address and computed share, rendered on both the episode and show cards when a value block is present. cli: - `podcast20 episode`/`metadata` gain `--value-json` to publish the block; malformed JSON is rejected as bad_args. Verified end-to-end against the CLI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JGa1EM5KWyDo1o5Yr6sS18