package module import ( "os" "cosmossdk.io/core/address" "cosmossdk.io/core/appmodule" "cosmossdk.io/core/store" "cosmossdk.io/depinject" "cosmossdk.io/log" "github.com/cosmos/cosmos-sdk/codec" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" modulev1 "github.com/onsonr/sonr/api/oracle/module/v1" didkeeper "github.com/onsonr/sonr/x/did/keeper" macaroonkeeper "github.com/onsonr/sonr/x/macaroon/keeper" "github.com/onsonr/sonr/x/oracle/keeper" ) var _ appmodule.AppModule = AppModule{} // IsOnePerModuleType implements the depinject.OnePerModuleType interface. func (am AppModule) IsOnePerModuleType() {} // IsAppModule implements the appmodule.AppModule interface. func (am AppModule) IsAppModule() {} func init() { appmodule.Register( &modulev1.Module{}, appmodule.Provide(ProvideModule), ) } type ModuleInputs struct { depinject.In Cdc codec.Codec StoreService store.KVStoreService AddressCodec address.Codec DidKeeper didkeeper.Keeper MacaroonKeeper macaroonkeeper.Keeper StakingKeeper stakingkeeper.Keeper SlashingKeeper slashingkeeper.Keeper } type ModuleOutputs struct { depinject.Out Module appmodule.AppModule Keeper keeper.Keeper } func ProvideModule(in ModuleInputs) ModuleOutputs { govAddr := authtypes.NewModuleAddress(govtypes.ModuleName).String() k := keeper.NewKeeper(in.Cdc, in.StoreService, log.NewLogger(os.Stderr), govAddr) m := NewAppModule(in.Cdc, k, in.DidKeeper, in.MacaroonKeeper) return ModuleOutputs{Module: m, Keeper: k, Out: depinject.Out{}} }