UNPKG

o1js

Version:

TypeScript framework for zk-SNARKs and zkApps

37 lines (25 loc) 935 B
import { Field, MerkleMap } from 'o1js'; describe('Merkle Map', () => { it('set and get a value from a key', () => { const map = new MerkleMap(); const key = Field.random(); const value = Field.random(); map.set(key, value); expect(map.get(key).equals(value).toBoolean()); }); it('check merkle map witness computes the correct root and key', () => { const map = new MerkleMap(); const key = Field.random(); const value = Field.random(); map.set(key, value); const witness = map.getWitness(key); const emptyMap = new MerkleMap(); const [emptyLeafWitnessRoot, witnessKey] = witness.computeRootAndKey(Field(0)); const [witnessRoot, _] = witness.computeRootAndKey(value); expect( emptyLeafWitnessRoot.equals(emptyMap.getRoot()).toBoolean() && witnessKey.equals(key).toBoolean() && witnessRoot.equals(map.getRoot()).toBoolean() ); }); });