Documentation ¶
Overview ¶
Package baseapp contains data structures that provide basic data storage functionality and act as a bridge between the ABCI interface and the SDK abstractions.
BaseApp has no state except the CommitMultiStore you provide upon init.
nolint: golint
Index ¶
- Constants
- func DefaultStoreLoader(ms sdk.CommitMultiStore) error
- func NewQueryRouter() *queryRouter
- func NewRouter() *router
- func SetHaltHeight(height uint64) func(*BaseApp)
- func SetMinGasPrices(gasPricesStr string) func(*BaseApp)
- func SetPruning(opts sdk.PruningOptions) func(*BaseApp)
- type BaseApp
- func (app *BaseApp) AppVersion() string
- func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeginBlock)
- func (app *BaseApp) Check(tx sdk.Tx) (result sdk.Result)
- func (app *BaseApp) CheckTx(req abci.RequestCheckTx) (res abci.ResponseCheckTx)
- func (app *BaseApp) Commit() (res abci.ResponseCommit)
- func (app *BaseApp) Deliver(tx sdk.Tx) (result sdk.Result)
- func (app *BaseApp) DeliverTx(req abci.RequestDeliverTx) (res abci.ResponseDeliverTx)
- func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBlock)
- func (app *BaseApp) FilterPeerByAddrPort(info string) abci.ResponseQuery
- func (app *BaseApp) FilterPeerByID(info string) abci.ResponseQuery
- func (app *BaseApp) Info(req abci.RequestInfo) abci.ResponseInfo
- func (app *BaseApp) InitChain(req abci.RequestInitChain) (res abci.ResponseInitChain)
- func (app *BaseApp) IsSealed() bool
- func (app *BaseApp) LastBlockHeight() int64
- func (app *BaseApp) LastCommitID() sdk.CommitID
- func (app *BaseApp) LoadLatestVersion(baseKey *sdk.KVStoreKey) error
- func (app *BaseApp) LoadVersion(version int64, baseKey *sdk.KVStoreKey) error
- func (app *BaseApp) Logger() log.Logger
- func (app *BaseApp) MountKVStores(keys map[string]*sdk.KVStoreKey)
- func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType)
- func (app *BaseApp) MountStoreWithDB(key sdk.StoreKey, typ sdk.StoreType, db dbm.DB)
- func (app *BaseApp) MountStores(keys ...sdk.StoreKey)
- func (app *BaseApp) MountTransientStores(keys map[string]*sdk.TransientStoreKey)
- func (app *BaseApp) Name() string
- func (app *BaseApp) NewContext(isCheckTx bool, header abci.Header) sdk.Context
- func (app *BaseApp) Query(req abci.RequestQuery) (res abci.ResponseQuery)
- func (app *BaseApp) QueryRouter() sdk.QueryRouter
- func (app *BaseApp) Router() sdk.Router
- func (app *BaseApp) Seal()
- func (app *BaseApp) SetAddrPeerFilter(pf sdk.PeerFilter)
- func (app *BaseApp) SetAnteHandler(ah sdk.AnteHandler)
- func (app *BaseApp) SetAppVersion(v string)
- func (app *BaseApp) SetBeginBlocker(beginBlocker sdk.BeginBlocker)
- func (app *BaseApp) SetCMS(cms store.CommitMultiStore)
- func (app *BaseApp) SetCommitMultiStoreTracer(w io.Writer)
- func (app *BaseApp) SetDB(db dbm.DB)
- func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)
- func (app *BaseApp) SetFauxMerkleMode()
- func (app *BaseApp) SetIDPeerFilter(pf sdk.PeerFilter)
- func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer)
- func (app *BaseApp) SetName(name string)
- func (app *BaseApp) SetOption(req abci.RequestSetOption) (res abci.ResponseSetOption)
- func (app *BaseApp) SetStoreLoader(loader StoreLoader)
- func (app *BaseApp) Simulate(txBytes []byte, tx sdk.Tx) (result sdk.Result)
- type StoreLoader
Constants ¶
const (
// MainStoreKey is the string representation of the main store
MainStoreKey = "main"
)
Variables ¶
This section is empty.
Functions ¶
func DefaultStoreLoader ¶
func DefaultStoreLoader(ms sdk.CommitMultiStore) error
DefaultStoreLoader will be used by default and loads the latest version
func NewQueryRouter ¶
func NewQueryRouter() *queryRouter
NewQueryRouter returns a reference to a new queryRouter.
TODO: Either make the function private or make return type (queryRouter) public.
func NewRouter ¶
func NewRouter() *router
NewRouter returns a reference to a new router.
TODO: Either make the function private or make return type (router) public.
func SetHaltHeight ¶
SetHaltHeight returns a BaseApp option function that sets the halt height.
func SetMinGasPrices ¶
SetMinGasPrices returns an option that sets the minimum gas prices on the app.
func SetPruning ¶
func SetPruning(opts sdk.PruningOptions) func(*BaseApp)
SetPruning sets a pruning option on the multistore associated with the app
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.
NOTE: The db is used to store the version number for now.
func (*BaseApp) AppVersion ¶
AppVersion returns the application's version string.
func (*BaseApp) BeginBlock ¶
func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeginBlock)
BeginBlock implements the ABCI application interface.
func (*BaseApp) CheckTx ¶
func (app *BaseApp) CheckTx(req abci.RequestCheckTx) (res abci.ResponseCheckTx)
CheckTx implements the ABCI interface. It runs the "basic checks" to see whether or not a transaction can possibly be executed, first decoding and then the ante handler (which checks signatures/fees/ValidateBasic).
NOTE:CheckTx does not run the actual Msg handler function(s).
func (*BaseApp) Commit ¶
func (app *BaseApp) Commit() (res abci.ResponseCommit)
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) DeliverTx ¶
func (app *BaseApp) DeliverTx(req abci.RequestDeliverTx) (res abci.ResponseDeliverTx)
DeliverTx implements the ABCI interface.
func (*BaseApp) EndBlock ¶
func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBlock)
EndBlock implements the ABCI interface.
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
FilterPeerByIDfilters peers by node ID.
func (*BaseApp) Info ¶
func (app *BaseApp) Info(req abci.RequestInfo) abci.ResponseInfo
Info implements the ABCI interface.
func (*BaseApp) InitChain ¶
func (app *BaseApp) InitChain(req abci.RequestInitChain) (res abci.ResponseInitChain)
InitChain implements the ABCI interface. It runs the initialization logic directly on the CommitMultiStore.
func (*BaseApp) LastBlockHeight ¶
LastBlockHeight returns the last committed block height.
func (*BaseApp) LastCommitID ¶
LastCommitID returns the last CommitID of the multistore.
func (*BaseApp) LoadLatestVersion ¶
func (app *BaseApp) LoadLatestVersion(baseKey *sdk.KVStoreKey) error
LoadLatestVersion loads the latest application version. It will panic if called more than once on a running BaseApp.
func (*BaseApp) LoadVersion ¶
func (app *BaseApp) LoadVersion(version int64, baseKey *sdk.KVStoreKey) error
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]*sdk.KVStoreKey)
MountStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.
func (*BaseApp) MountStore ¶
MountStore mounts a store to the provided key in the BaseApp multistore, using the default DB.
func (*BaseApp) MountStoreWithDB ¶
MountStoreWithDB mounts a store to the provided key in the BaseApp multistore, using a specified DB.
func (*BaseApp) MountStores ¶
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]*sdk.TransientStoreKey)
MountStores mounts all IAVL or DB stores to the provided keys in the BaseApp multistore.
func (*BaseApp) NewContext ¶
Context with current {check, deliver}State of the app used by tests
func (*BaseApp) Query ¶
func (app *BaseApp) Query(req abci.RequestQuery) (res abci.ResponseQuery)
Query implements the ABCI interface. It delegates to CommitMultiStore if it implements Queryable.
func (*BaseApp) QueryRouter ¶
func (app *BaseApp) QueryRouter() sdk.QueryRouter
QueryRouter returns the QueryRouter of a 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) SetAppVersion ¶
SetAppVersion sets the application's version string.
func (*BaseApp) SetBeginBlocker ¶
func (app *BaseApp) SetBeginBlocker(beginBlocker sdk.BeginBlocker)
func (*BaseApp) SetCMS ¶
func (app *BaseApp) SetCMS(cms store.CommitMultiStore)
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) 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) SetOption ¶
func (app *BaseApp) SetOption(req abci.RequestSetOption) (res abci.ResponseSetOption)
SetOption implements the ABCI interface.
func (*BaseApp) SetStoreLoader ¶
func (app *BaseApp) SetStoreLoader(loader StoreLoader)
SetStoreLoader allows us to customize the rootMultiStore initialization.
type StoreLoader ¶
type StoreLoader func(ms sdk.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.
func StoreLoaderWithUpgrade ¶
func StoreLoaderWithUpgrade(upgrades *storetypes.StoreUpgrades) StoreLoader
StoreLoaderWithUpgrade is used to prepare baseapp with a fixed StoreLoader pattern. This is useful in test cases, or with custom upgrade loading logic.
func UpgradeableStoreLoader ¶
func UpgradeableStoreLoader(upgradeInfoPath string) StoreLoader
UpgradeableStoreLoader can be configured by SetStoreLoader() to check for the existence of a given upgrade file - json encoded StoreUpgrades data.
If not file is present, it will peform the default load (no upgrades to store).
If the file is present, it will parse the file and execute those upgrades (rename or delete stores), while loading the data. It will also delete the upgrade file upon successful load, so that the upgrade is only applied once, and not re-applied on next restart
This is useful for in place migrations when a store key is renamed between two versions of the software. (TODO: this code will move to x/upgrades when PR #4233 is merged, here mainly to help test the design)