Skip to content

Commit e558f36

Browse files
committed
remove epoch from GetProofItems
1 parent 861826a commit e558f36

File tree

11 files changed

+56
-67
lines changed

11 files changed

+56
-67
lines changed

empty.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func (Empty) Commitment() *Point {
5353
return &id
5454
}
5555

56-
func (Empty) GetProofItems(keylist, StateEpoch, NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
56+
func (Empty) GetProofItems(keylist, NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
5757
return nil, nil, nil, errors.New("trying to produce a commitment for an empty subtree")
5858
}
5959

empty_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func TestEmptyFuncs(t *testing.T) {
5151
t.Fatal("commitment and commit mismatch")
5252
}
5353

54-
if _, _, _, err := e.GetProofItems(nil, 0, nil); err == nil {
54+
if _, _, _, err := e.GetProofItems(nil, nil); err == nil {
5555
t.Fatal("get proof items should error")
5656
}
5757

expired_leaf.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func (n *ExpiredLeafNode) Commitment() *Point {
6262
return n.commitment
6363
}
6464

65-
func (n *ExpiredLeafNode) GetProofItems(keys keylist, curEpoch StateEpoch, resolver NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
65+
func (n *ExpiredLeafNode) GetProofItems(keys keylist, resolver NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
6666
var (
6767
pe = &ProofElements{
6868
Vals: make([][]byte, len(keys)),

hashednode.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func (HashedNode) Commitment() *Point {
5858
panic("can not get commitment of a hash node")
5959
}
6060

61-
func (HashedNode) GetProofItems(keylist, StateEpoch, NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
61+
func (HashedNode) GetProofItems(keylist, NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
6262
return nil, nil, nil, errors.New("can not get the full path, and there is no proof of absence")
6363
}
6464

hashednode_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func TestHashedNodeFuncs(t *testing.T) {
4646
if v != nil {
4747
t.Fatal("non-nil get from a hashed node")
4848
}
49-
if _, _, _, err := e.GetProofItems(nil, 0, nil); err == nil {
49+
if _, _, _, err := e.GetProofItems(nil, nil); err == nil {
5050
t.Fatal("got nil error when getting proof items from a hashed node")
5151
}
5252
if _, err := e.Serialize(); err != errSerializeHashedNode {

proof_ipa.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,20 +188,20 @@ func (sd StateDiff) Equal(other StateDiff) error {
188188

189189
func GetCommitmentsForMultiproof(root VerkleNode, keys [][]byte, resolver NodeResolverFn) (*ProofElements, []byte, []Stem, error) {
190190
sort.Sort(keylist(keys))
191-
return root.GetProofItems(keylist(keys), curEpoch, resolver)
191+
return root.GetProofItems(keylist(keys), resolver)
192192
}
193193

194194
// getProofElementsFromTree factors the logic that is used both in the proving and verification methods. It takes a pre-state
195195
// tree and an optional post-state tree, extracts the proof data from them and returns all the items required to build/verify
196196
// a proof.
197-
func getProofElementsFromTree(preroot, postroot VerkleNode, keys [][]byte, preEpoch, postEpoch StateEpoch, resolver NodeResolverFn) (*ProofElements, []byte, []Stem, [][]byte, error) {
197+
func getProofElementsFromTree(preroot, postroot VerkleNode, keys [][]byte, postEpoch StateEpoch, resolver NodeResolverFn) (*ProofElements, []byte, []Stem, [][]byte, error) {
198198
// go-ipa won't accept no key as an input, catch this corner case
199199
// and return an empty result.
200200
if len(keys) == 0 {
201201
return nil, nil, nil, nil, errors.New("no key provided for proof")
202202
}
203203

204-
pe, es, poas, err := GetCommitmentsForMultiproof(preroot, keys, preEpoch, resolver)
204+
pe, es, poas, err := GetCommitmentsForMultiproof(preroot, keys, resolver)
205205
if err != nil {
206206
return nil, nil, nil, nil, fmt.Errorf("error getting pre-state proof data: %w", err)
207207
}
@@ -228,8 +228,8 @@ func getProofElementsFromTree(preroot, postroot VerkleNode, keys [][]byte, preEp
228228
return pe, es, poas, postvals, nil
229229
}
230230

231-
func MakeVerkleMultiProof(preroot, postroot VerkleNode, keys [][]byte, preEpoch, postEpoch StateEpoch, resolver NodeResolverFn) (*Proof, []*Point, []byte, []*Fr, error) {
232-
pe, es, poas, postvals, err := getProofElementsFromTree(preroot, postroot, keys, preEpoch, postEpoch, resolver)
231+
func MakeVerkleMultiProof(preroot, postroot VerkleNode, keys [][]byte, postEpoch StateEpoch, resolver NodeResolverFn) (*Proof, []*Point, []byte, []*Fr, error) {
232+
pe, es, poas, postvals, err := getProofElementsFromTree(preroot, postroot, keys, postEpoch, resolver)
233233
if err != nil {
234234
return nil, nil, nil, nil, fmt.Errorf("get commitments for multiproof: %s", err)
235235
}
@@ -272,7 +272,7 @@ func MakeVerkleMultiProof(preroot, postroot VerkleNode, keys [][]byte, preEpoch,
272272

273273
// verifyVerkleProofWithPreState takes a proof and a trusted tree root and verifies that the proof is valid.
274274
func verifyVerkleProofWithPreState(proof *Proof, preroot VerkleNode, preEpoch StateEpoch) error {
275-
pe, _, _, _, err := getProofElementsFromTree(preroot, nil, proof.Keys, preEpoch, 0, nil)
275+
pe, _, _, _, err := getProofElementsFromTree(preroot, nil, proof.Keys, 0, nil)
276276
if err != nil {
277277
return fmt.Errorf("error getting proof elements: %w", err)
278278
}

proof_test.go

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestProofEmptyTree(t *testing.T) {
4343
root := New()
4444
root.Commit()
4545

46-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, 0, nil)
46+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, nil)
4747
cfg := GetConfig()
4848
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
4949
t.Fatalf("could not verify verkle proof: %s", ToDot(root))
@@ -65,7 +65,7 @@ func TestProofVerifyTwoLeaves(t *testing.T) {
6565
}
6666
root.Commit()
6767

68-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, 0, nil)
68+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, nil)
6969

7070
cfg := GetConfig()
7171
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -92,7 +92,7 @@ func TestProofVerifyMultipleLeaves(t *testing.T) {
9292
}
9393
root.Commit()
9494

95-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[0]}, 0, 0, nil)
95+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[0]}, 0, nil)
9696

9797
cfg := GetConfig()
9898
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -119,9 +119,9 @@ func TestMultiProofVerifyMultipleLeaves(t *testing.T) {
119119
}
120120
root.Commit()
121121

122-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys[0:2], 0, 0, nil)
122+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys[0:2], 0, nil)
123123

124-
pe, _, _, err := GetCommitmentsForMultiproof(root, keys[0:2], 0, nil)
124+
pe, _, _, err := GetCommitmentsForMultiproof(root, keys[0:2], nil)
125125
if err != nil {
126126
t.Fatal(err)
127127
}
@@ -159,9 +159,9 @@ func TestMultiProofVerifyMultipleLeavesWithAbsentStem(t *testing.T) {
159159
absent[3] = 1 // and the stem differs
160160
keys = append(keys, absent)
161161

162-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys, 0, 0, nil)
162+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys, 0, nil)
163163

164-
pe, _, isabsent, err := GetCommitmentsForMultiproof(root, keys, 0, nil)
164+
pe, _, isabsent, err := GetCommitmentsForMultiproof(root, keys, nil)
165165
if err != nil {
166166
t.Fatal(err)
167167
}
@@ -193,9 +193,9 @@ func TestMultiProofVerifyMultipleLeavesCommitmentRedundancy(t *testing.T) {
193193
}
194194
root.Commit()
195195

196-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys, 0, 0, nil)
196+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keys, 0, nil)
197197

198-
pe, _, _, err := GetCommitmentsForMultiproof(root, keys, 0, nil)
198+
pe, _, _, err := GetCommitmentsForMultiproof(root, keys, nil)
199199
if err != nil {
200200
t.Fatal(err)
201201
}
@@ -217,7 +217,7 @@ func TestProofOfAbsenceInternalVerify(t *testing.T) {
217217
}
218218
root.Commit()
219219

220-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, 0, nil)
220+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ffx32KeyTest}, 0, nil)
221221

222222
cfg := GetConfig()
223223
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -237,7 +237,7 @@ func TestProofOfAbsenceLeafVerify(t *testing.T) {
237237
}
238238
root.Commit()
239239

240-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{oneKeyTest}, 0, 0, nil)
240+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{oneKeyTest}, 0, nil)
241241

