feat: added body masking template

This commit is contained in:
shreyas-londhe
2024-07-13 16:59:22 +02:00
parent b48152e26c
commit 116d8f9295
3 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
pragma circom 2.1.6;
template BodyMasker(maxBodyLength) {
signal input body[maxBodyLength];
signal input mask[maxBodyLength];
signal output masked_body[maxBodyLength];
for (var i = 0; i < maxBodyLength; i++) {
masked_body[i] <== body[i] * mask[i];
}
}

View File

@@ -0,0 +1,30 @@
import { wasm as wasm_tester } from "circom_tester";
import path from "path";
describe("BodyMasker Circuit", () => {
let circuit: any;
beforeAll(async () => {
circuit = await wasm_tester(
path.join(__dirname, "./test-circuits/body-masker-test.circom"),
{
recompile: true,
include: path.join(__dirname, "../../../node_modules"),
output: path.join(__dirname, "./compiled-test-circuits"),
}
);
});
it("should mask the body correctly", async () => {
const input = {
body: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
mask: [1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
};
const witness = await circuit.calculateWitness(input);
await circuit.checkConstraints(witness);
await circuit.assertOut(witness, {
masked_body: [1, 0, 3, 0, 5, 0, 7, 0, 9, 0],
});
});
});

View File

@@ -0,0 +1,5 @@
pragma circom 2.1.6;
include "../../helpers/body-masker.circom";
component main = BodyMasker(10);