Skip to content

Commit 8289afa

Browse files
authored
feat: move engine environment.Config to config.Config (#357)
This PR moves the `environment.Config` to `config.Config` and updates all the relevant imports to use the new `config.Config`. This change is designed to improve the clarity and organization of the configuration code, colocating it with all the other config code. As part of this change, we have also changed the name of `environment.LoadConfig` to `config.Load`. All functionality remains the same.
1 parent 6ef6875 commit 8289afa

File tree

19 files changed

+703
-748
lines changed

19 files changed

+703
-748
lines changed

.changeset/eight-regions-care.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"chainlink-deployments-framework": minor
3+
---
4+
5+
Moves `environment.Config` to `config.Config`

engine/cld/catalog/catalog.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import (
55

66
"github.com/smartcontractkit/chainlink-deployments-framework/datastore"
77
"github.com/smartcontractkit/chainlink-deployments-framework/datastore/catalog/remote"
8+
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config"
89
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/domain"
9-
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/environment"
1010
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/internal"
1111
)
1212

1313
// LoadCatalog loads a catalog data store for the specified domain and environment.
1414
func LoadCatalog(ctx context.Context, env string,
15-
config *environment.Config, domain domain.Domain) (datastore.CatalogStore, error) {
15+
config *config.Config, domain domain.Domain) (datastore.CatalogStore, error) {
1616
catalogClient, err := loadCatalogClient(ctx, env, config.Env.Catalog.GRPC)
1717
if err != nil {
1818
return nil, err

engine/cld/catalog/catalog_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"github.com/stretchr/testify/require"
77

88
"github.com/smartcontractkit/chainlink-deployments-framework/datastore/catalog/remote"
9+
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config"
910
config_env "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/env"
1011
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/domain"
11-
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/environment"
1212
)
1313

1414
func TestLoadCatalog(t *testing.T) {
@@ -17,14 +17,14 @@ func TestLoadCatalog(t *testing.T) {
1717
tests := []struct {
1818
name string
1919
env string
20-
config *environment.Config
20+
config *config.Config
2121
domain domain.Domain
2222
wantErr string
2323
}{
2424
{
2525
name: "successful catalog loading",
2626
env: "testnet",
27-
config: &environment.Config{
27+
config: &config.Config{
2828
Env: &config_env.Config{
2929
Catalog: config_env.CatalogConfig{
3030
GRPC: "localhost:50051",
@@ -36,7 +36,7 @@ func TestLoadCatalog(t *testing.T) {
3636
{
3737
name: "valid config with different grpc url",
3838
env: "testnet",
39-
config: &environment.Config{
39+
config: &config.Config{
4040
Env: &config_env.Config{
4141
Catalog: config_env.CatalogConfig{
4242
GRPC: "grpc.example.com:443",

engine/cld/chains/chains.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ import (
1919
cldf_sui_provider "github.com/smartcontractkit/chainlink-deployments-framework/chain/sui/provider"
2020
cldf_tron_provider "github.com/smartcontractkit/chainlink-deployments-framework/chain/tron/provider"
2121
cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment"
22-
cldf_config_env "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/env"
23-
cldf_config_network "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/network"
24-
cldf_environment "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/environment"
22+
"github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config"
23+
config_env "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/env"
24+
config_network "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/network"
2525
)
2626

2727
// LoadChains concurrently loads all chains for the given environment. Each chain is loaded in parallel, and the results
@@ -30,10 +30,10 @@ import (
3030
func LoadChains(
3131
ctx context.Context,
3232
lggr logger.Logger,
33-
config *cldf_environment.Config,
33+
cfg *config.Config,
3434
chainSelectorsToLoad []uint64,
3535
) (cldf_chain.BlockChains, error) {
36-
chainLoaders := newChainLoaders(lggr, config.Networks, config.Env.Onchain)
36+
chainLoaders := newChainLoaders(lggr, cfg.Networks, cfg.Env.Onchain)
3737

3838
// Define a result struct to hold chain loading results
3939
type chainResult struct {
@@ -160,7 +160,7 @@ func LoadChains(
160160
// This ensures that only properly configured chains are attempted to be loaded, preventing runtime errors
161161
// due to missing credentials or configuration.
162162
func newChainLoaders(
163-
lggr logger.Logger, networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
163+
lggr logger.Logger, networks *config_network.Config, cfg config_env.OnchainConfig,
164164
) map[string]ChainLoader {
165165
// EVM chains are always loaded.
166166
loaders := map[string]ChainLoader{
@@ -205,13 +205,13 @@ type ChainLoader interface {
205205
// baseChainLoader is a base implementation of the ChainLoader interface. It contains the common
206206
// fields for all chain loaders.
207207
type baseChainLoader struct {
208-
networks *cldf_config_network.Config
209-
cfg cldf_config_env.OnchainConfig
208+
networks *config_network.Config
209+
cfg config_env.OnchainConfig
210210
}
211211

212212
// newBaseChainLoader creates a new base chain loader.
213213
func newBaseChainLoader(
214-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
214+
networks *config_network.Config, cfg config_env.OnchainConfig,
215215
) *baseChainLoader {
216216
return &baseChainLoader{
217217
networks: networks,
@@ -220,13 +220,13 @@ func newBaseChainLoader(
220220
}
221221

222222
// getNetwork gets the network for a given selector.
223-
func (l *baseChainLoader) getNetwork(selector uint64) (cldf_config_network.Network, error) {
223+
func (l *baseChainLoader) getNetwork(selector uint64) (config_network.Network, error) {
224224
network, err := l.networks.NetworkBySelector(selector)
225225
if err != nil {
226-
return cldf_config_network.Network{}, err
226+
return config_network.Network{}, err
227227
}
228228
if len(network.RPCs) == 0 {
229-
return cldf_config_network.Network{}, fmt.Errorf("no RPCs found for chain selector: %d", selector)
229+
return config_network.Network{}, fmt.Errorf("no RPCs found for chain selector: %d", selector)
230230
}
231231

232232
return network, nil
@@ -239,7 +239,7 @@ type chainLoaderAptos struct {
239239

240240
// newChainLoaderAptos creates a new chain loader for Aptos.
241241
func newChainLoaderAptos(
242-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
242+
networks *config_network.Config, cfg config_env.OnchainConfig,
243243
) *chainLoaderAptos {
244244
return &chainLoaderAptos{
245245
baseChainLoader: newBaseChainLoader(networks, cfg),
@@ -274,7 +274,7 @@ type chainLoaderSui struct {
274274

275275
// newChainLoaderSui creates a new chain loader for Sui.
276276
func newChainLoaderSui(
277-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
277+
networks *config_network.Config, cfg config_env.OnchainConfig,
278278
) *chainLoaderSui {
279279
return &chainLoaderSui{
280280
baseChainLoader: newBaseChainLoader(networks, cfg),
@@ -309,7 +309,7 @@ type chainLoaderSolana struct {
309309

310310
// newChainLoaderSolana a new chain loader for Solana.
311311
func newChainLoaderSolana(
312-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
312+
networks *config_network.Config, cfg config_env.OnchainConfig,
313313
) *chainLoaderSolana {
314314
return &chainLoaderSolana{
315315
baseChainLoader: newBaseChainLoader(networks, cfg),
@@ -357,7 +357,7 @@ type chainLoaderEVM struct {
357357

358358
// newChainLoaderEVM creates a new chain loader for EVM.
359359
func newChainLoaderEVM(
360-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig, lggr logger.Logger,
360+
networks *config_network.Config, cfg config_env.OnchainConfig, lggr logger.Logger,
361361
) *chainLoaderEVM {
362362
return &chainLoaderEVM{
363363
baseChainLoader: newBaseChainLoader(networks, cfg),
@@ -457,7 +457,7 @@ func (l *chainLoaderEVM) isZkSyncVM(selector uint64) bool {
457457
}
458458

459459
// toRPCs converts a network to a slice of RPCs for a specific chain ID.
460-
func (l *chainLoaderEVM) toRPCs(rpcCfgs []cldf_config_network.RPC) ([]cldf.RPC, error) {
460+
func (l *chainLoaderEVM) toRPCs(rpcCfgs []config_network.RPC) ([]cldf.RPC, error) {
461461
rpcs := make([]cldf.RPC, 0, len(rpcCfgs))
462462

463463
for _, rpcCfg := range rpcCfgs {
@@ -481,7 +481,7 @@ func (l *chainLoaderEVM) toRPCs(rpcCfgs []cldf_config_network.RPC) ([]cldf.RPC,
481481

482482
// evmSignerGenerator creates a transactor generator for an EVM chain.
483483
func (l *chainLoaderEVM) evmSignerGenerator(
484-
cfg cldf_config_env.OnchainConfig,
484+
cfg config_env.OnchainConfig,
485485
) (cldf_evm_provider.SignerGenerator, error) {
486486
if useKMS(cfg.KMS) {
487487
return cldf_evm_provider.TransactorFromKMS(
@@ -498,7 +498,7 @@ func (l *chainLoaderEVM) evmSignerGenerator(
498498
// function, but falls back to Geth's confirm function if Seth config is not provided, or there
499499
// are no wrappers provided.
500500
func (l *chainLoaderEVM) confirmFunctor(
501-
network cldf_config_network.Network, sethCfg *cldf_config_env.SethConfig,
501+
network config_network.Network, sethCfg *config_env.SethConfig,
502502
) cldf_evm_provider.ConfirmFunctor {
503503
if sethCfg == nil || len(sethCfg.GethWrapperDirs) == 0 {
504504
l.lggr.Infow("No Seth config provided, using Geth's confirm function",
@@ -519,7 +519,7 @@ func (l *chainLoaderEVM) confirmFunctor(
519519

520520
// zkSyncSignerGenerator creates a ZkSync signer generator for a zkSync chain.
521521
func (l *chainLoaderEVM) zkSyncSignerGenerator(
522-
cfg cldf_config_env.OnchainConfig,
522+
cfg config_env.OnchainConfig,
523523
) (cldf_evm_provider.ZkSyncSignerGenerator, error) {
524524
if useKMS(cfg.KMS) {
525525
return cldf_evm_provider.ZkSyncSignerFromKMS(
@@ -539,7 +539,7 @@ type chainLoaderTron struct {
539539

540540
// newChainLoaderTron a new chain loader for Tron.
541541
func newChainLoaderTron(
542-
networks *cldf_config_network.Config, cfg cldf_config_env.OnchainConfig,
542+
networks *config_network.Config, cfg config_env.OnchainConfig,
543543
) *chainLoaderTron {
544544
return &chainLoaderTron{
545545
baseChainLoader: newBaseChainLoader(networks, cfg),
@@ -577,7 +577,7 @@ func (l *chainLoaderTron) Load(ctx context.Context, selector uint64) (cldf_chain
577577

578578
// tronSignerGenerator creates a transactor generator for an TRON chain.
579579
func (l *chainLoaderTron) tronSignerGenerator(
580-
cfg cldf_config_env.OnchainConfig,
580+
cfg config_env.OnchainConfig,
581581
) (cldf_tron_provider.SignerGenerator, error) {
582582
if useKMS(cfg.KMS) {
583583
return cldf_tron_provider.SignerGenKMS(
@@ -591,6 +591,6 @@ func (l *chainLoaderTron) tronSignerGenerator(
591591
}
592592

593593
// useKMS returns true if both KeyID and KeyRegion are set in the provided KMS config.
594-
func useKMS(kmsCfg cldf_config_env.KMSConfig) bool {
594+
func useKMS(kmsCfg config_env.KMSConfig) bool {
595595
return kmsCfg.KeyID != "" && kmsCfg.KeyRegion != ""
596596
}

0 commit comments

Comments
 (0)