smartcontractkit / smartcontractkit/chainlink-canton
Deprecate Canton min-NOP bypass wrappers (*AllowingCantonMinNOPs)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 4
- Forks
- 3
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 102
Description
Deprecate Canton min-NOP bypass wrappers (*AllowingCantonMinNOPs)
Problem
ccv currently wraps generic cross-family changesets with Canton-specific *AllowingCantonMinNOPs helpers (see chainlink-deployments offchain_pipelines.go). This is an antipattern — family logic should live in adapters, not wrapper changesets.
Resolution (min-NOP)
Already fixed in adapter layer: CantonChainFamilyAdapter.ValidateNOPsTopology enforces 9 (mainnet) / 4 (testnet). Generic ValidateForEnvironment delegates per family; Canton never hits EVM's 15-NOP rule.
WithCantonProductionMinNOPCheckBypassed and lane/offchain *AllowingCantonMinNOPs wrappers are legacy and can be removed for full production topologies.
Remaining gap (separate from min-NOP)
JD ListNodeChainConfigs validation in apply-executor-config. Proposed fix: RequiresNodeChainSupportInJD() bool on ExecutorConfigAdapter (chainlink-ccip); Canton adapter returns false during rollout.
Tasks
- Deprecate then remove
*AllowingCantonMinNOPsin chainlink-canton - ccv: revert generic
apply-executor-configtov2_0_0.ApplyExecutorConfig(registry, chainFamilyRegistry) - chainlink-ccip: adapter-driven JD validation skip
- Remove duplicated
applyExecutorConfigSkippingChainSupportValidation
Tracking doc (branch): docs/issues/deprecate-min-nop-bypass-wrappers.md
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with docs/issues/deprecate-min-nop-bypass-wrappers.md and the chainlink-deployments offchain_pipelines.go reference, then inspect the CantonChainFamilyAdapter.ValidateNOPsTopology and generic ValidateForEnvironment flow. Trace the *AllowingCantonMinNOPs wrappers and apply-executor-config call sites across the listed repositories; done means the legacy wrappers and duplicated validation path are removed and the adapter-driven JD validation approach is in place.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100