Skip to content

feat: support v3.0.0 contracts with updatable proposals#962

Open
dan13ram wants to merge 49 commits into
stagingfrom
feat/updatable-proposals
Open

feat: support v3.0.0 contracts with updatable proposals#962
dan13ram wants to merge 49 commits into
stagingfrom
feat/updatable-proposals

Conversation

@dan13ram

@dan13ram dan13ram commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Upgrade flow looks like this:

  1. Show upgrade is available
image
  1. Upgrade button opens Modal for choosing updatable time period
image
  1. Upgrade proposal is created

example: https://testnet-nouns-builder-ksk59jy0y-nouns-builder.vercel.app/dao/sepolia/0xb26f4c39d5e31cf58a51136ac62d29e45a3eb01d/vote/3?tab=details

@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
testnet-nouns-builder Ready Ready Preview Jul 12, 2026 11:31am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
nouns-builder Ignored Ignored Jul 12, 2026 11:31am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 251 files, which is 101 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f6e74593-1764-46b9-92fe-41d3ce1f017b

📥 Commits

Reviewing files that changed from the base of the PR and between 58e0311 and 980c65b.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (251)
  • apps/subgraph/abis/Governor.json
  • apps/subgraph/config/base-sepolia.json
  • apps/subgraph/config/ethereum-sepolia.json
  • apps/subgraph/config/optimism-sepolia.json
  • apps/subgraph/config/zora-sepolia.json
  • apps/subgraph/schema.graphql
  • apps/subgraph/scripts/deploy-all.sh
  • apps/subgraph/src/eas.ts
  • apps/subgraph/src/governor.ts
  • apps/subgraph/src/manager.ts
  • apps/subgraph/src/utils/eas.ts
  • apps/subgraph/src/utils/proposalMetadata.ts
  • apps/subgraph/subgraph.yaml.mustache
  • apps/subgraph/tests/auctionBidComment.test.ts
  • apps/subgraph/tests/candidateSponsorSignature.test.ts
  • apps/subgraph/tests/daoMetadata.test.ts
  • apps/subgraph/tests/eas.test.ts
  • apps/subgraph/tests/easCandidateDecoder.test.ts
  • apps/subgraph/tests/governor.test.ts
  • apps/subgraph/tests/proposalMetadata.test.ts
  • apps/web/next.config.js
  • apps/web/package.json
  • apps/web/src/layouts/BaseLayout/BaseLayout.tsx
  • apps/web/src/modules/dashboard/DaoAuctionCard.tsx
  • apps/web/src/modules/dashboard/DaoSelectorModal.tsx
  • apps/web/src/pages/_app.tsx
  • apps/web/src/pages/api/ai/generateTxSummary.ts
  • apps/web/src/pages/api/decode.ts
  • apps/web/src/pages/bridge.tsx
  • apps/web/src/pages/coin/[network]/[coinAddress].tsx
  • apps/web/src/pages/dao/[network]/[token]/[tokenId].tsx
  • apps/web/src/pages/dao/[network]/[token]/candidate/[candidateId].tsx
  • apps/web/src/pages/dao/[network]/[token]/candidate/create.tsx
  • apps/web/src/pages/dao/[network]/[token]/index.tsx
  • apps/web/src/pages/dao/[network]/[token]/proposal/create.tsx
  • apps/web/src/pages/dao/[network]/[token]/proposal/review.tsx
  • apps/web/src/pages/dao/[network]/[token]/vote/[id].tsx
  • apps/web/src/pages/drop/[network]/[dropAddress].tsx
  • apps/web/src/utils/api/error.ts
  • packages/candidate-ui/package.json
  • packages/candidate-ui/src/components/CandidateCommentCard.tsx
  • packages/candidate-ui/src/components/CandidateCommentForm.css.ts
  • packages/candidate-ui/src/components/CandidateCommentForm.tsx
  • packages/candidate-ui/src/components/CandidateDetailsSection.tsx
  • packages/candidate-ui/src/components/CandidateDiscussionSection.tsx
  • packages/candidate-ui/src/components/CandidateDraftForm.tsx
  • packages/candidate-ui/src/components/CandidateEditedBanner/CandidateEditedBanner.tsx
  • packages/candidate-ui/src/components/CandidateEditedBanner/index.ts
  • packages/candidate-ui/src/components/CandidateList.css.ts
  • packages/candidate-ui/src/components/CandidateList.tsx
  • packages/candidate-ui/src/components/CandidatePromoteButton.tsx
  • packages/candidate-ui/src/components/CandidatePromoteCard/CandidatePromoteCard.css.ts
  • packages/candidate-ui/src/components/CandidatePromoteCard/CandidatePromoteCard.tsx
  • packages/candidate-ui/src/components/CandidatePromoteCard/index.ts
  • packages/candidate-ui/src/components/CandidateSignalBreakdown.tsx
  • packages/candidate-ui/src/components/CandidateSignatureButton.tsx
  • packages/candidate-ui/src/components/CandidateSigners/CandidateSigners.test.ts
  • packages/candidate-ui/src/components/CandidateSigners/CandidateSigners.tsx
  • packages/candidate-ui/src/components/CandidateSigners/index.ts
  • packages/candidate-ui/src/components/CandidateStatus/CandidateStatus.helper.ts
  • packages/candidate-ui/src/components/CandidateStatus/CandidateStatus.tsx
  • packages/candidate-ui/src/components/CandidateStatus/index.ts
  • packages/candidate-ui/src/components/CandidateSubmitForm.tsx
  • packages/candidate-ui/src/components/CandidateUpdatingBanner/CandidateUpdatingBanner.tsx
  • packages/candidate-ui/src/components/CandidateUpdatingBanner/index.ts
  • packages/candidate-ui/src/index.ts
  • packages/candidate-ui/src/utils/buildCandidateDescription.test.ts
  • packages/candidate-ui/src/utils/buildCandidateDescription.ts
  • packages/candidate-ui/src/utils/candidateProposal.ts
  • packages/candidate-ui/tsconfig.json
  • packages/candidate-ui/tsup.config.ts
  • packages/constants/src/addresses.ts
  • packages/constants/src/alchemy.ts
  • packages/constants/src/chains.ts
  • packages/constants/src/eas.ts
  • packages/constants/src/etherscan.ts
  • packages/constants/src/rpc.ts
  • packages/constants/src/safe.ts
  • packages/constants/src/subgraph.ts
  • packages/constants/src/swrKeys.ts
  • packages/constants/src/versions.ts
  • packages/create-proposal-ui/src/components/CreateProposalHeading/CreateProposalHeading.tsx
  • packages/create-proposal-ui/src/components/MobileProposalActionBar/MobileProposalActionBar.tsx
  • packages/create-proposal-ui/src/components/ProposalStageIndicator/ProposalStageIndicator.tsx
  • packages/create-proposal-ui/src/components/Queue/Queue.tsx
  • packages/create-proposal-ui/src/components/ReviewProposalForm/ReviewProposalForm.tsx
  • packages/create-proposal-ui/src/components/ReviewProposalForm/fields.test.ts
  • packages/create-proposal-ui/src/components/ReviewProposalForm/fields.ts
  • packages/create-proposal-ui/src/components/TransactionForm/AddArtwork/AddArtwork.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/AirdropTokens/AirdropTokens.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/ContentCoin/ContentCoin.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/CreatorCoin/CreatorCoin.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/CustomTransaction/CustomTransaction.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/Droposal/Droposal.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/FixRendererBase/FixRendererBase.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/Migration/BridgeTreasuryForm.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/Migration/MigrateDAOForm.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/Migration/PauseAuctionsForm.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/MilestonePayments/MilestonePayments.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/MintGovernanceTokens/MintGovernanceTokens.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/NominateEscrowDelegate/NominateEscrowDelegate.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/PauseAuctions/PauseAuctions.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/PinTreasuryAsset/PinTreasuryAsset.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/ReplaceArtwork/ReplaceArtwork.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/ResumeAuctions/ResumeAuctions.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/SendNft/SendNft.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/SendTokens/SendTokens.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/StreamTokens/StreamTokens.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/TransactionForm.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/Upgrade/UpgradeRequired.tsx
  • packages/create-proposal-ui/src/components/TransactionForm/WalletConnect/WalletConnect.tsx
  • packages/create-proposal-ui/src/components/TransactionStageColumn/TransactionStageColumn.tsx
  • packages/create-proposal-ui/src/components/TransactionStageColumn/index.ts
  • packages/create-proposal-ui/src/components/TwoColumnLayout.css.ts
  • packages/create-proposal-ui/src/components/TwoColumnLayout.tsx
  • packages/create-proposal-ui/src/components/UpdateDeadlinePassedModal/UpdateDeadlinePassedModal.tsx
  • packages/create-proposal-ui/src/components/UpdateDeadlinePassedModal/index.ts
  • packages/create-proposal-ui/src/components/UpdatingProposalBanner/UpdatingProposalBanner.tsx
  • packages/create-proposal-ui/src/components/UpdatingProposalBanner/index.ts
  • packages/create-proposal-ui/src/components/index.ts
  • packages/create-proposal-ui/src/components/shared/TransactionComposer.tsx
  • packages/create-proposal-ui/src/components/shared/index.ts
  • packages/create-proposal-ui/src/utils/tenderlySimulation.ts
  • packages/dao-ui/package.json
  • packages/dao-ui/src/components/Activity/Activity.tsx
  • packages/dao-ui/src/components/AdminForm/AdminForm.schema.ts
  • packages/dao-ui/src/components/AdminForm/AdminForm.tsx
  • packages/dao-ui/src/components/AdminForm/utils.tsx
  • packages/dao-ui/src/components/Candidates/Candidates.tsx
  • packages/dao-ui/src/components/Candidates/index.ts
  • packages/dao-ui/src/components/SmartContracts/SmartContracts.tsx
  • packages/dao-ui/src/components/Upgrade/ConfigureUpdatablePeriodModal.tsx
  • packages/dao-ui/src/components/Upgrade/Upgrade.tsx
  • packages/dao-ui/src/components/Upgrade/versions/2.0.0.md
  • packages/dao-ui/src/components/Upgrade/versions/3.0.0.md
  • packages/dao-ui/src/components/Upgrade/versions/index.ts
  • packages/dao-ui/src/components/index.ts
  • packages/dao-ui/tsup.config.ts
  • packages/feed-ui/src/FeedFiltersModal.tsx
  • packages/feed-ui/src/FeedItemChain.tsx
  • packages/hooks/src/index.ts
  • packages/hooks/src/useAvailableUpgrade.ts
  • packages/hooks/src/useGovernorVersion.ts
  • packages/hooks/src/useProposal.ts
  • packages/hooks/src/useProposalState.ts
  • packages/hooks/src/useProposalTimeline.ts
  • packages/hooks/src/useProposalVersionHistory.ts
  • packages/proposal-ui/package.json
  • packages/proposal-ui/src/components/BundledDecodedTransactions/BundledDecodedTransactions.tsx
  • packages/proposal-ui/src/components/BundledDecodedTransactions/index.ts
  • packages/proposal-ui/src/components/OverwriteDraftModal/OverwriteDraftModal.tsx
  • packages/proposal-ui/src/components/OverwriteDraftModal/index.ts
  • packages/proposal-ui/src/components/PropDates/PropDateForm.tsx
  • packages/proposal-ui/src/components/ProposalActions/CancelButton.tsx
  • packages/proposal-ui/src/components/ProposalActions/ProposalActions.css.ts
  • packages/proposal-ui/src/components/ProposalActions/ProposalActions.tsx
  • packages/proposal-ui/src/components/ProposalActions/VoteStatus/Updatable.tsx
  • packages/proposal-ui/src/components/ProposalActions/VoteStatus/VoteStatus.tsx
  • packages/proposal-ui/src/components/ProposalDescription/ProposalContent.tsx
  • packages/proposal-ui/src/components/ProposalDescription/ProposalDescription.tsx
  • packages/proposal-ui/src/components/ProposalEditedBanner/ProposalEditedBanner.css.ts
  • packages/proposal-ui/src/components/ProposalEditedBanner/ProposalEditedBanner.tsx
  • packages/proposal-ui/src/components/ProposalEditedBanner/index.ts
  • packages/proposal-ui/src/components/ProposalHistoryModal/ProposalHistoryModal.tsx
  • packages/proposal-ui/src/components/ProposalHistoryModal/index.ts
  • packages/proposal-ui/src/components/ProposalReplacementBanner/ProposalReplacementBanner.css.ts
  • packages/proposal-ui/src/components/ProposalReplacementBanner/ProposalReplacementBanner.tsx
  • packages/proposal-ui/src/components/ProposalReplacementBanner/index.ts
  • packages/proposal-ui/src/components/ProposalSigners/ProposalSigners.css.ts
  • packages/proposal-ui/src/components/ProposalSigners/ProposalSigners.tsx
  • packages/proposal-ui/src/components/ProposalSigners/index.ts
  • packages/proposal-ui/src/components/ProposalStatus/ProposalStatus.helper.ts
  • packages/proposal-ui/src/components/ProposalStatus/ProposalStatus.tsx
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/DiffBadge.tsx
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/ProposalVersionDiffModal.css.ts
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/ProposalVersionDiffModal.tsx
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/TransactionDiff.css.ts
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/TransactionDiff.tsx
  • packages/proposal-ui/src/components/ProposalVersionDiffModal/index.ts
  • packages/proposal-ui/src/components/UpdateProposalButton/UpdateProposalButton.tsx
  • packages/proposal-ui/src/components/UpdateProposalButton/index.ts
  • packages/proposal-ui/src/components/index.ts
  • packages/proposal-ui/src/utils/compareTransactions.ts
  • packages/proposal-ui/src/utils/parseProposalTransactions.ts
  • packages/proposal-ui/src/utils/textDiff.ts
  • packages/sdk/codegen.yml
  • packages/sdk/package.json
  • packages/sdk/src/contract/abis/Governor.ts
  • packages/sdk/src/contract/helpers/hashProposal.ts
  • packages/sdk/src/contract/helpers/index.ts
  • packages/sdk/src/contract/helpers/setUpdatablePeriod.ts
  • packages/sdk/src/contract/index.ts
  • packages/sdk/src/eas/attestCandidate.ts
  • packages/sdk/src/eas/attestCandidateComment.ts
  • packages/sdk/src/eas/attestCandidateSignature.ts
  • packages/sdk/src/eas/attestCommentWithSignature.ts
  • packages/sdk/src/eas/index.ts
  • packages/sdk/src/eas/multiAttest.ts
  • packages/sdk/src/index.ts
  • packages/sdk/src/signatures/index.ts
  • packages/sdk/src/signatures/proposalSignatures.ts
  • packages/sdk/src/signatures/updateSignatures.ts
  • packages/sdk/src/signatures/voteSignatures.ts
  • packages/sdk/src/subgraph/fragments/Proposal.graphql
  • packages/sdk/src/subgraph/fragments/candidateGroup.graphql
  • packages/sdk/src/subgraph/index.ts
  • packages/sdk/src/subgraph/queries/candidateComments.graphql
  • packages/sdk/src/subgraph/queries/candidateGroup.graphql
  • packages/sdk/src/subgraph/queries/candidateGroups.graphql
  • packages/sdk/src/subgraph/queries/candidateSponsorSignatures.graphql
  • packages/sdk/src/subgraph/queries/candidateVersion.graphql
  • packages/sdk/src/subgraph/queries/proposalVersions.graphql
  • packages/sdk/src/subgraph/requests/candidateCommentsQuery.ts
  • packages/sdk/src/subgraph/requests/candidateGroupQuery.ts
  • packages/sdk/src/subgraph/requests/candidateGroupsQuery.ts
  • packages/sdk/src/subgraph/requests/candidateSponsorSignaturesQuery.ts
  • packages/sdk/src/subgraph/requests/feedQuery.ts
  • packages/sdk/src/subgraph/requests/getUserCandidateSignal.ts
  • packages/sdk/src/subgraph/requests/proposalQuery.ts
  • packages/sdk/src/subgraph/requests/proposalVersionsQuery.ts
  • packages/sdk/src/subgraph/requests/proposalsQuery.ts
  • packages/sdk/src/subgraph/sdk.generated.ts
  • packages/sdk/tsup.config.ts
  • packages/stores/src/createCandidateStore.ts
  • packages/stores/src/createProposalStore.ts
  • packages/stores/src/hooks/index.ts
  • packages/stores/src/hooks/useCandidateStore.ts
  • packages/stores/src/hooks/useProposalStore.ts
  • packages/stores/src/index.ts
  • packages/stores/src/providers/CandidateStoreProvider.tsx
  • packages/stores/src/providers/ProposalStoreProvider.tsx
  • packages/stores/src/providers/index.ts
  • packages/stores/tsup.config.ts
  • packages/types/src/chain.ts
  • packages/types/src/proposalMetadata.ts
  • packages/types/src/proposalState.ts
  • packages/ui/src/ContractButton/ContractButton.tsx
  • packages/ui/src/DecodedTransactions/index.ts
  • packages/ui/src/DropdownSelect/DropdownSelect.tsx
  • packages/ui/src/WalletIdentity/WalletIdentity.tsx
  • packages/utils/src/basename.ts
  • packages/utils/src/chains.ts
  • packages/utils/src/ens.ts
  • packages/utils/src/errors.ts
  • packages/utils/src/escrow.ts
  • packages/utils/src/index.ts
  • packages/utils/src/proposalMetadata.test.ts
  • packages/utils/src/proposalMetadata.ts
  • packages/utils/src/proposalState.ts
  • packages/utils/src/sablier/constants.ts
  • packages/zord/src/icons.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/updatable-proposals

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dan13ram dan13ram force-pushed the feat/updatable-proposals branch from ff76f31 to e632ef5 Compare June 11, 2026 16:23
@dan13ram dan13ram force-pushed the feat/updatable-proposals branch from 79c770b to ec8061e Compare June 17, 2026 10:21
@b3nedictvs b3nedictvs moved this to 🏗️ In Progress in Resident Cycle Jun 17, 2026
@dan13ram dan13ram force-pushed the feat/updatable-proposals branch from 9552823 to 82a998a Compare June 18, 2026 16:46
@dan13ram dan13ram force-pushed the feat/updatable-proposals branch from 8538ea3 to a6ba545 Compare June 22, 2026 04:57
@dan13ram dan13ram force-pushed the feat/updatable-proposals branch from a6ba545 to 53123d0 Compare June 22, 2026 06:18
dan13ram added 27 commits July 12, 2026 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🔎 In Review

Development

Successfully merging this pull request may close these issues.

2 participants