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.
See examples/basecoin/app/* for usage.
nolint: golint
Index ¶
- Constants
- func LoadBlockDB() dbm.DB
- func NewQueryRouter() *queryrouter
- func NewRouter() *router
- func RunForever(app abci.Application)
- func SetPruning(pruning string) func(*BaseApp)
- func SplitPath(requestPath string) (path []string)
- type BaseApp
- func (app *BaseApp) AddTxToCache(txBytes []byte, tx sdk.Tx) (evicted bool)
- func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeginBlock)
- func (app *BaseApp) Check(tx sdk.Tx) (result sdk.Result)
- func (app *BaseApp) CheckTx(txBytes []byte) (res abci.ResponseCheckTx)
- func (app *BaseApp) Commit() (res abci.ResponseCommit)
- func (app *BaseApp) Deliver(tx sdk.Tx) (result sdk.Result)
- func (app *BaseApp) DeliverTx(txBytes []byte) (res abci.ResponseDeliverTx)
- func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBlock)
- func (app *BaseApp) FilterPeerByAddrPort(info string) abci.ResponseQuery
- func (app *BaseApp) FilterPeerByPubKey(info string) abci.ResponseQuery
- func (app *BaseApp) GetCommitMultiStore() sdk.CommitMultiStore
- func (app *BaseApp) GetTxFromCache(txBytes []byte) (sdk.Tx, bool)
- func (app *BaseApp) Info(req abci.RequestInfo) abci.ResponseInfo
- func (app *BaseApp) InitChain(req abci.RequestInitChain) (res abci.ResponseInitChain)
- func (app *BaseApp) InitFromStore(mainKey sdk.StoreKey) error
- func (app *BaseApp) IsSealed() bool
- func (app *BaseApp) LastBlockHeight() int64
- func (app *BaseApp) LastCommitID() sdk.CommitID
- func (app *BaseApp) LoadCMSLatestVersion() error
- func (app *BaseApp) LoadLatestVersion(mainKey sdk.StoreKey) error
- func (app *BaseApp) LoadVersion(version int64, mainKey sdk.StoreKey) error
- 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) MountStoresIAVL(keys ...*sdk.KVStoreKey)
- func (app *BaseApp) MountStoresTransient(keys ...*sdk.TransientStoreKey)
- func (app *BaseApp) Name() string
- func (app *BaseApp) NewContext(mode sdk.RunTxMode, header abci.Header) sdk.Context
- func (app *BaseApp) PreCheckTx(txBytes []byte) (res abci.ResponseCheckTx)
- func (app *BaseApp) PreDeliverTx(txBytes []byte) (res abci.ResponseDeliverTx)
- func (app *BaseApp) Query(req abci.RequestQuery) (res abci.ResponseQuery)
- func (app *BaseApp) QueryRouter() QueryRouter
- func (app *BaseApp) ReCheckTx(txBytes []byte) (res abci.ResponseCheckTx)
- func (app *BaseApp) ReRunTx(txBytes []byte, tx sdk.Tx) (result sdk.Result)
- func (app *BaseApp) RegisterCodespace(codespace sdk.CodespaceType) sdk.CodespaceType
- func (app *BaseApp) RemoveTxFromCache(txBytes []byte)
- func (app *BaseApp) Router() Router
- func (app *BaseApp) RunTx(mode sdk.RunTxMode, txBytes []byte, tx sdk.Tx, txHash string) (result sdk.Result)
- func (app *BaseApp) Seal()
- func (app *BaseApp) SetAccountStoreCache(cdc *codec.Codec, accountStore sdk.KVStore, cap int)
- 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 store.CommitMultiStore)
- func (app *BaseApp) SetCheckState(header abci.Header)
- func (app *BaseApp) SetCommitMultiStoreTracer(w io.Writer)
- func (app *BaseApp) SetDB(db dbm.DB)
- func (app *BaseApp) SetDeliverState(header abci.Header)
- func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)
- 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) SetPreChecker(pc sdk.PreChecker)
- func (app *BaseApp) SetPubKeyPeerFilter(pf sdk.PeerFilter)
- func (app *BaseApp) Simulate(tx sdk.Tx) (result sdk.Result)
- type QueryRouter
- type Router
Constants ¶
const ( // we pass txHash of current handling message via context so that we can publish it as metadata of Msg TxHashKey = "txHash" //this number should be around the size of the transactions in a block, TODO: configurable TxMsgCacheSize = 4000 )
Variables ¶
This section is empty.
Functions ¶
func LoadBlockDB ¶
func NewQueryRouter ¶
func NewQueryRouter() *queryrouter
nolint NewRouter - create new router TODO either make Function unexported or make return type (router) Exported
func NewRouter ¶
func NewRouter() *router
nolint NewRouter - create new router TODO either make Function unexported or make return type (router) Exported
func RunForever ¶
func RunForever(app abci.Application)
RunForever - BasecoinApp execution and cleanup
func SetPruning ¶ added in v0.21.0
SetPruning sets a pruning option on the multistore associated with the app
Types ¶
type BaseApp ¶
type BaseApp struct { // initialized on creation Logger log.Logger TxDecoder sdk.TxDecoder // unmarshal []byte into sdk.Tx //-------------------- // Volatile // CheckState is set on initialization and reset on Commit. // DeliverState is set in InitChain and BeginBlock and cleared on Commit. // See methods SetCheckState and SetDeliverState. CheckState *state // for CheckTx DeliverState *state // for DeliverTx AccountStoreCache sdk.AccountStoreCache Pool *sdk.Pool // 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, isPublish bool, options ...func(*BaseApp)) *BaseApp
NewBaseApp returns a reference to an initialized BaseApp.
TODO: Determine how to use a flexible and robust configuration paradigm that allows for sensible defaults while being highly configurable (e.g. functional options).
NOTE: The db is used to store the version number for now. Accepts a user-defined TxDecoder Accepts variable number of option functions, which act on the BaseApp to set configuration choices
func (*BaseApp) AddTxToCache ¶
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(txBytes []byte) (res abci.ResponseCheckTx)
CheckTx implements ABCI CheckTx runs the "basic checks" to see whether or not a transaction can possibly be executed, first decoding, then the ante handler (which checks signatures/fees/ValidateBasic), then finally the route match to see whether a handler exists. CheckTx does not run the actual Msg handler function(s).
func (*BaseApp) DeliverTx ¶
func (app *BaseApp) DeliverTx(txBytes []byte) (res abci.ResponseDeliverTx)
Implements ABCI
func (*BaseApp) EndBlock ¶
func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBlock)
EndBlock implements the ABCI application interface.
func (*BaseApp) FilterPeerByAddrPort ¶ added in v0.18.0
func (app *BaseApp) FilterPeerByAddrPort(info string) abci.ResponseQuery
Filter peers by address / port
func (*BaseApp) FilterPeerByPubKey ¶ added in v0.18.0
func (app *BaseApp) FilterPeerByPubKey(info string) abci.ResponseQuery
Filter peers by public key
func (*BaseApp) GetCommitMultiStore ¶
func (app *BaseApp) GetCommitMultiStore() sdk.CommitMultiStore
func (*BaseApp) GetTxFromCache ¶
getTxFromCache returns a decoded transaction and true if found in the cache; otherwise return nil, false
func (*BaseApp) Info ¶
func (app *BaseApp) Info(req abci.RequestInfo) abci.ResponseInfo
Implements ABCI
func (*BaseApp) InitChain ¶
func (app *BaseApp) InitChain(req abci.RequestInitChain) (res abci.ResponseInitChain)
Implements ABCI InitChain runs the initialization logic directly on the CommitMultiStore and commits it.
func (*BaseApp) InitFromStore ¶
InitFromStore initializes the remaining logic from app.cms
func (*BaseApp) LastBlockHeight ¶
the last committed block height
func (*BaseApp) LastCommitID ¶
the last CommitID of the multistore
func (*BaseApp) LoadCMSLatestVersion ¶
only load latest multi store application version
func (*BaseApp) LoadLatestVersion ¶
load latest application version
func (*BaseApp) LoadVersion ¶
load application version
func (*BaseApp) MountStore ¶
Mount a store to the provided key in the BaseApp multistore, using the default DB
func (*BaseApp) MountStoreWithDB ¶
Mount a store to the provided key in the BaseApp multistore, using a specified DB
func (*BaseApp) MountStoresIAVL ¶
func (app *BaseApp) MountStoresIAVL(keys ...*sdk.KVStoreKey)
Mount IAVL stores to the provided keys in the BaseApp multistore
func (*BaseApp) MountStoresTransient ¶
func (app *BaseApp) MountStoresTransient(keys ...*sdk.TransientStoreKey)
Mount stores to the provided keys in the BaseApp multistore
func (*BaseApp) NewContext ¶
NewContext returns a new Context with the correct store, the given header, and nil txBytes.
func (*BaseApp) PreCheckTx ¶
func (app *BaseApp) PreCheckTx(txBytes []byte) (res abci.ResponseCheckTx)
PreCheckTx implements extended ABCI for concurrency PreCheckTx would perform decoding, signture and other basic verification
func (*BaseApp) PreDeliverTx ¶
func (app *BaseApp) PreDeliverTx(txBytes []byte) (res abci.ResponseDeliverTx)
PreDeliverTx implements extended ABCI for concurrency PreCheckTx would perform decoding, signture and other basic verification
func (*BaseApp) Query ¶
func (app *BaseApp) Query(req abci.RequestQuery) (res abci.ResponseQuery)
Implements ABCI. Delegates to CommitMultiStore if it implements Queryable
func (*BaseApp) QueryRouter ¶
func (app *BaseApp) QueryRouter() QueryRouter
func (*BaseApp) ReCheckTx ¶
func (app *BaseApp) ReCheckTx(txBytes []byte) (res abci.ResponseCheckTx)
ReCheckTx implements ABCI ReCheckTx runs the "minimun checks", after the inital check, to see whether or not a transaction can possibly be executed.
func (*BaseApp) ReRunTx ¶
RunTx processes a transaction. The transactions is proccessed via an anteHandler. txBytes may be nil in some cases, eg. in tests. Also, in the future we may support "internal" transactions.
func (*BaseApp) RegisterCodespace ¶ added in v0.16.0
func (app *BaseApp) RegisterCodespace(codespace sdk.CodespaceType) sdk.CodespaceType
Register the next available codespace through the baseapp's codespacer, starting from a default
func (*BaseApp) RemoveTxFromCache ¶
func (*BaseApp) RunTx ¶
func (app *BaseApp) RunTx(mode sdk.RunTxMode, txBytes []byte, tx sdk.Tx, txHash string) (result sdk.Result)
RunTx processes a transaction. The transactions is proccessed via an anteHandler. txBytes may be nil in some cases, eg. in tests. Also, in the future we may support "internal" transactions.
func (*BaseApp) SetAccountStoreCache ¶
func (*BaseApp) SetAddrPeerFilter ¶ added in v0.18.0
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 ¶ added in v0.24.0
func (app *BaseApp) SetCMS(cms store.CommitMultiStore)
func (*BaseApp) SetCheckState ¶
func (*BaseApp) SetCommitMultiStoreTracer ¶ added in v0.21.0
SetCommitMultiStoreTracer sets the store tracer on the BaseApp's underlying CommitMultiStore.
func (*BaseApp) SetDeliverState ¶
func (*BaseApp) SetEndBlocker ¶
func (app *BaseApp) SetEndBlocker(endBlocker sdk.EndBlocker)
func (*BaseApp) SetInitChainer ¶
func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer)
func (*BaseApp) SetOption ¶
func (app *BaseApp) SetOption(req abci.RequestSetOption) (res abci.ResponseSetOption)
Implements ABCI
func (*BaseApp) SetPreChecker ¶
func (app *BaseApp) SetPreChecker(pc sdk.PreChecker)
func (*BaseApp) SetPubKeyPeerFilter ¶ added in v0.18.0
func (app *BaseApp) SetPubKeyPeerFilter(pf sdk.PeerFilter)
type QueryRouter ¶
type QueryRouter interface { AddRoute(r string, h sdk.Querier) (rtr QueryRouter) Route(path string) (h sdk.Querier) }
QueryRouter provides queryables for each query path.