Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions site/app/r/components/receipt-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,31 @@ export default function ReceiptCard({
custom — {CUSTOM_MODEL_MEANING}
</p>
) : null}
<p className="mt-3 text-[13px] text-ink/70">
<p className="mt-3 text-[13px] text-ink/70" data-testid="posted-usertokens">
posted {claims.projection.spend.postedUsertokens.toLocaleString("en-US")} ut
</p>
<p className="mt-3 text-[13px] text-ink/70" data-testid="rounding-adjustment">
rounding {claims.projection.spend.roundingAdjustment.toLocaleString("en-US")} ut
</p>
<div className="mt-3 text-[13px] text-ink/70">
<span data-transfer-set={transfers.rootIsCommitment ? "commitment" : "list"}>
transfer-set root
<HashValue value={transfers.root} label="transferSetRoot" tone="paper" />
</span>
{" — "}
{transfers.rootMeaning}
</p>
</div>
{transfers.pairs !== undefined ? (
<ul
className="mt-2 flex flex-col gap-1 font-mono text-xs text-ink/70"
data-testid="transfer-pairs"
>
{transfers.pairs.map((pair) => (
<li key={pair.authorizationTransferId} className="break-all">
{pair.authorizationTransferId} → {pair.settlementTransferId}
</li>
))}
</ul>
) : null}
<div className="mt-3 grid gap-3 sm:grid-cols-2" data-testid="timestamps">
<div data-clock-claim="minter-asserted" className="flex flex-col gap-1">
<span className="font-mono text-xs uppercase tracking-[0.12em] text-paper-amber">
Expand Down
9 changes: 9 additions & 0 deletions site/app/r/rendering.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading