github.com/Finschia/finschia-sdk@v0.48.1/x/slashing/types/msg.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/Finschia/finschia-sdk/types"
     5  )
     6  
     7  // slashing message types
     8  const (
     9  	TypeMsgUnjail = "unjail"
    10  )
    11  
    12  // verify interface at compile time
    13  var _ sdk.Msg = &MsgUnjail{}
    14  
    15  // NewMsgUnjail creates a new MsgUnjail instance
    16  //
    17  //nolint:interfacer
    18  func NewMsgUnjail(validatorAddr sdk.ValAddress) *MsgUnjail {
    19  	return &MsgUnjail{
    20  		ValidatorAddr: validatorAddr.String(),
    21  	}
    22  }
    23  
    24  func (msg MsgUnjail) Route() string { return RouterKey }
    25  func (msg MsgUnjail) Type() string  { return TypeMsgUnjail }
    26  func (msg MsgUnjail) GetSigners() []sdk.AccAddress {
    27  	valAddr, err := sdk.ValAddressFromBech32(msg.ValidatorAddr)
    28  	if err != nil {
    29  		panic(err)
    30  	}
    31  	return []sdk.AccAddress{valAddr.Bytes()}
    32  }
    33  
    34  // GetSignBytes gets the bytes for the message signer to sign on
    35  func (msg MsgUnjail) GetSignBytes() []byte {
    36  	bz := ModuleCdc.MustMarshalJSON(&msg)
    37  	return sdk.MustSortJSON(bz)
    38  }
    39  
    40  // ValidateBasic validity check for the AnteHandler
    41  func (msg MsgUnjail) ValidateBasic() error {
    42  	if msg.ValidatorAddr == "" {
    43  		return ErrBadValidatorAddr
    44  	}
    45  
    46  	return nil
    47  }