func NewKeeper(
	cdc *codec.Codec,
	key sdk.StoreKey,
	ak types.AccountKeeper,
	bk types.BankKeeper,
	maccPerms map[string][]string,
) Keeper {
	permAddrs := make(map[string]types.PermissionsForAddress)
	for name, perms := range maccPerms {
		permAddrs[name] = types.NewPermissionsForAddress(name, perms)
	}
	return Keeper{
		cdc:           cdc,
		storeKey:      key,
		accountKeeper: ak,
		bk:            bk,
		permAddrs:     permAddrs,
	}
}
NewKeeper creates a new Keeper instance
package keeper
import (
	"fmt"
	"github.com/KuChainNetwork/kuchain/x/supply/exported"
	supplyExported "github.com/KuChainNetwork/kuchain/x/supply/exported"
	"github.com/KuChainNetwork/kuchain/x/supply/types"
	"github.com/cosmos/cosmos-sdk/codec"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/tendermint/tendermint/libs/log"
)
type Keeper struct {
	cdc      *codec.Codec
	storeKey sdk.StoreKey
	accountKeeper types.AccountKeeper
	bk            types.BankKeeper
	permAddrs     map[string]types.PermissionsForAddress
}