Skip to content

Commit

Permalink
utils/configutils -> utils/config
Browse files Browse the repository at this point in the history
  • Loading branch information
cedric-cordenier committed Jul 10, 2023
1 parent 5051c75 commit 71edd75
Show file tree
Hide file tree
Showing 14 changed files with 115 additions and 112 deletions.
20 changes: 10 additions & 10 deletions core/chains/cosmos/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,37 +17,37 @@ import (

"github.com/smartcontractkit/chainlink/v2/core/chains"
"github.com/smartcontractkit/chainlink/v2/core/chains/cosmos/types"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
"github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

type CosmosConfigs []*CosmosConfig

func (cs CosmosConfigs) validateKeys() (err error) {
// Unique chain IDs
chainIDs := configutils.UniqueStrings{}
chainIDs := config.UniqueStrings{}
for i, c := range cs {
if chainIDs.IsDupe(c.ChainID) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
}
}

// Unique node names
names := configutils.UniqueStrings{}
names := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
if names.IsDupe(n.Name) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
}
}
}

// Unique TendermintURLs
urls := configutils.UniqueStrings{}
urls := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
u := (*url.URL)(n.TendermintURL)
if urls.IsDupeFmt(u) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.TendermintURL", i, j), u.String()))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.TendermintURL", i, j), u.String()))
}
}
}
Expand Down Expand Up @@ -289,13 +289,13 @@ func setFromChain(c, f *coscfg.Chain) {

func (c *CosmosConfig) ValidateConfig() (err error) {
if c.ChainID == nil {
err = multierr.Append(err, configutils.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
} else if *c.ChainID == "" {
err = multierr.Append(err, configutils.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
}

if len(c.Nodes) == 0 {
err = multierr.Append(err, configutils.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
err = multierr.Append(err, config.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
}

return
Expand Down
2 changes: 1 addition & 1 deletion core/chains/evm/config/v2/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/ethkey"
"github.com/smartcontractkit/chainlink/v2/core/store/models"
"github.com/smartcontractkit/chainlink/v2/core/utils"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
configutils "github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

type HasEVMConfigs interface {
Expand Down
2 changes: 1 addition & 1 deletion core/chains/evm/config/v2/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

"github.com/smartcontractkit/chainlink/v2/core/config"
"github.com/smartcontractkit/chainlink/v2/core/utils"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
configutils "github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

var (
Expand Down
20 changes: 10 additions & 10 deletions core/chains/solana/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/chains"
"github.com/smartcontractkit/chainlink/v2/core/logger"
"github.com/smartcontractkit/chainlink/v2/core/services/pg"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
"github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

type SolanaConfigs []*SolanaConfig
Expand All @@ -31,30 +31,30 @@ func (cs SolanaConfigs) ValidateConfig() (err error) {

func (cs SolanaConfigs) validateKeys() (err error) {
// Unique chain IDs
chainIDs := configutils.UniqueStrings{}
chainIDs := config.UniqueStrings{}
for i, c := range cs {
if chainIDs.IsDupe(c.ChainID) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
}
}

// Unique node names
names := configutils.UniqueStrings{}
names := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
if names.IsDupe(n.Name) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
}
}
}

// Unique URLs
urls := configutils.UniqueStrings{}
urls := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
u := (*url.URL)(n.URL)
if urls.IsDupeFmt(u) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.URL", i, j), u.String()))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.URL", i, j), u.String()))
}
}
}
Expand Down Expand Up @@ -288,13 +288,13 @@ func setFromChain(c, f *solcfg.Chain) {

func (c *SolanaConfig) ValidateConfig() (err error) {
if c.ChainID == nil {
err = multierr.Append(err, configutils.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
} else if *c.ChainID == "" {
err = multierr.Append(err, configutils.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
}

if len(c.Nodes) == 0 {
err = multierr.Append(err, configutils.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
err = multierr.Append(err, config.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
}
return
}
Expand Down
20 changes: 10 additions & 10 deletions core/chains/starknet/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/db"

"github.com/smartcontractkit/chainlink/v2/core/chains"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
"github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

type StarknetConfigs []*StarknetConfig
Expand All @@ -26,30 +26,30 @@ func (cs StarknetConfigs) ValidateConfig() (err error) {

func (cs StarknetConfigs) validateKeys() (err error) {
// Unique chain IDs
chainIDs := configutils.UniqueStrings{}
chainIDs := config.UniqueStrings{}
for i, c := range cs {
if chainIDs.IsDupe(c.ChainID) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), *c.ChainID))
}
}

// Unique node names
names := configutils.UniqueStrings{}
names := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
if names.IsDupe(n.Name) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), *n.Name))
}
}
}

