Skip to content

feat(web): DAO governance schedule - voting + queue duration, per-proposal countdown#69

Merged
marinom2 merged 1 commit into
mainfrom
feat/dao-governance-schedule
Jun 10, 2026
Merged

feat(web): DAO governance schedule - voting + queue duration, per-proposal countdown#69
marinom2 merged 1 commit into
mainfrom
feat/dao-governance-schedule

Conversation

@marinom2

Copy link
Copy Markdown
Owner

Adds the proposal lifecycle timing you asked for (voting days + queue), read live per governor.

Fact-check result

Both governors count in blocks (CLOCK_MODE=blocknumber); I measured the real block times (Ethereum ~12s, LightChain ~6s) to convert:

Ethereum DAO LightChain native DAO
Voting delay 1 day 1 day
Voting period 7 days 14 days ⚠️
Timelock queue 2 days ✅ 2 days ✅
Propose threshold 140,000 LCAIB 140,000 LCAI

So the 7 days + 2 days queue change is live on the Ethereum DAO (where the proposals + that vote live), exactly as recalled (down from 14). The LightChain native governor is still 14 days - that parameter change hasn't been applied there yet. The UI computes this per-tab from the chain, so it shows 7d on Ethereum and honestly 14d on LightChain.

What's added

  • dao-overview returns a schedule (votingDelay + votingPeriod in seconds, timelock minDelay, proposalThreshold). The treasury bar renders "1 day delay → 7 days voting → 2 days timelock queue" + the proposing threshold.
  • Per-proposal countdown: the proposals API returns the current head block; the expanded card shows "Voting ends in ~X" for active proposals ("opens in ~X" for pending).
  • Quorum tooltip explaining the % in absolute terms (the For+Abstain needed for the vote to count).

Verification

tsc clean, next build clean, ESLint clean, 478/478 tests pass (+5 for humanizeDuration). Verified live: overview returns 7d (ETH) / 14d (LC), proposals returns headBlock.

…posal countdown

Surface the proposal lifecycle timing, read live from each governor so the
two chains show their real (and currently different) settings.

- dao-overview now returns a schedule: votingDelay + votingPeriod (blocks ->
  seconds via measured block time: Ethereum ~12s, LightChain ~6s) + the
  timelock minDelay + proposalThreshold. The treasury bar renders it as
  "1 day delay -> 7 days voting -> 2 days timelock queue" plus the proposing
  threshold. Computed per chain, not hard-coded.
- Fact-checked against the contracts: the Ethereum DAO is now 7d voting + 2d
  queue (the change from 14d that governance voted in); the LightChain native
  governor is still 14d (that param change has not been applied there yet).
- Per-proposal countdown: the API returns the current head block and the
  expanded card shows "Voting ends in ~X" for active proposals (or "opens in"
  for pending).
- Quorum stat gains a tooltip explaining the % in absolute terms (e.g. the
  For+Abstain wei needed for the vote to be valid).

humanizeDuration extracted to dao-math and unit-tested (+5 tests).
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
lightnode Ready Ready Preview, Comment Jun 10, 2026 12:22pm

Request Review

@marinom2 marinom2 merged commit eabfe0f into main Jun 10, 2026
5 checks passed
@marinom2 marinom2 deleted the feat/dao-governance-schedule branch June 10, 2026 12:25
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