forked from cerc-io/laconicd-deprecated
fix bug in OpenTrie
This commit is contained in:
parent
7b274f8692
commit
ebde1c0316
@ -87,7 +87,6 @@ func NewDatabase(stateDB, codeDB dbm.DB) (*Database, error) {
|
|||||||
// CONTRACT: The root parameter is not interpreted as a state root hash, but as
|
// CONTRACT: The root parameter is not interpreted as a state root hash, but as
|
||||||
// an encoding of an Cosmos SDK IAVL tree version.
|
// an encoding of an Cosmos SDK IAVL tree version.
|
||||||
func (db *Database) OpenTrie(root ethcommon.Hash) (ethstate.Trie, error) {
|
func (db *Database) OpenTrie(root ethcommon.Hash) (ethstate.Trie, error) {
|
||||||
var loadedState bool
|
|
||||||
version := db.stateStore.LastCommitID().Version
|
version := db.stateStore.LastCommitID().Version
|
||||||
|
|
||||||
if !isRootEmpty(root) {
|
if !isRootEmpty(root) {
|
||||||
@ -98,12 +97,11 @@ func (db *Database) OpenTrie(root ethcommon.Hash) (ethstate.Trie, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
loadedState = true
|
db.accountsCache = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset the cache if the state was loaded for an older version
|
if db.accountsCache == nil {
|
||||||
if loadedState {
|
|
||||||
db.accountsCache = store.NewCacheKVStore(db.stateStore.GetCommitKVStore(AccountsKey))
|
db.accountsCache = store.NewCacheKVStore(db.stateStore.GetCommitKVStore(AccountsKey))
|
||||||
db.storageCache = store.NewCacheKVStore(db.stateStore.GetCommitKVStore(StorageKey))
|
db.storageCache = store.NewCacheKVStore(db.stateStore.GetCommitKVStore(StorageKey))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user