// Unique URLs
urls := configutils.UniqueStrings{}
urls := config.UniqueStrings{}
for i, c := range cs {
for j, n := range c.Nodes {
u := (*url.URL)(n.URL)
if urls.IsDupeFmt(u) {
err = multierr.Append(err, configutils.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.URL", i, j), u.String()))
err = multierr.Append(err, config.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.URL", i, j), u.String()))
}
}
}
Expand Down Expand Up @@ -237,13 +237,13 @@ func setFromChain(c, f *stkcfg.Chain) {

func (c *StarknetConfig) ValidateConfig() (err error) {
if c.ChainID == nil {
err = multierr.Append(err, configutils.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
} else if *c.ChainID == "" {
err = multierr.Append(err, configutils.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
err = multierr.Append(err, config.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
}

if len(c.Nodes) == 0 {
err = multierr.Append(err, configutils.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
err = multierr.Append(err, config.ErrMissing{Name: "Nodes", Msg: "must have at least one node"})
}

return
Expand Down
4 changes: 2 additions & 2 deletions core/config/docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ var (
//go:embed example-secrets.toml
exampleSecrets string

DocsTOML = CoreDefaultsTOML + chainsEVMTOML + chainsCosmosTOML + chainsSolanaTOML + chainsStarknetTOML
docsTOML = CoreDefaultsTOML + chainsEVMTOML + chainsCosmosTOML + chainsSolanaTOML + chainsStarknetTOML
)

// GenerateConfig returns MarkDown documentation generated from core.toml & chains-*.toml.
func GenerateConfig() (string, error) {
return generateDocs(DocsTOML, `[//]: # (Documentation generated from docs/*.toml - DO NOT EDIT.)
return generateDocs(docsTOML, `[//]: # (Documentation generated from docs/*.toml - DO NOT EDIT.)
This document describes the TOML format for configuration.
Expand Down
4 changes: 2 additions & 2 deletions core/config/docs/docs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
"github.com/smartcontractkit/chainlink/v2/core/services/chainlink/cfgtest"
"github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/ethkey"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
"github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

func TestDoc(t *testing.T) {
Expand All @@ -40,7 +40,7 @@ func TestDoc(t *testing.T) {
cfgtest.AssertFieldsNotNil(t, c)

var defaults chainlink.Config
require.NoError(t, cfgtest.DocDefaultsOnly(strings.NewReader(docs.DocsTOML), &defaults, configutils.DecodeTOML))
require.NoError(t, cfgtest.DocDefaultsOnly(strings.NewReader(docs.DocsTOML), &defaults, config.DecodeTOML))

t.Run("EVM", func(t *testing.T) {
fallbackDefaults := evmcfg.Defaults(nil)
Expand Down
3 changes: 3 additions & 0 deletions core/config/docs/helpers_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package docs

var DocsTOML = docsTOML
2 changes: 1 addition & 1 deletion core/config/toml/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/store/dialects"
"github.com/smartcontractkit/chainlink/v2/core/store/models"
"github.com/smartcontractkit/chainlink/v2/core/utils"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
configutils "github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

var ErrUnsupported = errors.New("unsupported with config v2")
Expand Down
16 changes: 8 additions & 8 deletions core/services/chainlink/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/chains/cosmos"
"github.com/smartcontractkit/chainlink/v2/core/chains/starknet"
"github.com/smartcontractkit/chainlink/v2/core/utils"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
"github.com/smartcontractkit/chainlink/v2/core/utils/config"

evmcfg "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/v2"
"github.com/smartcontractkit/chainlink/v2/core/chains/solana"
Expand Down Expand Up @@ -53,7 +53,7 @@ func (c *Config) TOMLString() (string, error) {
}

func (c *Config) Validate() error {
if err := configutils.Validate(c); err != nil {
if err := config.Validate(c); err != nil {
return fmt.Errorf("invalid configuration: %w", err)
}
return nil
Expand Down Expand Up @@ -99,19 +99,19 @@ func (c *Config) SetFrom(f *Config) (err error) {
c.Core.SetFrom(&f.Core)

if err1 := c.EVM.SetFrom(&f.EVM); err1 != nil {
err = multierr.Append(err, configutils.NamedMultiErrorList(err1, "EVM"))
err = multierr.Append(err, config.NamedMultiErrorList(err1, "EVM"))
}

if err2 := c.Cosmos.SetFrom(&f.Cosmos); err2 != nil {
err = multierr.Append(err, configutils.NamedMultiErrorList(err2, "Cosmos"))
err = multierr.Append(err, config.NamedMultiErrorList(err2, "Cosmos"))
}

if err3 := c.Solana.SetFrom(&f.Solana); err3 != nil {
err = multierr.Append(err, configutils.NamedMultiErrorList(err3, "Solana"))
err = multierr.Append(err, config.NamedMultiErrorList(err3, "Solana"))
}

if err4 := c.Starknet.SetFrom(&f.Starknet); err4 != nil {
err = multierr.Append(err, configutils.NamedMultiErrorList(err4, "Starknet"))
err = multierr.Append(err, config.NamedMultiErrorList(err4, "Starknet"))
}

_, err = utils.MultiErrorList(err)
Expand All @@ -136,7 +136,7 @@ var ErrInvalidSecrets = errors.New("invalid secrets")

// Validate validates every consitutent secret and return an accumulated error
func (s *Secrets) Validate() error {
if err := configutils.Validate(s); err != nil {
if err := config.Validate(s); err != nil {
return fmt.Errorf("%w: %s", ErrInvalidSecrets, err)
}
return nil
Expand All @@ -158,7 +158,7 @@ func (s *Secrets) ValidateDB() error {
}

v := &dbValidationType{s.Database}
if err := configutils.Validate(v); err != nil {
if err := config.Validate(v); err != nil {
return fmt.Errorf("%w: %s", ErrInvalidSecrets, err)
}
return nil
Expand Down
2 changes: 1 addition & 1 deletion core/services/chainlink/config_general.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/p2pkey"
"github.com/smartcontractkit/chainlink/v2/core/store/models"
"github.com/smartcontractkit/chainlink/v2/core/utils"
"github.com/smartcontractkit/chainlink/v2/core/utils/configutils"
configutils "github.com/smartcontractkit/chainlink/v2/core/utils/config"
)

// generalConfig is a wrapper to adapt Config to the config.GeneralConfig interface.
Expand Down
Loading

0 comments on commit 71edd75

Please sign in to comment.