Skip to content

Commit 2dfa4bc

Browse files
Darioush Jalaliholiman
andauthored
trie: test for edgecase in VerifyRangeProof (#24257)
* trie/proof: edge case for VerifyRangeProof * more consistency with other tests in the file * trie: fix test todo Co-authored-by: Martin Holst Swende <[email protected]>
1 parent eef7a33 commit 2dfa4bc

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

trie/proof_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,3 +1067,36 @@ func nonRandomTrie(n int) (*Trie, map[string]*kv) {
10671067
}
10681068
return trie, vals
10691069
}
1070+
1071+
func TestRangeProofKeysWithSharedPrefix(t *testing.T) {
1072+
keys := [][]byte{
1073+
common.Hex2Bytes("aa10000000000000000000000000000000000000000000000000000000000000"),
1074+
common.Hex2Bytes("aa20000000000000000000000000000000000000000000000000000000000000"),
1075+
}
1076+
vals := [][]byte{
1077+
common.Hex2Bytes("02"),
1078+
common.Hex2Bytes("03"),
1079+
}
1080+
trie := new(Trie)
1081+
for i, key := range keys {
1082+
trie.Update(key, vals[i])
1083+
}
1084+
root := trie.Hash()
1085+
proof := memorydb.New()
1086+
start := common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")
1087+
end := common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
1088+
if err := trie.Prove(start, 0, proof); err != nil {
1089+
t.Fatalf("failed to prove start: %v", err)
1090+
}
1091+
if err := trie.Prove(end, 0, proof); err != nil {
1092+
t.Fatalf("failed to prove end: %v", err)
1093+
}
1094+
1095+
more, err := VerifyRangeProof(root, start, end, keys, vals, proof)
1096+
if err != nil {
1097+
t.Fatalf("failed to verify range proof: %v", err)
1098+
}
1099+
if more != false {
1100+
t.Error("expected more to be false")
1101+
}
1102+
}

0 commit comments

Comments
 (0)