config

package
v1.20.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// ConfigSubDir is the subdirectory of HOME that contains the configuration files.
	ConfigSubDir = "config"
	// AppConfFilename is the filename of the app/cosmos configuration file.
	AppConfFilename = "app.toml"
	// CmtConfFilename is the filename of the cometbft configuration file.
	CmtConfFilename = "config.toml"
	// ClientConfFilename is the filename of the client configuration file.
	ClientConfFilename = "client.toml"
	// UnmanagedConfFilename is the filename of the unmanaged configuration file.
	UnmanagedConfFilename = "custom.toml"

	// PackedConfFilename is the filename of the packed (non-defaults) file.
	PackedConfFilename = "packed-conf.json"
)
View Source
const (
	// CustomDenomFlag flag to take in custom denom, defaults to nhash if not passed in.
	CustomDenomFlag = "custom-denom"
	// CustomMsgFeeFloorPriceFlag flag to take in custom msg floor fees, defaults to 1905nhash if not passed in.
	CustomMsgFeeFloorPriceFlag = "msgfee-floor-price"
	// EnvTypeFlag is a flag for indicating a testnet
	EnvTypeFlag = "testnet"
	// CoinTypeFlag is a flag for indicating coin type.
	CoinTypeFlag = "coin-type"

	ConsensusTimeoutCommitKey       = "consensus.timeout_commit"
	ConsensusTimeoutCommitValue     = "3.5s"
	ConsensusSkipTimeoutCommitKey   = "consensus.skip_timeout_commit"
	ConsensusSkipTimeoutCommitValue = "false"
)

Variables

View Source
var (
	DefaultChainID        = ""
	DefaultKeyringBackend = "os"
	DefaultOutput         = "text"
	DefaultNode           = "tcp://localhost:26657"
	DefaultBroadcastMode  = "sync"
)
View Source
var DefaultConsensusTimeoutCommit = 1500 * time.Millisecond

DefaultConsensusTimeoutCommit is the default value used for the consensus.timeout_commit config value.

Functions

func ApplyClientConfigToContext

func ApplyClientConfigToContext(ctx client.Context, config *ClientConfig) (client.Context, error)

ApplyClientConfigToContext returns a client context after having the client config values applied to it.

func DefaultAppConfig added in v1.13.0

func DefaultAppConfig() *serverconfig.Config

DefaultAppConfig gets our default app config.

func DefaultCmtConfig added in v1.19.0

func DefaultCmtConfig() *cmtconfig.Config

func EnsureConfigDir

func EnsureConfigDir(cmd *cobra.Command) error

EnsureConfigDir ensures the given directory exists, creating it if necessary. Errors if the config directory doesn't exist and cannot be created (e.g. because of permissions). Errors if the path already exists as a non-directory.

func ExtractAppConfig

func ExtractAppConfig(cmd *cobra.Command) (*serverconfig.Config, error)

ExtractAppConfig creates an app/cosmos config from the command context.

func ExtractClientConfigAndMap

func ExtractClientConfigAndMap(cmd *cobra.Command) (*ClientConfig, FieldValueMap, error)

ExtractClientConfigAndMap from the command context, creates a client config and related string->value map.

func ExtractCmtConfig added in v1.19.0

func ExtractCmtConfig(cmd *cobra.Command) (*cmtconfig.Config, error)

ExtractCmtConfig creates a cometbft config from the command context.

func FileExists

func FileExists(fullFilePath string) bool

FileExists returns true if there is no error getting stat info of the file. Even returns false if os.IsNotExist(err) is false. I.e. if the file exists but isn't readable, this will still return false.

func GetFullPathToAppConf

func GetFullPathToAppConf(cmd *cobra.Command) string

GetFullPathToAppConf gets the full path to the app/cosmos config file.

func GetFullPathToClientConf

func GetFullPathToClientConf(cmd *cobra.Command) string

GetFullPathToClientConf gets the full path to the client config file.

func GetFullPathToCmtConf added in v1.19.0

func GetFullPathToCmtConf(cmd *cobra.Command) string

GetFullPathToCmtConf gets the full path to the cometbft config file.

func GetFullPathToConfigDir

func GetFullPathToConfigDir(cmd *cobra.Command) string

GetFullPathToConfigDir gets the full path to the config directory.