242242
cfg := GetConfig()
243243
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -262,7 +262,7 @@ func TestProofOfAbsenceLeafVerifyOtherSuffix(t *testing.T) {
262262
return ret
263263
}()
264264

265-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{key}, 0, 0, nil)
265+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{key}, 0, nil)
266266

267267
cfg := GetConfig()
268268
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -284,7 +284,7 @@ func TestProofOfAbsenceStemVerify(t *testing.T) {
284284
}()
285285

286286
root.Commit()
287-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{key}, 0, 0, nil)
287+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{key}, 0, nil)
288288

289289
cfg := GetConfig()
290290
if ok, err := verifyVerkleProof(proof, cis, zis, yis, cfg); !ok || err != nil {
@@ -310,7 +310,7 @@ func BenchmarkProofCalculation(b *testing.B) {
310310
b.ReportAllocs()
311311

312312
for i := 0; i < b.N; i++ {
313-
if _, _, _, _, err := MakeVerkleMultiProof(root, nil, [][]byte{keys[len(keys)/2]}, 0, 0, nil); err != nil {
313+
if _, _, _, _, err := MakeVerkleMultiProof(root, nil, [][]byte{keys[len(keys)/2]}, 0, nil); err != nil {
314314
b.Fatal(err)
315315
}
316316
}
@@ -331,7 +331,7 @@ func BenchmarkProofVerification(b *testing.B) {
331331
}
332332

333333
root.Commit()
334-
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[len(keys)/2]}, 0, 0, nil)
334+
proof, cis, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[len(keys)/2]}, 0, nil)
335335

