github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/gov/client/cli/parse.go (about) 1 package cli 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "io/ioutil" 7 8 "github.com/spf13/viper" 9 10 govutils "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/gov/client/utils" 11 ) 12 13 func parseSubmitProposalFlags() (*proposal, error) { 14 proposal := &proposal{} 15 proposalFile := viper.GetString(FlagProposal) 16 17 if proposalFile == "" { 18 proposal.Title = viper.GetString(FlagTitle) 19 proposal.Description = viper.GetString(FlagDescription) 20 proposal.Type = govutils.NormalizeProposalType(viper.GetString(flagProposalType)) 21 proposal.Deposit = viper.GetString(FlagDeposit) 22 return proposal, nil 23 } 24 25 for _, flag := range ProposalFlags { 26 if viper.GetString(flag) != "" { 27 return nil, fmt.Errorf("--%s flag provided alongside --proposal, which is a noop", flag) 28 } 29 } 30 31 contents, err := ioutil.ReadFile(proposalFile) 32 if err != nil { 33 return nil, err 34 } 35 36 err = json.Unmarshal(contents, proposal) 37 if err != nil { 38 return nil, err 39 } 40 41 return proposal, nil 42 }