forked from cerc-io/plugeth
trie: fix error in node decoding (#19111)
This commit is contained in:
parent
5b8ae7885e
commit
4f85c2b88b
@ -52,6 +52,9 @@ func hexToCompact(hex []byte) []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func compactToHex(compact []byte) []byte {
|
func compactToHex(compact []byte) []byte {
|
||||||
|
if len(compact) == 0 {
|
||||||
|
return compact
|
||||||
|
}
|
||||||
base := keybytesToHex(compact)
|
base := keybytesToHex(compact)
|
||||||
// delete terminator flag
|
// delete terminator flag
|
||||||
if base[0] < 2 {
|
if base[0] < 2 {
|
||||||
|
@ -614,3 +614,16 @@ func updateString(trie *Trie, k, v string) {
|
|||||||
func deleteString(trie *Trie, k string) {
|
func deleteString(trie *Trie, k string) {
|
||||||
trie.Delete([]byte(k))
|
trie.Delete([]byte(k))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDecodeNode(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
var (
|
||||||
|
hash = make([]byte, 20)
|
||||||
|
elems = make([]byte, 20)
|
||||||
|
)
|
||||||
|
for i := 0; i < 5000000; i++ {
|
||||||
|
rand.Read(hash)
|
||||||
|
rand.Read(elems)
|
||||||
|
decodeNode(hash, elems, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user