73 lines
2.8 KiB
Go
73 lines
2.8 KiB
Go
package appmodule
|
|
|
|
import (
|
|
"context"
|
|
|
|
appmodulev2 "cosmossdk.io/core/appmodule/v2"
|
|
"cosmossdk.io/core/registry"
|
|
)
|
|
|
|
// AppModule is a tag interface for app module implementations to use as a basis
|
|
// for extension interfaces. It provides no functionality itself, but is the
|
|
// type that all valid app modules should provide so that they can be identified
|
|
// by other modules (usually via depinject) as app modules.
|
|
type AppModule = appmodulev2.AppModule
|
|
|
|
// HasPreBlocker is the extension interface that modules should implement to run
|
|
// custom logic before BeginBlock.
|
|
type HasPreBlocker = appmodulev2.HasPreBlocker
|
|
|
|
// HasBeginBlocker is the extension interface that modules should implement to run
|
|
// custom logic before transaction processing in a block.
|
|
type HasBeginBlocker = appmodulev2.HasBeginBlocker
|
|
|
|
// HasEndBlocker is the extension interface that modules should implement to run
|
|
// custom logic after transaction processing in a block.
|
|
type HasEndBlocker = appmodulev2.HasEndBlocker
|
|
|
|
// HasRegisterInterfaces is the interface for modules to register their msg types.
|
|
type HasRegisterInterfaces = appmodulev2.HasRegisterInterfaces
|
|
|
|
// ValidatorUpdate defines a validator update.
|
|
type ValidatorUpdate = appmodulev2.ValidatorUpdate
|
|
|
|
// HasServices is the extension interface that modules should implement to register
|
|
// implementations of services defined in .proto files.
|
|
// This API is supported by the Cosmos SDK module managers but is excluded from core to limit dependencies.
|
|
// type HasServices interface {
|
|
// AppModule
|
|
|
|
// // RegisterServices registers the module's services with the app's service
|
|
// // registrar.
|
|
// //
|
|
// // Two types of services are currently supported:
|
|
// // - read-only gRPC query services, which are the default.
|
|
// // - transaction message services, which must have the protobuf service
|
|
// // option "cosmos.msg.v1.service" (defined in "cosmos/msg/v1/service.proto")
|
|
// // set to true.
|
|
// //
|
|
// // The service registrar will figure out which type of service you are
|
|
// // implementing based on the presence (or absence) of protobuf options. You
|
|
// // do not need to specify this in golang code.
|
|
// RegisterServices(grpc.ServiceRegistrar) error
|
|
// }
|
|
|
|
// HasPrepareCheckState is an extension interface that contains information about the AppModule
|
|
// and PrepareCheckState.
|
|
type HasPrepareCheckState interface {
|
|
appmodulev2.AppModule
|
|
PrepareCheckState(context.Context) error
|
|
}
|
|
|
|
// HasPrecommit is an extension interface that contains information about the appmodule.AppModule and Precommit.
|
|
type HasPrecommit interface {
|
|
appmodulev2.AppModule
|
|
Precommit(context.Context) error
|
|
}
|
|
|
|
// HasAminoCodec is an extension interface that module must implement to support JSON encoding and decoding of its types
|
|
// through amino. This is used in genesis & the CLI client.
|
|
type HasAminoCodec interface {
|
|
RegisterLegacyAminoCodec(registry.AminoRegistrar)
|
|
}
|