Skip to content

Commit c7ce7d1

Browse files
committed
Add assertions on verify to zkprogram examples
1 parent c3b47fa commit c7ce7d1

File tree

8 files changed

+23
-9
lines changed

8 files changed

+23
-9
lines changed

src/examples/zkprogram/hash-chain.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ perfHashChain.end();
6565
perfHashChain.start('verify', 'chain');
6666
const isValid = await hashChain.verify(proof);
6767
perfHashChain.end();
68-
assert(isValid, 'Proof invalid');
68+
assert(isValid, 'Proof invalid!');
6969

7070
// check that the output is correct
7171
let z = Array.from({ length: n }, () => 0).reduce((y) => Poseidon.hash([y]), x);

src/examples/zkprogram/mutual-recursion.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ perfAdd.start('verify', 'performAddition');
7676
const validBaseCase = await verify(baseCase, addVk);
7777
perfAdd.end();
7878
console.log('ok?', validBaseCase);
79+
if (!validBaseCase) throw new Error('proof verification failed!');
7980

8081
perfMultiply.start('prove', 'performMultiplication');
8182
const { proof: multiply1 } = await multiply.performMultiplication(Field(3), baseCase);
@@ -85,6 +86,7 @@ perfMultiply.start('verify', 'performMultiplication');
8586
const validMultiplication = await verify(multiply1, multiplyVk);
8687
perfMultiply.end();
8788
console.log('ok?', validMultiplication);
89+
if (!validMultiplication) throw new Error('proof verification failed!');
8890

8991
console.log('Proving second (recursive) addition');
9092
const { proof: add2 } = await add.performAddition(
@@ -95,5 +97,6 @@ const { proof: add2 } = await add.performAddition(
9597

9698
const validAddition = await verify(add2, addVk);
9799
console.log('ok?', validAddition);
100+
if (!validAddition) throw new Error('proof verification failed!');
98101

99102
console.log('Result (should be 19):', add2.publicOutput.toBigInt());

src/examples/zkprogram/program-with-chunking.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ let { proof } = await MyProgram.baseCase(Field(0));
3737
perf.end();
3838

3939
perf.start('verify', 'baseCase');
40-
let ok = await MyProgram.verify(proof);
40+
let isValid = await MyProgram.verify(proof);
4141
perf.end();
4242

43-
console.log('ok?', ok);
43+
console.log('isValid?', isValid);
44+
if (!isValid) throw new Error('proof verification failed!');

src/examples/zkprogram/program-with-input.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SelfProof, Field, ZkProgram, verify, Proof, JsonProof, Provable } from 'o1js';
1+
import { Field, JsonProof, Proof, Provable, SelfProof, ZkProgram, verify } from 'o1js';
22

33
let MyProgram = ZkProgram({
44
name: 'example-with-input',
@@ -43,10 +43,12 @@ proof satisfies Proof<Field, void>;
4343
console.log('verify...');
4444
let ok = await verify(proof.toJSON(), verificationKey);
4545
console.log('ok?', ok);
46+
if (!ok) throw new Error('proof verification failed!');
4647

4748
console.log('verify alternative...');
4849
ok = await MyProgram.verify(proof);
4950
console.log('ok (alternative)?', ok);
51+
if (!ok) throw new Error('proof verification failed!');
5052

5153
console.log('proving step 1...');
5254
let { proof: proof1 } = await MyProgram.inductiveCase(1, proof);
@@ -55,19 +57,21 @@ proof1 = await testJsonRoundtrip(MyProgram.Proof, proof1);
5557
console.log('verify...');
5658
ok = await verify(proof1, verificationKey);
5759
console.log('ok?', ok);
60+
if (!ok) throw new Error('proof verification failed!');
5861

5962
console.log('verify alternative...');
6063
ok = await MyProgram.verify(proof1);
6164
console.log('ok (alternative)?', ok);
65+
if (!ok) throw new Error('proof verification failed!');
6266

6367
console.log('proving step 2...');
6468
let { proof: proof2 } = await MyProgram.inductiveCase(2, proof1);
6569
proof2 = await testJsonRoundtrip(MyProgram.Proof, proof2);
6670

6771
console.log('verify...');
6872
ok = await verify(proof2.toJSON(), verificationKey);
69-
7073
console.log('ok?', ok && proof2.publicInput.toString() === '2');
74+
if (!ok) throw new Error('proof verification failed!');
7175

7276
function testJsonRoundtrip<
7377
P extends Proof<any, any>,

src/examples/zkprogram/program.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ console.timeEnd('proving');
2626
console.log('verifying');
2727
let ok = await verify(result.proof, verificationKey);
2828
console.log('ok', ok);
29+
if (!ok) throw new Error('proof verification failed!');

src/examples/zkprogram/runtime-table/run.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@ let { proof } = await PayrollRuntimeTableZkProgram.verifyPayroll(
2727
perfPayroll.end();
2828

2929
perfPayroll.start('verify', 'verifyPayroll');
30-
await verify(proof, verificationKey);
30+
let isValid = await verify(proof, verificationKey);
3131
perfPayroll.end();
32+
33+
if (!isValid) throw new Error('proof verification failed!');

src/examples/zkprogram/side-loading/run.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ perfMain.end();
5959
perfMain.start('verify', 'validateUsingTree');
6060
const validProof2 = await verify(proof2, mainVk);
6161
perfMain.end();
62-
console.log('ok?', validProof2);
62+
console.log('isValid2? ', validProof2);
63+
if (!validProof2) throw new Error('proof verification failed!');
6364

6465
console.log('\nProving different method of child program');
6566
perfSide.start('prove', 'assertAndAdd');
@@ -76,4 +77,5 @@ const { proof: proof3 } = await mainProgram.validateUsingTree(
7677
);
7778

7879
const validProof3 = await verify(proof3, mainVk);
79-
console.log('ok?', validProof3);
80+
console.log('isValid3? ', validProof3);
81+
if (!validProof3) throw new Error('proof verification failed!');

src/examples/zkprogram/small-big/run.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ const { proof: proofBig } = await BigProgram.combinedHash(proofSmall.proof);
2828
perfBig.end();
2929

3030
perfBig.start('verify', 'combinedHash');
31-
await verify(proofBig, verificationKeyBig);
31+
let isValid = await verify(proofBig, verificationKeyBig);
3232
perfBig.end();
3333

34+
if (!isValid) throw new Error('proof verification failed!');
3435
console.log('Final Digest: ', proofBig.publicOutput.toHex());

0 commit comments

Comments
 (0)