From b1e0d91378be0d845a05fa34d4c0b32027aa48ee Mon Sep 17 00:00:00 2001 From: Callum Waters Date: Tue, 14 Dec 2021 19:14:00 +0100 Subject: [PATCH] create set app version command --- cmd/tendermint/commands/app_version.go | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 cmd/tendermint/commands/app_version.go diff --git a/cmd/tendermint/commands/app_version.go b/cmd/tendermint/commands/app_version.go new file mode 100644 index 000000000..e6e53c5a7 --- /dev/null +++ b/cmd/tendermint/commands/app_version.go @@ -0,0 +1,44 @@ +package commands + +import ( + "fmt" + "strconv" + + "github.com/spf13/cobra" +) + +var SetAppVersionCommand = &cobra.Command{ + Use: "set-app-version", + Short: "sets the app version", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + // use the parsed config to load the block and state store + blockStore, stateStore, err := loadStateAndBlockStore(config) + if err != nil { + fmt.Errorf("error loading data: %w", err) + } + defer func() { + _ = blockStore.Close() + _ = stateStore.Close() + }() + + state, err := stateStore.Load() + if err != nil { + return fmt.Errorf("error returning last state: %w", err) + } + + newVersion, err := strconv.Atoi(args[0]) + if err != nil { + return fmt.Errorf("error parsing argument: %w", err) + } + + state.Version.Consensus.App = uint64(newVersion) + err = stateStore.Save(state) + if err != nil { + return fmt.Errorf("error saving state: %w", err) + } + + fmt.Println("Set app version") + return nil + }, +}