Code cleanup from emmanuel

This commit is contained in:
Ethan Frey
2017-07-27 15:31:34 -04:00
parent ea8bdd3f92
commit 2b79aa0413
12 changed files with 93 additions and 38 deletions
+6 -2
View File
@@ -83,7 +83,9 @@ func (at *appTest) reset() {
// Note: switch logger if you want to get more info
logger := log.TestingLogger()
// logger := log.NewTracingLogger(log.NewTMLogger(os.Stdout))
store := NewStore("", 0, logger.With("module", "store"))
store, err := NewStore("", 0, logger.With("module", "store"))
require.Nil(at.t, err, "%+v", err)
at.app = NewBasecoin(
DefaultHandler("mycoin"),
store,
@@ -141,7 +143,9 @@ func TestSetOption(t *testing.T) {
require := require.New(t)
logger := log.TestingLogger()
store := NewStore("", 0, logger.With("module", "store"))
store, err := NewStore("", 0, logger.With("module", "store"))
require.Nil(err, "%+v", err)
app := NewBasecoin(
DefaultHandler("atom"),
store,
+11 -6
View File
@@ -19,9 +19,10 @@ const genesisAcctFilepath = "./testdata/genesis2.json"
func TestLoadGenesisDoNotFailIfAppOptionsAreMissing(t *testing.T) {
logger := log.TestingLogger()
store := NewStore("", 0, logger)
store, err := NewStore("", 0, logger)
require.Nil(t, err, "%+v", err)
app := NewBasecoin(DefaultHandler("mycoin"), store, logger)
err := app.LoadGenesis("./testdata/genesis3.json")
err = app.LoadGenesis("./testdata/genesis3.json")
require.Nil(t, err, "%+v", err)
}
@@ -29,9 +30,11 @@ func TestLoadGenesis(t *testing.T) {
assert, require := assert.New(t), require.New(t)
logger := log.TestingLogger()
store := NewStore("", 0, logger)
store, err := NewStore("", 0, logger)
require.Nil(err, "%+v", err)
app := NewBasecoin(DefaultHandler("mycoin"), store, logger)
err := app.LoadGenesis(genesisFilepath)
err = app.LoadGenesis(genesisFilepath)
require.Nil(err, "%+v", err)
// check the chain id
@@ -59,9 +62,11 @@ func TestLoadGenesisAccountAddress(t *testing.T) {
assert, require := assert.New(t), require.New(t)
logger := log.TestingLogger()
store := NewStore("", 0, logger)
store, err := NewStore("", 0, logger)
require.Nil(err, "%+v", err)
app := NewBasecoin(DefaultHandler("mycoin"), store, logger)
err := app.LoadGenesis(genesisAcctFilepath)
err = app.LoadGenesis(genesisAcctFilepath)
require.Nil(err, "%+v", err)
// check the chain id
+12 -13
View File
@@ -7,6 +7,7 @@ import (
"path/filepath"
"strings"
"github.com/pkg/errors"
abci "github.com/tendermint/abci/types"
"github.com/tendermint/go-wire"
"github.com/tendermint/merkleeyes/iavl"
@@ -37,7 +38,7 @@ type ChainState struct {
// NewStore initializes an in-memory IAVLTree, or attempts to load a persistant
// tree from disk
func NewStore(dbName string, cacheSize int, logger log.Logger) *Store {
func NewStore(dbName string, cacheSize int, logger log.Logger) (*Store, error) {
// start at 1 so the height returned by query is for the
// next block, ie. the one that includes the AppHash for our current state
initialHeight := uint64(1)
@@ -48,17 +49,18 @@ func NewStore(dbName string, cacheSize int, logger log.Logger) *Store {
0,
nil,
)
return &Store{
store := &Store{
State: state.NewState(tree, false),
height: initialHeight,
logger: logger,
}
return store, nil
}
// Expand the path fully
dbPath, err := filepath.Abs(dbName)
if err != nil {
panic(fmt.Sprintf("Invalid Database Name: %s", dbName))
return nil, errors.Wrap(err, "Invalid Database Name")
}
// Some external calls accidently add a ".db", which is now removed
@@ -94,22 +96,16 @@ func NewStore(dbName string, cacheSize int, logger log.Logger) *Store {
tree.Load(chainState.Hash)
}
return &Store{
res := &Store{
State: state.NewState(tree, true),
height: chainState.Height,
hash: chainState.Hash,
persisted: true,
logger: logger,
}
return res, nil
}
// CloseDB closes the database
// func (s *Store) CloseDB() {
// if s.db != nil {
// s.db.Close()
// }
// }
// Info implements abci.Application. It returns the height, hash and size (in the data).
// The height is the block that holds the transactions, not the apphash itself.
func (s *Store) Info() abci.ResponseInfo {
@@ -136,9 +132,12 @@ func (s *Store) Commit() abci.Result {
Height: s.height,
}))
hash := s.State.Commit()
hash, err := s.State.Commit()
if err != nil {
return abci.NewError(abci.CodeType_InternalError, err.Error())
}
if !bytes.Equal(hash, s.hash) {
panic("AppHash is incorrect")
return abci.NewError(abci.CodeType_InternalError, "AppHash is incorrect")
}
if s.State.Committed().Size() == 0 {