some fixes
This commit is contained in:
parent
804b321c42
commit
cee8f21984
@ -21,7 +21,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/ethdb"
|
|
||||||
"github.com/ethereum/go-ethereum/trie"
|
"github.com/ethereum/go-ethereum/trie"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -83,7 +82,7 @@ type nodeIterator struct {
|
|||||||
path []byte // Path to the current node
|
path []byte // Path to the current node
|
||||||
err error // Failure set in case of an internal error in the iterator
|
err error // Failure set in case of an internal error in the iterator
|
||||||
|
|
||||||
resolver ethdb.KeyValueReader // Optional intermediate resolver above the disk layer
|
resolver trie.NodeResolver // Optional intermediate resolver above the disk layer
|
||||||
}
|
}
|
||||||
|
|
||||||
// errIteratorEnd is stored in nodeIterator.err when iteration is done.
|
// errIteratorEnd is stored in nodeIterator.err when iteration is done.
|
||||||
@ -111,7 +110,7 @@ func newNodeIterator(trie *Trie, start []byte) NodeIterator {
|
|||||||
return it
|
return it
|
||||||
}
|
}
|
||||||
|
|
||||||
func (it *nodeIterator) AddResolver(resolver ethdb.KeyValueReader) {
|
func (it *nodeIterator) AddResolver(resolver trie.NodeResolver) {
|
||||||
it.resolver = resolver
|
it.resolver = resolver
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +314,7 @@ func (it *nodeIterator) peekSeek(seekKey []byte) (*nodeIteratorState, *int, []by
|
|||||||
|
|
||||||
func (it *nodeIterator) resolveHash(hash hashNode, path []byte) (node, error) {
|
func (it *nodeIterator) resolveHash(hash hashNode, path []byte) (node, error) {
|
||||||
if it.resolver != nil {
|
if it.resolver != nil {
|
||||||
if blob, err := it.resolver.Get(hash); err == nil && len(blob) > 0 {
|
if blob := it.resolver(it.trie.owner, path, common.BytesToHash(hash)); len(blob) > 0 {
|
||||||
if resolved, err := decodeNode(hash, blob); err == nil {
|
if resolved, err := decodeNode(hash, blob); err == nil {
|
||||||
return resolved, nil
|
return resolved, nil
|
||||||
}
|
}
|
||||||
@ -326,7 +325,7 @@ func (it *nodeIterator) resolveHash(hash hashNode, path []byte) (node, error) {
|
|||||||
|
|
||||||
func (it *nodeIterator) resolveBlob(hash hashNode, path []byte) ([]byte, error) {
|
func (it *nodeIterator) resolveBlob(hash hashNode, path []byte) ([]byte, error) {
|
||||||
if it.resolver != nil {
|
if it.resolver != nil {
|
||||||
if blob, err := it.resolver.Get(hash); err == nil && len(blob) > 0 {
|
if blob := it.resolver(it.trie.owner, path, common.BytesToHash(hash)); len(blob) > 0 {
|
||||||
return blob, nil
|
return blob, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,14 +114,11 @@ func updateTrie(tr *geth_trie.Trie, vals []kvs) (kvMap, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func commitTrie(t *testing.T, db *geth_trie.Database, tr *geth_trie.Trie) common.Hash {
|
func commitTrie(t *testing.T, db *geth_trie.Database, tr *geth_trie.Trie) common.Hash {
|
||||||
root, nodes, err := tr.Commit(false)
|
root, nodes := tr.Commit(false)
|
||||||
if err != nil {
|
if err := db.Update(geth_trie.NewWithNodeSet(nodes)); err != nil {
|
||||||
t.Fatalf("Failed to commit trie %v", err)
|
|
||||||
}
|
|
||||||
if err = db.Update(geth_trie.NewWithNodeSet(nodes)); err != nil {
|
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if err = db.Commit(root, false, nil); err != nil {
|
if err := db.Commit(root, false); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
return root
|
return root
|
||||||
@ -129,6 +126,7 @@ func commitTrie(t *testing.T, db *geth_trie.Database, tr *geth_trie.Trie) common
|
|||||||
|
|
||||||
// commit a LevelDB state trie, index to IPLD and return new trie
|
// commit a LevelDB state trie, index to IPLD and return new trie
|
||||||
func indexTrie(t *testing.T, edb ethdb.Database, root common.Hash) *trie.Trie {
|
func indexTrie(t *testing.T, edb ethdb.Database, root common.Hash) *trie.Trie {
|
||||||
|
dbConfig.Driver = postgres.PGX
|
||||||
err := helper.IndexChain(dbConfig, geth_state.NewDatabase(edb), common.Hash{}, root)
|
err := helper.IndexChain(dbConfig, geth_state.NewDatabase(edb), common.Hash{}, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user