func GetFullPathToPackedConf

func GetFullPathToPackedConf(cmd *cobra.Command) string

GetFullPathToPackedConf gets the full path to the packed/non-defaults config file.

func GetFullPathToUnmanagedConf added in v1.12.0

func GetFullPathToUnmanagedConf(cmd *cobra.Command) string

GetFullPathToUnmanagedConf gets the full path to the unmanaged config file.

func GetHomeDir

func GetHomeDir(cmd *cobra.Command) string

GetHomeDir gets the home directory from the provided cobra command.

func GetStringFromValue

func GetStringFromValue(v reflect.Value) string

GetStringFromValue gets a string of the given value. This creates strings that are more in line with what the values look like in the config files. For slices and arrays, it turns into `["a", "b", "c"]`. For strings, it turns into `"a"`. For anything else, it just uses fmt %v. This wasn't designed with the following kinds in mind:

Invalid, Chan, Func, Interface, Map, Ptr, Struct, or UnsafePointer.

func InterceptConfigsPreRunHandler

func InterceptConfigsPreRunHandler(cmd *cobra.Command) error

InterceptConfigsPreRunHandler performs a pre-run function for all commands. It will finish setting up the client context and create the server context. It will create a Viper literal and the configs will be read and parsed or created from defaults. The viper literal is used to read and parse configurations. Command handlers can fetch the server or client contexts to get the CometBFT, App/Cosmos, or Client configurations, or to get access to viper.

func IsPacked

func IsPacked(cmd *cobra.Command) bool

IsPacked checks to see if we're using a packed config or not. returns true if using the packed config. returns false if using the unpacked multiple config files.

func LoadConfigFromFiles

func LoadConfigFromFiles(cmd *cobra.Command) (err error)

LoadConfigFromFiles loads configurations appropriately.

func PackConfig

func PackConfig(cmd *cobra.Command) error

PackConfig generates and saves the packed config file then removes the individual config files.

func SaveConfigs

func SaveConfigs(
	cmd *cobra.Command,
	appConfig *serverconfig.Config,
	cmtConfig *cmtconfig.Config,
	clientConfig *ClientConfig,
	verbose bool,
)

SaveConfigs saves the configs to files. If the config is packed, any nil configs provided will extracted from the cmd. If the config is unpacked, only the configs provided will be written. Any errors encountered will result in a panic.

func SetPioConfigFromFlags added in v1.16.0

func SetPioConfigFromFlags(flagSet *pflag.FlagSet)

func UnpackConfig

func UnpackConfig(cmd *cobra.Command) error

UnpackConfig generates the saves the individual config files and removes the packed config file.

func WriteConfigToFile

func WriteConfigToFile(configFilePath string, config *ClientConfig)

WriteConfigToFile creates the file contents using a template and the provided config then writes the contents to the provided configFilePath.

Types

type ClientConfig

type ClientConfig struct {
	ChainID        string `mapstructure:"chain-id" json:"chain-id"`
	KeyringBackend string `mapstructure:"keyring-backend" json:"keyring-backend"`
	Output         string `mapstructure:"output" json:"output"`
	Node           string `mapstructure:"node" json:"node"`
	BroadcastMode  string `mapstructure:"broadcast-mode" json:"broadcast-mode"`
}

func DefaultClientConfig

func DefaultClientConfig() *ClientConfig

DefaultClientConfig returns the reference to ClientConfig with default values.

func ExtractClientConfig

func ExtractClientConfig(cmd *cobra.Command) (*ClientConfig, error)

ExtractClientConfig creates a client config from the command context.

func (*ClientConfig) SetBroadcastMode

func (c *ClientConfig) SetBroadcastMode(broadcastMode string)

func (*ClientConfig) SetChainID

func (c *ClientConfig) SetChainID(chainID string)

func (*ClientConfig) SetKeyringBackend

func (c *ClientConfig) SetKeyringBackend(keyringBackend string)

func (*ClientConfig) SetNode

func (c *ClientConfig) SetNode(node string)

func (*ClientConfig) SetOutput

func (c *ClientConfig) SetOutput(output string)

func (ClientConfig) ValidateBasic

func (c ClientConfig) ValidateBasic() error

type FieldValueMap

type FieldValueMap map[string]reflect.Value

FieldValueMap maps field names to reflect.Value objects.

