diff --git a/src/bindings b/src/bindings index 3638778cd8..d7b42632f8 160000 --- a/src/bindings +++ b/src/bindings @@ -1 +1 @@ -Subproject commit 3638778cd85fdd3557b3105b1a01ac37a1d14e76 +Subproject commit d7b42632f84d6a1be0d76a7123ac0f28ba3c9143 diff --git a/src/examples/regression_test.json b/src/examples/regression_test.json index 185c3587c5..2c4c40213b 100644 --- a/src/examples/regression_test.json +++ b/src/examples/regression_test.json @@ -24,8 +24,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "6235569185635640833932576386990892260375247071853836634968380882772603318579" + "data": "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", + "hash": "2813935477567471911945472912135723666086926604613380953939219591854886442388" } }, "Membership_": { @@ -45,8 +45,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "21626935841946969396598336167792008866778777536507453599404925359123159705288" + "data": "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", + "hash": "28812212964470135900836892492131087173481318173911627862116629714967585797668" } }, "HelloWorld": { @@ -58,8 +58,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "1015869372846204133465531462288627798644635800689076080684824030551074019663" + "data": "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", + "hash": "7104833979409889865960701411974743820397841506973575156047462011089691815858" } }, "TokenContract": { @@ -103,8 +103,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "21630042125850434950922095772260357643997445059823266286200646331115508179564" + "data": "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", + "hash": "689185501864261322326027342060319856720005989089582548285103739463232853275" } }, "Dex": { @@ -132,8 +132,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "10506060145601858848190306690853453910537144254678559383269285587430746940235" + "data": "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", + "hash": "11406029703152671354609825171246156694243044087115277799444503126064262770438" } }, "Group Primitive": { @@ -165,4 +165,4 @@ "hash": "" } } -} \ No newline at end of file +} diff --git a/src/lib/proof_system.ts b/src/lib/proof_system.ts index 2b13a320e6..36cb0e154f 100644 --- a/src/lib/proof_system.ts +++ b/src/lib/proof_system.ts @@ -204,6 +204,7 @@ function ZkProgram< Types[I] >; }; + overrideWrapDomain?: 0 | 1 | 2; } ): { name: string; @@ -246,10 +247,7 @@ function ZkProgram< sortMethodArguments('program', key, methods[key].privateInputs, SelfProof) ); let methodFunctions = keys.map((key) => methods[key].method); - let maxProofsVerified = methodIntfs.reduce( - (acc, { proofArgs }) => Math.max(acc, proofArgs.length), - 0 - ) as any as 0 | 1 | 2; + let maxProofsVerified = getMaxProofsVerified(methodIntfs); let compileOutput: | { @@ -267,7 +265,8 @@ function ZkProgram< publicOutputType, methodIntfs, methodFunctions, - selfTag + selfTag, + config.overrideWrapDomain ); compileOutput = { provers, verify }; return { verificationKey: verificationKey.data }; @@ -498,12 +497,16 @@ type MethodInterface = { returnType?: Provable; }; +// reasonable default choice for `overrideWrapDomain` +const maxProofsToWrapDomain = { 0: 0, 1: 1, 2: 1 } as const; + async function compileProgram( publicInputType: ProvablePure, publicOutputType: ProvablePure, methodIntfs: MethodInterface[], methods: ((...args: any) => void)[], - proofSystemTag: { name: string } + proofSystemTag: { name: string }, + overrideWrapDomain?: 0 | 1 | 2 ) { let rules = methodIntfs.map((methodEntry, i) => picklesRuleFromFunction( @@ -514,6 +517,9 @@ async function compileProgram( methodEntry ) ); + let maxProofs = getMaxProofsVerified(methodIntfs); + overrideWrapDomain ??= maxProofsToWrapDomain[maxProofs]; + let { verificationKey, provers, verify, tag } = await prettifyStacktracePromise( withThreadPool(async () => { @@ -523,6 +529,7 @@ async function compileProgram( result = Pickles.compile(MlArray.to(rules), { publicInputSize: publicInputType.sizeInFields(), publicOutputSize: publicOutputType.sizeInFields(), + overrideWrapDomain, }); } finally { snarkContext.leave(id); @@ -773,6 +780,13 @@ function getStatementType< }; } +function getMaxProofsVerified(methodIntfs: MethodInterface[]) { + return methodIntfs.reduce( + (acc, { proofArgs }) => Math.max(acc, proofArgs.length), + 0 + ) as any as 0 | 1 | 2; +} + function fromFieldVars(type: ProvablePure, fields: MlFieldArray) { return type.fromFields(MlFieldArray.from(fields)); } diff --git a/src/snarky.d.ts b/src/snarky.d.ts index 4367c32169..e23ce0e918 100644 --- a/src/snarky.d.ts +++ b/src/snarky.d.ts @@ -537,7 +537,11 @@ declare const Pickles: { */ compile: ( rules: MlArray, - signature: { publicInputSize: number; publicOutputSize: number } + signature: { + publicInputSize: number; + publicOutputSize: number; + overrideWrapDomain?: 0 | 1 | 2; + } ) => { provers: MlArray; verify: (