diff --git a/internal/trie/node/decode.go b/internal/trie/node/decode.go index c67e84e49a..c08a63dc13 100644 --- a/internal/trie/node/decode.go +++ b/internal/trie/node/decode.go @@ -98,6 +98,8 @@ func decodeBranch(reader io.Reader, header byte) (branch *Branch, err error) { if (childrenBitmap[i/8]>>(i%8))&1 != 1 { continue } + branch.AddDescendants(1) + var hash []byte err := sd.Decode(&hash) if err != nil { diff --git a/internal/trie/node/decode_test.go b/internal/trie/node/decode_test.go index c6f683aece..207208b627 100644 --- a/internal/trie/node/decode_test.go +++ b/internal/trie/node/decode_test.go @@ -176,7 +176,8 @@ func Test_decodeBranch(t *testing.T) { HashDigest: []byte{1, 2, 3, 4, 5}, }, }, - Dirty: true, + Dirty: true, + Descendants: 1, }, }, "value decoding error for node type 3": { @@ -211,7 +212,8 @@ func Test_decodeBranch(t *testing.T) { HashDigest: []byte{1, 2, 3, 4, 5}, }, }, - Dirty: true, + Dirty: true, + Descendants: 1, }, }, } diff --git a/internal/trie/node/encode_decode_test.go b/internal/trie/node/encode_decode_test.go index f4bb168697..fe174a67aa 100644 --- a/internal/trie/node/encode_decode_test.go +++ b/internal/trie/node/encode_decode_test.go @@ -60,7 +60,8 @@ func Test_Branch_Encode_Decode(t *testing.T) { HashDigest: []byte{0x41, 0x9, 0x4, 0xa}, }, }, - Dirty: true, + Dirty: true, + Descendants: 1, }, }, }