func ExtractAppConfigAndMap

func ExtractAppConfigAndMap(cmd *cobra.Command) (*serverconfig.Config, FieldValueMap, error)

ExtractAppConfigAndMap from the command context, creates an app/cosmos config and related string->value map.

func ExtractCmtConfigAndMap added in v1.19.0

func ExtractCmtConfigAndMap(cmd *cobra.Command) (*cmtconfig.Config, FieldValueMap, error)

ExtractCmtConfigAndMap from the command context, creates a cometbft config and related string->value map.

func GetAllConfigDefaults

func GetAllConfigDefaults() FieldValueMap

GetAllConfigDefaults gets a field map from the defaults of all the configs.

func MakeFieldValueMap

func MakeFieldValueMap(obj interface{}, fillNilsWithZero bool) FieldValueMap

MakeFieldValueMap gets a map of string field names to reflect.Value objects for a given object. An empty map is returned if the provided obj is nil, or isn't either a struct or pointer chain to a struct. Substruct fields will have the parent struct's field name and substruct field name separated by a period. E.g. This struct { Foo { Bar: "foobar" } }, will have an entry for "foo.bar". Each segment of a name comes from getFieldName. I.e. pays attention to mapstruct and is all lowercase. Similarly, if mapstruct says to squash the fields, they won't have the parent field name. If fillNilsWithZero is true, nil fields in the obj will be filled in using zero values for that field type.

Fields in structs created this way cannot be set later using the map values.
But the resulting map will contain information about all possible fields in the object.
None of the substructures will not have map entries specifically for the parent field containing the substructure.
E.g. With { Foo: { Bar: "foobar" } }, there won't be an entry for "foo", but there will be one for "foo.bar".

If fillNilsWithZero is false, nil fields in the obj will have an entry for the field and a value where .IsNil() is true.

