Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions deployment/adapters/executor_config_adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 }

Expand All @@ -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{
Expand Down
18 changes: 9 additions & 9 deletions deployment/adapters/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{})
Expand Down
11 changes: 0 additions & 11 deletions deployment/adapters/verifier_config_adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
)
Expand Down Expand Up @@ -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,
Expand All @@ -76,7 +66,6 @@ func (a *CantonVerifierJobConfigAdapter) ResolveVerifierContractAddresses(
return &ccvadapters.VerifierContractAddresses{
CommitteeVerifierAddress: committeeVerifierAddr,
OnRampAddress: onRampAddr,
ExecutorProxyAddress: executorAddr,
RMNRemoteAddress: rmnRemoteAddr,
}, nil
}
Loading