syntax = "proto3"; package cosmos.app.v1alpha1; import "google/protobuf/any.proto"; // Config represents the configuration for a Cosmos SDK ABCI app. // It is intended that all state machine logic including the version of // baseapp and tx handlers (and possibly even Tendermint) that an app needs // can be described in a config object. For compatibility, the framework should // allow a mixture of declarative and imperative app wiring, however, apps // that strive for the maximum ease of maintainability should be able to describe // their state machine with a config object alone. message Config { // modules are the module configurations for the app. repeated ModuleConfig modules = 1; } // ModuleConfig is a module configuration for an app. message ModuleConfig { // name is the unique name of the module within the app. It should be a name // that persists between different versions of a module so that modules // can be smoothly upgraded to new versions. // // For example, for the module cosmos.bank.module.v1.Module, we may chose // to simply name the module "bank" in the app. When we upgrade to // cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same // and the framework knows that the v2 module should receive all the same state // that the v1 module had. Note: modules should provide info on which versions // they can migrate from in the ModuleDescriptor.can_migration_from field. string name = 1; // config is the config object for the module. Module config messages should // define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension. google.protobuf.Any config = 2; }