Skip to content

Commit

Permalink
tighten types and logic
Browse files Browse the repository at this point in the history
  • Loading branch information
mitschabaude committed Sep 24, 2024
1 parent 1b377fe commit 190e7e2
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions src/lib/proof-system/zkprogram.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,13 +161,13 @@ const FeatureFlags = {
};

function createProgramState() {
let methodCache: Map<string, Provable<any>> = new Map();
let methodCache: Map<string, unknown> = new Map();

return {
setAuxiliaryOutput(value: Provable<any>, methodName: string) {
setAuxiliaryOutput(value: unknown, methodName: string) {
methodCache.set(methodName, value);
},
getAuxiliaryOutput(methodName: string): Provable<any> {
getAuxiliaryOutput(methodName: string): unknown {
let entry = methodCache.get(methodName);
if (entry === undefined)
throw Error(`Auxiliary value for method ${methodName} not defined`);
Expand Down Expand Up @@ -797,10 +797,9 @@ function ZkProgram<

let auxiliaryOutput;
if (auxiliaryOutputExists) {
let cachedAuxiliaryValue = programState.getAuxiliaryOutput(
auxiliaryOutput = programState.getAuxiliaryOutput(
methodIntfs[i].methodName
);
auxiliaryOutput = auxiliaryType?.fromValue(cachedAuxiliaryValue);

programState.reset(methodIntfs[i].methodName);
}
Expand Down Expand Up @@ -1306,10 +1305,19 @@ function picklesRuleFromFunction(
? publicOutputType.toFields(result.publicOutput)
: [];

if (auxiliaryType?.sizeInFields() !== 0) {
if (
state !== undefined &&
auxiliaryType !== undefined &&
auxiliaryType.sizeInFields() !== 0
) {
Provable.asProver(() => {
state?.setAuxiliaryOutput(
Provable.toConstant(auxiliaryType!, result.auxiliaryOutput),
let { auxiliaryOutput } = result;
assert(
auxiliaryOutput !== undefined,
`${proofSystemTag.name}.${methodName}(): Auxiliary output is undefined even though the method declares it.`
);
state.setAuxiliaryOutput(
Provable.toConstant(auxiliaryType, auxiliaryOutput),
methodName
);
});
Expand Down

0 comments on commit 190e7e2

Please sign in to comment.