336336
b.ResetTimer()
337337
b.ReportAllocs()
@@ -362,7 +362,7 @@ func TestProofSerializationNoAbsentStem(t *testing.T) {
362362
}
363363
}
364364

365-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[0]}, 0, 0, nil)
365+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{keys[0]}, 0, nil)
366366

367367
vp, statediff, err := SerializeProof(proof)
368368
if err != nil {
@@ -401,7 +401,7 @@ func TestProofSerializationWithAbsentStem(t *testing.T) {
401401
absentkey[2] = 2
402402
absentkey[3] = 1
403403

404-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{absentkey[:]}, 0, 0, nil)
404+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{absentkey[:]}, 0, nil)
405405

406406
vp, statediff, err := SerializeProof(proof)
407407
if err != nil {
@@ -442,7 +442,7 @@ func TestProofDeserialize(t *testing.T) {
442442
absentkey[2] = 2
443443
absentkey[3] = 1
444444

445-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{absentkey[:]}, 0, 0, nil)
445+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, [][]byte{absentkey[:]}, 0, nil)
446446

447447
vp, statediff, err := SerializeProof(proof)
448448
if err != nil {
@@ -455,7 +455,7 @@ func TestProofDeserialize(t *testing.T) {
455455
}
456456
_ = deserialized
457457

458-
pe, _, _, err := root.GetProofItems(keylist{absentkey[:]}, 0, nil)
458+
pe, _, _, err := root.GetProofItems(keylist{absentkey[:]}, nil)
459459
if err != nil {
460460
t.Fatal(err)
461461
}
@@ -472,7 +472,7 @@ func TestProofOfAbsenceEdgeCase(t *testing.T) {
472472
root.Commit()
473473

474474
ret, _ := hex.DecodeString("0303030303030303030303030303030303030303030303030303030303030303")
475-
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret}, 0, 0, nil)
475+
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret}, 0, nil)
476476
cfg := GetConfig()
477477
if ok, err := verifyVerkleProof(proof, cs, zis, yis, cfg); !ok || err != nil {
478478
t.Fatal("could not verify proof")
@@ -493,7 +493,7 @@ func TestProofOfAbsenceOtherMultipleLeaves(t *testing.T) {
493493

494494
ret1, _ := hex.DecodeString("0303030303030303030303030303030303030303030303030303030303030300")
495495
ret2, _ := hex.DecodeString("0303030303030303030303030303030303030303030303030303030303030301")
496-
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret1, ret2}, 0, 0, nil)
496+
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret1, ret2}, 0, nil)
497497
cfg := GetConfig()
498498
if ok, err := verifyVerkleProof(proof, cs, zis, yis, cfg); !ok || err != nil {
499499
t.Fatal("could not verify proof")
@@ -555,7 +555,7 @@ func TestProofOfAbsenceNoneMultipleStems(t *testing.T) {
555555

556556
ret1, _ := hex.DecodeString("0303030303030303030303030303030303030303030303030303030303030300")
557557
ret2, _ := hex.DecodeString("0303030303030303030303030303030303030303030303030303030303030200")
558-
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret1, ret2}, 0, 0, nil)
558+
proof, cs, zis, yis, _ := MakeVerkleMultiProof(root, nil, [][]byte{ret1, ret2}, 0, nil)
559559
cfg := GetConfig()
560560
if ok, err := verifyVerkleProof(proof, cs, zis, yis, cfg); !ok || err != nil {
561561
t.Fatal("could not verify proof")
@@ -862,7 +862,7 @@ func TestProofOfExpiryOneLeaf(t *testing.T) {
862862
t.Fatalf("expected commitment to be %x, got %x", init, comm)
863863
}
864864

865-
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, [][]byte{zeroKeyTest}, 0, 0, nil)
865+
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, [][]byte{zeroKeyTest}, 0, nil)
866866
if err != nil {
867867
t.Fatalf("could not make verkle proof: %v", err)
868868
}
@@ -914,7 +914,7 @@ func TestProofOfExpiryMultipleLeaves(t *testing.T) {
914914
t.Fatalf("expected commitment to be %x, got %x", init, comm)
915915
}
916916

