github.com/InjectiveLabs/sdk-go@v1.53.0/chain/tokenfactory/types/gov.go (about)

     1  package types
     2  
     3  import (
     4  	errorsmod "cosmossdk.io/errors"
     5  	sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
     6  	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
     7  	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
     8  )
     9  
    10  const (
    11  	ProposalTypeUpdateDenomsMetaData = "UpdateDenomsMetaData"
    12  )
    13  
    14  func init() {
    15  	govtypes.RegisterProposalType(ProposalTypeUpdateDenomsMetaData)
    16  }
    17  
    18  var (
    19  	_ govtypes.Content = &UpdateDenomsMetadataProposal{}
    20  )
    21  
    22  func NewUpdateDenomsMetadataProposal(title, description string, metadatas []banktypes.Metadata) govtypes.Content {
    23  	return &UpdateDenomsMetadataProposal{
    24  		Title:       title,
    25  		Description: description,
    26  		Metadatas:   metadatas,
    27  	}
    28  }
    29  
    30  func (p *UpdateDenomsMetadataProposal) GetTitle() string { return p.Title }
    31  
    32  func (p *UpdateDenomsMetadataProposal) GetDescription() string { return p.Description }
    33  
    34  func (p *UpdateDenomsMetadataProposal) ProposalRoute() string { return RouterKey }
    35  
    36  func (p *UpdateDenomsMetadataProposal) ProposalType() string {
    37  	return ProposalTypeUpdateDenomsMetaData
    38  }
    39  
    40  func (p *UpdateDenomsMetadataProposal) ValidateBasic() error {
    41  	err := govtypes.ValidateAbstract(p)
    42  	if err != nil {
    43  		return err
    44  	}
    45  
    46  	for idx := range p.Metadatas {
    47  		metadata := p.Metadatas[idx]
    48  		if metadata.Base == "" {
    49  			return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid denom (%s)", metadata.Base)
    50  		}
    51  	}
    52  
    53  	return nil
    54  }