diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-04-25 16:10:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-25 16:10:20 +0800 |
commit | ba3bcd16a6d99bc0e58516556df8e96b730c2d60 (patch) | |
tree | e6622b6dd3ca30a28ea68ad69d0d1b2d675b7bb3 /trie/trie.go | |
parent | 7cc6abeef6ec0b6c5fd5a94920fa79157cdfcd37 (diff) | |
parent | 207bd7d2cddbf16ac2cb870fd6a1c558f02fd8ac (diff) | |
download | dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar.gz dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar.bz2 dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar.lz dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar.xz dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.tar.zst dexon-ba3bcd16a6d99bc0e58516556df8e96b730c2d60.zip |
Merge pull request #14350 from fjl/trie-iterator-skip-2
eth: add debug_storageRangeAt
Diffstat (limited to 'trie/trie.go')
-rw-r--r-- | trie/trie.go | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/trie/trie.go b/trie/trie.go index 2a6044068..5759f97e3 100644 --- a/trie/trie.go +++ b/trie/trie.go @@ -125,9 +125,10 @@ func New(root common.Hash, db Database) (*Trie, error) { return trie, nil } -// Iterator returns an iterator over all mappings in the trie. -func (t *Trie) Iterator() *Iterator { - return NewIterator(t) +// NodeIterator returns an iterator that returns nodes of the trie. Iteration starts at +// the key after the given start key. +func (t *Trie) NodeIterator(start []byte) NodeIterator { + return newNodeIterator(t, start) } // Get returns the value for key stored in the trie. @@ -144,7 +145,7 @@ func (t *Trie) Get(key []byte) []byte { // The value bytes must not be modified by the caller. // If a node was not found in the database, a MissingNodeError is returned. func (t *Trie) TryGet(key []byte) ([]byte, error) { - key = compactHexDecode(key) + key = keybytesToHex(key) value, newroot, didResolve, err := t.tryGet(t.root, key, 0) if err == nil && didResolve { t.root = newroot @@ -211,7 +212,7 @@ func (t *Trie) Update(key, value []byte) { // // If a node was not found in the database, a MissingNodeError is returned. func (t *Trie) TryUpdate(key, value []byte) error { - k := compactHexDecode(key) + k := keybytesToHex(key) if len(value) != 0 { _, n, err := t.insert(t.root, nil, k, valueNode(value)) if err != nil { @@ -307,7 +308,7 @@ func (t *Trie) Delete(key []byte) { // TryDelete removes any existing value for key from the trie. // If a node was not found in the database, a MissingNodeError is returned. func (t *Trie) TryDelete(key []byte) error { - k := compactHexDecode(key) + k := keybytesToHex(key) _, n, err := t.delete(t.root, nil, k) if err != nil { return err @@ -450,7 +451,6 @@ func (t *Trie) resolveHash(n hashNode, prefix, suffix []byte) (node, error) { return nil, &MissingNodeError{ RootHash: t.originalRoot, NodeHash: common.BytesToHash(n), - Key: compactHexEncode(append(prefix, suffix...)), PrefixLen: len(prefix), SuffixLen: len(suffix), } |