github.com/cosmos/cosmos-sdk@v0.50.10/x/gov/client/utils/utils.go (about)

     1  package utils
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
     7  )
     8  
     9  // NormalizeVoteOption - normalize user specified vote option
    10  func NormalizeVoteOption(option string) string {
    11  	switch option {
    12  	case "Yes", "yes":
    13  		return v1beta1.OptionYes.String()
    14  
    15  	case "Abstain", "abstain":
    16  		return v1beta1.OptionAbstain.String()
    17  
    18  	case "No", "no":
    19  		return v1beta1.OptionNo.String()
    20  
    21  	case "NoWithVeto", "no_with_veto":
    22  		return v1beta1.OptionNoWithVeto.String()
    23  
    24  	default:
    25  		return option
    26  	}
    27  }
    28  
    29  // NormalizeWeightedVoteOptions - normalize vote options param string
    30  func NormalizeWeightedVoteOptions(options string) string {
    31  	newOptions := []string{}
    32  	for _, option := range strings.Split(options, ",") {
    33  		fields := strings.Split(option, "=")
    34  		fields[0] = NormalizeVoteOption(fields[0])
    35  		if len(fields) < 2 {
    36  			fields = append(fields, "1")
    37  		}
    38  		newOptions = append(newOptions, strings.Join(fields, "="))
    39  	}
    40  	return strings.Join(newOptions, ",")
    41  }
    42  
    43  // NormalizeProposalType - normalize user specified proposal type.
    44  func NormalizeProposalType(proposalType string) string {
    45  	switch proposalType {
    46  	case "Text", "text":
    47  		return v1beta1.ProposalTypeText
    48  
    49  	default:
    50  		return ""
    51  	}
    52  }
    53  
    54  // NormalizeProposalStatus - normalize user specified proposal status.
    55  func NormalizeProposalStatus(status string) string {
    56  	switch status {
    57  	case "DepositPeriod", "deposit_period":
    58  		return v1beta1.StatusDepositPeriod.String()
    59  	case "VotingPeriod", "voting_period":
    60  		return v1beta1.StatusVotingPeriod.String()
    61  	case "Passed", "passed":
    62  		return v1beta1.StatusPassed.String()
    63  	case "Rejected", "rejected":
    64  		return v1beta1.StatusRejected.String()
    65  	default:
    66  		return status
    67  	}
    68  }