app

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: MPL-2.0 Imports: 99 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
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 Config

func Config() depinject.Config

Config returns the default app config.

func ProvideRootStoreConfig

func ProvideRootStoreConfig(config runtime.GlobalConfig) (*root.Config, error)

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 NewApp

func NewApp[T transaction.Tx](
	config depinject.Config,
	outputs ...any,
) (*App[T], error)

NewApp is an App constructor

func (*App[T]) AppCodec

func (app *App[T]) AppCodec() codec.Codec

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]) Close

func (app *App[T]) Close() error

Close overwrites the base Close method to close the stores.

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

func (*App[T]) Store

func (app *App[T]) Store() store.RootStore

Store returns the root store.

func (*App[T]) TxConfig

func (app *App[T]) TxConfig() client.TxConfig

TxConfig returns App's TxConfig.

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL