Skip to content

app: build out /contracts with live deployed addresses - #86

Open
Faithy5 wants to merge 5 commits into
FinesseStudioLab:mainfrom
Faithy5:feat/contracts-page
Open

app: build out /contracts with live deployed addresses#86
Faithy5 wants to merge 5 commits into
FinesseStudioLab:mainfrom
Faithy5:feat/contracts-page

Conversation

@Faithy5

@Faithy5 Faithy5 commented Aug 24, 2026

Copy link
Copy Markdown

Closes #53

What this changes

Replaces the /contracts placeholder with the full contracts page: the three Soroban contracts and why they are deliberately separate (attestation cheap and frequent, settlement conservative and rare), a registry-driven deployment table with explorer-linked addresses and WASM hashes, reproducible-build verification steps so a reader can verify deployed bytes against source, an attest → meter → settle flow diagram, and direct links to source and audit status.

Why

app/contracts/page.tsx was the emptiest page on the site while being the first one a technical reviewer opens. "Verify it yourself" is the most persuasive thing this site can say, so the page is built around it: every address and hash is read from a deployment registry rather than hardcoded in JSX.

How it was verified

  • npm test — 17 tests pass (3 new suites: registry integrity, deployment table rendering, flow diagram)
  • npm run build — production build green, /contracts prerendered statically
  • npm run lint — no warnings or errors
  • Playwright e2e could not run in this workspace (browsers need OS libraries not present here — fails identically on main); CI will run it

Notes for reviewers

The deployment registry in modeltrace-contract (issue #62) does not exist yet and no contracts are deployed, so every address/hash is honestly rendered as Not yet deployed. The page reads from app/contracts/deployments.ts, a local mirror shaped exactly like the registry that issue will produce — when it lands, the page goes live by editing data, not markup. No fabricated addresses are shipped: a fake explorer link would contradict the page's entire promise.

Risk

  • No change to any public contract interface.

  • New page content only; existing routes, nav, and layout untouched.

  • The one behavioral note: /contracts now renders real content instead of a placeholder (covered by existing unit + e2e route tests).

  • Existing tests pass

  • New tests cover the change

  • No change to a public contract interface, or a migration note is included

…n guide, and flow diagram

Replace the /contracts placeholder with the full contracts story: the three
contracts and why they are separate (attestation cheap and frequent,
settlement conservative and rare), a registry-driven deployment table with
explorer links and WASM hashes, reproducible-build verification steps, the
attest -> meter -> settle flow diagram, and source + audit-status links.

The deployment table reads from a local registry mirroring
modeltrace-contract#62; until that registry lands every address is honestly
marked not-yet-deployed, so the page goes live by editing data, not markup.
@joelpeace48-cell

Copy link
Copy Markdown
Contributor

@Faithy5 ci fails please fix it

Faithy5 and others added 4 commits August 28, 2026 20:57
The e2e accessibility suite fails on mobile: the deployment table
wrapper, the verification code blocks, and the wide chart plots all
scroll on narrow viewports without a tab stop (axe
scrollable-region-focusable). Add tabIndex to each scroll container so
keyboard users can reach the content.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

app: build out /contracts with live deployed addresses

2 participants