917-
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, [][]byte{zeroKeyTest, ffx32KeyTest}, 0, 0, nil)
917+
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, [][]byte{zeroKeyTest, ffx32KeyTest}, 0, nil)
918918
if err != nil {
919919
t.Fatalf("could not make verkle proof: %v", err)
920920
}
@@ -970,7 +970,7 @@ func testSerializeDeserializeProof(t *testing.T, insertKVs map[string][]byte, pr
970970
proveKVs[string(key)] = value
971971
}
972972

973-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, proveKeys, 0, 0, nil)
973+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, proveKeys, 0, nil)
974974

975975
serialized, statediff, err := SerializeProof(proof)
976976
if err != nil {
@@ -1119,7 +1119,7 @@ func TestProofVerificationWithPostState(t *testing.T) { // skipcq: GO-R1005
11191119
}
11201120
postroot.Commit()
11211121

1122-
proof, _, _, _, _ := MakeVerkleMultiProof(root, postroot, data.keystoprove, 0, 0, nil)
1122+
proof, _, _, _, _ := MakeVerkleMultiProof(root, postroot, data.keystoprove, 0, nil)
11231123

11241124
keys:
11251125
for i := range proof.Keys {
@@ -1206,7 +1206,7 @@ func TestProofVerificationPreStateExpiredPostStateResurrected(t *testing.T) {
12061206
t.Fatalf("could not insert key: %v", err)
12071207
}
12081208

1209-
proof, _, _, _, _ := MakeVerkleMultiProof(preRoot, postRoot, keylist{zeroKeyTest}, preEpoch, postEpoch, nil)
1209+
proof, _, _, _, _ := MakeVerkleMultiProof(preRoot, postRoot, keylist{zeroKeyTest}, postEpoch, nil)
12101210

12111211
p, diff, err := SerializeProof(proof)
12121212
if err != nil {
@@ -1259,7 +1259,7 @@ func TestGenerateProofWithOnlyAbsentKeys(t *testing.T) {
12591259

12601260
// Create a proof with a key with the same first byte, but different second byte (i.e: absent).
12611261
absentKey, _ := hex.DecodeString("4010000000000000000000000000000000000000000000000000000000000000")
1262-
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, keylist{absentKey}, 0, 0, nil)
1262+
proof, cis, zis, yis, err := MakeVerkleMultiProof(root, nil, keylist{absentKey}, 0, nil)
12631263
if err != nil {
12641264
t.Fatal(err)
12651265
}
@@ -1284,7 +1284,7 @@ func TestGenerateProofWithOnlyAbsentKeys(t *testing.T) {
12841284
}
12851285

12861286
// From the rebuilt tree, validate the proof.
1287-
pe, _, _, err := GetCommitmentsForMultiproof(droot, keylist{absentKey}, 0, nil)
1287+
pe, _, _, err := GetCommitmentsForMultiproof(droot, keylist{absentKey}, nil)
12881288
if err != nil {
12891289
t.Fatal(err)
12901290
}
@@ -1339,7 +1339,7 @@ func TestDoubleProofOfAbsence(t *testing.T) {
13391339
// in that leaf node. i.e: two proof of absence in the same leaf node with no proof of presence.
13401340
key2, _ := hex.DecodeString("0000000000000000000000000000000000000000000000000000000000000100")
13411341
key3, _ := hex.DecodeString("0000000000000000000000000000000000000000000000000000000000000200")
1342-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keylist{key2, key3}, 0, 0, nil)
1342+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keylist{key2, key3}, 0, nil)
13431343

13441344
serialized, statediff, err := SerializeProof(proof)
13451345
if err != nil {
@@ -1388,7 +1388,7 @@ func TestProveAbsenceInEmptyHalf(t *testing.T) {
13881388

13891389
key2, _ := hex.DecodeString("0000000000000000000000000000000000000000000000000000000000000100")
13901390
key3, _ := hex.DecodeString("0000000000000000000000000000000000000000000000000000000000000000")
1391-
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keylist{key2, key3}, 0, 0, nil)
1391+
proof, _, _, _, _ := MakeVerkleMultiProof(root, nil, keylist{key2, key3}, 0, nil)
13921392

13931393
serialized, statediff, err := SerializeProof(proof)
13941394
if err != nil {

0 commit comments

Comments
 (0)