Skip to content

feat: holders and delegates v3 (DEV-562, DEV-476)#2084

Draft
brunod-e wants to merge 1 commit into
devfrom
feat/holders-delegates-v3
Draft

feat: holders and delegates v3 (DEV-562, DEV-476)#2084
brunod-e wants to merge 1 commit into
devfrom
feat/holders-delegates-v3

Conversation

@brunod-e

Copy link
Copy Markdown
Collaborator

What

Holders & Delegates v3. Closes DEV-562 and DEV-476.

Dashboard

  • Min/max value filters on the Delegates (voting power) and Token Holders (balance) tables (DEV-476).
  • Delegates is the default tab; sidebar label renamed to "Stakeholders".
  • Main table: default row height, bottom borders (new withRowBorders on the design-system Table), continuous activity ring, voting power shown as a percentage of quorum (red at 100%+, yellow at 50%+).
  • Inactive-delegate flag and 0/0 activity states (Inactive / No proposals / Never voted), respecting the selected period.
  • Inactive-VP alert banner on Token Holders; "Voted X/Y (Inactive)" on the delegate column.
  • Clickable addresses that re-point the drawer everywhere; per-address Activity tab.
  • Balance History: Buy/Sell relabeled to In / Out / Vesting (vesting via the labels endpoint).
  • Top Interactions: Dust badge (< $1 at spot price) and a "Hide dust" switch (new design-system Switch).
  • Voting Power History: "Filter low importance" (default on) and "All time" range.
  • Time selector: MAX option and a custom calendar range (new SwitcherDateRange).
  • Delegate drawer tabs aligned to Figma (Voting Power, Delegation History); Former Delegators view with VP-impact transition.
  • Proposal final-result filter on the votes tab.

API

  • New endpoints: GET /:dao/voting-powers/inactive-summary, GET /:dao/accounts/:address/delegators/historical, GET /:dao/addresses/labels.
  • New query params: address on GET /:dao/feed/events, proposalStatusIn on GET /:dao/proposals-activity.
  • Gateful re-exposes the expanded surface through its aggregated OpenAPI spec (no gateway code change).

Testing

  • API: typecheck, lint clean, 758 unit tests pass.
  • Dashboard: typecheck, lint clean, 225 tests pass.
  • Figma-compared the Delegates/Token Holders screens, the time selector/calendar, and the drawer tabs against the current design file.

Notes for review

  • The @anticapture/client SDK regenerates on the PR preview from the deployed Gateful spec; the dashboard features backed by the new endpoints (inactive banner, Former Delegators, per-address Activity, Vesting labels) show live data only once the API + Gateful of this branch are deployed.
  • Open decisions (kept as-is, easy to change): the min/max filter lives in the funnel on the Voting Power / Balance headers (Figma shows only sort arrows there); the votes tab keeps both the User Vote and Final Result filters; the shared drawer header still uses the default EnsAvatar tag set rather than the Figma's Individual/EAO badges.

🤖 Generated with Claude Code

Dashboard:
- min/max value filters on Delegates (voting power) and Token Holders (balance)
- Delegates as default tab; sidebar renamed to "Stakeholders"
- larger rows with bottom borders, continuous activity ring, VP as percent of quorum
- inactive-delegate flag and 0/0 states (Inactive / No proposals / Never voted)
- inactive-VP alert banner on Token Holders; "Voted X/Y (Inactive)" on delegate column
- clickable addresses that re-point the drawer; per-address Activity tab
- Balance History In / Out / Vesting; dust badge and Hide dust switch on Top Interactions
- VP History low-importance filter and All time; time selector MAX plus custom calendar range
- delegate drawer tabs renamed (Voting Power, Delegation History); Former Delegators view
- proposal final-result filter on the votes tab

API:
- new endpoints: voting-powers/inactive-summary, accounts/:address/delegators/historical,
  addresses/labels; address filter on feed/events; proposalStatusIn on proposals-activity

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
anticapture-storybook Ready Ready Preview, Comment Jul 23, 2026 11:10pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
anticapture Ignored Ignored Jul 23, 2026 11:10pm

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Vercel preview: https://anticapture-2t9tftc3i-ful.vercel.app

@railway-app

railway-app Bot commented Jul 23, 2026

Copy link
Copy Markdown

🚅 Deployed to the anticapture-pr-2084 environment in anticapture-infra

Service Status Web Updated (UTC)
uniswap-indexer-offchain ✅ Success (View Logs) Jul 24, 2026 at 1:21 am
gitcoin-indexer-offchain ✅ Success (View Logs) Jul 24, 2026 at 1:21 am
shutter-indexer-offchain ✅ Success (View Logs) Jul 24, 2026 at 1:21 am
compound-indexer-offchain ✅ Success (View Logs) Jul 24, 2026 at 1:17 am
ens-indexer-offchain ✅ Success (View Logs) Jul 24, 2026 at 1:17 am
grafana ✅ Success (View Logs) Web Jul 24, 2026 at 12:13 am
prometheus ✅ Success (View Logs) Jul 24, 2026 at 12:13 am
mcp ✅ Success (View Logs) Web Jul 23, 2026 at 11:15 pm
docs ✅ Success (View Logs) Web Jul 23, 2026 at 11:15 pm
gateful ✅ Success (View Logs) Web Jul 23, 2026 at 11:14 pm
obol-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
aave-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
ens-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
gitcoin-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
nouns-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
address-enrichment ✅ Success (View Logs) Web Jul 23, 2026 at 11:14 pm
scroll-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
aave-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
tornado-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
ens-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
lil-nouns-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
shutter-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
shutter-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
fluid-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
lil-nouns-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
uniswap-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
compound-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
gitcoin-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
tornado-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
uniswap-api ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
obol-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
fluid-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
nouns-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
compound-indexer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
ens-relayer ✅ Success (View Logs) Jul 23, 2026 at 11:14 pm
erpc ✅ Success (View Logs) Web Jul 23, 2026 at 11:14 pm
nodeful ✅ Success (View Logs) Jul 23, 2026 at 11:13 pm
otelcol ✅ Success (View Logs) Jul 23, 2026 at 11:13 pm
tempo ✅ Success (View Logs) Jul 23, 2026 at 11:13 pm
user-api ✅ Success (View Logs) Web Jul 23, 2026 at 11:13 pm
alertmanager ✅ Success (View Logs) Jul 23, 2026 at 11:12 pm
authful ✅ Success (View Logs) Web Jul 23, 2026 at 11:12 pm
loki ✅ Success (View Logs) Jul 23, 2026 at 11:12 pm
scroll-api ✅ Success (View Logs) Jul 23, 2026 at 11:11 pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant