Documentation ¶
Index ¶
- Constants
- Variables
- func BeginBlocker(k Keeper, ctx sdk.Context, _ abci.RequestBeginBlock)
- func NewSoftwareUpgradeProposalHandler(k Keeper) govtypes.Handler
- type AppModule
- func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)
- func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate
- func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage
- func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate
- func (am AppModule) NewHandler() sdk.Handler
- func (am AppModule) NewQuerierHandler() sdk.Querier
- func (AppModule) QuerierRoute() string
- func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry)
- func (AppModule) Route() string
- type AppModuleBasic
- func (AppModuleBasic) DefaultGenesis() json.RawMessage
- func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command
- func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command
- func (AppModuleBasic) Name() string
- func (AppModuleBasic) RegisterCodec(cdc *codec.Codec)
- func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, r *mux.Router)
- func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error
- type CancelSoftwareUpgradeProposal
- type Keeper
- type Plan
- type QueryAppliedParams
- type SoftwareUpgradeProposal
- type UpgradeHandler
Constants ¶
const ( ModuleName = types.ModuleName RouterKey = types.RouterKey StoreKey = types.StoreKey QuerierKey = types.QuerierKey PlanByte = types.PlanByte DoneByte = types.DoneByte ProposalTypeSoftwareUpgrade = types.ProposalTypeSoftwareUpgrade ProposalTypeCancelSoftwareUpgrade = types.ProposalTypeCancelSoftwareUpgrade QueryCurrent = types.QueryCurrent QueryApplied = types.QueryApplied )
Variables ¶
var ( // functions aliases RegisterCodec = types.RegisterCodec PlanKey = types.PlanKey NewSoftwareUpgradeProposal = types.NewSoftwareUpgradeProposal NewCancelSoftwareUpgradeProposal = types.NewCancelSoftwareUpgradeProposal NewQueryAppliedParams = types.NewQueryAppliedParams NewKeeper = keeper.NewKeeper NewQuerier = keeper.NewQuerier )
Functions ¶
func BeginBlocker ¶
func BeginBlocker(k Keeper, ctx sdk.Context, _ abci.RequestBeginBlock)
BeginBlock will check if there is a scheduled plan and if it is ready to be executed. If the current height is in the provided set of heights to skip, it will skip and clear the upgrade plan. If it is ready, it will execute it if the handler is installed, and panic/abort otherwise. If the plan is not ready, it will ensure the handler is not registered too early (and abort otherwise).
The purpose is to ensure the binary is switched EXACTLY at the desired block, and to allow a migration to be executed if needed upon this switch (migration defined in the new binary) skipUpgradeHeightArray is a set of block heights for which the upgrade must be skipped
func NewSoftwareUpgradeProposalHandler ¶
NewSoftwareUpgradeProposalHandler creates a governance handler to manage new proposal types. It enables SoftwareUpgradeProposal to propose an Upgrade, and CancelSoftwareUpgradeProposal to abort a previously voted upgrade.
Types ¶
type AppModule ¶
type AppModule struct { AppModuleBasic // contains filtered or unexported fields }
AppModule implements the sdk.AppModule interface
func NewAppModule ¶
NewAppModule creates a new AppModule object
func (AppModule) BeginBlock ¶
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)
BeginBlock calls the upgrade module hooks
CONTRACT: this is registered in BeginBlocker *before* all other modules' BeginBlock functions
func (AppModule) EndBlock ¶
func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate
EndBlock does nothing
func (AppModule) ExportGenesis ¶
func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage
ExportGenesis is always empty, as InitGenesis does nothing either
func (AppModule) InitGenesis ¶
func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate
InitGenesis is ignored, no sense in serializing future upgrades
func (AppModule) NewHandler ¶
NewHandler is empty, as we do not handle Messages (just proposals)
func (AppModule) NewQuerierHandler ¶
NewQuerierHandler registers a query handler to respond to the module-specific queries
func (AppModule) QuerierRoute ¶
QuerierRoute returns the route we respond to for abci queries
func (AppModule) RegisterInvariants ¶
func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry)
RegisterInvariants does nothing, there are no invariants to enforce
type AppModuleBasic ¶
type AppModuleBasic struct{}
AppModuleBasic implements the sdk.AppModuleBasic interface
func (AppModuleBasic) DefaultGenesis ¶
func (AppModuleBasic) DefaultGenesis() json.RawMessage
DefaultGenesis is an empty object
func (AppModuleBasic) GetQueryCmd ¶
func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command
GetQueryCmd returns the cli query commands for this module
func (AppModuleBasic) GetTxCmd ¶
func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command
GetTxCmd returns the transaction commands for this module
func (AppModuleBasic) RegisterCodec ¶
func (AppModuleBasic) RegisterCodec(cdc *codec.Codec)
RegisterCodec registers the upgrade types on the amino codec
func (AppModuleBasic) RegisterRESTRoutes ¶
func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, r *mux.Router)
RegisterRESTRoutes registers all REST query handlers
func (AppModuleBasic) ValidateGenesis ¶
func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error
ValidateGenesis is always successful, as we ignore the value
type CancelSoftwareUpgradeProposal ¶
type CancelSoftwareUpgradeProposal = types.CancelSoftwareUpgradeProposal
type QueryAppliedParams ¶
type QueryAppliedParams = types.QueryAppliedParams
type SoftwareUpgradeProposal ¶
type SoftwareUpgradeProposal = types.SoftwareUpgradeProposal
type UpgradeHandler ¶
type UpgradeHandler = types.UpgradeHandler