func (msg MsgStake) GetSignBytes() []byte {
	bz := ModuleCdc.MustMarshalJSON(&msg)
	return sdk.MustSortJSON(bz)
}
GetSignBytes implements Msg
package types
import (
	sdk "github.com/cosmos/cosmos-sdk/types"
	sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
const (
	TypeMsgCreatePool = "create_pool"
	TypeMsgDestroyPool = "destroy_pool"
	TypeMsgAdjustPool = "adjust_pool"
	TypeMsgStake = "stake"
	TypeMsgUnstake = "unstake"
	TypeMsgHarvest = "harvest"
)
var (
	_ sdk.Msg = &MsgCreatePool{}
	_ sdk.Msg = &MsgDestroyPool{}
	_ sdk.Msg = &MsgAdjustPool{}
	_ sdk.Msg = &MsgStake{}
	_ sdk.Msg = &MsgUnstake{}
	_ sdk.Msg = &MsgHarvest{}
)
func (msg MsgCreatePool) Route() string { return RouterKey }
func (msg MsgCreatePool) Type() string { return TypeMsgCreatePool }
func (msg MsgCreatePool) ValidateBasic() error {
	if err := ValidatePoolName(msg.Name); err != nil {
		return err
	}
	if err := ValidateDescription(msg.Description); err != nil {
		return err
	}
	if err := ValidateLpTokenDenom(msg.LptDenom); err != nil {
		return err
	}
	if err := ValidateCoins("RewardPerBlock", msg.RewardPerBlock...); err != nil {
		return err
	}
	if err := ValidateAddress(msg.Creator); err != nil {
		return err
	}
	if err := ValidateCoins("TotalReward", msg.TotalReward...); err != nil {
		return err
	}
	return ValidateReward(msg.RewardPerBlock, msg.TotalReward)
}
func (msg MsgCreatePool) GetSignBytes() []byte {
	bz := ModuleCdc.MustMarshalJSON(&msg)
	return sdk.MustSortJSON(bz)
}
func (msg MsgCreatePool) GetSigners() []sdk.AccAddress {
	from, err := sdk.AccAddressFromBech32(msg.Creator)
	if err != nil {
		panic(err)
	}
	return []sdk.AccAddress{from}
}
func (msg MsgDestroyPool) Route() string { return RouterKey }
func (msg MsgDestroyPool) Type() string { return TypeMsgDestroyPool }
func (msg MsgDestroyPool) ValidateBasic() error {
	if err := ValidateAddress(msg.Creator); err != nil {
		return err
	}
	return ValidatePoolName(msg.PoolName)
}
func (msg MsgDestroyPool) GetSignBytes() []byte {
	bz := ModuleCdc.MustMarshalJSON(&msg)
	return sdk.MustSortJSON(bz)
}
func (msg MsgDestroyPool) GetSigners() []sdk.AccAddress {
	from, err := sdk.AccAddressFromBech32(msg.Creator)
	if err != nil {
		panic(err)
	}
	return []sdk.AccAddress{from}
}
func (msg MsgAdjustPool) Route() string { return RouterKey }
func (msg MsgAdjustPool) Type() string { return TypeMsgAdjustPool }
func (msg MsgAdjustPool) ValidateBasic() error {
	if err := ValidateAddress(msg.Creator); err != nil {
		return err
	}
	if msg.AdditionalReward == nil && msg.RewardPerBlock == nil {
		return sdkerrors.Wrap(ErrAllEmpty, "AdditionalReward and RewardPerBlock")
	}
	if msg.AdditionalReward != nil {
		if err := ValidateCoins("AdditionalReward", msg.AdditionalReward...); err != nil {
			return err
		}
	}
	if msg.RewardPerBlock != nil {
		if err := ValidateCoins("RewardPerBlock", msg.RewardPerBlock...); err != nil {
			return err
		}
	}
	return ValidatePoolName(msg.PoolName)
}
func (msg MsgAdjustPool) GetSignBytes() []byte {
	bz := ModuleCdc.MustMarshalJSON(&msg)
	return sdk.MustSortJSON(bz)
}
func (msg MsgAdjustPool) GetSigners() []sdk.AccAddress {
	from, err := sdk.AccAddressFromBech32(msg.Creator)
	if err != nil {
		panic(err)
	}
	return []sdk.AccAddress{from}
}
func (msg MsgStake) Route() string { return RouterKey }
func (msg MsgStake) Type() string { return TypeMsgStake }
func (msg MsgStake) ValidateBasic() error {
	if err := ValidateAddress(msg.Sender); err != nil {
		return err
	}
	if err := ValidateCoins("Amount", msg.Amount); err != nil {
		return err
	}
	return ValidatePoolName(msg.PoolName)
}