Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions src/examples/zkfunction/root.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,33 +34,3 @@ let ok = await main.verify(proof, verificationKey);
console.timeEnd('verify...');

assert(ok, 'proof should verify');

console.log('testing round trips');


ok = await proofRoundTrip(proof).verify(verificationKey);
assert(ok, 'proof should verify');

console.log('verification key round trip...');

ok = await proof.verify(verificationKeyRoundTrip(verificationKey));

assert(ok, 'proof should verify');

function proofRoundTrip(proof: Experimental.KimchiProof): Experimental.KimchiProof {
let json = proof.toJSON();
console.log('proof json:', {
proof: json.proof.slice(0, 10),
publicInputFields: json.publicInputFields,
});
return Experimental.KimchiProof.fromJSON(json);
}

function verificationKeyRoundTrip(
vk: Experimental.KimchiVerificationKey
): Experimental.KimchiVerificationKey {
let json = vk.toString();
console.log('vk string:', json.slice(0, 10));
return Experimental.KimchiVerificationKey.fromString(json);
}

4 changes: 4 additions & 0 deletions src/examples/zkprogram/program.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@ console.log('verifying');
let ok = await verify(result.proof, verificationKey);
console.log('ok', ok);
if (!ok) throw new Error('proof verification failed!');

/**
* 5
*/
14 changes: 7 additions & 7 deletions src/lib/proof-system/zkfunction.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRustConversion } from '../../bindings/crypto/bindings.js';
import { Pickles, Snarky, initializeBindings, wasm, withThreadPool } from '../../bindings.js';
import { getRustConversion } from '../../bindings/crypto/bindings.js';
import { MlFieldArray, MlFieldConstArray } from '../ml/fields.js';
import {
ConstraintSystemSummary,
Expand Down Expand Up @@ -214,9 +214,9 @@ class KimchiProof {
proof: rustProof.serialize(),
publicInputFields: this.publicInputFields.map((f) => f.toString()),
};
}
}

static fromJSON(json: KimchiJsonProof): KimchiProof {
/* static fromJSON(json: KimchiJsonProof): KimchiProof {
const bytes = Uint8Array.from(Buffer.from(json.proof, 'base64'));
const rustProof = wasm.WasmFpProverProof.deserialize(bytes);
const rustConversion = getRustConversion(wasm);
Expand All @@ -225,8 +225,8 @@ class KimchiProof {
);
const publicInputFields = json.publicInputFields.map((s) => Field(s));
return new KimchiProof(proofWithEvalsMl, publicInputFields);
}
} */

/**
* Verifies this proof using the provided verification key.
* @param verificationKey The key to verify against.
Expand Down Expand Up @@ -255,7 +255,7 @@ class KimchiVerificationKey {
constructor(value: Snarky.VerificationKey) {
this.value = value;
}

toString(): string {
const rustConversion = getRustConversion(wasm);
const rustVerifierIndex = rustConversion.fp.verifierIndexToRust(this.value as any);
Expand All @@ -273,7 +273,7 @@ class KimchiVerificationKey {
const rustConversion = getRustConversion(wasm);
const verifierIndexMl: unknown = rustConversion.fp.verifierIndexFromRust(rustVerifierIndex);
return new KimchiVerificationKey(verifierIndexMl);
}
}
}

function mainFromCircuitData<Config extends ZkFunctionConfig>(
Expand Down
2 changes: 1 addition & 1 deletion src/mina
Loading