Documentation
¶
Index ¶
- Constants
- Variables
- func Config() depinject.Config
- func ProvideRootStoreConfig(config runtime.GlobalConfig) (*root.Config, error)
- type App
- func (app *App[T]) AppCodec() codec.Codec
- func (app *App[T]) Close() error
- func (app *App[T]) ExportAppStateAndValidators(forZeroHeight bool, jailAllowedAddrs []string) (v2.ExportedApp, error)
- func (app *App[T]) InterfaceRegistry() server.InterfaceRegistry
- func (app *App[T]) RegisterUpgradeHandlers()
- func (app *App[T]) Store() store.RootStore
- func (app *App[T]) TxConfig() client.TxConfig
- type SimGenesisAccount
Constants ¶
const UpgradeName = "v050-to-v2"
UpgradeName defines the on-chain upgrade name for the sample App upgrade from v0.50.x to v2
NOTE: This upgrade defines a reference implementation of what an upgrade could look like when an application is migrating from Cosmos SDK version v0.50.x to v2.
Variables ¶
var ( // ModuleConfig is the application module configuration used by depinject ModuleConfig = &appv1alpha1.Config{ Modules: []*appv1alpha1.ModuleConfig{ { Name: runtime.ModuleName, Config: appconfig.WrapAny(&runtimev2.Module{ AppName: "AppV2", PreBlockers: []string{ upgradetypes.ModuleName, }, BeginBlockers: []string{ minttypes.ModuleName, distrtypes.ModuleName, pooltypes.ModuleName, slashingtypes.ModuleName, evidencetypes.ModuleName, stakingtypes.ModuleName, authz.ModuleName, epochstypes.ModuleName, }, EndBlockers: []string{ govtypes.ModuleName, stakingtypes.ModuleName, feegrant.ModuleName, group.ModuleName, pooltypes.ModuleName, }, OverrideStoreKeys: []*runtimev2.StoreKeyConfig{ { ModuleName: authtypes.ModuleName, KvStoreKey: "acc", }, { ModuleName: accounts.ModuleName, KvStoreKey: accounts.StoreKey, }, }, InitGenesis: []string{ consensustypes.ModuleName, accounts.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName, slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, nft.ModuleName, group.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, circuittypes.ModuleName, pooltypes.ModuleName, epochstypes.ModuleName, }, GasConfig: &runtimev2.GasConfig{ ValidateTxGasLimit: 10_000_000, QueryGasLimit: 100_000, SimulationGasLimit: 100_000, }, SkipStoreKeys: []string{ authtxconfig.DepinjectModuleName, validate.ModuleName, }, }), }, { Name: authtxconfig.DepinjectModuleName, Config: appconfig.WrapAny(&txconfigv1.Config{}), }, { Name: validate.ModuleName, Config: appconfig.WrapAny(&validatemodulev1.Module{}), }, { Name: authtypes.ModuleName, Config: appconfig.WrapAny(&authmodulev1.Module{ Bech32Prefix: appparams.Bech32Prefix, ModuleAccountPermissions: moduleAccPerms, }), }, { Name: vestingtypes.ModuleName, Config: appconfig.WrapAny(&vestingmodulev1.Module{}), }, { Name: banktypes.ModuleName, Config: appconfig.WrapAny(&bankmodulev1.Module{ BlockedModuleAccountsOverride: blockAccAddrs, }), }, { Name: stakingtypes.ModuleName, Config: appconfig.WrapAny(&stakingmodulev1.Module{ Bech32PrefixValidator: appparams.Bech32Prefix + "valoper", Bech32PrefixConsensus: appparams.Bech32Prefix + "valcons", }), }, { Name: slashingtypes.ModuleName, Config: appconfig.WrapAny(&slashingmodulev1.Module{}), }, { Name: genutiltypes.ModuleName, Config: appconfig.WrapAny(&genutilmodulev1.Module{}), }, { Name: authz.ModuleName, Config: appconfig.WrapAny(&authzmodulev1.Module{}), }, { Name: upgradetypes.ModuleName, Config: appconfig.WrapAny(&upgrademodulev1.Module{}), }, { Name: distrtypes.ModuleName, Config: appconfig.WrapAny(&distrmodulev1.Module{}), }, { Name: evidencetypes.ModuleName, Config: appconfig.WrapAny(&evidencemodulev1.Module{}), }, { Name: minttypes.ModuleName, Config: appconfig.WrapAny(&mintmodulev1.Module{}), }, { Name: group.ModuleName, Config: appconfig.WrapAny(&groupmodulev1.Module{ MaxExecutionPeriod: durationpb.New(time.Second * 1209600), MaxMetadataLen: 255, }), }, { Name: nft.ModuleName, Config: appconfig.WrapAny(&nftmodulev1.Module{}), }, { Name: feegrant.ModuleName, Config: appconfig.WrapAny(&feegrantmodulev1.Module{}), }, { Name: govtypes.ModuleName, Config: appconfig.WrapAny(&govmodulev1.Module{}), }, { Name: consensustypes.ModuleName, Config: appconfig.WrapAny(&consensusmodulev1.Module{}), }, { Name: accounts.ModuleName, Config: appconfig.WrapAny(&accountsmodulev1.Module{}), }, { Name: circuittypes.ModuleName, Config: appconfig.WrapAny(&circuitmodulev1.Module{}), }, { Name: pooltypes.ModuleName, Config: appconfig.WrapAny(&poolmodulev1.Module{}), }, { Name: epochstypes.ModuleName, Config: appconfig.WrapAny(&epochsmodulev1.Module{}), }, }, } )
Functions ¶
func ProvideRootStoreConfig ¶
ProvideRootStoreConfig deep inject provider for a store
Types ¶
type App ¶
type App[T transaction.Tx] struct { *runtime.App[T] // required keepers during wiring // others keepers are all in the app UpgradeKeeper *upgradekeeper.Keeper StakingKeeper *stakingkeeper.Keeper // contains filtered or unexported fields }
App extends an ABCI application, but with most of its parameters exported. They are exported for convenience in creating helper functions, as object capabilities aren't needed for testing.
func (*App[T]) AppCodec ¶
AppCodec returns App's app codec.
NOTE: This is solely to be used for testing purposes as it may be desirable for modules to register their own custom testing types.
func (*App[T]) ExportAppStateAndValidators ¶
func (app *App[T]) ExportAppStateAndValidators( forZeroHeight bool, jailAllowedAddrs []string, ) (v2.ExportedApp, error)
ExportAppStateAndValidators exports the state of the application for a genesis file. This is a demonstation of how to export a genesis file. Export may need extended at the user discretion for cleaning the genesis state at the end provided with jailAllowedAddrs Same applies for forZeroHeight preprocessing.
func (*App[T]) InterfaceRegistry ¶
func (app *App[T]) InterfaceRegistry() server.InterfaceRegistry
InterfaceRegistry returns App's InterfaceRegistry.
func (*App[T]) RegisterUpgradeHandlers ¶
func (app *App[T]) RegisterUpgradeHandlers()
RegisterUpgradeHandlers for x/gov proposals
type SimGenesisAccount ¶
type SimGenesisAccount struct { *authtypes.BaseAccount // vesting account fields OriginalVesting sdk.Coins `json:"original_vesting" yaml:"original_vesting"` // total vesting coins upon initialization DelegatedFree sdk.Coins `json:"delegated_free" yaml:"delegated_free"` // delegated vested coins at time of delegation DelegatedVesting sdk.Coins `json:"delegated_vesting" yaml:"delegated_vesting"` // delegated vesting coins at time of delegation StartTime int64 `json:"start_time" yaml:"start_time"` // vesting start time (UNIX Epoch time) EndTime int64 `json:"end_time" yaml:"end_time"` // vesting end time (UNIX Epoch time) // module account fields ModuleName string `json:"module_name" yaml:"module_name"` // name of the module account ModulePermissions []string `json:"module_permissions" yaml:"module_permissions"` // permissions of module account }
SimGenesisAccount defines a type that implements the GenesisAccount interface to be used for simulation accounts in the genesis state.
func (SimGenesisAccount) Validate ¶
func (sga SimGenesisAccount) Validate() error
Validate checks for errors on the vesting and module account parameters