From b9de0f3ec3541aeb5e1a20fc75fa07d01a1a8794 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 9 Feb 2024 13:55:26 +0100 Subject: [PATCH 1/4] fix(simapp): fix default home --- simapp/simd/cmd/root_v2.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/simapp/simd/cmd/root_v2.go b/simapp/simd/cmd/root_v2.go index aacf8a21d57a..8edf74118b1d 100644 --- a/simapp/simd/cmd/root_v2.go +++ b/simapp/simd/cmd/root_v2.go @@ -115,7 +115,7 @@ func ProvideClientContext( WithAddressCodec(addressCodec). WithValidatorAddressCodec(validatorAddressCodec). WithConsensusAddressCodec(consensusAddressCodec). - WithHomeDir(simapp.DefaultNodeHome). + WithHomeDir(tempDir()). WithViper("") // uses by default the binary name as prefix // Read the config to overwrite the default values with the values from the config file @@ -124,6 +124,7 @@ func ProvideClientContext( if err != nil { panic(err) } + clientCtx.HomeDir = "" // textual is enabled by default, we need to re-create the tx config grpc instead of bank keeper. txConfigOpts.TextualCoinMetadataQueryFn = authtxconfig.NewGRPCCoinMetadataQueryFn(clientCtx) From 5d1ae5d654ccc118fcacf2eb72c94c812eba027f Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 9 Feb 2024 15:21:21 +0100 Subject: [PATCH 2/4] updates --- client/config/config.go | 20 ++++++++++++++++++++ simapp/simd/cmd/root.go | 2 +- simapp/simd/cmd/root_v2.go | 5 ++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/client/config/config.go b/client/config/config.go index 4cb0faa1203f..097be5b68bf4 100644 --- a/client/config/config.go +++ b/client/config/config.go @@ -36,10 +36,30 @@ type Config struct { // ReadFromClientConfig reads values from client.toml file and updates them in client.Context // It uses CreateClientConfig internally with no custom template and custom config. +// Deprecated: use CreateClientConfig instead. func ReadFromClientConfig(ctx client.Context) (client.Context, error) { return CreateClientConfig(ctx, "", nil) } +// ReadDefaultValuesFromDefaultClientConfig reads default values from default client.toml file and updates them in client.Context +// The client.toml is then discarded. +func ReadDefaultValuesFromDefaultClientConfig(ctx client.Context, customClientTemplate string, customConfig interface{}) (client.Context, error) { + dir, err := os.MkdirTemp("", "simapp") + if err != nil { + return ctx, fmt.Errorf("couldn't create temp dir: %w", err) + } + defer os.RemoveAll(dir) + + ctx.HomeDir = dir + ctx, err = CreateClientConfig(ctx, customClientTemplate, customConfig) + if err != nil { + return ctx, fmt.Errorf("couldn't create client config: %w", err) + } + + ctx.HomeDir = "" + return ctx, nil +} + // CreateClientConfig reads the client.toml file and returns a new populated client.Context // If the client.toml file does not exist, it creates one with default values. // It takes a customClientTemplate and customConfig as input that can be used to overwrite the default config and enhance the client.toml file. diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index d66a4accfda3..24ed158ee4b6 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -108,7 +108,7 @@ func NewRootCmd() *cobra.Command { // autocli opts customClientTemplate, customClientConfig := initClientConfig() var err error - initClientCtx, err = config.CreateClientConfig(initClientCtx, customClientTemplate, customClientConfig) + initClientCtx, err = config.ReadDefaultValuesFromDefaultClientConfig(initClientCtx, customClientTemplate, customClientConfig) if err != nil { panic(err) } diff --git a/simapp/simd/cmd/root_v2.go b/simapp/simd/cmd/root_v2.go index 8edf74118b1d..3b207a1a0155 100644 --- a/simapp/simd/cmd/root_v2.go +++ b/simapp/simd/cmd/root_v2.go @@ -115,16 +115,15 @@ func ProvideClientContext( WithAddressCodec(addressCodec). WithValidatorAddressCodec(validatorAddressCodec). WithConsensusAddressCodec(consensusAddressCodec). - WithHomeDir(tempDir()). + WithHomeDir(simapp.DefaultNodeHome). WithViper("") // uses by default the binary name as prefix // Read the config to overwrite the default values with the values from the config file customClientTemplate, customClientConfig := initClientConfig() - clientCtx, err = config.CreateClientConfig(clientCtx, customClientTemplate, customClientConfig) + clientCtx, err = config.ReadDefaultValuesFromDefaultClientConfig(clientCtx, customClientTemplate, customClientConfig) if err != nil { panic(err) } - clientCtx.HomeDir = "" // textual is enabled by default, we need to re-create the tx config grpc instead of bank keeper. txConfigOpts.TextualCoinMetadataQueryFn = authtxconfig.NewGRPCCoinMetadataQueryFn(clientCtx) From e1e3c0e865126006ed91e585176af4db85f3ef1f Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 9 Feb 2024 15:23:08 +0100 Subject: [PATCH 3/4] updates --- client/config/config.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/config/config.go b/client/config/config.go index 097be5b68bf4..efe65bd34ec7 100644 --- a/client/config/config.go +++ b/client/config/config.go @@ -44,6 +44,7 @@ func ReadFromClientConfig(ctx client.Context) (client.Context, error) { // ReadDefaultValuesFromDefaultClientConfig reads default values from default client.toml file and updates them in client.Context // The client.toml is then discarded. func ReadDefaultValuesFromDefaultClientConfig(ctx client.Context, customClientTemplate string, customConfig interface{}) (client.Context, error) { + prevHomeDir := ctx.HomeDir dir, err := os.MkdirTemp("", "simapp") if err != nil { return ctx, fmt.Errorf("couldn't create temp dir: %w", err) @@ -56,7 +57,7 @@ func ReadDefaultValuesFromDefaultClientConfig(ctx client.Context, customClientTe return ctx, fmt.Errorf("couldn't create client config: %w", err) } - ctx.HomeDir = "" + ctx.HomeDir = prevHomeDir return ctx, nil } From c2a3b5a6947c21e0345677efcb2c4c4cb12d051b Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 9 Feb 2024 15:24:17 +0100 Subject: [PATCH 4/4] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad97108cf7c0..d647e313834a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -91,7 +91,8 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i * (abci): [#19200](https://github.com/cosmos/cosmos-sdk/pull/19200) Ensure that sdk side ve math matches cometbft * (server) [#18994](https://github.com/cosmos/cosmos-sdk/pull/18994) Update server context directly rather than a reference to a sub-object * (crypto) [#19371](https://github.com/cosmos/cosmos-sdk/pull/19371) Avoid cli redundant log in stdout, log to stderr instead. - +* (client) [#19393](https://github.com/cosmos/cosmos-sdk/pull/19393/) Add `ReadDefaultValuesFromDefaultClientConfig` to populate the default values from the default client config in client.Context without creating a app folder. + ### API Breaking Changes * (server) [#18303](https://github.com/cosmos/cosmos-sdk/pull/18303) `x/genutil` now handles the application export. `server.AddCommands` does not take an `AppExporter` but instead `genutilcli.Commands` does.