diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 3dad0483a3..dd0c35eaa8 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -54,6 +54,7 @@ type BaseApp struct { var _ abci.Application = (*BaseApp)(nil) // Create and name new BaseApp +// NOTE: The db is used to store the version number for now. func NewBaseApp(name string, logger log.Logger, db dbm.DB) *BaseApp { return &BaseApp{ Logger: logger, @@ -70,15 +71,16 @@ func (app *BaseApp) Name() string { } // Mount a store to the provided key in the BaseApp multistore +// Broken until #532 is implemented. func (app *BaseApp) MountStoresIAVL(keys ...*sdk.KVStoreKey) { for _, key := range keys { - app.MountStore(key, sdk.StoreTypeIAVL) + app.MountStore(key, sdk.StoreTypeIAVL, app.db) } } // Mount a store to the provided key in the BaseApp multistore -func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType) { - app.cms.MountStoreWithDB(key, typ, app.db) +func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType, db dbm.DB) { + app.cms.MountStoreWithDB(key, typ, db) } // nolint - Set functions diff --git a/examples/basecoin/app/app.go b/examples/basecoin/app/app.go index e5235bd667..4595d1bfb4 100644 --- a/examples/basecoin/app/app.go +++ b/examples/basecoin/app/app.go @@ -2,6 +2,8 @@ package app import ( "encoding/json" + "os" + "path/filepath" abci "github.com/tendermint/abci/types" oldwire "github.com/tendermint/go-wire" @@ -66,12 +68,30 @@ func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp { AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)). AddRoute("staking", staking.NewHandler(stakeKeeper)) + rootDir := os.ExpandEnv("$HOME/.basecoind") + dbMain, err := dbm.NewGoLevelDB("basecoin-main", filepath.Join(rootDir, "data")) + if err != nil { + cmn.Exit(err.Error()) + } + dbIBC, err := dbm.NewGoLevelDB("basecoin-ibc", filepath.Join(rootDir, "data")) + if err != nil { + cmn.Exit(err.Error()) + } + dbStaking, err := dbm.NewGoLevelDB("basecoin-staking", filepath.Join(rootDir, "data")) + if err != nil { + cmn.Exit(err.Error()) + } + // initialize BaseApp app.SetTxDecoder(app.txDecoder) app.SetInitChainer(app.initChainer) - app.MountStoresIAVL(app.capKeyMainStore, app.capKeyIBCStore, app.capKeyStakingStore) + app.MountStore(app.capKeyMainStore, sdk.StoreTypeIAVL, dbMain) + app.MountStore(app.capKeyIBCStore, sdk.StoreTypeIAVL, dbIBC) + app.MountStore(app.capKeyStakingStore, sdk.StoreTypeIAVL, dbStaking) + // NOTE: Broken until #532 lands + //app.MountStoresIAVL(app.capKeyMainStore, app.capKeyIBCStore, app.capKeyStakingStore) app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper)) - err := app.LoadLatestVersion(app.capKeyMainStore) + err = app.LoadLatestVersion(app.capKeyMainStore) if err != nil { cmn.Exit(err.Error()) } diff --git a/examples/kvstore/main.go b/examples/kvstore/main.go index 5ffe590f1a..538235bf4d 100644 --- a/examples/kvstore/main.go +++ b/examples/kvstore/main.go @@ -30,7 +30,7 @@ func main() { var baseApp = bam.NewBaseApp("kvstore", logger, db) // Set mounts for BaseApp's MultiStore. - baseApp.MountStore(capKeyMainStore, sdk.StoreTypeIAVL) + baseApp.MountStoresIAVL(capKeyMainStore) // Set Tx decoder baseApp.SetTxDecoder(decodeTx)