Skip to content

feat(web): Bridges page — cross-chain bridge dependencies#321

Merged
spalen0 merged 6 commits into
masterfrom
bridge
Jul 15, 2026
Merged

feat(web): Bridges page — cross-chain bridge dependencies#321
spalen0 merged 6 commits into
masterfrom
bridge

Conversation

@spalen0

@spalen0 spalen0 commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a new /bridges/ page mapping the cross-chain bridges and messaging layers that curated assets depend on, seeded from the risk reports. Linked from the header nav (Reports · Tokens · Bridges · Monitoring).

Bridges (alphabetical) and their detected dependencies:

  • Circle CCTP — 3 direct (Gauntlet gtUSDa, Origin OUSD, Yearn yvUSD) + 1 indirect (Flex, via yvUSD)
  • Chainlink CCIP — 4 direct (Apyx apxUSD, Centrifuge JAAA, InfiniFi, Maple syrupUSDC)
  • LayerZero — 12 direct + 2 indirect (KernelDAO hgETH, Fluid — both via rsETH)

Display

  • One table per bridge; each row links to its report and reuses that report's DefiLlama icon + chain badge (via getAllReports()).
  • Per-row Direct / Indirect type badge; indirect rows tinted amber.
  • Name-only search box, left-aligned to match Tokens/Reports.

Data & keeping it in sync

  • Data lives in src/data/bridges.json — add a bridge/dependency only when a report actually relies on it.
  • scripts/check_bridges.mjs is wired into dev/build: fails if a dependency slug has no report; warns when a report mentions a bridge keyword but isn't listed (resolve by adding it, or adding the slug to that bridge's ignore list). npm run check-bridges enforces zero unreviewed mentions in CI.
  • Update flow documented in reports/skill.md (Post-Assessment) and reports/reassessment/SKILL.md.

Validation

  • npm run build passes — 3 bridges, 22 dependencies, 0 warnings; /bridges/ renders with all report links resolving.
  • rsETH/Kelp bridge verified onchain as LayerZero (OFT Adapter 0x85d4…8Ef3 → LayerZero V2 EndpointV2 0x1a44…728c), confirming the two indirect LayerZero entries; not CCIP.

Notes

  • Bridge order follows the list requested (Circle, Chainlink, LayerZero). Strict name-alphabetical would swap the first two to Chainlink, Circle — easy to flip if preferred.
  • Paxos USDG and Apyx apxUSD show a placeholder icon (their reports carry no DefiLlama link, same as on the Reports page).

🤖 Generated with Claude Code

spalen0 and others added 2 commits July 15, 2026 13:35
Adds a new /bridges/ page listing the cross-chain bridges and messaging
layers that curated assets depend on, seeded from the risk reports:

- LayerZero (12 direct + 2 indirect), Chainlink CCIP (4 direct), and
  Circle CCTP (3 direct + 1 indirect). Each row links to its report and
  reuses that report's DefiLlama icon.
- Per-row Direct/Indirect type badge; indirect rows tinted amber.
- Data lives in src/data/bridges.json; icons reuse getAllReports().

Keeps the page in sync with reports via scripts/check_bridges.mjs, wired
into dev/build: it fails on dependency slugs with no report and warns on
unlisted bridge mentions (resolve via the bridge's ignore list). Update
flow documented in reports/skill.md and reports/reassessment/SKILL.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
risk-score Ready Ready Preview, Comment Jul 15, 2026 12:04pm

Request Review

@spalen0
spalen0 marked this pull request as ready for review July 15, 2026 11:39
…tical order

Sort bridges alphabetically by name and have check_bridges.mjs fail the
build if they drift out of order, since the page renders in file order.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Their reports carry no DefiLlama link, so the rows fell back to a
placeholder. Add optional per-dependency icon overrides in bridges.json:
'icon' (DefiLlama protocol slug) for Apyx (apyx-protocol) and 'iconToken'
(token address) for USDG, served via DefiLlama's token-icon CDN. All 22
rows now render a real icon.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the ad-hoc icon/iconToken/iconChain fields with a single reusable
'icon' reference resolved by defillamaIconUrl():
  protocol:<slug> | stablecoin:<slug> | token:[<chainId>:]<address>

USDG now uses its DefiLlama stablecoin listing (stablecoin:global-dollar)
and Apyx uses protocol:apyx-protocol — readable, slug-based, no raw
address, and extensible to future assets across DefiLlama categories.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Generalize the report icon pipeline to the same typed DefiLlama refs the
Bridges page uses (defillamaIconUrl). Reports whose markdown has no
/protocol/ link now resolve via DEFILLAMA_ICON_OVERRIDES:
  paxos-usdg      -> stablecoin:global-dollar
  superstate-ustb -> protocol:superstate
  apyx-apxusd     -> protocol:apyx-protocol
Existing protocol-slug overrides migrated to protocol:<slug> form.

USTB/USCC token-icon CDN entries are a shared placeholder (identical
hash), so USTB uses the Superstate protocol logo; USCC already resolves
via its report's /protocol/bitwise-uscc link.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@spalen0
spalen0 merged commit f1ad48c into master Jul 15, 2026
5 checks passed
@spalen0
spalen0 deleted the bridge branch July 15, 2026 13:02
@spalen0
spalen0 restored the bridge branch July 15, 2026 14:38
@spalen0
spalen0 deleted the bridge branch July 15, 2026 18:20
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