diff --git a/deployment/adapters/executor_config_adapter.go b/deployment/adapters/executor_config_adapter.go index fe57fcc67..9419c319d 100644 --- a/deployment/adapters/executor_config_adapter.go +++ b/deployment/adapters/executor_config_adapter.go @@ -50,6 +50,22 @@ func (a *CantonExecutorConfigAdapter) RequiresNodeChainSupportInJD() bool { return false } +// ResolveExecutorAddress resolves the Canton executor address for the given chain and +// qualifier from the datastore. +func (a *CantonExecutorConfigAdapter) ResolveExecutorAddress(ds datastore.DataStore, chainSelector uint64, qualifier string) (string, error) { + toAddress := func(ref datastore.AddressRef) (string, error) { return ref.Address, nil } + executorAddr, err := dsutils.FindAndFormatRef(ds, datastore.AddressRef{ + Type: datastore.ContractType(executor.ContractType), + Qualifier: qualifier, + Version: executor.Version, + }, chainSelector, toAddress) + if err != nil { + return "", fmt.Errorf("failed to get executor address for chain %d: %w", chainSelector, err) + } + + return executorAddr, nil +} + func (a *CantonExecutorConfigAdapter) BuildChainConfig(ds datastore.DataStore, chainSelector uint64, qualifier string) (ccvexecutor.ChainConfiguration, error) { toAddress := func(ref datastore.AddressRef) (string, error) { return ref.Address, nil } @@ -69,13 +85,9 @@ func (a *CantonExecutorConfigAdapter) BuildChainConfig(ds datastore.DataStore, c return ccvexecutor.ChainConfiguration{}, fmt.Errorf("failed to get rmn remote address for chain %d: %w", chainSelector, err) } - executorAddr, err := dsutils.FindAndFormatRef(ds, datastore.AddressRef{ - Type: datastore.ContractType(executor.ContractType), - Qualifier: qualifier, - Version: executor.Version, - }, chainSelector, toAddress) + executorAddr, err := a.ResolveExecutorAddress(ds, chainSelector, qualifier) if err != nil { - return ccvexecutor.ChainConfiguration{}, fmt.Errorf("failed to get executor address for chain %d: %w", chainSelector, err) + return ccvexecutor.ChainConfiguration{}, err } return ccvexecutor.ChainConfiguration{ diff --git a/deployment/adapters/init.go b/deployment/adapters/init.go index fb77dcb6d..f3d63e273 100644 --- a/deployment/adapters/init.go +++ b/deployment/adapters/init.go @@ -38,15 +38,15 @@ func init() { ccipadapters.GetChainFamilyRegistry().RegisterChainFamily(chainsel.FamilyCanton, &cantonChainFamilyWithDataStoreCache{}) ccipdeploy.GetTransferOwnershipRegistry().RegisterAdapter(chainsel.FamilyCanton, ccipdeploy.MCMSVersion, &CantonTransferOwnershipAdapter{}) - // Register the offchain adapters - ccvadapters.GetRegistry().Register(chainsel.FamilyCanton, ccvadapters.ChainAdapters{ - Aggregator: &CantonAggregatorConfigAdapter{}, - Executor: &CantonExecutorConfigAdapter{}, - Verifier: &CantonVerifierJobConfigAdapter{}, - Indexer: &CantonIndexerConfigAdapter{}, - CommitteeVerifierOnchain: &CantonCommitteeVerifierOnchain{}, - TokenVerifier: nil, // not implemented yet - }) + // Register the offchain adapters into the ccv per-type singleton registries. + // The legacy GetRegistry().Register(ChainAdapters{}) shim was removed in the + // ccv adapter-registration cleanup, so each adapter type registers on its own. + // TokenVerifier is not implemented for canton yet. + ccvadapters.GetAggregatorRegistry().Register(chainsel.FamilyCanton, &CantonAggregatorConfigAdapter{}) + ccvadapters.GetExecutorRegistry().Register(chainsel.FamilyCanton, &CantonExecutorConfigAdapter{}) + ccvadapters.GetVerifierRegistry().Register(chainsel.FamilyCanton, &CantonVerifierJobConfigAdapter{}) + ccvadapters.GetIndexerRegistry().Register(chainsel.FamilyCanton, &CantonIndexerConfigAdapter{}) + ccvadapters.GetCommitteeVerifierOnchainRegistry().Register(chainsel.FamilyCanton, &CantonCommitteeVerifierOnchain{}) lanes.GetLaneAdapterRegistry().RegisterLaneAdapter(chainsel.FamilyCanton, semver.MustParse("2.0.0"), CantonLaneAdapter{}) mcmsreaderapi.GetRegistry().RegisterMCMSReader(chainsel.FamilyCanton, &CantonMCMSReader{}) diff --git a/deployment/adapters/verifier_config_adapter.go b/deployment/adapters/verifier_config_adapter.go index 3c72c7cfa..902bf0863 100644 --- a/deployment/adapters/verifier_config_adapter.go +++ b/deployment/adapters/verifier_config_adapter.go @@ -10,7 +10,6 @@ import ( "github.com/smartcontractkit/chainlink-deployments-framework/datastore" "github.com/smartcontractkit/chainlink-canton/deployment/operations/ccip/committee_verifier" - "github.com/smartcontractkit/chainlink-canton/deployment/operations/ccip/executor" "github.com/smartcontractkit/chainlink-canton/deployment/operations/ccip/onramp" "github.com/smartcontractkit/chainlink-canton/deployment/operations/ccip/rmn_remote" ) @@ -56,15 +55,6 @@ func (a *CantonVerifierJobConfigAdapter) ResolveVerifierContractAddresses( return nil, fmt.Errorf("failed to get on ramp address for chain %d: %w", chainSelector, err) } - executorAddr, err := dsutils.FindAndFormatRef(ds, datastore.AddressRef{ - Type: datastore.ContractType(executor.ContractType), - Qualifier: executorQualifier, - Version: executor.Version, - }, chainSelector, toAddress) - if err != nil { - return nil, fmt.Errorf("failed to get executor address for chain %d: %w", chainSelector, err) - } - rmnRemoteAddr, err := dsutils.FindAndFormatRef(ds, datastore.AddressRef{ Type: datastore.ContractType(rmn_remote.ContractType), Version: rmn_remote.Version, @@ -76,7 +66,6 @@ func (a *CantonVerifierJobConfigAdapter) ResolveVerifierContractAddresses( return &ccvadapters.VerifierContractAddresses{ CommitteeVerifierAddress: committeeVerifierAddr, OnRampAddress: onRampAddr, - ExecutorProxyAddress: executorAddr, RMNRemoteAddress: rmnRemoteAddr, }, nil }