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  }