Skip to content

fix(dashboard): voting on uniswap governor with wrong output#2050

Merged
pikonha merged 3 commits into
mainfrom
hotfix/voting-uniswap
Jul 10, 2026
Merged

fix(dashboard): voting on uniswap governor with wrong output#2050
pikonha merged 3 commits into
mainfrom
hotfix/voting-uniswap

Conversation

@pikonha

@pikonha pikonha commented Jul 10, 2026

Copy link
Copy Markdown
Member

Note

Medium Risk
Touches on-chain governance vote submission for multiple DAOs, but the change is limited to simulation ABI/decoding and is covered by a new test.

Overview
Fixes "Failed to vote" on GovernorBravo-style governors (e.g. UNI, COMP, GTC, Nouns) where simulateContract ran before the wallet could open.

ozGovernorVoteHandler no longer uses the ENS/OZ governor JSON ABI for castVote / castVoteWithReason. It now uses a minimal GovernorCastVoteAbi with empty outputs, because Bravo governors return no returndata and viem was erroring when the ABI expected a uint256. Proposal IDs are passed as BigInt(params.proposalId) in those calls.

A unit test asserts Uniswap governor votes simulate with void-return castVote ABI and the expected args.

Reviewed by Cursor Bugbot for commit 97b2dc7. Configure here.

@vercel

vercel Bot commented Jul 10, 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 10, 2026 8:41pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
anticapture Ignored Ignored Jul 10, 2026 8:41pm

Request Review

@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2050 July 10, 2026 20:36 Destroyed

Copy link
Copy Markdown
Collaborator

🎨 UI Review

Automated review · scope check only

This PR is a backend logic fix: it swaps the ABI used for castVote / castVoteWithReason on GovernorBravo-style DAOs (UNI, COMP, GTC, Nouns) in apps/dashboard/features/governance/utils/voteOnProposal.ts (a shared, ABI-only GovernorCastVoteAbi with empty outputs replaces the OZ/ENS governor ABI, and proposal IDs are now passed as BigInt), plus a matching unit test and a changeset. All 3 changed files are non-visual — no .tsx, no styles, no design-system files, no rendered UI surface.

The fix only changes how the vote transaction is simulated/submitted under the hood (fixing a simulateContract decoding error that was blocking the wallet from opening); the vote flow's UI (buttons, dialogs, toasts) is untouched by this diff.

Out of scope for a UI review; no findings to report.


Generated by Claude Code

@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2050 July 10, 2026 20:38 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 97b2dc77b6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/dashboard/features/governance/utils/voteOnProposal.test.ts
@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2050 July 10, 2026 20:39 Destroyed
@pikonha pikonha merged commit 2c36e52 into main Jul 10, 2026
55 of 58 checks passed
@pikonha pikonha deleted the hotfix/voting-uniswap branch July 10, 2026 20:42
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.

3 participants