@lodestar/utils
Version:
Utilities required across multiple lodestar packages
21 lines • 728 B
JavaScript
import { digest, digest64 } from "@chainsafe/as-sha256";
export function hash(...inputs) {
return digest(Buffer.concat(inputs));
}
/**
* Verify that the given ``leaf`` is on the merkle branch ``proof``
* starting with the given ``root``.
*/
export function verifyMerkleBranch(leaf, proof, depth, index, root) {
let value = leaf;
for (let i = 0; i < depth; i++) {
if (Math.floor(index / 2 ** i) % 2) {
value = digest64(Buffer.concat([proof[i], value]));
}
else {
value = digest64(Buffer.concat([value, proof[i]]));
}
}
return Buffer.from(value.buffer, value.byteOffset, value.byteLength).equals(root);
}
//# sourceMappingURL=verifyMerkleBranch.js.map