From 936c0535c7aad9e749f18215062fa7d448b07a87 Mon Sep 17 00:00:00 2001 From: Flotapponnier <160007691+Flotapponnier@users.noreply.github.com> Date: Sun, 26 Jul 2026 17:01:01 +0200 Subject: [PATCH 1/2] a11y: add aria-label to 9 leaderboard search inputs (#1517) * chain-kpis: register Sei + Mode + Ronin + Immutable zkEVM (DefiLlama slugs verified live) * chore(deps): bump next + js-yaml + pin hono via override (fix 3 High CVEs) - next 16.2.6 -> 16.2.12 (fixes 4 High advisories: SSRF in Server Actions, SSRF in rewrites, App Router middleware bypass, DoS) - @modelcontextprotocol/sdk 1.26.0 -> 1.29.0 - js-yaml ^4.1.1 -> ^4.3.0 (fixes O(n^2) merge-key DoS; stay in 4.x since 5.x is a breaking API change) - pnpm.overrides: hono >=4.12.32 (was pinned to 4.12.18 via MCP SDK transitive; fixes CORS 'reflect any Origin' + JWT scheme bypass on the public /api/mcp endpoint) pnpm audit --audit-level=high: 4 -> 2 remaining (both are transitive sharp / brace-expansion advisories that Next / ESLint own and are harder to reach without breaking-change bumps upstream). pnpm typecheck clean. * a11y: add aria-label to 9 leaderboard search inputs Search inputs across the leaderboard grid (hl-cohort, hl-hip3, perp-by-asset, perp-venues, pm-data-feeds, pm-venues, providers-table, rpc-chains, rpc-providers-pivot) only had placeholder text. Screen readers annouced them as 'edit' with no context; NVDA + JAWS + VoiceOver users had to interact with the field to discover what it filtered. Adds aria-label mirroring the placeholder ('Search venue', 'Search builder', etc.) so the field has an accessible name whether the placeholder is visible or the user has typed into it. Files that already carried aria-label (badges-catalog, benchmark-grid, compare-selector, search-dialog) are untouched. --- src/components/hl-cohort-leaderboard.tsx | 2 +- src/components/hl-hip3-leaderboard.tsx | 2 +- src/components/perp-by-asset-table.tsx | 2 +- src/components/perp-venues-leaderboard.tsx | 2 +- src/components/pm-data-feeds-leaderboard.tsx | 2 +- src/components/pm-venues-leaderboard.tsx | 2 +- src/components/providers-table.tsx | 2 +- src/components/rpc-chains-leaderboard.tsx | 2 +- src/components/rpc-providers-pivot.tsx | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/hl-cohort-leaderboard.tsx b/src/components/hl-cohort-leaderboard.tsx index 272f987f..16af88b7 100644 --- a/src/components/hl-cohort-leaderboard.tsx +++ b/src/components/hl-cohort-leaderboard.tsx @@ -65,7 +65,7 @@ export function HlCohortLeaderboard({ {filtered.length} of {rows.length} builders

setQ(e.target.value)} placeholder="Search builder…" diff --git a/src/components/hl-hip3-leaderboard.tsx b/src/components/hl-hip3-leaderboard.tsx index 9a81a250..2c1b0a39 100644 --- a/src/components/hl-hip3-leaderboard.tsx +++ b/src/components/hl-hip3-leaderboard.tsx @@ -58,7 +58,7 @@ export function HlHip3Leaderboard({ rows }: { rows: HlHip3Row[] }) { {filtered.length} of {rows.length} dexes

setQ(e.target.value)} placeholder="Search dex…" diff --git a/src/components/perp-by-asset-table.tsx b/src/components/perp-by-asset-table.tsx index fb928767..a28b5e61 100644 --- a/src/components/perp-by-asset-table.tsx +++ b/src/components/perp-by-asset-table.tsx @@ -87,7 +87,7 @@ export function PerpByAssetTable({ rows }: { rows: PerpAssetRow[] }) { {filtered.length} of {rows.length} venues

setQ(e.target.value)} placeholder="Search venue..." diff --git a/src/components/perp-venues-leaderboard.tsx b/src/components/perp-venues-leaderboard.tsx index 294986e1..bcec0f05 100644 --- a/src/components/perp-venues-leaderboard.tsx +++ b/src/components/perp-venues-leaderboard.tsx @@ -80,7 +80,7 @@ export function PerpVenuesLeaderboard({ rows }: { rows: PerpVenueRow[] }) { {filtered.length} of {rows.length} venues

setQ(e.target.value)} placeholder="Search venue or chain..." diff --git a/src/components/pm-data-feeds-leaderboard.tsx b/src/components/pm-data-feeds-leaderboard.tsx index 1b236497..8a8b6630 100644 --- a/src/components/pm-data-feeds-leaderboard.tsx +++ b/src/components/pm-data-feeds-leaderboard.tsx @@ -68,7 +68,7 @@ export function PmDataFeedsLeaderboard({ rows }: { rows: PmDataFeedRow[] }) { {filtered.length} of {rows.length} feeds

setQ(e.target.value)} placeholder="Search feed..." diff --git a/src/components/pm-venues-leaderboard.tsx b/src/components/pm-venues-leaderboard.tsx index f905dfcd..1c9515dc 100644 --- a/src/components/pm-venues-leaderboard.tsx +++ b/src/components/pm-venues-leaderboard.tsx @@ -72,7 +72,7 @@ export function PmVenuesLeaderboard({ rows }: { rows: PmVenueRow[] }) { {filtered.length} of {rows.length} venues

setQ(e.target.value)} placeholder="Search venue..." diff --git a/src/components/providers-table.tsx b/src/components/providers-table.tsx index 6fef5ca1..372aca61 100644 --- a/src/components/providers-table.tsx +++ b/src/components/providers-table.tsx @@ -89,7 +89,7 @@ export function ProvidersTable({ providers }: { providers: Row[] }) { className="absolute left-3 text-ink-faint group-focus-within:text-ink-muted pointer-events-none" /> setQuery(e.target.value)} placeholder="Search products..." diff --git a/src/components/rpc-chains-leaderboard.tsx b/src/components/rpc-chains-leaderboard.tsx index 6052b681..bdb4e0f6 100644 --- a/src/components/rpc-chains-leaderboard.tsx +++ b/src/components/rpc-chains-leaderboard.tsx @@ -89,7 +89,7 @@ export function RpcChainsLeaderboard({ rows }: { rows: RpcHubChain[] }) { regions

setQ(e.target.value)} placeholder="Search chain or provider..." diff --git a/src/components/rpc-providers-pivot.tsx b/src/components/rpc-providers-pivot.tsx index 883dc051..95972a95 100644 --- a/src/components/rpc-providers-pivot.tsx +++ b/src/components/rpc-providers-pivot.tsx @@ -102,7 +102,7 @@ export function RpcProvidersPivot({ p50 across {chains.length} chains

setQ(e.target.value)} placeholder="Search provider..." From 6618d7edba6e0ea1579e2dda9489d7b9b71b2945 Mon Sep 17 00:00:00 2001 From: Florent Tapponnier <160007691+Flotapponnier@users.noreply.github.com> Date: Sun, 26 Jul 2026 17:02:01 +0200 Subject: [PATCH 2/2] vague-1 chain assets: sei/mode/ronin/immutable logos + provider-registry entries (5 providers) --- public/logos/immutable.svg | 28 ++++++++++++++++++++++++++++ public/logos/mode.webp | Bin 0 -> 20848 bytes public/logos/ronin.svg | 24 ++++++++++++++++++++++++ public/logos/sei.svg | 19 +++++++++++++++++++ src/data/provider-registry.ts | 30 ++++++++++++++++++++++++++++++ 5 files changed, 101 insertions(+) create mode 100644 public/logos/immutable.svg create mode 100644 public/logos/mode.webp create mode 100644 public/logos/ronin.svg create mode 100644 public/logos/sei.svg diff --git a/public/logos/immutable.svg b/public/logos/immutable.svg new file mode 100644 index 00000000..b9536843 --- /dev/null +++ b/public/logos/immutable.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/logos/mode.webp b/public/logos/mode.webp new file mode 100644 index 0000000000000000000000000000000000000000..bba9c94502363407f7713ff5c1624767cf416e29 GIT binary patch literal 20848 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 L9s2Lkf3Ii{>34C) literal 0 HcmV?d00001 diff --git a/public/logos/ronin.svg b/public/logos/ronin.svg new file mode 100644 index 00000000..73db92c8 --- /dev/null +++ b/public/logos/ronin.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/public/logos/sei.svg b/public/logos/sei.svg new file mode 100644 index 00000000..65d823b9 --- /dev/null +++ b/public/logos/sei.svg @@ -0,0 +1,19 @@ + + + + + diff --git a/src/data/provider-registry.ts b/src/data/provider-registry.ts index 4b11c87d..c9ca3c02 100644 --- a/src/data/provider-registry.ts +++ b/src/data/provider-registry.ts @@ -699,6 +699,36 @@ export const PROVIDER_REGISTRY: Record = { "BNB Chain team's official public opBNB RPC (opbnb-mainnet-rpc.bnbchain.org). Standard EVM JSON-RPC on the OP Stack rollup that settles onto BNB Chain (not Ethereum), keyless, rate-limited per IP.", twitter: "@BNBCHAIN", }, + "sei-official": { + url: "https://www.sei.io", + description: + "Sei Labs' official public EVM RPC (evm-rpc.sei-apis.com) for the parallel-execution EVM layer on Sei's Cosmos SDK L1 (chain 1329). Standard EVM JSON-RPC, keyless, rate-limited per IP.", + twitter: "@SeiNetwork", + }, + "mode-official": { + url: "https://mode.network", + description: + "Mode Labs' official public RPC (mainnet.mode.network) for the OP Stack L2 in the Base / Superchain ecosystem (chain 34443). Standard EVM JSON-RPC, keyless, rate-limited per IP.", + twitter: "@modenetwork", + }, + "ronin-official": { + url: "https://roninchain.com", + description: + "Sky Mavis' official public Ronin RPC (api.roninchain.com/rpc) for the EVM gaming L1 (chain 2020) that hosts Axie Infinity, Pixels and a broader gaming stack. Standard EVM JSON-RPC, keyless, rate-limited per IP.", + twitter: "@Ronin_Network", + }, + "immutable-official": { + url: "https://www.immutable.com", + description: + "Immutable's official public zkEVM RPC (rpc.immutable.com) for the Polygon CDK zkEVM L2 dedicated to Web3 gaming (chain 13371). Standard EVM JSON-RPC, keyless, rate-limited per IP.", + twitter: "@Immutable", + }, + stakeme: { + url: "https://stakeme.pro", + description: + "Stakeme is an independent validator operator running keyless public RPC endpoints for select L1s. Currently listed on OCB for Sei EVM (sei-evm-rpc.stakeme.pro).", + twitter: "@stakeme_pro", + }, dwellir: { url: "https://www.dwellir.com", description: