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 }