If the provided obj is a pointer, then the resulting map values can be used to set values in the obj.
Substructures that are nil will have entries in the resulting map.
E.g. With { Foo: (*Bar)(nil) }, there will be an entry for "foo".
Substructures that are not nill will still not have an entry though; they'll have entries for sub-fields still.
E.g. With { Foo: (*Bar)(nil), Ban: { Ana: "banana" } will have entries for "foo" and "ban.ana", but not "ban" (it isn't nil).

func (FieldValueMap) AddEntriesFrom

func (m FieldValueMap) AddEntriesFrom(maps ...FieldValueMap)

AddEntriesFrom Add all entries from the provided map into this map. If the same key exists in both maps, the value from the one provided will overwrite the one in this map.

func (FieldValueMap) AsConfigMap added in v1.13.0

func (m FieldValueMap) AsConfigMap() (map[string]interface{}, error)

AsConfigMap converts this into a map[string]interface{} adding sub-sections as single entries (as opposed to full keys containing a . (period)).

func (FieldValueMap) FindEntries

func (m FieldValueMap) FindEntries(key string) (FieldValueMap, bool, bool)

FindEntries looks for entries in this map that match the provided key. The first returned boolean is true if one or more matches are found, false if zero. The second returned boolean is true if an exact match was found.

This looks for matches in the following order:

  1. A field that exactly equals the provided key.
  2. Sections equal to the provided key.
  3. Fields named the provided key in any section.
  4. Fields with the provided key as a substring.

When matches are found, they are returned, skipping any of the searches that would come after it. For example, if an exact field match is found, searches 2, 3, and 4 are skipped.

Only one exact match is ever returned, but if there isn't an exact match, multiple entries can be returned. E.g. if there's a field named "corn" and a section named "corn", and the provided key is "corn", only the field named "corn" will be returned. If you want the section in this case, provide the key as "corn.". Or if you only want fields named "corn" that are in a section, provide ".corn".

Examples: Providing "consensus":

  1. First look for a field specifically named "consensus".
  2. If nothing is found yet, it'll look for fields that start with "consensus.".
  3. If nothing is found yet, it'll look for fields that end with ".consensus".
  4. If nothing is found yet, it'll look for fields with "consensus" in them somewhere.

Providing "consensus.":

  1. First look for a field specifically named "consensus." (probably not going to find it).
  2. If nothing is found yet, it'll look for fields that start with "consensus.".
  3. Skip looking for fields that end with ".consensus." (no fields end with a period).
  4. If nothing is found yet, it'll look for fields with "consensus." in them somewhere.

Providing ".consensus":

  1. First look for a field specifically named ".consensus" (probably not going to find it).
  2. Skip looking for fields that start with ".consensus." (no fields start with a period).
  3. If nothing is found yet, it'll look for fields that end with ".consensus".
  4. If nothing is found yet, it'll look for fields with ".consensus" in them somewhere.

func (FieldValueMap) GetSortedKeys

func (m FieldValueMap) GetSortedKeys() []string

GetSortedKeys gets the keys of this FieldValueMap and sorts them using sortKeys.

func (FieldValueMap) GetStringOf

func (m FieldValueMap) GetStringOf(key string) string

GetStringOf gets a string representation of the value with the given key. If the key doesn't exist in this FieldValueMap, an empty string is returned.

func (FieldValueMap) Has

func (m FieldValueMap) Has(key string) bool

Has checks if the provided key exists in this FieldValueMap.

func (FieldValueMap) SetFromString

func (m FieldValueMap) SetFromString(key, valueStr string) error

SetFromString sets a value from the provided string. The string is converted appropriately for the underlying value type. Assuming the value came from MakeFieldValueMap, this will actually be updating the value in the config object provided to that function.

func (FieldValueMap) SetToNil

func (m FieldValueMap) SetToNil(key string)

SetToNil sets the given key to a nil value.

type UpdatedField

type UpdatedField struct {
	Key   string
	Was   string
	IsNow string
}

UpdatedField is a struct holding information about a config field that has been updated.

func MakeUpdatedField

func MakeUpdatedField(key string, wasMap, isNowMap FieldValueMap) (UpdatedField, bool)

MakeUpdatedField creates an UpdateField with the given key getting the values from each provided map. If either one of the maps doesn't have the key, the second returned value will be false.

func (UpdatedField) HasDiff

func (u UpdatedField) HasDiff() bool

HasDiff returns true if IsNow and Was have different values.

func (UpdatedField) String

func (u UpdatedField) String() string

String converts an UpdatedField to a string similar to using %#v but a little cleaner.

func (UpdatedField) StringAsDefault

func (u UpdatedField) StringAsDefault() string

StringAsDefault creates a string from this UpdatedField identifying the Was as a default.

func (UpdatedField) StringAsUpdate

func (u UpdatedField) StringAsUpdate() string

StringAsUpdate creates a string from this UpdatedField indicating a change has being made.

func (*UpdatedField) Update

func (u *UpdatedField) Update(newerInfo UpdatedField)

Update updates the base UpdatedField given information in the provided newerInfo.

type UpdatedFieldMap

type UpdatedFieldMap map[string]*UpdatedField

UpdatedFieldMap maps field names to UpdatedField references.

func MakeUpdatedFieldMap

func MakeUpdatedFieldMap(wasMap, isNowMap FieldValueMap, onlyChanged bool) UpdatedFieldMap

MakeUpdatedFieldMap creates an UpdatedFieldMap with fields that exist in both provided FieldValueMap objects. Set onlyChanged to true to further limit fields to only those with differences.

func (UpdatedFieldMap) AddOrUpdate

func (m UpdatedFieldMap) AddOrUpdate(key, was, isNow string)

AddOrUpdate adds or updates an entry in this map using the provided info. If the key isn't in this map yet, the entry is added. Otherwise UpdatedField.Update us called on the existing entry.

func (UpdatedFieldMap) AddOrUpdateEntriesFrom

func (m UpdatedFieldMap) AddOrUpdateEntriesFrom(maps ...UpdatedFieldMap)

AddOrUpdateEntriesFrom applies AddOrUpdateEntry on this map using each entry in the provided map.

func (UpdatedFieldMap) AddOrUpdateEntry

func (m UpdatedFieldMap) AddOrUpdateEntry(info *UpdatedField)

AddOrUpdateEntry adds or updates an entry in this map using the provided info. If the key isn't in this map yet, the entry is added. Otherwise UpdatedField.Update us called on the existing entry.

func (UpdatedFieldMap) GetSortedKeys

func (m UpdatedFieldMap) GetSortedKeys() []string

GetSortedKeys gets the keys of this UpdatedFieldMap and sorts them using sortKeys.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL