@chainsafe/persistent-merkle-tree
Version:
Merkle tree implemented as a persistent datastructure
18 lines • 692 B
JavaScript
// use noble here instead of using hasher variable because this is used inside hasher itself
// we cache zero hashes so performance is not a concern
import { sha256 } from "@noble/hashes/sha256";
// create array of "zero hashes", successively hashed zero chunks
const zeroHashes = [new Uint8Array(32)];
export function zeroHash(depth) {
if (depth >= zeroHashes.length) {
for (let i = zeroHashes.length; i <= depth; i++) {
zeroHashes[i] = sha256
.create()
.update(zeroHashes[i - 1])
.update(zeroHashes[i - 1])
.digest();
}
}
return zeroHashes[depth];
}
//# sourceMappingURL=zeroHash.js.map