feat: port BuildProposalFromBatchesV2#24
Conversation
ecPablo
left a comment
There was a problem hiding this comment.
LGTM, I think we should still keep track on some ticket the unit tests for this funcs as those were the main blocker for moving these funcs since they depend on some of the changesets
There was a problem hiding this comment.
Pull request overview
Ports the BuildProposalFromBatchesV2 proposal-construction logic into this repo’s MCMS contract utilities, aligning with the newer MCMS library and CLDF proposal utils.
Changes:
- Added
BuildProposalFromBatchesV2to buildmcms.TimelockProposalobjects from batch operations using MCMS’ v2 builder + per-chain metadata inspection. - Implemented
buildProposalMetadataV2to derive chain metadata (incl. Solana/Aptos specifics) and fetch starting op counts via inspectors. - Bumped
chainlink-deployments-frameworkdependency tov0.99.0.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| pkg/contract/mcms/propose.go | New proposal builder + metadata derivation logic for MCMS timelock proposals |
| go.mod | Updates CLDF dependency to support/align with the ported proposal utils |
| go.sum | Adds checksums for the updated CLDF version |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Migrate [BuildProposalFromBatchesV2](https://github.com/smartcontractkit/chainlink/blob/7986f7c96d07e1a9a32167134fce1008a648b422/deployment/common/proposalutils/propose.go#L214-L214) from Chainlink repo JIRA: https://smartcontract-it.atlassian.net/browse/CLD-1911
298b9c3 to
8fe51cc
Compare
good point, i wanted to get these in to unblock other cards at least, the test was marked as flaky, i gues we could still bring it over. |
🤖 I have created a release *beep* *boop* --- ## [0.1.0](cld-changesets-v0.0.1...cld-changesets-v0.1.0) (2026-05-06) ### Features * add "catalog create chain metadata" changeset ([#36](#36)) ([c12bb51](c12bb51)) * add catalog create contract metadata changeset ([#27](#27)) ([8ec1cbc](8ec1cbc)) * add CRE workflow deploy changeset and operation ([#1](#1)) ([960fde1](960fde1)) * add target name param to cre deploy changeset ([#3](#3)) ([8b25662](8b25662)) * fund mcms pdas ([#22](#22)) ([821e542](821e542)) * **jobspec:** port jobspec changesets from chainlink ([#21](#21)) ([0ce3f74](0ce3f74)) * link token ([#30](#30)) ([07345c1](07345c1)) * **pkg:** add contract constants and Solana MCMS state loading ([#5](#5)) ([6a2bbee](6a2bbee)) * port BuildProposalFromBatchesV2 ([#24](#24)) ([28d53d7](28d53d7)) * port run changeset from chainlink ([#32](#32)) ([693922f](693922f)) * port solana grant role ([#33](#33)) ([7eca5be](7eca5be)) * port token approve ([#40](#40)) ([04130de](04130de)) * **port:** firedrill mcms with operations api refactor ([#25](#25)) ([6d9010c](6d9010c)) * **solana:** add SOL funding helpers for deployer transfers ([#19](#19)) ([63bebf8](63bebf8)) * **solana:** port over mcms pda loader ([#11](#11)) ([7170ddc](7170ddc)) ### Bug Fixes * **aptos:** move state load ([#8](#8)) ([de58102](de58102)) * **evm:** port state load evm funcs ([#9](#9)) ([99279f1](99279f1)) * **state:** restore addressbook usage ([#17](#17)) ([017cd5e](017cd5e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: app-token-issuer-ops-platform[bot] <275822481+app-token-issuer-ops-platform[bot]@users.noreply.github.com> Co-authored-by: James Kong <61834+jkongie@users.noreply.github.com>
Migrate BuildProposalFromBatchesV2 from Chainlink repo
There is unit test but i didn copy it over as it is flaky/quarantined
JIRA: https://smartcontract-it.atlassian.net/browse/CLD-1911