From f547ab08efa27002aa1a8450630b6fded21765b0 Mon Sep 17 00:00:00 2001 From: jonathansumner Date: Tue, 4 Jun 2024 20:58:06 +0100 Subject: [PATCH 1/3] feat: implement the genesis-time flag --- cmd/fetchd/cmd/genesis-asi-upgrade.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cmd/fetchd/cmd/genesis-asi-upgrade.go b/cmd/fetchd/cmd/genesis-asi-upgrade.go index ee4f5ae5..6fa29ac8 100644 --- a/cmd/fetchd/cmd/genesis-asi-upgrade.go +++ b/cmd/fetchd/cmd/genesis-asi-upgrade.go @@ -23,9 +23,11 @@ import ( ibccore "github.com/cosmos/ibc-go/v3/modules/core/24-host" "github.com/spf13/cobra" "github.com/tendermint/tendermint/types" + tmtime "github.com/tendermint/tendermint/types/time" "regexp" "strconv" "strings" + "time" ) const ( @@ -154,6 +156,8 @@ var networkInfos = map[string]NetworkConfig{ }, } +const flagGenesisTime = "genesis-time" + // ASIGenesisUpgradeCmd returns replace-genesis-values cobra Command. func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { cmd := &cobra.Command{ @@ -185,6 +189,19 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { return fmt.Errorf("failed to unmarshal genesis state: %w", err) } + genesisTimeStr, err := cmd.Flags().GetString(flagGenesisTime) + if err != nil { + return err + } + + if genesisTimeStr != "" { + genesisTime, err := time.Parse(time.RFC3339Nano, genesisTimeStr) + if err != nil { + return err + } + genDoc.GenesisTime = tmtime.Canonical(genesisTime) + } + // fetch the network config using chain-id var ok bool var networkConfig NetworkConfig @@ -257,6 +274,7 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { }, } + cmd.Flags().String(flagGenesisTime, "", "The timestamp to replace 'genesis_time' with in the genesis.json file") cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring backend (os|file|kwallet|pass|test)") flags.AddQueryFlagsToCmd(cmd) From 4326d6d25e1015afebb6105d092feb18dd9d107b Mon Sep 17 00:00:00 2001 From: Peter Bukva Date: Thu, 6 Jun 2024 10:15:08 +0100 Subject: [PATCH 2/3] Refactoring --- cmd/fetchd/cmd/genesis-asi-upgrade.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/fetchd/cmd/genesis-asi-upgrade.go b/cmd/fetchd/cmd/genesis-asi-upgrade.go index 6fa29ac8..009a2d94 100644 --- a/cmd/fetchd/cmd/genesis-asi-upgrade.go +++ b/cmd/fetchd/cmd/genesis-asi-upgrade.go @@ -189,18 +189,12 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { return fmt.Errorf("failed to unmarshal genesis state: %w", err) } - genesisTimeStr, err := cmd.Flags().GetString(flagGenesisTime) + newGenesisTimeStr, err := cmd.Flags().GetString(flagGenesisTime) if err != nil { return err } - if genesisTimeStr != "" { - genesisTime, err := time.Parse(time.RFC3339Nano, genesisTimeStr) - if err != nil { - return err - } - genDoc.GenesisTime = tmtime.Canonical(genesisTime) - } + ASIGenesisUpgradeUpdateGenesisTime(genDoc, newGenesisTimeStr) // fetch the network config using chain-id var ok bool @@ -331,6 +325,16 @@ func replaceAddressInContractStateKey2(keyBytes []byte, prefix []byte) string { return hex.EncodeToString(buffer.Bytes()) } +func ASIGenesisUpgradeUpdateGenesisTime(genDoc *types.GenesisDoc, newGenesisTimeStr string) { + if newGenesisTimeStr != "" { + genesisTime, err := time.Parse(time.RFC3339Nano, newGenesisTimeStr) + if err != nil { + panic(err) + } + genDoc.GenesisTime = tmtime.Canonical(genesisTime) + } +} + func ASIGenesisUpgradeUpdateFccCw20Contract(jsonData map[string]interface{}, networkInfo NetworkConfig) { if networkInfo.Contracts == nil || networkInfo.Contracts.FccCw20 == nil { return From cee381437fdf7b4615ba4b318ec08836bd15124f Mon Sep 17 00:00:00 2001 From: Peter Bukva Date: Thu, 6 Jun 2024 10:38:24 +0100 Subject: [PATCH 3/3] Refactoring --- cmd/fetchd/cmd/genesis-asi-upgrade.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/fetchd/cmd/genesis-asi-upgrade.go b/cmd/fetchd/cmd/genesis-asi-upgrade.go index 009a2d94..0f0c0d52 100644 --- a/cmd/fetchd/cmd/genesis-asi-upgrade.go +++ b/cmd/fetchd/cmd/genesis-asi-upgrade.go @@ -43,6 +43,8 @@ const ( NewAddrPrefix = "asi" OldAddrPrefix = "fetch" + + FlagGenesisTime = "genesis-time" ) var ( @@ -156,8 +158,6 @@ var networkInfos = map[string]NetworkConfig{ }, } -const flagGenesisTime = "genesis-time" - // ASIGenesisUpgradeCmd returns replace-genesis-values cobra Command. func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { cmd := &cobra.Command{ @@ -189,7 +189,7 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { return fmt.Errorf("failed to unmarshal genesis state: %w", err) } - newGenesisTimeStr, err := cmd.Flags().GetString(flagGenesisTime) + newGenesisTimeStr, err := cmd.Flags().GetString(FlagGenesisTime) if err != nil { return err } @@ -268,7 +268,7 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { }, } - cmd.Flags().String(flagGenesisTime, "", "The timestamp to replace 'genesis_time' with in the genesis.json file") + cmd.Flags().String(FlagGenesisTime, "", "The timestamp to replace 'genesis_time' in the genesis.json file, must be RFC3339 formatted") cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring backend (os|file|kwallet|pass|test)") flags.AddQueryFlagsToCmd(cmd)