From 92fbfd15b6bcf2f77209fc26d27480373858db6c Mon Sep 17 00:00:00 2001
From: Cam
Date: Sat, 15 Aug 2026 14:37:12 -0400
Subject: [PATCH] fix(site): put transfer-set and posted totals back on the
card
#122 dropped ReceiptArtifact from the verified page. The replacement
card printed "transfer-set root" and its meaning without the digest or
the pair list (receipt-card.tsx:223-228 on a153f261), and it never
rendered postedUsertokens or roundingAdjustment. The display annex
still says those chain-committed fields are above.
Render the root through HashValue, the pairs when present, and both
posted and rounding on the paper slip.
Co-Authored-By: Grok 4.6
Signed-off-by: Cam
---
site/app/r/components/receipt-card.tsx | 24 +++++++++++++++++++++---
site/app/r/rendering.test.tsx | 9 +++++++++
2 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/site/app/r/components/receipt-card.tsx b/site/app/r/components/receipt-card.tsx
index 1f01697a..d75e5220 100644
--- a/site/app/r/components/receipt-card.tsx
+++ b/site/app/r/components/receipt-card.tsx
@@ -219,13 +219,31 @@ export default function ReceiptCard({
custom — {CUSTOM_MODEL_MEANING}
) : null}
-
+
+ posted {claims.projection.spend.postedUsertokens.toLocaleString("en-US")} ut
+
+
+ rounding {claims.projection.spend.roundingAdjustment.toLocaleString("en-US")} ut
+
+
- transfer-set root
+
{" — "}
{transfers.rootMeaning}
-
+
+ {transfers.pairs !== undefined ? (
+
+ {transfers.pairs.map((pair) => (
+ -
+ {pair.authorizationTransferId} → {pair.settlementTransferId}
+
+ ))}
+
+ ) : null}
diff --git a/site/app/r/rendering.test.tsx b/site/app/r/rendering.test.tsx
index edec71c4..7cfe1c34 100644
--- a/site/app/r/rendering.test.tsx
+++ b/site/app/r/rendering.test.tsx
@@ -789,6 +789,15 @@ test("C1 commit-checkpoint.json — floor rung, provider posture, attested workl
// transferSet PRESENT → the root is a recomputable digest, not a commitment.
assert.ok(html.includes('data-transfer-set="list"'));
+ assertContains(
+ text,
+ "4da354006b3b4df1950f88bda7ff3dc2f97ce252b1356ed609f571f3a7e5e6bc",
+ "the committed transfer-set root is on the card",
+ );
+ assert.ok(html.includes('data-testid="transfer-pairs"'), "the pair list is mounted");
+ assertContains(text, "8e0acd4a11f889633970583fad76a040", "a pair from the list renders");
+ assert.ok(html.includes('data-testid="posted-usertokens"'), "posted total is on the card");
+ assertContains(text, "rounding 14 ut", "roundingAdjustment is on the card");
assertOmits(text, TRANSFER_SET_ROOT_COMMITMENT, "R25: a present list is not a commitment");
// R9 — trustSnapshotId rendered.