Files
eranos/src/lib
Alex Gleason d71d6de05f Publish a single kind 8333 receipt per donation tx
A single Bitcoin transaction with N outputs now produces a single kind
8333 onchain-zap event listing every recipient under its own `p` tag,
instead of one event per recipient. The `amount` tag carries the total
sats paid to the listed recipients (the full donation, excluding the
donor's change).

This is straight-forward forward-compatibility: legacy single-recipient
events are just the degenerate case (one `p` tag, amount equal to the
one recipient's slice). Aggregators (`useCampaignDonations`,
`useGlobalDonations`) simplify to summing the `amount` tag across every
matching event — under both schemas an event's `amount` is the total
paid to the recipients listed in that event, so the sum across all
events for a campaign is the campaign total either way.

The verifier (`verifyOnchainZap`) now sums tx outputs paying any listed
recipient's derived Taproot address and strips the sender from the
recipient set so a tx that includes the sender plus legitimate
recipients still verifies. The notifications surface uses a new
`getZapAmountSatsForRecipient` helper to attribute only the viewer's
estimated slice (amount / p_count) rather than crediting them with the
full multi-recipient donation. `CampaignDetailPage` keeps its
group-by-(txid, donor) reply rendering so legacy multi-event donations
still collapse to a single donation card.
2026-05-18 16:36:32 -05:00
..
2026-05-16 07:58:48 -07:00
2026-05-03 09:00:43 -05:00
2026-05-11 14:49:11 +07:00
2026-05-18 09:45:30 -07:00
2026-04-17 16:22:33 +05:45
2026-05-17 23:12:13 -07:00
2026-05-16 22:37:13 -07:00
2026-04-06 13:41:32 -05:00
2026-04-17 16:22:33 +05:45
2026-05-16 09:04:55 -07:00
2026-04-30 13:19:22 +07:00
2026-04-17 16:22:33 +05:45
2026-04-30 11:22:07 -05:00
2026-04-29 22:04:39 +07:00
2026-04-17 16:22:33 +05:45
2026-04-29 22:04:39 +07:00
2026-05-17 01:00:49 -07:00
2026-04-18 16:28:41 +05:45
2026-03-24 12:20:40 -03:00