func (msg UpdatePostMsg) ValidateBasic() sdk.Error {
	err := checkPostBasic(msg.PostID, msg.Author, msg.Title, msg.Content)
	if err != nil {
		return err
	}
	return nil
}
ValidateBasic - implements sdk.Msg
package types
import (
	"fmt"
	"unicode/utf8"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/lino-network/lino/types"
)
type CreatePostMsg struct {
	Author    types.AccountKey `json:"author"`
	PostID    string           `json:"post_id"`
	Title     string           `json:"title"`
	Content   string           `json:"content"`
	CreatedBy types.AccountKey `json:"created_by"`
	Preauth   bool             `json:"preauth"`
}
var _ types.Msg = CreatePostMsg{}
func (msg CreatePostMsg) Route() string { return RouterKey }
func (msg CreatePostMsg) Type() string { return "CreatePostMsg" }
func (msg CreatePostMsg) GetSigners() []sdk.AccAddress {
	if msg.Preauth {
		return []sdk.AccAddress{sdk.AccAddress(msg.Author)}
	}
	return []sdk.AccAddress{sdk.AccAddress(msg.CreatedBy)}
}
func (msg CreatePostMsg) GetSignBytes() []byte {
	return getSignBytes(msg)
}
func (msg CreatePostMsg) GetPermission() types.Permission {
	if msg.Preauth {
		return types.TransactionPermission
	}
	if msg.CreatedBy == msg.Author {
		return types.TransactionPermission
	}
	return types.AppOrAffiliatedPermission
}
func (msg CreatePostMsg) GetConsumeAmount() types.Coin {
	return types.NewCoinFromInt64(0)
}
func (msg CreatePostMsg) ValidateBasic() sdk.Error {
	err := checkPostBasic(msg.PostID, msg.Author, msg.Title, msg.Content)
	if err != nil {
		return err
	}
	if !msg.CreatedBy.IsValid() {
		return ErrInvalidCreatedBy()
	}
	return nil
}
func (msg CreatePostMsg) String() string {
	return fmt.Sprintf(
		"Post.CreatePostMsg{author:%v, postID:%v, title:%v, content:%v, created_by:%v}",
		msg.Author, msg.PostID, msg.Title, msg.Content, msg.CreatedBy)
}
type UpdatePostMsg struct {
	Author  types.AccountKey `json:"author"`
	PostID  string           `json:"post_id"`
	Title   string           `json:"title"`
	Content string           `json:"content"`
}
var _ types.Msg = UpdatePostMsg{}
func (msg UpdatePostMsg) Route() string { return RouterKey }
func (msg UpdatePostMsg) Type() string { return "UpdatePostMsg" }
func (msg UpdatePostMsg) GetPermission() types.Permission {
	return types.TransactionPermission
}