func (k Keeper) Logger(ctx sdk.Context) log.Logger {
	return ctx.Logger().With("module", fmt.Sprintf("irita/%s", types.ModuleName))
}
Logger returns a module-specific logger.
package keeper
import (
	"bytes"
	"fmt"
	"github.com/tendermint/tendermint/libs/log"
	"github.com/cosmos/cosmos-sdk/codec"
	sdk "github.com/cosmos/cosmos-sdk/types"
	sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
	"github.com/bianjieai/irita/modules/opb/types"
)
type Keeper struct {
	cdc      codec.Codec
	storeKey sdk.StoreKey
	accountKeeper types.AccountKeeper
	bankKeeper    types.BankKeeper
	tokenKeeper   types.TokenKeeper
	permKeeper    types.PermKeeper
	paramSpace paramstypes.Subspace
}
func NewKeeper(
	cdc codec.Codec,
	storeKey sdk.StoreKey,
	accountKeeper types.AccountKeeper,
	bankKeeper types.BankKeeper,
	tokenKeeper types.TokenKeeper,
	permKeeper types.PermKeeper,
	paramSpace paramstypes.Subspace,
) Keeper {
	if addr := accountKeeper.GetModuleAddress(types.PointTokenFeeCollectorName); addr == nil {
		panic(fmt.Sprintf("%s module account has not been set", types.PointTokenFeeCollectorName))
	}
	if !paramSpace.HasKeyTable() {
		paramSpace = paramSpace.WithKeyTable(ParamKeyTable())
	}
	return Keeper{
		cdc:           cdc,
		storeKey:      storeKey,
		accountKeeper: accountKeeper,
		bankKeeper:    bankKeeper,
		tokenKeeper:   tokenKeeper,
		permKeeper:    permKeeper,
		paramSpace:    paramSpace,
	}
}