Documentation
¶
Overview ¶
Deprecated.
Legacy types are defined below to aid in the migration of CometBFT consensus parameters from use of the now deprecated x/params modules to a new dedicated x/consensus module.
Application developers should ensure that they implement their upgrade handler correctly such that app.ConsensusParamsKeeper.Set() is called with the values returned by GetConsensusParams().
Example:
baseAppLegacySS := app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable()) app.UpgradeKeeper.SetUpgradeHandler( UpgradeName, func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { if cp := baseapp.GetConsensusParams(ctx, baseAppLegacySS); cp != nil { app.ConsensusParamsKeeper.Set(ctx, cp) } else { ctx.Logger().Info("warning: consensus parameters are undefined; skipping migration", "upgrade", UpgradeName) } return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM) }, )
Developers can also bypass the use of the legacy Params subspace and set the values to app.ConsensusParamsKeeper.Set() explicitly.
Note, for new chains this is not necessary as CometBFT's consensus parameters will automatically be set for you in InitChain.
Index ¶
- Constants
- Variables
- func DefaultStoreLoader(ms storetypes.CommitMultiStore) error
- func GetConsensusParams(ctx sdk.Context, paramStore LegacyParamStore) *cmtproto.ConsensusParams
- func MigrateParams(ctx sdk.Context, lps LegacyParamStore, ps ParamStore) error
- func NoOpExtendVote() sdk.ExtendVoteHandler
- func NoOpPrepareProposal() sdk.PrepareProposalHandler
- func NoOpProcessProposal() sdk.ProcessProposalHandler
- func NoOpVerifyVoteExtensionHandler() sdk.VerifyVoteExtensionHandler
- func SetChainID(chainID string) func(*BaseApp)
- func SetHaltHeight(blockHeight uint64) func(*BaseApp)
- func SetHaltTime(haltTime uint64) func(*BaseApp)
- func SetIAVLCacheSize(size int) func(*BaseApp)
- func SetIAVLDisableFastNode(disable bool) func(*BaseApp)
- func SetIndexEvents(ie []string) func(*BaseApp)
- func SetInterBlockCache(cache storetypes.MultiStorePersistentCache) func(*BaseApp)
- func SetMempool(mempool mempool.Mempool) func(*BaseApp)
- func SetMinGasPrices(gasPricesStr string) func(*BaseApp)
- func SetMinRetainBlocks(minRetainBlocks uint64) func(*BaseApp)
- func SetPruning(opts pruningtypes.PruningOptions) func(*BaseApp)
- func SetSnapshot(snapshotStore *snapshots.Store, opts snapshottypes.SnapshotOptions) func(*BaseApp)
- func SetTrace(trace bool) func(*BaseApp)
- func SplitABCIQueryPath(requestPath string) (path []string)
- func ValidateBlockParams(i interface{}) error
- func ValidateEvidenceParams(i interface{}) error
- func ValidateValidatorParams(i interface{}) error
- func ValidateVoteExtensions(ctx sdk.Context, valStore ValidatorStore, currentHeight int64, chainID string, ...) error
- type BaseApp
- func (app *BaseApp) AddRunTxRecoveryHandler(handlers ...RecoveryHandler)
- func (app *BaseApp) AnteHandler() sdk.AnteHandler
- func (app *BaseApp) AppVersion() uint64
- func (app *BaseApp) ApplySnapshotChunk(req *abci.RequestApplySnapshotChunk) (*abci.ResponseApplySnapshotChunk, error)
- func (app *BaseApp) ChainID() string
- func (app *BaseApp) CheckTx(req *abci.RequestCheckTx) (*abci.ResponseCheckTx, error)
- func (app *BaseApp) Close() error
- func (app *BaseApp) Commit() (*abci.ResponseCommit, error)
- func (app *BaseApp) CommitMultiStore() storetypes.CommitMultiStore
- func (app *BaseApp) CreateQueryContext(height int64, prove bool) (sdk.Context, error)
- func (ba BaseApp) ExecuteGenesisTx(tx []byte) error
- func (app *BaseApp) ExtendVote(_ context.Context, req *abci.RequestExtendVote) (resp *abci.ResponseExtendVote, err error)
- func (app *BaseApp) FilterPeerByAddrPort(info string) *abci.ResponseQuery
- func (app *BaseApp) FilterPeerByID(info string) *abci.ResponseQuery
- func (app *BaseApp) FinalizeBlock(req *abci.RequestFinalizeBlock) (*abci.ResponseFinalizeBlock, error)
- func (app *BaseApp) GRPCQueryRouter() *GRPCQueryRouter
- func (app *BaseApp) GetBlockRetentionHeight(commitHeight int64) int64
- func (app *BaseApp) GetConsensusParams(ctx sdk.Context) cmtproto.ConsensusParams
- func (app *BaseApp) GetContextForCheckTx(txBytes []byte) sdk.Context
- func (app *BaseApp) GetContextForFinalizeBlock(txBytes []byte) sdk.Context
- func (app *BaseApp) GetMaximumBlockGas(ctx sdk.Context) uint64
- func (app *BaseApp) Info(req *abci.RequestInfo) (*abci.ResponseInfo, error)
- func (app *BaseApp) Init() error
- func (app *BaseApp) InitChain(req *abci.RequestInitChain) (*abci.ResponseInitChain, error)
- func (app *BaseApp) IsSealed() bool
- func (app *BaseApp) LastBlockHeight() int64
- func (app *BaseApp) LastCommitID() storetypes.CommitID
- func (app *BaseApp) ListSnapshots(req *abci.RequestListSnapshots) (*abci.ResponseListSnapshots, error)
- func (app *BaseApp) LoadLatestVersion() error
- func (app *BaseApp) LoadSnapshotChunk(req *abci.RequestLoadSnapshotChunk) (*abci.ResponseLoadSnapshotChunk, error)
- func (app *BaseApp) LoadVersion(version int64) error
- func (app *BaseApp) Logger() log.Logger
- func (app *BaseApp) MountKVStores(keys map[string]*storetypes.KVStoreKey)
- func (app *BaseApp) MountMemoryStores(keys map[string]*storetypes.MemoryStoreKey)
- func (app *BaseApp) MountStore(key storetypes.StoreKey, typ storetypes.StoreType)
- func (app *BaseApp) MountStores(keys ...storetypes.StoreKey)
- func (app *BaseApp) MountTransientStores(keys map[string]*storetypes.TransientStoreKey)
- func (app *BaseApp) MsgServiceRouter() *MsgServiceRouter
- func (app *BaseApp) Name() string
- func (app *BaseApp) NewContext(isCheckTx bool) sdk.Context
- func (app *BaseApp) NewContextLegacy(isCheckTx bool, header cmtproto.Header) sdk.Context
- func (app *BaseApp) NewUncachedContext(isCheckTx bool, header cmtproto.Header) sdk.Context
- func (app *BaseApp) OfferSnapshot(req *abci.RequestOfferSnapshot) (*abci.ResponseOfferSnapshot, error)
- func (app *BaseApp) PrepareProposal(req *abci.RequestPrepareProposal) (resp *abci.ResponsePrepareProposal, err error)
- func (app *BaseApp) PrepareProposalVerifyTx(tx sdk.Tx) ([]byte, error)
- func (app *BaseApp) ProcessProposal(req *abci.RequestProcessProposal) (resp *abci.ResponseProcessProposal, err error)
- func (app *BaseApp) ProcessProposalVerifyTx(txBz []byte) (sdk.Tx, error)
- func (app *BaseApp) Query(_ context.Context, req *abci.RequestQuery) (resp *abci.ResponseQuery, err error)
- func (app *BaseApp) RegisterGRPCServer(server gogogrpc.Server)
- func (app *BaseApp) RegisterStreamingServices(appOpts servertypes.AppOptions, keys map[string]*storetypes.KVStoreKey) error
- func (app *BaseApp) Seal()
- func (app *BaseApp) SetAddrPeerFilter(pf sdk.PeerFilter)
- func (app *BaseApp) SetAnteHandler(ah sdk.AnteHandler)
- func (app *BaseApp) SetBeginBlocker(beginBlocker sdk.BeginBlocker)
- func (app *BaseApp) SetCMS(cms storetypes.CommitMultiStore)
- func (app *BaseApp) SetCircuitBreaker(cb CircuitBreaker)
- func (app *BaseApp) SetCommitMultiStoreTracer(w io.Writer)
- func (app *BaseApp) SetDB(db dbm.DB)
- func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)
- func (app *BaseApp) SetExtendVoteHandler(handler sdk.ExtendVoteHandler)
- func (app *BaseApp) SetFauxMerkleMode()
- func (app *BaseApp) SetIDPeerFilter(pf sdk.PeerFilter)
- func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer)
- func (app *BaseApp) SetInterfaceRegistry(registry types.InterfaceRegistry)
- func (app *BaseApp) SetMempool(mempool mempool.Mempool)
- func (app *BaseApp) SetMsgServiceRouter(msgServiceRouter *MsgServiceRouter)
- func (app *BaseApp) SetName(name string)
- func (app *BaseApp) SetParamStore(ps ParamStore)
- func (app *BaseApp) SetPostHandler(ph sdk.PostHandler)
- func (app *BaseApp) SetPreFinalizeBlockHook(hook sdk.PreFinalizeBlockHook)
- func (app *BaseApp) SetPrecommiter(precommiter sdk.Precommiter)
- func (app *BaseApp) SetPrepareCheckStater(prepareCheckStater sdk.PrepareCheckStater)
- func (app *BaseApp) SetPrepareProposal(handler sdk.PrepareProposalHandler)
- func (app *BaseApp) SetProcessProposal(handler sdk.ProcessProposalHandler)
- func (app *BaseApp) SetProtocolVersion(v uint64)
- func (app *BaseApp) SetQueryMultiStore(ms storetypes.MultiStore)
- func (app *BaseApp) SetSnapshot(snapshotStore *snapshots.Store, opts snapshottypes.SnapshotOptions)
- func (app *BaseApp) SetStoreLoader(loader StoreLoader)
- func (app *BaseApp) SetStoreMetrics(gatherer metrics.StoreMetrics)
- func (app *BaseApp) SetStreamingManager(manager storetypes.StreamingManager)
- func (app *BaseApp) SetTxDecoder(txDecoder sdk.TxDecoder)
- func (app *BaseApp) SetTxEncoder(txEncoder sdk.TxEncoder)
- func (app *BaseApp) SetVerifyVoteExtensionHandler(handler sdk.VerifyVoteExtensionHandler)
- func (app *BaseApp) SetVersion(v string)
- func (app *BaseApp) SimCheck(txEncoder sdk.TxEncoder, tx sdk.Tx) (sdk.GasInfo, *sdk.Result, error)
- func (app *BaseApp) SimDeliver(txEncoder sdk.TxEncoder, tx sdk.Tx) (sdk.GasInfo, *sdk.Result, error)
- func (app *BaseApp) SimTxFinalizeBlock(txEncoder sdk.TxEncoder, tx sdk.Tx) (sdk.GasInfo, *sdk.Result, error)
- func (app *BaseApp) Simulate(txBytes []byte) (sdk.GasInfo, *sdk.Result, error)
- func (app *BaseApp) SnapshotManager() *snapshots.Manager
- func (app *BaseApp) StoreConsensusParams(ctx sdk.Context, cp cmtproto.ConsensusParams) error
- func (app *BaseApp) Trace() bool
- func (app *BaseApp) VerifyVoteExtension(req *abci.RequestVerifyVoteExtension) (resp *abci.ResponseVerifyVoteExtension, err error)
- func (app *BaseApp) Version() string
- type CircuitBreaker
- type DefaultProposalHandler
- type GRPCQueryHandler
- type GRPCQueryRouter
- type GasTx
- type LegacyParamStore
- type MessageRouter
- type MsgServiceHandler
- type MsgServiceRouter
- func (msr *MsgServiceRouter) Handler(msg sdk.Msg) MsgServiceHandler
- func (msr *MsgServiceRouter) HandlerByTypeURL(typeURL string) MsgServiceHandler
- func (msr *MsgServiceRouter) RegisterService(sd *grpc.ServiceDesc, handler interface{})
- func (msr *MsgServiceRouter) SetCircuit(cb CircuitBreaker)
- func (msr *MsgServiceRouter) SetInterfaceRegistry(interfaceRegistry codectypes.InterfaceRegistry)
- type ParamStore
- type ProposalTxVerifier
- type QueryServiceTestHelper
- type RecoveryHandler
- type StoreLoader
- type Validator
- type ValidatorStore
Constants ¶
const ( QueryPathApp = "app" QueryPathCustom = "custom" QueryPathP2P = "p2p" QueryPathStore = "store" QueryPathBroadcastTx = "/cosmos.tx.v1beta1.Service/BroadcastTx" )
Supported ABCI Query prefixes and paths
const ( StreamingTomlKey = "streaming" StreamingABCITomlKey = "abci" StreamingABCIPluginTomlKey = "plugin" StreamingABCIKeysTomlKey = "keys" StreamingABCIStopNodeOnErrTomlKey = "stop-node-on-err" )
const Paramspace = "baseapp"
Variables ¶
var ( ParamStoreKeyBlockParams = []byte("BlockParams") ParamStoreKeyEvidenceParams = []byte("EvidenceParams") ParamStoreKeyValidatorParams = []byte("ValidatorParams") )
var VoteExtensionThreshold = math.LegacyNewDecWithPrec(667, 3)
VoteExtensionThreshold defines the total voting power % that must be submitted in order for all vote extensions to be considered valid for a given height.
Functions ¶
func DefaultStoreLoader ¶
func DefaultStoreLoader(ms storetypes.CommitMultiStore) error
DefaultStoreLoader will be used by default and loads the latest version
func GetConsensusParams ¶ added in v0.47.0
func GetConsensusParams(ctx sdk.Context, paramStore LegacyParamStore) *cmtproto.ConsensusParams
func MigrateParams ¶ added in v0.47.0
func MigrateParams(ctx sdk.Context, lps LegacyParamStore, ps ParamStore) error
func NoOpExtendVote ¶ added in v0.50.0
func NoOpExtendVote() sdk.ExtendVoteHandler
NoOpExtendVote defines a no-op ExtendVote handler. It will always return an empty byte slice as the vote extension.
func NoOpPrepareProposal ¶ added in v0.47.0
func NoOpPrepareProposal() sdk.PrepareProposalHandler
NoOpPrepareProposal defines a no-op PrepareProposal handler. It will always return the transactions sent by the client's request.
func NoOpProcessProposal ¶ added in v0.47.0
func NoOpProcessProposal() sdk.ProcessProposalHandler
NoOpProcessProposal defines a no-op ProcessProposal Handler. It will always return ACCEPT.
func NoOpVerifyVoteExtensionHandler ¶ added in v0.50.0
func NoOpVerifyVoteExtensionHandler() sdk.VerifyVoteExtensionHandler
NoOpVerifyVoteExtensionHandler defines a no-op VerifyVoteExtension handler. It will always return an ACCEPT status with no error.
func SetChainID ¶ added in v0.47.0
SetChainID sets the chain ID in BaseApp.
func SetHaltHeight ¶
SetHaltHeight returns a BaseApp option function that sets the halt block height.
func SetHaltTime ¶
SetHaltTime returns a BaseApp option function that sets the halt block time.
func SetIAVLCacheSize ¶ added in v0.45.0
SetIAVLCacheSize provides a BaseApp option function that sets the size of IAVL cache.
func SetIAVLDisableFastNode ¶ added in v0.45.9
SetIAVLDisableFastNode enables(false)/disables(true) fast node usage from the IAVL store.
func SetIndexEvents ¶ added in v0.40.0
SetIndexEvents provides a BaseApp option function that sets the events to index.
func SetInterBlockCache ¶
func SetInterBlockCache(cache storetypes.MultiStorePersistentCache) func(*BaseApp)
SetInterBlockCache provides a BaseApp option function that sets the inter-block cache.
func SetMempool ¶ added in v0.47.0
SetMempool sets the mempool on BaseApp.
func SetMinGasPrices ¶
SetMinGasPrices returns an option that sets the minimum gas prices on the app.
func SetMinRetainBlocks ¶ added in v0.40.0
SetMinRetainBlocks returns a BaseApp option function that sets the minimum block retention height value when determining which heights to prune during ABCI Commit.
func SetPruning ¶
func SetPruning(opts pruningtypes.PruningOptions) func(*BaseApp)
SetPruning sets a pruning option on the multistore associated with the app
func SetSnapshot ¶ added in v0.46.0
func SetSnapshot(snapshotStore *snapshots.Store, opts snapshottypes.SnapshotOptions) func(*BaseApp)
SetSnapshot sets the snapshot store.
func SplitABCIQueryPath ¶ added in v0.46.0
SplitABCIQueryPath splits a string path using the delimiter '/'.
e.g. "this/is/funny" becomes []string{"this", "is", "funny"}
func ValidateBlockParams ¶
func ValidateBlockParams(i interface{}) error
func ValidateEvidenceParams ¶
func ValidateEvidenceParams(i interface{}) error
func ValidateValidatorParams ¶
func ValidateValidatorParams(i interface{}) error
func ValidateVoteExtensions ¶ added in v0.50.0
func ValidateVoteExtensions( ctx sdk.Context, valStore ValidatorStore, currentHeight int64, chainID string, extCommit abci.ExtendedCommitInfo, ) error
ValidateVoteExtensions defines a helper function for verifying vote extension signatures that may be passed or manually injected into a block proposal from a proposer in PrepareProposal. It returns an error if any signature is invalid or if unexpected vote extensions and/or signatures are found or less than 2/3 power is received.
Types ¶
type BaseApp ¶
type BaseApp struct {
// contains filtered or unexported fields
}
BaseApp reflects the ABCI application implementation.
func NewBaseApp ¶
func NewBaseApp( name string, logger log.Logger, db dbm.DB, txDecoder sdk.TxDecoder, options ...func(*BaseApp), ) *BaseApp
NewBaseApp returns a reference to an initialized BaseApp. It accepts a variadic number of option functions, which act on the BaseApp to set configuration choices.
func (*BaseApp) AddRunTxRecoveryHandler ¶ added in v0.40.0
func (app *BaseApp) AddRunTxRecoveryHandler(handlers ...RecoveryHandler)
AddRunTxRecoveryHandler adds custom app.runTx method panic handlers.
func (*BaseApp) AnteHandler ¶ added in v0.50.0
func (app *BaseApp) AnteHandler() sdk.AnteHandler
AnteHandler returns the AnteHandler of the app.
func (*BaseApp) AppVersion ¶
AppVersion returns the application's protocol version.
func (*BaseApp) ApplySnapshotChunk ¶ added in v0.40.0
func (app *BaseApp) ApplySnapshotChunk(req *abci.RequestApplySnapshotChunk) (*abci.ResponseApplySnapshotChunk, error)
ApplySnapshotChunk implements the ABCI interface. It delegates to app.snapshotManager if set.
func (*BaseApp) CheckTx ¶
func (app *BaseApp) CheckTx(req *abci.RequestCheckTx) (*abci.ResponseCheckTx, error)
CheckTx implements the ABCI interface and executes a tx in CheckTx mode. In CheckTx mode, messages are not executed. This means messages are only validated and only the AnteHandler is executed. State is persisted to the BaseApp's internal CheckTx state if the AnteHandler passes. Otherwise, the ResponseCheckTx will contain relevant error information. Regardless of tx execution outcome, the ResponseCheckTx will contain relevant gas execution context.
func (*BaseApp) Close ¶ added in v0.46.13
Close is called in start cmd to gracefully cleanup resources.
func (*BaseApp) Commit ¶
func (app *BaseApp) Commit() (*abci.ResponseCommit, error)
Commit implements the ABCI interface. It will commit all state that exists in the deliver state's multi-store and includes the resulting commit ID in the returned abci.ResponseCommit. Commit will set the check state based on the latest header and reset the deliver state. Also, if a non-zero halt height is defined in config, Commit will execute a deferred function call to check against that height and gracefully halt if it matches the latest committed height.
func (*BaseApp) CommitMultiStore ¶ added in v0.45.2
func (app *BaseApp) CommitMultiStore() storetypes.CommitMultiStore
CommitMultiStore returns the root multi-store. App constructor can use this to access the `cms`. UNSAFE: must not be used during the abci life cycle.
func (*BaseApp) CreateQueryContext ¶ added in v0.47.0
createQueryContext creates a new sdk.Context for a query, taking as args the block height and whether the query needs a proof or not.
func (BaseApp) ExecuteGenesisTx ¶ added in v0.50.0
ExecuteGenesisTx implements genesis.GenesisState from cosmossdk.io/core/genesis to set initial state in genesis
func (*BaseApp) ExtendVote ¶ added in v0.50.0
func (app *BaseApp) ExtendVote(_ context.Context, req *abci.RequestExtendVote) (resp *abci.ResponseExtendVote, err error)
ExtendVote implements the ExtendVote ABCI method and returns a ResponseExtendVote. It calls the application's ExtendVote handler which is responsible for performing application-specific business logic when sending a pre-commit for the NEXT block height. The extensions response may be non-deterministic but must always be returned, even if empty.
Agreed upon vote extensions are made available to the proposer of the next height and are committed in the subsequent height, i.e. H+2. An error is returned if vote extensions are not enabled or if extendVote fails or panics.
func (*BaseApp) FilterPeerByAddrPort ¶
func (app *BaseApp) FilterPeerByAddrPort(info string) *abci.ResponseQuery
FilterPeerByAddrPort filters peers by address/port.
func (*BaseApp) FilterPeerByID ¶
func (app *BaseApp) FilterPeerByID(info string) *abci.ResponseQuery
FilterPeerByID filters peers by node ID.
func (*BaseApp) FinalizeBlock ¶ added in v0.50.0
func (app *BaseApp) FinalizeBlock(req *abci.RequestFinalizeBlock) (*abci.ResponseFinalizeBlock, error)
FinalizeBlock will execute the block proposal provided by RequestFinalizeBlock. Specifically, it will execute an application's BeginBlock (if defined), followed by the transactions in the proposal, finally followed by the application's EndBlock (if defined).
For each raw transaction, i.e. a byte slice, BaseApp will only execute it if it adheres to the sdk.Tx interface. Otherwise, the raw transaction will be skipped. This is to support compatibility with proposers injecting vote extensions into the proposal, which should not themselves be executed in cases where they adhere to the sdk.Tx interface.
func (*BaseApp) GRPCQueryRouter ¶ added in v0.40.0
func (app *BaseApp) GRPCQueryRouter() *GRPCQueryRouter
GRPCQueryRouter returns the GRPCQueryRouter of a BaseApp.
func (*BaseApp) GetBlockRetentionHeight ¶ added in v0.40.0
GetBlockRetentionHeight returns the height for which all blocks below this height are pruned from CometBFT. Given a commitment height and a non-zero local minRetainBlocks configuration, the retentionHeight is the smallest height that satisfies:
- Unbonding (safety threshold) time: The block interval in which validators can be economically punished for misbehavior. Blocks in this interval must be auditable e.g. by the light client.
- Logical store snapshot interval: The block interval at which the underlying logical store database is persisted to disk, e.g. every 10000 heights. Blocks since the last IAVL snapshot must be available for replay on application restart.
- State sync snapshots: Blocks since the oldest available snapshot must be available for state sync nodes to catch up (oldest because a node may be restoring an old snapshot while a new snapshot was taken).
- Local (minRetainBlocks) config: Archive nodes may want to retain more or all blocks, e.g. via a local config option min-retain-blocks. There may also be a need to vary retention for other nodes, e.g. sentry nodes which do not need historical blocks.
func (*BaseApp) GetConsensusParams ¶
func (app *BaseApp) GetConsensusParams(ctx sdk.Context) cmtproto.ConsensusParams
GetConsensusParams returns the current consensus parameters from the BaseApp's ParamStore. If the BaseApp has no ParamStore defined, nil is returned.
func (*BaseApp) GetContextForCheckTx ¶ added in v0.50.0
func (*BaseApp) GetContextForFinalizeBlock ¶ added in v0.50.0
func (*BaseApp) GetMaximumBlockGas ¶ added in v0.47.0
GetMaximumBlockGas gets the maximum gas from the consensus params. It panics if maximum block gas is less than negative one and returns zero if negative one.
func (*BaseApp) Info ¶
func (app *BaseApp) Info(req *abci.RequestInfo) (*abci.ResponseInfo, error)
func (*BaseApp) Init ¶ added in v0.46.0
Init initializes the app. It seals the app, preventing any further modifications. In addition, it validates the app against the earlier provided settings. Returns an error if validation fails. nil otherwise. Panics if the app is already sealed.
func (*BaseApp) InitChain ¶
func (app *BaseApp) InitChain(req *abci.RequestInitChain) (*abci.ResponseInitChain, error)
func (*BaseApp) LastBlockHeight ¶
LastBlockHeight returns the last committed block height.
func (*BaseApp) LastCommitID ¶
func (app *BaseApp) LastCommitID() storetypes.CommitID
LastCommitID returns the last CommitID of the multistore.
func (*BaseApp) ListSnapshots ¶ added in v0.40.0
func (app *BaseApp) ListSnapshots(req *abci.RequestListSnapshots) (*abci.ResponseListSnapshots, error)
ListSnapshots implements the ABCI interface. It delegates to app.snapshotManager if set.
func (*BaseApp) LoadLatestVersion ¶
LoadLatestVersion loads the latest application version. It will panic if called more than once on a running BaseApp.
func (*BaseApp) LoadSnapshotChunk ¶ added in v0.40.0
func (app *BaseApp) LoadSnapshotChunk(req *abci.RequestLoadSnapshotChunk) (*abci.ResponseLoadSnapshotChunk, error)
LoadSnapshotChunk implements the ABCI interface. It delegates to app.snapshotManager if set.
func (*BaseApp) LoadVersion ¶
LoadVersion loads the BaseApp application version. It will panic if called more than once on a running baseapp.
func (*BaseApp) MountKVStores ¶
func (app *BaseApp) MountKVStores(keys map[string]*storetypes.KVStoreKey)
MountKVStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.
func (*BaseApp) MountMemoryStores ¶
func (app *BaseApp) MountMemoryStores(keys map[string]*storetypes.MemoryStoreKey)
MountMemoryStores mounts all in-memory KVStores with the BaseApp's internal commit multi-store.
func (*BaseApp) MountStore ¶
func (app *BaseApp) MountStore(key storetypes.StoreKey, typ storetypes.StoreType)
MountStore mounts a store to the provided key in the BaseApp multistore, using the default DB.
func (*BaseApp) MountStores ¶
func (app *BaseApp) MountStores(keys ...storetypes.StoreKey)
MountStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.
func (*BaseApp) MountTransientStores ¶
func (app *BaseApp) MountTransientStores(keys map[string]*storetypes.TransientStoreKey)
MountTransientStores mounts all transient stores to the provided keys in the BaseApp multistore.
func (*BaseApp) MsgServiceRouter ¶ added in v0.40.0
func (app *BaseApp) MsgServiceRouter() *MsgServiceRouter
MsgServiceRouter returns the MsgServiceRouter of a BaseApp.
func (*BaseApp) NewContext ¶
NewContext returns a new sdk.Context with a empty header
func (*BaseApp) NewContextLegacy ¶ added in v0.50.0
NewContextLegacy returns a new sdk.Context with the provided header
func (*BaseApp) NewUncachedContext ¶
func (*BaseApp) OfferSnapshot ¶ added in v0.40.0
func (app *BaseApp) OfferSnapshot(req *abci.RequestOfferSnapshot) (*abci.ResponseOfferSnapshot, error)
OfferSnapshot implements the ABCI interface. It delegates to app.snapshotManager if set.
func (*BaseApp) PrepareProposal ¶ added in v0.47.0
func (app *BaseApp) PrepareProposal(req *abci.RequestPrepareProposal) (resp *abci.ResponsePrepareProposal, err error)
PrepareProposal implements the PrepareProposal ABCI method and returns a ResponsePrepareProposal object to the client. The PrepareProposal method is responsible for allowing the block proposer to perform application-dependent work in a block before proposing it.
Transactions can be modified, removed, or added by the application. Since the application maintains its own local mempool, it will ignore the transactions provided to it in RequestPrepareProposal. Instead, it will determine which transactions to return based on the mempool's semantics and the MaxTxBytes provided by the client's request.
Ref: https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-060-abci-1.0.md Ref: https://github.com/cometbft/cometbft/blob/main/spec/abci/abci%2B%2B_basic_concepts.md
func (*BaseApp) PrepareProposalVerifyTx ¶ added in v0.47.0
PrepareProposalVerifyTx performs transaction verification when a proposer is creating a block proposal during PrepareProposal. Any state committed to the PrepareProposal state internally will be discarded. <nil, err> will be returned if the transaction cannot be encoded. <bz, nil> will be returned if the transaction is valid, otherwise <bz, err> will be returned.
func (*BaseApp) ProcessProposal ¶ added in v0.47.0
func (app *BaseApp) ProcessProposal(req *abci.RequestProcessProposal) (resp *abci.ResponseProcessProposal, err error)
ProcessProposal implements the ProcessProposal ABCI method and returns a ResponseProcessProposal object to the client. The ProcessProposal method is responsible for allowing execution of application-dependent work in a proposed block. Note, the application defines the exact implementation details of ProcessProposal. In general, the application must at the very least ensure that all transactions are valid. If all transactions are valid, then we inform CometBFT that the Status is ACCEPT. However, the application is also able to implement optimizations such as executing the entire proposed block immediately.
If a panic is detected during execution of an application's ProcessProposal handler, it will be recovered and we will reject the proposal.
Ref: https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-060-abci-1.0.md Ref: https://github.com/cometbft/cometbft/blob/main/spec/abci/abci%2B%2B_basic_concepts.md
func (*BaseApp) ProcessProposalVerifyTx ¶ added in v0.47.0
ProcessProposalVerifyTx performs transaction verification when receiving a block proposal during ProcessProposal. Any state committed to the ProcessProposal state internally will be discarded. <nil, err> will be returned if the transaction cannot be decoded. <Tx, nil> will be returned if the transaction is valid, otherwise <Tx, err> will be returned.
func (*BaseApp) Query ¶
func (app *BaseApp) Query(_ context.Context, req *abci.RequestQuery) (resp *abci.ResponseQuery, err error)
Query implements the ABCI interface. It delegates to CommitMultiStore if it implements Queryable.
func (*BaseApp) RegisterGRPCServer ¶ added in v0.40.0
RegisterGRPCServer registers gRPC services directly with the gRPC server.
func (*BaseApp) RegisterStreamingServices ¶ added in v0.50.0
func (app *BaseApp) RegisterStreamingServices(appOpts servertypes.AppOptions, keys map[string]*storetypes.KVStoreKey) error
RegisterStreamingServices registers streaming services with the BaseApp.
func (*BaseApp) Seal ¶
func (app *BaseApp) Seal()
Seal seals a BaseApp. It prohibits any further modifications to a BaseApp.
func (*BaseApp) SetAddrPeerFilter ¶
func (app *BaseApp) SetAddrPeerFilter(pf sdk.PeerFilter)
func (*BaseApp) SetAnteHandler ¶
func (app *BaseApp) SetAnteHandler(ah sdk.AnteHandler)
func (*BaseApp) SetBeginBlocker ¶
func (app *BaseApp) SetBeginBlocker(beginBlocker sdk.BeginBlocker)
func (*BaseApp) SetCMS ¶
func (app *BaseApp) SetCMS(cms storetypes.CommitMultiStore)
func (*BaseApp) SetCircuitBreaker ¶ added in v0.46.13
func (app *BaseApp) SetCircuitBreaker(cb CircuitBreaker)
SetCircuitBreaker sets the circuit breaker for the BaseApp. The circuit breaker is checked on every message execution to verify if a transaction should be executed or not.
func (*BaseApp) SetCommitMultiStoreTracer ¶
SetCommitMultiStoreTracer sets the store tracer on the BaseApp's underlying CommitMultiStore.
func (*BaseApp) SetEndBlocker ¶
func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)
func (*BaseApp) SetExtendVoteHandler ¶ added in v0.50.0
func (app *BaseApp) SetExtendVoteHandler(handler sdk.ExtendVoteHandler)
func (*BaseApp) SetFauxMerkleMode ¶
func (app *BaseApp) SetFauxMerkleMode()
func (*BaseApp) SetIDPeerFilter ¶
func (app *BaseApp) SetIDPeerFilter(pf sdk.PeerFilter)
func (*BaseApp) SetInitChainer ¶
func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer)
func (*BaseApp) SetInterfaceRegistry ¶ added in v0.40.0
func (app *BaseApp) SetInterfaceRegistry(registry types.InterfaceRegistry)
SetInterfaceRegistry sets the InterfaceRegistry.
func (*BaseApp) SetMempool ¶ added in v0.47.0
SetMempool sets the mempool for the BaseApp and is required for the app to start up.
func (*BaseApp) SetMsgServiceRouter ¶ added in v0.46.3
func (app *BaseApp) SetMsgServiceRouter(msgServiceRouter *MsgServiceRouter)
SetMsgServiceRouter sets the MsgServiceRouter of a BaseApp.
func (*BaseApp) SetParamStore ¶
func (app *BaseApp) SetParamStore(ps ParamStore)
SetParamStore sets a parameter store on the BaseApp.
func (*BaseApp) SetPostHandler ¶ added in v0.46.0
func (app *BaseApp) SetPostHandler(ph sdk.PostHandler)
func (*BaseApp) SetPreFinalizeBlockHook ¶
func (app *BaseApp) SetPreFinalizeBlockHook(hook sdk.PreFinalizeBlockHook)
func (*BaseApp) SetPrecommiter ¶ added in v0.50.0
func (app *BaseApp) SetPrecommiter(precommiter sdk.Precommiter)
func (*BaseApp) SetPrepareCheckStater ¶ added in v0.50.0
func (app *BaseApp) SetPrepareCheckStater(prepareCheckStater sdk.PrepareCheckStater)
func (*BaseApp) SetPrepareProposal ¶ added in v0.47.0
func (app *BaseApp) SetPrepareProposal(handler sdk.PrepareProposalHandler)
SetPrepareProposal sets the prepare proposal function for the BaseApp.
func (*BaseApp) SetProcessProposal ¶ added in v0.47.0
func (app *BaseApp) SetProcessProposal(handler sdk.ProcessProposalHandler)
SetProcessProposal sets the process proposal function for the BaseApp.
func (*BaseApp) SetProtocolVersion ¶ added in v0.43.0
SetProtocolVersion sets the application's protocol version
func (*BaseApp) SetQueryMultiStore ¶ added in v0.46.7
func (app *BaseApp) SetQueryMultiStore(ms storetypes.MultiStore)
SetQueryMultiStore set a alternative MultiStore implementation to support grpc query service.
func (*BaseApp) SetSnapshot ¶ added in v0.46.0
func (app *BaseApp) SetSnapshot(snapshotStore *snapshots.Store, opts snapshottypes.SnapshotOptions)
SetSnapshot sets the snapshot store and options.
func (*BaseApp) SetStoreLoader ¶
func (app *BaseApp) SetStoreLoader(loader StoreLoader)
SetStoreLoader allows us to customize the rootMultiStore initialization.
func (*BaseApp) SetStoreMetrics ¶ added in v0.50.0
func (app *BaseApp) SetStoreMetrics(gatherer metrics.StoreMetrics)
SetStoreMetrics sets the prepare proposal function for the BaseApp.
func (*BaseApp) SetStreamingManager ¶ added in v0.50.0
func (app *BaseApp) SetStreamingManager(manager storetypes.StreamingManager)
SetStreamingManager sets the streaming manager for the BaseApp.
func (*BaseApp) SetTxDecoder ¶ added in v0.2.0
SetTxDecoder sets the TxDecoder if it wasn't provided in the BaseApp constructor.
func (*BaseApp) SetTxEncoder ¶ added in v0.47.0
SetTxEncoder sets the TxEncoder if it wasn't provided in the BaseApp constructor.
func (*BaseApp) SetVerifyVoteExtensionHandler ¶ added in v0.50.0
func (app *BaseApp) SetVerifyVoteExtensionHandler(handler sdk.VerifyVoteExtensionHandler)
func (*BaseApp) SetVersion ¶ added in v0.43.0
SetVersion sets the application's version string.
func (*BaseApp) SimCheck ¶ added in v0.46.0
SimCheck defines a CheckTx helper function that used in tests and simulations.
func (*BaseApp) SimDeliver ¶ added in v0.46.0
func (*BaseApp) SimTxFinalizeBlock ¶ added in v0.50.1
func (*BaseApp) SnapshotManager ¶ added in v0.45.2
SnapshotManager returns the snapshot manager. application use this to register extra extension snapshotters.
func (*BaseApp) StoreConsensusParams ¶
StoreConsensusParams sets the consensus parameters to the BaseApp's param store.
NOTE: We're explicitly not storing the CometBFT app_version in the param store. It's stored instead in the x/upgrade store, with its own bump logic.
func (*BaseApp) Trace ¶ added in v0.42.7
Trace returns the boolean value for logging error stack traces.
func (*BaseApp) VerifyVoteExtension ¶ added in v0.50.0
func (app *BaseApp) VerifyVoteExtension(req *abci.RequestVerifyVoteExtension) (resp *abci.ResponseVerifyVoteExtension, err error)
VerifyVoteExtension implements the VerifyVoteExtension ABCI method and returns a ResponseVerifyVoteExtension. It calls the applications' VerifyVoteExtension handler which is responsible for performing application-specific business logic in verifying a vote extension from another validator during the pre-commit phase. The response MUST be deterministic. An error is returned if vote extensions are not enabled or if verifyVoteExt fails or panics.
type CircuitBreaker ¶ added in v0.46.13
CircuitBreaker is an interface that defines the methods for a circuit breaker.
type DefaultProposalHandler ¶ added in v0.47.0
type DefaultProposalHandler struct {
// contains filtered or unexported fields
}
DefaultProposalHandler defines the default ABCI PrepareProposal and ProcessProposal handlers.
func NewDefaultProposalHandler ¶ added in v0.47.0
func NewDefaultProposalHandler(mp mempool.Mempool, txVerifier ProposalTxVerifier) DefaultProposalHandler
func (DefaultProposalHandler) PrepareProposalHandler ¶ added in v0.47.0
func (h DefaultProposalHandler) PrepareProposalHandler() sdk.PrepareProposalHandler
PrepareProposalHandler returns the default implementation for processing an ABCI proposal. The application's mempool is enumerated and all valid transactions are added to the proposal. Transactions are valid if they:
1) Successfully encode to bytes. 2) Are valid (i.e. pass runTx, AnteHandler only).
Enumeration is halted once RequestPrepareProposal.MaxBytes of transactions is reached or the mempool is exhausted.
Note:
- Step (2) is identical to the validation step performed in DefaultProcessProposal. It is very important that the same validation logic is used in both steps, and applications must ensure that this is the case in non-default handlers.
- If no mempool is set or if the mempool is a no-op mempool, the transactions requested from CometBFT will simply be returned, which, by default, are in FIFO order.
func (DefaultProposalHandler) ProcessProposalHandler ¶ added in v0.47.0
func (h DefaultProposalHandler) ProcessProposalHandler() sdk.ProcessProposalHandler
ProcessProposalHandler returns the default implementation for processing an ABCI proposal. Every transaction in the proposal must pass 2 conditions:
1. The transaction bytes must decode to a valid transaction. 2. The transaction must be valid (i.e. pass runTx, AnteHandler only)
If any transaction fails to pass either condition, the proposal is rejected. Note that step (2) is identical to the validation step performed in DefaultPrepareProposal. It is very important that the same validation logic is used in both steps, and applications must ensure that this is the case in non-default handlers.
type GRPCQueryHandler ¶ added in v0.40.0
type GRPCQueryHandler = func(ctx sdk.Context, req *abci.RequestQuery) (*abci.ResponseQuery, error)
GRPCQueryHandler defines a function type which handles ABCI Query requests using gRPC
type GRPCQueryRouter ¶ added in v0.40.0
type GRPCQueryRouter struct {
// contains filtered or unexported fields
}
GRPCQueryRouter routes ABCI Query requests to GRPC handlers
func NewGRPCQueryRouter ¶ added in v0.40.0
func NewGRPCQueryRouter() *GRPCQueryRouter
NewGRPCQueryRouter creates a new GRPCQueryRouter
func (*GRPCQueryRouter) RegisterService ¶ added in v0.40.0
func (qrt *GRPCQueryRouter) RegisterService(sd *grpc.ServiceDesc, handler interface{})
RegisterService implements the gRPC Server.RegisterService method. sd is a gRPC service description, handler is an object which implements that gRPC service/
This functions PANICS: - if a protobuf service is registered twice.
func (*GRPCQueryRouter) Route ¶ added in v0.40.0
func (qrt *GRPCQueryRouter) Route(path string) GRPCQueryHandler
Route returns the GRPCQueryHandler for a given query route path or nil if not found
func (*GRPCQueryRouter) SetInterfaceRegistry ¶ added in v0.40.0
func (qrt *GRPCQueryRouter) SetInterfaceRegistry(interfaceRegistry codectypes.InterfaceRegistry)
SetInterfaceRegistry sets the interface registry for the router. This will also register the interface reflection gRPC service.
type GasTx ¶ added in v0.47.6
type GasTx interface {
GetGas() uint64
}
GasTx defines the contract that a transaction with a gas limit must implement.
type LegacyParamStore ¶ added in v0.47.0
type MessageRouter ¶ added in v0.50.0
type MessageRouter interface { Handler(msg sdk.Msg) MsgServiceHandler HandlerByTypeURL(typeURL string) MsgServiceHandler }
MessageRouter ADR 031 request type routing https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-031-msg-service.md
type MsgServiceHandler ¶ added in v0.40.0
MsgServiceHandler defines a function type which handles Msg service message.
type MsgServiceRouter ¶ added in v0.40.0
type MsgServiceRouter struct {
// contains filtered or unexported fields
}
MsgServiceRouter routes fully-qualified Msg service methods to their handler.
func NewMsgServiceRouter ¶ added in v0.40.0
func NewMsgServiceRouter() *MsgServiceRouter
NewMsgServiceRouter creates a new MsgServiceRouter.
func (*MsgServiceRouter) Handler ¶ added in v0.40.0
func (msr *MsgServiceRouter) Handler(msg sdk.Msg) MsgServiceHandler
Handler returns the MsgServiceHandler for a given msg or nil if not found.
func (*MsgServiceRouter) HandlerByTypeURL ¶ added in v0.43.0
func (msr *MsgServiceRouter) HandlerByTypeURL(typeURL string) MsgServiceHandler
HandlerByTypeURL returns the MsgServiceHandler for a given query route path or nil if not found.
func (*MsgServiceRouter) RegisterService ¶ added in v0.40.0
func (msr *MsgServiceRouter) RegisterService(sd *grpc.ServiceDesc, handler interface{})
RegisterService implements the gRPC Server.RegisterService method. sd is a gRPC service description, handler is an object which implements that gRPC service.
This function PANICs:
- if it is called before the service `Msg`s have been registered using RegisterInterfaces,
- or if a service is being registered twice.
func (*MsgServiceRouter) SetCircuit ¶ added in v0.46.13
func (msr *MsgServiceRouter) SetCircuit(cb CircuitBreaker)
func (*MsgServiceRouter) SetInterfaceRegistry ¶ added in v0.40.0
func (msr *MsgServiceRouter) SetInterfaceRegistry(interfaceRegistry codectypes.InterfaceRegistry)
SetInterfaceRegistry sets the interface registry for the router.
type ParamStore ¶
type ParamStore interface { Get(ctx context.Context) (cmtproto.ConsensusParams, error) Has(ctx context.Context) (bool, error) Set(ctx context.Context, cp cmtproto.ConsensusParams) error }
ParamStore defines the interface the parameter store used by the BaseApp must fulfill.
type ProposalTxVerifier ¶ added in v0.47.0
type ProposalTxVerifier interface { PrepareProposalVerifyTx(tx sdk.Tx) ([]byte, error) ProcessProposalVerifyTx(txBz []byte) (sdk.Tx, error) }
ProposalTxVerifier defines the interface that is implemented by BaseApp, that any custom ABCI PrepareProposal and ProcessProposal handler can use to verify a transaction.
type QueryServiceTestHelper ¶ added in v0.40.0
type QueryServiceTestHelper struct { *GRPCQueryRouter Ctx sdk.Context }
QueryServiceTestHelper provides a helper for making grpc query service rpc calls in unit tests. It implements both the grpc Server and ClientConn interfaces needed to register a query service server and create a query service client.
func NewQueryServerTestHelper ¶ added in v0.40.0
func NewQueryServerTestHelper(ctx sdk.Context, interfaceRegistry types.InterfaceRegistry) *QueryServiceTestHelper
NewQueryServerTestHelper creates a new QueryServiceTestHelper that wraps the provided sdk.Context
func (*QueryServiceTestHelper) Invoke ¶ added in v0.40.0
func (q *QueryServiceTestHelper) Invoke(_ gocontext.Context, method string, args, reply interface{}, _ ...grpc.CallOption) error
Invoke implements the grpc ClientConn.Invoke method
func (*QueryServiceTestHelper) NewStream ¶ added in v0.40.0
func (q *QueryServiceTestHelper) NewStream(gocontext.Context, *grpc.StreamDesc, string, ...grpc.CallOption) (grpc.ClientStream, error)
NewStream implements the grpc ClientConn.NewStream method
type RecoveryHandler ¶ added in v0.40.0
type RecoveryHandler func(recoveryObj interface{}) error
RecoveryHandler handles recovery() object. Return a non-nil error if recoveryObj was processed. Return nil if recoveryObj was not processed.
type StoreLoader ¶
type StoreLoader func(ms storetypes.CommitMultiStore) error
StoreLoader defines a customizable function to control how we load the CommitMultiStore from disk. This is useful for state migration, when loading a datastore written with an older version of the software. In particular, if a module changed the substore key name (or removed a substore) between two versions of the software.
type Validator ¶
type Validator interface { CmtConsPublicKey() (cmtprotocrypto.PublicKey, error) BondedTokens() math.Int }
Validator defines the interface contract require for verifying vote extension signatures. Typically, this will be implemented by the x/staking module, which has knowledge of the CometBFT public key.
type ValidatorStore ¶ added in v0.50.0
type ValidatorStore interface { GetValidatorByConsAddr(sdk.Context, cryptotypes.Address) (Validator, error) TotalBondedTokens(ctx sdk.Context) math.Int }
ValidatorStore defines the interface contract require for verifying vote extension signatures. Typically, this will be implemented by the x/staking module, which has knowledge of the CometBFT public key.