[Do Not Merge - To be Merged Later] Migrate EthBalMon to CRE#22981
Open
bitrider23 wants to merge 3 commits into
Open
[Do Not Merge - To be Merged Later] Migrate EthBalMon to CRE#22981bitrider23 wants to merge 3 commits into
bitrider23 wants to merge 3 commits into
Conversation
…perRegistryAddress; bump OpenTelemetry dependencies to v1.44.0; adjust related tests and validation logic accordingly.
…and adding SetCallAllowed operation. Introduce AutomationReceiver configuration types for improved deployment management.
…rwarderAddress with KeeperRegistryAddress in deployment configurations. Update validation logic and tests to reflect this change, ensuring proper handling of keeper registry addresses across the codebase.
graham-chainlink
approved these changes
Jun 30, 2026
graham-chainlink
left a comment
Collaborator
There was a problem hiding this comment.
Approving on behalf of CLD team due to the changes in go.mod and go.sum, however someone from vault will need to review those code changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add AutomationReceiver deployment changesets and refactor EthBalMon deploy
Summary
This PR introduces new changesets for deploying and configuring
AutomationReceiver— the CRE bridge contract that routes workflow reports to Chainlink Automation upkeeps. It also refactors the existing EthBalMon deploy changeset to be standalone, and adds a combined changeset that deploys and wires both contracts together.Changes
New changesets
DeployAutomationReceiverChangeSet(automation_receiver_deploy.go)Deploys
AutomationReceiverwith a given CRE forwarder address, callssetCallAllowedto authorize a target contract and function selector, and transfers ownership to the Timelock. UsesDeployAutomationReceiverSequenceinternally.DeployEthBalMonWithReceiverChangeSet(ethbalmon_automation_receiver_deploy.go)Combined changeset that deploys both contracts and fully wires them together in a single operation:
AutomationReceiverwith the CRE forwarder addressEthBalanceMonitorwith the AR address as keeper registrysetCallAllowedon AR →EthBalMon.performUpkeepOwnable— single-step, immediate)ConfirmedOwner— two-step)acceptOwnershipUses
DeployEthBalMonWithReceiverSequenceinternally.SetCallAllowedChangeSet(automation_receiver_set_call_allowed.go)Standalone changeset for calling
setCallAllowedon an already-deployedAutomationReceiver. Useful for authorizing additional(target, selector)pairs post-deploy. UsesSetCallAllowedSequenceinternally.New operations
Three new operations added to
ethbalmon_deploy.go, shared across changesets:DeployAutomationReceiverOperation— deploys the contract and confirms the txSetCallAllowedOperation— callssetCallAllowed(target, selector, allowed)on ARTransferAutomationReceiverOwnershipOperation— transfers AR ownership via OZOwnable.transferOwnershipRefactored changesets
DeployEthBalMonChangeSet— decoupled fromAutomationReceiver. TheForwarderAddressfield inDeployEthBalMonChainConfighas been renamed toKeeperRegistryAddress, reflecting that the caller provides whatever address should be authorized to callperformUpkeep(which in the CRE flow is a previously deployed AR, but is not constrained to it).Changeset overview
DeployEthBalMonChangeSetDeployAutomationReceiverChangeSetDeployEthBalMonWithReceiverChangeSetSetCallAllowedChangeSetNotes
Applydelegates toExecuteSequence, which calls individual operations. This keeps the Apply layer thin and makes each step independently replayable.AutomationReceiveruses OZOwnable(single-step transfer), so noacceptOwnershipMCMS proposal is needed for it — only forEthBalanceMonitorwhich uses Chainlink'sConfirmedOwner.Dependency note
The
AutomationReceivercontract is currently under audit and has not been merged tomaininchainlink-evmyet. For that reason,deployment/go.modimports thechainlink-evm/gethwrappersmodule pinned to the feature branch where the contract and its generated Go binding live:github.com/smartcontractkit/chainlink-evm/gethwrappers => github.com/smartcontractkit/chainlink-evm/gethwrappers <branch-commit-hash>This PR is not intended to be merged until the audit is complete and the
AutomationReceivercontract + gethwrapper are merged tomaininchainlink-evm. At that point, thego.modpin will be updated to the released version and this PR can be merged normally.