mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-29 09:45:18 +00:00
37 lines
1.6 KiB
Protocol Buffer
37 lines
1.6 KiB
Protocol Buffer
|
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;
|
||
|
}
|