github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evidence/internal/types/msgs.go (about) 1 package types 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 6 "github.com/fibonacci-chain/fbc/x/evidence/exported" 7 ) 8 9 // Message types for the evidence module 10 const ( 11 TypeMsgSubmitEvidence = "submit_evidence" 12 ) 13 14 var ( 15 _ sdk.Msg = MsgSubmitEvidence{} 16 ) 17 18 // MsgSubmitEvidence defines an sdk.Msg type that supports submitting arbitrary 19 // Evidence. 20 type MsgSubmitEvidence struct { 21 Evidence exported.Evidence `json:"evidence" yaml:"evidence"` 22 Submitter sdk.AccAddress `json:"submitter" yaml:"submitter"` 23 } 24 25 func NewMsgSubmitEvidence(e exported.Evidence, s sdk.AccAddress) MsgSubmitEvidence { 26 return MsgSubmitEvidence{Evidence: e, Submitter: s} 27 } 28 29 // Route returns the MsgSubmitEvidence's route. 30 func (m MsgSubmitEvidence) Route() string { return RouterKey } 31 32 // Type returns the MsgSubmitEvidence's type. 33 func (m MsgSubmitEvidence) Type() string { return TypeMsgSubmitEvidence } 34 35 // ValidateBasic performs basic (non-state-dependant) validation on a MsgSubmitEvidence. 36 func (m MsgSubmitEvidence) ValidateBasic() error { 37 if m.Evidence == nil { 38 return sdkerrors.Wrap(ErrInvalidEvidence, "missing evidence") 39 } 40 if err := m.Evidence.ValidateBasic(); err != nil { 41 return err 42 } 43 if m.Submitter.Empty() { 44 return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, m.Submitter.String()) 45 } 46 47 return nil 48 } 49 50 // GetSignBytes returns the raw bytes a signer is expected to sign when submitting 51 // a MsgSubmitEvidence message. 52 func (m MsgSubmitEvidence) GetSignBytes() []byte { 53 return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) 54 } 55 56 // GetSigners returns the single expected signer for a MsgSubmitEvidence. 57 func (m MsgSubmitEvidence) GetSigners() []sdk.AccAddress { 58 return []sdk.AccAddress{m.Submitter} 59 }