Skip to content

Package pages for packages without MVR names - #251

Draft
mdgeorge4153 wants to merge 4 commits into
mdgeorge/source-verification-2-sv-displayfrom
mdgeorge/unregistered-package-pages
Draft

Package pages for packages without MVR names#251
mdgeorge4153 wants to merge 4 commits into
mdgeorge/source-verification-2-sv-displayfrom
mdgeorge/unregistered-package-pages

Conversation

@mdgeorge4153

Copy link
Copy Markdown

Stacked on #247 (mdgeorge/source-verification-2-sv-display).

What

Packages with no MVR name previously returned "Package not found" — there was no
way to view what's known about them on-chain. The motivating case: Certora
audited the Sui Bridge (0xb)
, a system package that will never have an MVR
name, and that attestation was invisible in the UI.

This resolves a bare /package/0x… URL into a nameless ResolvedName and renders
the package's on-chain surfaces.

How

  • useResolvePackageByAddress resolves an address to a minimal ResolvedName
    (name = the address; no git_info/metadata/package_info) via packageVersions
    • asMovePackage. A new useResolvePackage branches name-vs-address and
      replaces useResolveMvrName in the package page and layout.
  • useGetMvrVersionAddresses grows an address branch (packageVersions GraphQL)
    so the Versions, Dependents, and Attestations tabs work with no
    server-side changes
    — dependents are already fetched by /v1/package-address/….
  • The Readme tab becomes an "unregistered package" landing placeholder; the
    header shows the truncated address as the title.
  • Unnamed dependencies and nameless attestation subjects now link to their
    by-address pages, just like named ones.

Try it

/package/0xb on testnet → Security tab shows Certora's Sui Bridge audit.
(The derived attestation box for 0xb was verified to own Certora's attestation.)

Known limits (MVP)

  • The Dependents count badge in the nav uses name-keyed analytics, so it reads
    empty for nameless packages — the tab panel itself works. Fixing the count needs
    a server-side (analytics-by-address) change; deferred by design.
  • 0xb resolves on both networks and defaults to mainnet (empty Security there);
    toggle to testnet to see the audit.
  • System packages keep one address across versions, so the Versions/Dependents
    views list one entry per version number at the same address (cosmetic).

🤖 Generated with Claude Code

A package with no MVR name (e.g. a system package like the Sui Bridge at
0xb, which Certora has audited) previously 404'd — there was no way to see
the attestations, versions, or dependents that are known about it on-chain.

Resolve a bare `/package/0x…` URL into a nameless `ResolvedName` via
`useResolvePackageByAddress` (on-chain `packageVersions` + `asMovePackage`),
routed through a new `useResolvePackage` that the page and layout use in
place of `useResolveMvrName`. The name-keyed version enumeration
(`useGetMvrVersionAddresses`) grows an address branch so the Versions,
Dependents, and Attestations tabs work with no server-side changes; the
dependents *count* badge (name-keyed analytics) is the one surface that
stays empty for nameless packages.

The Readme tab becomes an "unregistered package" landing placeholder, and
the header shows the truncated address as the title. Unnamed dependencies
and nameless attestation subjects now link to their by-address pages just
like named ones do.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GqiELJtBuhYBp2W35ExHCk
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mvr Ready Ready Preview Aug 20, 2026 1:36pm

Request Review

mdgeorge4153 and others added 2 commits August 20, 2026 13:30
The Security tab renders one audit section per package version. Attestations
are keyed by the subject *address*, though, and a system package (the bridge
at 0xb) keeps one address across all its upgrades — so its single Certora
audit was rendering once per version (8×). Collapse versions to one section
per distinct address, keeping the newest version as the representative;
normal packages, whose versions have distinct addresses, are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GqiELJtBuhYBp2W35ExHCk
`mvr add` takes an MVR name, so `mvr add 0x…` is not a valid install command.
Omit the Install section entirely for a package with no name. (The sidebar's
Analytics block already self-hides for these, and Source Code is gated on
git_info, so only the Description remains.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GqiELJtBuhYBp2W35ExHCk
An attester without an MVR name (e.g. Certora) rendered a non-clickable
address. Now that /package/<address> resolves, link it to its by-address
page — where its Attestations tab lists what it has attested — instead of
showing a dead address.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GqiELJtBuhYBp2W35ExHCk
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.

1 participant