diff --git a/PENDING.md b/PENDING.md index 97815a3692..21223bd7a1 100644 --- a/PENDING.md +++ b/PENDING.md @@ -52,3 +52,4 @@ BUG FIXES * \#1797 Fix off-by-one error in slashing for downtime * \#1787 Fixed bug where Tally fails due to revoked/unbonding validator * \#1766 Fixes bad example for keybase identity +* \#1799 Fix `gaiad export` diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 0487237555..7416f8089d 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -190,7 +190,8 @@ func (app *BaseApp) initFromStore(mainKey sdk.StoreKey) error { if main == nil { return errors.New("baseapp expects MultiStore with 'main' KVStore") } - + // Needed for `gaiad export`, which inits from store but never calls initchain + app.setCheckState(abci.Header{}) return nil } diff --git a/cmd/gaia/app/app_test.go b/cmd/gaia/app/app_test.go index 759fc55a6c..63d650cef6 100644 --- a/cmd/gaia/app/app_test.go +++ b/cmd/gaia/app/app_test.go @@ -1,9 +1,15 @@ package app import ( + "os" + "testing" + "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/stake" + "github.com/stretchr/testify/require" + "github.com/tendermint/tendermint/libs/db" + "github.com/tendermint/tendermint/libs/log" abci "github.com/tendermint/tendermint/abci/types" ) @@ -31,3 +37,14 @@ func setGenesis(gapp *GaiaApp, accs ...*auth.BaseAccount) error { return nil } + +func TestGaiadExport(t *testing.T) { + db := db.NewMemDB() + gapp := NewGaiaApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil) + setGenesis(gapp) + + // Making a new app object with the db, so that initchain hasn't been called + newGapp := NewGaiaApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil) + _, _, err := newGapp.ExportAppStateAndValidators() + require.NoError(t, err, "ExportAppStateAndValidators should not have an error") +}