Browse Source

Merge pull request #11 from iden3/feature/upd-circomproof

Add lvl on proof siblings for circom compatibility
feature/fixroot
Eduard S 4 years ago
committed by GitHub
parent
commit
4a8397a456
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 6 deletions
  1. +1
    -1
      merkletree.go
  2. +7
    -5
      merkletree_test.go

+ 1
- 1
merkletree.go

@ -843,7 +843,7 @@ func (p *Proof) AllSiblings() []*Hash {
// CircomSiblingsFromSiblings returns the full siblings compatible with circom // CircomSiblingsFromSiblings returns the full siblings compatible with circom
func CircomSiblingsFromSiblings(siblings []*Hash, levels int) []*Hash { func CircomSiblingsFromSiblings(siblings []*Hash, levels int) []*Hash {
// Add the rest of empty levels to the siblings // Add the rest of empty levels to the siblings
for i := len(siblings); i < levels; i++ {
for i := len(siblings); i < levels+1; i++ {
siblings = append(siblings, &HashZero) siblings = append(siblings, &HashZero)
} }
return siblings return siblings

+ 7
- 5
merkletree_test.go

@ -624,7 +624,8 @@ func TestAddAndGetCircomProof(t *testing.T) {
assert.Equal(t, "1", cpp.NewKey.String()) assert.Equal(t, "1", cpp.NewKey.String())
assert.Equal(t, "2", cpp.NewValue.String()) assert.Equal(t, "2", cpp.NewValue.String())
assert.Equal(t, true, cpp.IsOld0) assert.Equal(t, true, cpp.IsOld0)
assert.Equal(t, "[0 0 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, "[0 0 0 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, mt.maxLevels+1, len(cpp.Siblings))
cpp, err = mt.AddAndGetCircomProof(big.NewInt(33), big.NewInt(44)) cpp, err = mt.AddAndGetCircomProof(big.NewInt(33), big.NewInt(44))
assert.Nil(t, err) assert.Nil(t, err)
@ -635,7 +636,8 @@ func TestAddAndGetCircomProof(t *testing.T) {
assert.Equal(t, "33", cpp.NewKey.String()) assert.Equal(t, "33", cpp.NewKey.String())
assert.Equal(t, "44", cpp.NewValue.String()) assert.Equal(t, "44", cpp.NewValue.String())
assert.Equal(t, false, cpp.IsOld0) assert.Equal(t, false, cpp.IsOld0)
assert.Equal(t, "[0 0 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, "[0 0 0 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, mt.maxLevels+1, len(cpp.Siblings))
cpp, err = mt.AddAndGetCircomProof(big.NewInt(55), big.NewInt(66)) cpp, err = mt.AddAndGetCircomProof(big.NewInt(55), big.NewInt(66))
assert.Nil(t, err) assert.Nil(t, err)
@ -646,8 +648,8 @@ func TestAddAndGetCircomProof(t *testing.T) {
assert.Equal(t, "55", cpp.NewKey.String()) assert.Equal(t, "55", cpp.NewKey.String())
assert.Equal(t, "66", cpp.NewValue.String()) assert.Equal(t, "66", cpp.NewValue.String())
assert.Equal(t, true, cpp.IsOld0) assert.Equal(t, true, cpp.IsOld0)
assert.Equal(t, "[0 42948778... 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
// fmt.Println(cpp)
assert.Equal(t, "[0 42948778... 0 0 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, mt.maxLevels+1, len(cpp.Siblings))
} }
func TestUpdateCircomProcessorProof(t *testing.T) { func TestUpdateCircomProcessorProof(t *testing.T) {
@ -675,7 +677,7 @@ func TestUpdateCircomProcessorProof(t *testing.T) {
assert.Equal(t, "10", cpp.NewKey.String()) assert.Equal(t, "10", cpp.NewKey.String())
assert.Equal(t, "1024", cpp.NewValue.String()) assert.Equal(t, "1024", cpp.NewValue.String())
assert.Equal(t, false, cpp.IsOld0) assert.Equal(t, false, cpp.IsOld0)
assert.Equal(t, "[19625419... 46910949... 18399594... 20473908... 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
assert.Equal(t, "[19625419... 46910949... 18399594... 20473908... 0 0 0 0 0 0 0]", fmt.Sprintf("%v", cpp.Siblings))
} }
func TestTypesMarshalers(t *testing.T) { func TestTypesMarshalers(t *testing.T) {

Loading…
Cancel
Save