Skip to content

Commit eee030e

Browse files
committed
Made zero generation more efficient
1 parent 6671e34 commit eee030e

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

packages/common/src/trees/sparse/RollupMerkleTree.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,14 @@ export function createMerkleTree(height: number): AbstractMerkleTreeClass {
144144
return zeroes;
145145
}
146146

147-
const zero = generateZeroes();
147+
let zeroCache: bigint[] | undefined = undefined;
148+
149+
function getZeroes() {
150+
if (zeroCache === undefined) {
151+
zeroCache = generateZeroes();
152+
}
153+
return zeroCache;
154+
}
148155

149156
/**
150157
* The {@link RollupMerkleWitness} class defines a circuit-compatible base class
@@ -186,6 +193,9 @@ export function createMerkleTree(height: number): AbstractMerkleTreeClass {
186193
leafIndex: Field,
187194
leaf: Field
188195
): [Field, RollupMerkleWitness] {
196+
// This won't generate any constraints, since it's purely a computation on constants
197+
const zero = getZeroes();
198+
189199
if (zero.length === 0) {
190200
throw new Error("Zeroes not initialized");
191201
}

0 commit comments

Comments
 (0)