github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/genutil/client/cli/collect.go (about) 1 package cli 2 3 import ( 4 "encoding/json" 5 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/flags" 6 "path/filepath" 7 8 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/cli" 9 tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types" 10 "github.com/spf13/cobra" 11 "github.com/spf13/viper" 12 13 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 14 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/server" 15 "github.com/fibonacci-chain/fbc/x/genutil" 16 ) 17 18 const flagGenTxDir = "gentx-dir" 19 20 // CollectGenTxsCmd returns the cobra command to collect genesis transactions 21 func CollectGenTxsCmd(ctx *server.Context, cdc *codec.Codec, 22 genAccIterator genutil.GenesisAccountsIterator, defaultNodeHome string) *cobra.Command { 23 24 cmd := &cobra.Command{ 25 Use: "collect-gentxs", 26 Short: "Collect genesis txs and output a genesis.json file", 27 RunE: func(_ *cobra.Command, _ []string) error { 28 config := ctx.Config 29 config.SetRoot(viper.GetString(cli.HomeFlag)) 30 name := viper.GetString(flags.FlagName) 31 nodeID, valPubKey, err := genutil.InitializeNodeValidatorFiles(config) 32 if err != nil { 33 return err 34 } 35 36 genDoc, err := tmtypes.GenesisDocFromFile(config.GenesisFile()) 37 if err != nil { 38 return err 39 } 40 41 genTxsDir := viper.GetString(flagGenTxDir) 42 if genTxsDir == "" { 43 genTxsDir = filepath.Join(config.RootDir, "config", "gentx") 44 } 45 46 toPrint := newPrintInfo(config.Moniker, genDoc.ChainID, nodeID, genTxsDir, json.RawMessage("")) 47 initCfg := genutil.NewInitConfig(genDoc.ChainID, genTxsDir, name, nodeID, valPubKey) 48 49 appMessage, err := genutil.GenAppStateFromConfig(cdc, config, initCfg, *genDoc, genAccIterator) 50 if err != nil { 51 return err 52 } 53 54 toPrint.AppMessage = appMessage 55 56 // print out some key information 57 return displayInfo(cdc, toPrint) 58 }, 59 } 60 61 cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory") 62 cmd.Flags().String(flagGenTxDir, "", 63 "override default \"gentx\" directory from which collect and execute "+ 64 "genesis transactions; default [--home]/config/gentx/") 65 return cmd 66 }