Code cleanup from emmanuel
This commit is contained in:
+6
-2
@@ -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
@@ -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
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user