mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 21:31:37 +00:00
parent
b196b7231c
commit
13fe871c25
1 changed files with 33 additions and 0 deletions
|
|
@ -1062,3 +1062,36 @@ func nonRandomTrie(n int) (*Trie, map[string]*kv) {
|
|||
}
|
||||
return trie, vals
|
||||
}
|
||||
|
||||
func TestRangeProofKeysWithSharedPrefix(t *testing.T) {
|
||||
keys := [][]byte{
|
||||
common.Hex2Bytes("aa10000000000000000000000000000000000000000000000000000000000000"),
|
||||
common.Hex2Bytes("aa20000000000000000000000000000000000000000000000000000000000000"),
|
||||
}
|
||||
vals := [][]byte{
|
||||
common.Hex2Bytes("02"),
|
||||
common.Hex2Bytes("03"),
|
||||
}
|
||||
trie := new(Trie)
|
||||
for i, key := range keys {
|
||||
trie.Update(key, vals[i])
|
||||
}
|
||||
root := trie.Hash()
|
||||
proof := memorydb.New()
|
||||
start := common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")
|
||||
end := common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
|
||||
if err := trie.Prove(start, 0, proof); err != nil {
|
||||
t.Fatalf("failed to prove start: %v", err)
|
||||
}
|
||||
if err := trie.Prove(end, 0, proof); err != nil {
|
||||
t.Fatalf("failed to prove end: %v", err)
|
||||
}
|
||||
|
||||
more, err := VerifyRangeProof(root, start, end, keys, vals, proof)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to verify range proof: %v", err)
|
||||
}
|
||||
if more != false {
|
||||
t.Error("expected more to be false")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue