Browse Source

Merge pull request #14 from vocdoni/fix/missing-emptyHash-in-snapshottree

Add missing emptyHash in Snapshot Tree
master
arnau 2 years ago
committed by GitHub
parent
commit
f09b0b0392
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions
  1. +1
    -0
      tree.go
  2. +21
    -0
      tree_test.go

+ 1
- 0
tree.go

@ -860,6 +860,7 @@ func (t *Tree) Snapshot(fromRoot []byte) (*Tree, error) {
db: t.db,
maxLevels: t.maxLevels,
snapshotRoot: fromRoot,
emptyHash: t.emptyHash,
hashFunction: t.hashFunction,
dbg: t.dbg,
}, nil

+ 21
- 0
tree_test.go

@ -563,6 +563,27 @@ func TestSnapshot(t *testing.T) {
"1025190963769001718196479367844646783678188389989148142691917685159698888868")
}
func TestGetFromSnapshotExpectArboErrKeyNotFound(t *testing.T) {
c := qt.New(t)
database, err := badgerdb.New(badgerdb.Options{Path: c.TempDir()})
c.Assert(err, qt.IsNil)
tree, err := NewTree(database, 100, HashFunctionPoseidon)
c.Assert(err, qt.IsNil)
defer tree.db.Close() //nolint:errcheck
bLen := tree.HashFunction().Len()
k := BigIntToBytes(bLen, big.NewInt(int64(3)))
root, err := tree.Root()
c.Assert(err, qt.IsNil)
tree, err = tree.Snapshot(root)
c.Assert(err, qt.IsNil)
_, _, err = tree.Get(k)
c.Assert(err, qt.Equals, ErrKeyNotFound) // and not equal to db.ErrKeyNotFound
}
func BenchmarkAdd(b *testing.B) {
bLen := 32 // for both Poseidon & Sha256
// prepare inputs

Loading…
Cancel
Save