pragma circom 2.0.0; // SAMPLE ONLY. Written for zk-audit's public sample report; not derived from any client or third-party code. // A toy "vault withdrawal" gate with TWO deliberate bugs (see samples/README.md): // 1. `isBig.out` is assigned with `<--` and never constrained -> under-constrained output // 2. `unused` is an input signal that no constraint touches -> dangling signal template IsBig() { signal input in; signal output out; signal inv; out <-- in > 100 ? 1 : 0; // BUG 1: assignment without a constraint inv <-- in; } template SampleVault() { signal input amount; signal input unused; // BUG 2: never constrained signal output allowed; component isBig = IsBig(); isBig.in <== amount; allowed <== isBig.out; } component main = SampleVault();