@aztec/ivc-integration 0.84.0 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/artifacts/app_creator.json +1 -1
  2. package/artifacts/app_reader.json +1 -1
  3. package/artifacts/keys/app_creator.vk.data.json +69 -69
  4. package/artifacts/keys/app_reader.vk.data.json +69 -69
  5. package/artifacts/keys/mock_private_kernel_init.vk.data.json +69 -69
  6. package/artifacts/keys/mock_private_kernel_inner.vk.data.json +69 -69
  7. package/artifacts/keys/mock_private_kernel_reset.vk.data.json +69 -69
  8. package/artifacts/keys/mock_private_kernel_tail.vk.data.json +69 -69
  9. package/artifacts/keys/mock_rollup_base_private.vk.data.json +144 -0
  10. package/artifacts/keys/mock_rollup_base_public.vk.data.d.json.ts +2 -0
  11. package/artifacts/keys/mock_rollup_base_public.vk.data.json +144 -0
  12. package/artifacts/keys/mock_rollup_merge.vk.data.d.json.ts +2 -0
  13. package/artifacts/keys/mock_rollup_merge.vk.data.json +144 -0
  14. package/artifacts/keys/mock_rollup_root.vk.data.d.json.ts +2 -0
  15. package/artifacts/keys/mock_rollup_root.vk.data.json +133 -0
  16. package/artifacts/keys/mock_rollup_root_verifier.sol +1914 -0
  17. package/artifacts/mock_private_kernel_init.json +1 -1
  18. package/artifacts/mock_private_kernel_inner.json +1 -1
  19. package/artifacts/mock_private_kernel_reset.json +1 -1
  20. package/artifacts/mock_private_kernel_tail.json +1 -1
  21. package/artifacts/mock_rollup_base_private.json +1 -0
  22. package/artifacts/mock_rollup_base_public.d.json.ts +3 -0
  23. package/artifacts/mock_rollup_base_public.json +1 -0
  24. package/artifacts/mock_rollup_merge.d.json.ts +3 -0
  25. package/artifacts/mock_rollup_merge.json +1 -0
  26. package/artifacts/mock_rollup_root.d.json.ts +3 -0
  27. package/artifacts/mock_rollup_root.json +1 -0
  28. package/dest/index.d.ts +1 -35
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +1 -227
  31. package/dest/prove_native.d.ts +15 -0
  32. package/dest/prove_native.d.ts.map +1 -0
  33. package/dest/prove_native.js +105 -0
  34. package/dest/prove_wasm.d.ts +2 -0
  35. package/dest/prove_wasm.d.ts.map +1 -0
  36. package/dest/prove_wasm.js +17 -0
  37. package/dest/scripts/generate_ts_from_abi.js +4 -1
  38. package/dest/serve.js +2 -1
  39. package/dest/types/index.d.ts +41 -7
  40. package/dest/types/index.d.ts.map +1 -1
  41. package/dest/types/index.js +29 -2
  42. package/dest/witgen.d.ts +60 -0
  43. package/dest/witgen.d.ts.map +1 -0
  44. package/dest/witgen.js +335 -0
  45. package/package.json +15 -17
  46. package/src/index.ts +1 -260
  47. package/src/prove_native.ts +238 -0
  48. package/src/prove_wasm.ts +24 -0
  49. package/src/scripts/generate_ts_from_abi.ts +4 -1
  50. package/src/serve.ts +2 -1
  51. package/src/types/index.ts +72 -10
  52. package/src/witgen.ts +373 -0
  53. package/artifacts/keys/mock_public_base.vk.data.json +0 -133
  54. package/artifacts/mock_public_base.json +0 -1
  55. /package/artifacts/keys/{mock_public_base.vk.data.d.json.ts → mock_rollup_base_private.vk.data.d.json.ts} +0 -0
  56. /package/artifacts/{mock_public_base.d.json.ts → mock_rollup_base_private.d.json.ts} +0 -0
package/dest/index.d.ts CHANGED
@@ -1,36 +1,2 @@
1
- import type { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS } from '@aztec/constants';
2
- import MockAppCreatorCircuit from '../artifacts/app_creator.json';
3
- import MockAppReaderCircuit from '../artifacts/app_reader.json';
4
- import MockAppCreatorVk from '../artifacts/keys/app_creator.vk.data.json';
5
- import MockAppReaderVk from '../artifacts/keys/app_reader.vk.data.json';
6
- import MockPrivateKernelInitVk from '../artifacts/keys/mock_private_kernel_init.vk.data.json';
7
- import MockPrivateKernelInnerVk from '../artifacts/keys/mock_private_kernel_inner.vk.data.json';
8
- import MockPrivateKernelResetVk from '../artifacts/keys/mock_private_kernel_reset.vk.data.json';
9
- import MockPrivateKernelTailVk from '../artifacts/keys/mock_private_kernel_tail.vk.data.json';
10
- import MockPrivateKernelInitCircuit from '../artifacts/mock_private_kernel_init.json';
11
- import MockPrivateKernelInnerCircuit from '../artifacts/mock_private_kernel_inner.json';
12
- import MockPrivateKernelResetCircuit from '../artifacts/mock_private_kernel_reset.json';
13
- import MockPrivateKernelTailCircuit from '../artifacts/mock_private_kernel_tail.json';
14
- import MockPublicBaseCircuit from '../artifacts/mock_public_base.json';
15
- import type { AppCreatorInputType, AppPublicInputs, AppReaderInputType, FixedLengthArray, KernelPublicInputs, MockPrivateKernelInitInputType, MockPrivateKernelInnerInputType, MockPrivateKernelResetInputType, MockPrivateKernelTailInputType, MockPublicBaseInputType, PrivateKernelPublicInputs, u8 } from './types/index.js';
16
- export { MockAppCreatorCircuit, MockAppReaderCircuit, MockPrivateKernelInitCircuit, MockPrivateKernelInnerCircuit, MockPrivateKernelResetCircuit, MockPrivateKernelTailCircuit, MockPublicBaseCircuit, MockAppCreatorVk, MockAppReaderVk, MockPrivateKernelInitVk, MockPrivateKernelInnerVk, MockPrivateKernelResetVk, MockPrivateKernelTailVk, };
17
- export declare const MOCK_MAX_COMMITMENTS_PER_TX = 4;
18
- export interface WitnessGenResult<PublicInputsType> {
19
- witness: Uint8Array;
20
- publicInputs: PublicInputsType;
21
- }
22
- export declare function witnessGenCreatorAppMockCircuit(args: AppCreatorInputType): Promise<WitnessGenResult<AppPublicInputs>>;
23
- export declare function witnessGenReaderAppMockCircuit(args: AppReaderInputType): Promise<WitnessGenResult<AppPublicInputs>>;
24
- export declare function witnessGenMockPrivateKernelInitCircuit(args: MockPrivateKernelInitInputType): Promise<WitnessGenResult<PrivateKernelPublicInputs>>;
25
- export declare function witnessGenMockPrivateKernelInnerCircuit(args: MockPrivateKernelInnerInputType): Promise<WitnessGenResult<PrivateKernelPublicInputs>>;
26
- export declare function witnessGenMockPrivateKernelResetCircuit(args: MockPrivateKernelResetInputType): Promise<WitnessGenResult<PrivateKernelPublicInputs>>;
27
- export declare function witnessGenMockPrivateKernelTailCircuit(args: MockPrivateKernelTailInputType): Promise<WitnessGenResult<KernelPublicInputs>>;
28
- export declare function witnessGenMockPublicBaseCircuit(args: MockPublicBaseInputType): Promise<WitnessGenResult<u8>>;
29
- export declare function getVkAsFields(vk: {
30
- keyAsBytes: string;
31
- keyAsFields: string[];
32
- }): FixedLengthArray<string, typeof CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS>;
33
- export declare function generate3FunctionTestingIVCStack(): Promise<[string[], Uint8Array[]]>;
34
- export declare function generate6FunctionTestingIVCStack(): Promise<[string[], Uint8Array[]]>;
35
- export declare function proveThenVerifyAztecClient(bytecodes: string[], witnessStack: Uint8Array[], threads?: number): Promise<boolean>;
1
+ export * from './witgen.js';
36
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,kBAAkB,CAAC;AAMrF,OAAO,qBAAqB,MAAM,+BAA+B,CAAyB;AAC1F,OAAO,oBAAoB,MAAM,8BAA8B,CAAyB;AACxF,OAAO,gBAAgB,MAAM,4CAA4C,CAAyB;AAClG,OAAO,eAAe,MAAM,2CAA2C,CAAyB;AAChG,OAAO,uBAAuB,MAAM,yDAAyD,CAAyB;AACtH,OAAO,wBAAwB,MAAM,0DAA0D,CAAyB;AACxH,OAAO,wBAAwB,MAAM,0DAA0D,CAAyB;AACxH,OAAO,uBAAuB,MAAM,yDAAyD,CAAyB;AACtH,OAAO,4BAA4B,MAAM,4CAA4C,CAAyB;AAC9G,OAAO,6BAA6B,MAAM,6CAA6C,CAAyB;AAChH,OAAO,6BAA6B,MAAM,6CAA6C,CAAyB;AAChH,OAAO,4BAA4B,MAAM,4CAA4C,CAAyB;AAC9G,OAAO,qBAAqB,MAAM,oCAAoC,CAAyB;AAC/F,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,EAAE,EACH,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,CAAC;AAMF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C,MAAM,WAAW,gBAAgB,CAAC,gBAAgB;IAChD,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAO5C;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAO5C;AAED,wBAAsB,sCAAsC,CAC1D,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,CAOtD;AAED,wBAAsB,uCAAuC,CAC3D,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,CAOtD;AAED,wBAAsB,uCAAuC,CAC3D,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,CAOtD;AAED,wBAAsB,sCAAsC,CAC1D,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAO/C;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAOlH;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,4CAA4C,CAAC,CAEhF;AAED,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CA+B1F;AAED,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAuD1F;AAMD,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,UAAU,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAalB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/dest/index.js CHANGED
@@ -1,227 +1 @@
1
- import { Noir } from '@aztec/noir-noir_js';
2
- import createDebug from 'debug';
3
- import { ungzip } from 'pako';
4
- import MockAppCreatorCircuit from '../artifacts/app_creator.json' assert {
5
- type: 'json'
6
- };
7
- import MockAppReaderCircuit from '../artifacts/app_reader.json' assert {
8
- type: 'json'
9
- };
10
- import MockAppCreatorVk from '../artifacts/keys/app_creator.vk.data.json' assert {
11
- type: 'json'
12
- };
13
- import MockAppReaderVk from '../artifacts/keys/app_reader.vk.data.json' assert {
14
- type: 'json'
15
- };
16
- import MockPrivateKernelInitVk from '../artifacts/keys/mock_private_kernel_init.vk.data.json' assert {
17
- type: 'json'
18
- };
19
- import MockPrivateKernelInnerVk from '../artifacts/keys/mock_private_kernel_inner.vk.data.json' assert {
20
- type: 'json'
21
- };
22
- import MockPrivateKernelResetVk from '../artifacts/keys/mock_private_kernel_reset.vk.data.json' assert {
23
- type: 'json'
24
- };
25
- import MockPrivateKernelTailVk from '../artifacts/keys/mock_private_kernel_tail.vk.data.json' assert {
26
- type: 'json'
27
- };
28
- import MockPrivateKernelInitCircuit from '../artifacts/mock_private_kernel_init.json' assert {
29
- type: 'json'
30
- };
31
- import MockPrivateKernelInnerCircuit from '../artifacts/mock_private_kernel_inner.json' assert {
32
- type: 'json'
33
- };
34
- import MockPrivateKernelResetCircuit from '../artifacts/mock_private_kernel_reset.json' assert {
35
- type: 'json'
36
- };
37
- import MockPrivateKernelTailCircuit from '../artifacts/mock_private_kernel_tail.json' assert {
38
- type: 'json'
39
- };
40
- import MockPublicBaseCircuit from '../artifacts/mock_public_base.json' assert {
41
- type: 'json'
42
- };
43
- // Re export the circuit jsons
44
- export { MockAppCreatorCircuit, MockAppReaderCircuit, MockPrivateKernelInitCircuit, MockPrivateKernelInnerCircuit, MockPrivateKernelResetCircuit, MockPrivateKernelTailCircuit, MockPublicBaseCircuit, MockAppCreatorVk, MockAppReaderVk, MockPrivateKernelInitVk, MockPrivateKernelInnerVk, MockPrivateKernelResetVk, MockPrivateKernelTailVk };
45
- const logger = createDebug('aztec:ivc-test');
46
- /* eslint-disable camelcase */ export const MOCK_MAX_COMMITMENTS_PER_TX = 4;
47
- function foreignCallHandler() {
48
- throw new Error('Unexpected foreign call');
49
- }
50
- export async function witnessGenCreatorAppMockCircuit(args) {
51
- const program = new Noir(MockAppCreatorCircuit);
52
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
53
- return {
54
- witness,
55
- publicInputs: returnValue
56
- };
57
- }
58
- export async function witnessGenReaderAppMockCircuit(args) {
59
- const program = new Noir(MockAppReaderCircuit);
60
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
61
- return {
62
- witness,
63
- publicInputs: returnValue
64
- };
65
- }
66
- export async function witnessGenMockPrivateKernelInitCircuit(args) {
67
- const program = new Noir(MockPrivateKernelInitCircuit);
68
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
69
- return {
70
- witness,
71
- publicInputs: returnValue
72
- };
73
- }
74
- export async function witnessGenMockPrivateKernelInnerCircuit(args) {
75
- const program = new Noir(MockPrivateKernelInnerCircuit);
76
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
77
- return {
78
- witness,
79
- publicInputs: returnValue
80
- };
81
- }
82
- export async function witnessGenMockPrivateKernelResetCircuit(args) {
83
- const program = new Noir(MockPrivateKernelResetCircuit);
84
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
85
- return {
86
- witness,
87
- publicInputs: returnValue
88
- };
89
- }
90
- export async function witnessGenMockPrivateKernelTailCircuit(args) {
91
- const program = new Noir(MockPrivateKernelTailCircuit);
92
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
93
- return {
94
- witness,
95
- publicInputs: returnValue
96
- };
97
- }
98
- export async function witnessGenMockPublicBaseCircuit(args) {
99
- const program = new Noir(MockPublicBaseCircuit);
100
- const { witness, returnValue } = await program.execute(args, foreignCallHandler);
101
- return {
102
- witness,
103
- publicInputs: returnValue
104
- };
105
- }
106
- export function getVkAsFields(vk) {
107
- return vk.keyAsFields;
108
- }
109
- export async function generate3FunctionTestingIVCStack() {
110
- const tx = {
111
- number_of_calls: '0x1'
112
- };
113
- // Witness gen app and kernels
114
- const appWitnessGenResult = await witnessGenCreatorAppMockCircuit({
115
- commitments_to_create: [
116
- '0x1',
117
- '0x2'
118
- ]
119
- });
120
- logger('generated app mock circuit witness');
121
- const initWitnessGenResult = await witnessGenMockPrivateKernelInitCircuit({
122
- app_inputs: appWitnessGenResult.publicInputs,
123
- tx,
124
- app_vk: getVkAsFields(MockAppCreatorVk)
125
- });
126
- logger('generated mock private kernel init witness');
127
- const tailWitnessGenResult = await witnessGenMockPrivateKernelTailCircuit({
128
- prev_kernel_public_inputs: initWitnessGenResult.publicInputs,
129
- kernel_vk: getVkAsFields(MockPrivateKernelResetVk)
130
- });
131
- logger('generated mock private kernel tail witness');
132
- // Create client IVC proof
133
- const bytecodes = [
134
- MockAppCreatorCircuit.bytecode,
135
- MockPrivateKernelInitCircuit.bytecode,
136
- MockPrivateKernelTailCircuit.bytecode
137
- ];
138
- const witnessStack = [
139
- appWitnessGenResult.witness,
140
- initWitnessGenResult.witness,
141
- tailWitnessGenResult.witness
142
- ];
143
- return [
144
- bytecodes,
145
- witnessStack
146
- ];
147
- }
148
- export async function generate6FunctionTestingIVCStack() {
149
- const tx = {
150
- number_of_calls: '0x2'
151
- };
152
- // Witness gen app and kernels
153
- const creatorAppWitnessGenResult = await witnessGenCreatorAppMockCircuit({
154
- commitments_to_create: [
155
- '0x1',
156
- '0x2'
157
- ]
158
- });
159
- const readerAppWitnessGenResult = await witnessGenReaderAppMockCircuit({
160
- commitments_to_read: [
161
- '0x2',
162
- '0x0'
163
- ]
164
- });
165
- const initWitnessGenResult = await witnessGenMockPrivateKernelInitCircuit({
166
- app_inputs: creatorAppWitnessGenResult.publicInputs,
167
- tx,
168
- app_vk: getVkAsFields(MockAppCreatorVk)
169
- });
170
- const innerWitnessGenResult = await witnessGenMockPrivateKernelInnerCircuit({
171
- prev_kernel_public_inputs: initWitnessGenResult.publicInputs,
172
- app_inputs: readerAppWitnessGenResult.publicInputs,
173
- app_vk: getVkAsFields(MockAppReaderVk),
174
- kernel_vk: getVkAsFields(MockPrivateKernelInitVk)
175
- });
176
- const resetWitnessGenResult = await witnessGenMockPrivateKernelResetCircuit({
177
- prev_kernel_public_inputs: innerWitnessGenResult.publicInputs,
178
- commitment_read_hints: [
179
- '0x1',
180
- MOCK_MAX_COMMITMENTS_PER_TX.toString(),
181
- MOCK_MAX_COMMITMENTS_PER_TX.toString(),
182
- MOCK_MAX_COMMITMENTS_PER_TX.toString()
183
- ],
184
- kernel_vk: getVkAsFields(MockPrivateKernelInnerVk)
185
- });
186
- const tailWitnessGenResult = await witnessGenMockPrivateKernelTailCircuit({
187
- prev_kernel_public_inputs: resetWitnessGenResult.publicInputs,
188
- kernel_vk: getVkAsFields(MockPrivateKernelResetVk)
189
- });
190
- // Create client IVC proof
191
- const bytecodes = [
192
- MockAppCreatorCircuit.bytecode,
193
- MockPrivateKernelInitCircuit.bytecode,
194
- MockAppReaderCircuit.bytecode,
195
- MockPrivateKernelInnerCircuit.bytecode,
196
- MockPrivateKernelResetCircuit.bytecode,
197
- MockPrivateKernelTailCircuit.bytecode
198
- ];
199
- const witnessStack = [
200
- creatorAppWitnessGenResult.witness,
201
- initWitnessGenResult.witness,
202
- readerAppWitnessGenResult.witness,
203
- innerWitnessGenResult.witness,
204
- resetWitnessGenResult.witness,
205
- tailWitnessGenResult.witness
206
- ];
207
- return [
208
- bytecodes,
209
- witnessStack
210
- ];
211
- }
212
- function base64ToUint8Array(base64) {
213
- return Uint8Array.from(atob(base64), (c)=>c.charCodeAt(0));
214
- }
215
- export async function proveThenVerifyAztecClient(bytecodes, witnessStack, threads) {
216
- const { AztecClientBackend } = await import('@aztec/bb.js');
217
- const backend = new AztecClientBackend(bytecodes.map(base64ToUint8Array).map((arr)=>ungzip(arr)), {
218
- threads
219
- });
220
- try {
221
- const [proof, vk] = await backend.prove(witnessStack.map((arr)=>ungzip(arr)));
222
- const verified = await backend.verify(proof, vk);
223
- return verified;
224
- } finally{
225
- await backend.destroy();
226
- }
227
- }
1
+ export * from './witgen.js';
@@ -0,0 +1,15 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
4
+ import type { NoirCompiledCircuit } from '@aztec/stdlib/noir';
5
+ import type { ClientIvcProof } from '@aztec/stdlib/proofs';
6
+ export declare function proveClientIVC(bbBinaryPath: string, bbWorkingDirectory: string, witnessStack: Uint8Array[], bytecodes: string[], logger: Logger): Promise<ClientIvcProof>;
7
+ export declare function proveTube(pathToBB: string, workingDirectory: string, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<535>>;
8
+ export declare function proveRollupHonk(name: string, pathToBB: string, workingDirectory: string, circuit: NoirCompiledCircuit, witness: Uint8Array, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<535>>;
9
+ export declare function proveKeccakHonk(name: string, pathToBB: string, workingDirectory: string, circuit: NoirCompiledCircuit, witness: Uint8Array, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<456>>;
10
+ export declare function proveAvm(avmCircuitInputs: AvmCircuitInputs, workingDirectory: string, logger: Logger): Promise<{
11
+ vk: Fr[];
12
+ proof: Fr[];
13
+ publicInputs: AvmCircuitPublicInputs;
14
+ }>;
15
+ //# sourceMappingURL=prove_native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prove_native.d.ts","sourceRoot":"","sources":["../src/prove_native.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAC;AAOlE,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,UAAU,EAAE,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAyBD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mFAczF;AAoCD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAsB,QAAQ,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,EAAE,EAAE,EAAE,EAAE,CAAC;IACT,KAAK,EAAE,EAAE,EAAE,CAAC;IACZ,YAAY,EAAE,sBAAsB,CAAC;CACtC,CAAC,CAoDD"}
@@ -0,0 +1,105 @@
1
+ import { BB_RESULT, PROOF_FILENAME, PUBLIC_INPUTS_FILENAME, VK_FILENAME, executeBbClientIvcProof, extractVkData, generateAvmProofV2, generateProof, generateTubeProof, readClientIVCProofFromOutputDirectory, readProofAsFields, verifyProof } from '@aztec/bb-prover';
2
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { BufferReader } from '@aztec/foundation/serialize';
5
+ import { makeProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
6
+ import { encode } from '@msgpack/msgpack';
7
+ import * as fs from 'fs/promises';
8
+ import * as path from 'path';
9
+ export async function proveClientIVC(bbBinaryPath, bbWorkingDirectory, witnessStack, bytecodes, logger) {
10
+ await fs.writeFile(path.join(bbWorkingDirectory, 'acir.msgpack'), encode(bytecodes.map((bytecode)=>Buffer.from(bytecode, 'base64'))));
11
+ await fs.writeFile(path.join(bbWorkingDirectory, 'witnesses.msgpack'), encode(witnessStack));
12
+ const provingResult = await executeBbClientIvcProof(bbBinaryPath, bbWorkingDirectory, path.join(bbWorkingDirectory, 'acir.msgpack'), path.join(bbWorkingDirectory, 'witnesses.msgpack'), logger.info, true);
13
+ if (provingResult.status === BB_RESULT.FAILURE) {
14
+ throw new Error(provingResult.reason);
15
+ }
16
+ return readClientIVCProofFromOutputDirectory(bbWorkingDirectory);
17
+ }
18
+ async function verifyProofWithKey(pathToBB, workingDirectory, verificationKey, proof, flavor, logger) {
19
+ const publicInputsFileName = path.join(workingDirectory, PUBLIC_INPUTS_FILENAME);
20
+ const proofFileName = path.join(workingDirectory, PROOF_FILENAME);
21
+ const verificationKeyPath = path.join(workingDirectory, VK_FILENAME);
22
+ // TODO(https://github.com/AztecProtocol/aztec-packages/issues/13189): Put this proof parsing logic in the proof class.
23
+ await fs.writeFile(publicInputsFileName, proof.buffer.slice(0, proof.numPublicInputs * 32));
24
+ await fs.writeFile(proofFileName, proof.buffer.slice(proof.numPublicInputs * 32));
25
+ await fs.writeFile(verificationKeyPath, verificationKey.keyAsBytes);
26
+ const result = await verifyProof(pathToBB, proofFileName, verificationKeyPath, flavor, logger);
27
+ if (result.status === BB_RESULT.FAILURE) {
28
+ throw new Error(`Failed to verify proof from key!`);
29
+ }
30
+ logger.info(`Successfully verified proof from key in ${result.durationMs} ms`);
31
+ }
32
+ export async function proveTube(pathToBB, workingDirectory, logger) {
33
+ const tubeResult = await generateTubeProof(pathToBB, workingDirectory, workingDirectory.concat('/vk'), logger.info);
34
+ if (tubeResult.status != BB_RESULT.SUCCESS) {
35
+ throw new Error('Failed to prove tube');
36
+ }
37
+ const tubeVK = await extractVkData(tubeResult.vkPath);
38
+ const tubeProof = await readProofAsFields(tubeResult.proofPath, tubeVK, TUBE_PROOF_LENGTH, logger);
39
+ // Sanity check the tube proof
40
+ await verifyProofWithKey(pathToBB, workingDirectory, tubeVK, tubeProof.binaryProof, 'ultra_rollup_honk', logger);
41
+ return makeProofAndVerificationKey(tubeProof, tubeVK);
42
+ }
43
+ async function proveRollupCircuit(name, pathToBB, workingDirectory, circuit, witness, logger, flavor, proofLength) {
44
+ await fs.writeFile(path.join(workingDirectory, 'witness.gz'), witness);
45
+ const proofResult = await generateProof(pathToBB, workingDirectory, name, Buffer.from(circuit.bytecode, 'base64'), true, path.join(workingDirectory, 'witness.gz'), flavor, logger.info);
46
+ if (proofResult.status != BB_RESULT.SUCCESS) {
47
+ throw new Error(`Failed to generate proof for ${name} with flavor ${flavor}`);
48
+ }
49
+ const vk = await extractVkData(proofResult.vkPath);
50
+ const proof = await readProofAsFields(proofResult.proofPath, vk, proofLength, logger);
51
+ await verifyProofWithKey(pathToBB, workingDirectory, vk, proof.binaryProof, flavor, logger);
52
+ return makeProofAndVerificationKey(proof, vk);
53
+ }
54
+ export function proveRollupHonk(name, pathToBB, workingDirectory, circuit, witness, logger) {
55
+ return proveRollupCircuit(name, pathToBB, workingDirectory, circuit, witness, logger, 'ultra_rollup_honk', RECURSIVE_ROLLUP_HONK_PROOF_LENGTH);
56
+ }
57
+ export function proveKeccakHonk(name, pathToBB, workingDirectory, circuit, witness, logger) {
58
+ return proveRollupCircuit(name, pathToBB, workingDirectory, circuit, witness, logger, 'ultra_keccak_honk', NESTED_RECURSIVE_PROOF_LENGTH);
59
+ }
60
+ export async function proveAvm(avmCircuitInputs, workingDirectory, logger) {
61
+ // The paths for the barretenberg binary and the write path are hardcoded for now.
62
+ const bbPath = path.resolve('../../barretenberg/cpp/build/bin/bb');
63
+ // Then we prove.
64
+ const proofRes = await generateAvmProofV2(bbPath, workingDirectory, avmCircuitInputs, logger);
65
+ if (proofRes.status === BB_RESULT.FAILURE) {
66
+ throw new Error(`AVM V2 proof generation failed: ${proofRes.reason}`);
67
+ } else if (proofRes.status === BB_RESULT.ALREADY_PRESENT) {
68
+ throw new Error(`AVM V2 proof already exists`);
69
+ }
70
+ const avmProofPath = proofRes.proofPath;
71
+ const avmVkPath = proofRes.vkPath;
72
+ expect(avmProofPath).toBeDefined();
73
+ expect(avmVkPath).toBeDefined();
74
+ // Read the binary proof
75
+ const avmProofBuffer = await fs.readFile(avmProofPath);
76
+ const reader = BufferReader.asReader(avmProofBuffer);
77
+ const proof = [];
78
+ while(!reader.isEmpty()){
79
+ proof.push(Fr.fromBuffer(reader));
80
+ }
81
+ // We extend to a fixed-size padded proof as during development any new AVM circuit column changes the
82
+ // proof length and we do not have a mechanism to feedback a cpp constant to noir/TS.
83
+ // TODO(#13390): Revive a non-padded AVM proof
84
+ while(proof.length < AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED){
85
+ proof.push(new Fr(0));
86
+ }
87
+ // Read the key
88
+ const vkBuffer = await fs.readFile(avmVkPath);
89
+ const vkReader = BufferReader.asReader(vkBuffer);
90
+ const vk = [];
91
+ while(!vkReader.isEmpty()){
92
+ vk.push(Fr.fromBuffer(vkReader));
93
+ }
94
+ // We extend to a fixed-size padded vk as during development any new AVM circuit precomputed
95
+ // column changes the vk length and we do not have a mechanism to feedback a cpp constant to noir/TS.
96
+ // TODO(#13390): Revive a non-padded vk proof
97
+ while(vk.length < AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED){
98
+ vk.push(new Fr(0));
99
+ }
100
+ return {
101
+ proof,
102
+ vk,
103
+ publicInputs: avmCircuitInputs.publicInputs
104
+ };
105
+ }
@@ -0,0 +1,2 @@
1
+ export declare function proveThenVerifyAztecClient(bytecodes: string[], witnessStack: Uint8Array[], threads?: number): Promise<boolean>;
2
+ //# sourceMappingURL=prove_wasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prove_wasm.d.ts","sourceRoot":"","sources":["../src/prove_wasm.ts"],"names":[],"mappings":"AAMA,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,UAAU,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAalB"}
@@ -0,0 +1,17 @@
1
+ import { ungzip } from 'pako';
2
+ function base64ToUint8Array(base64) {
3
+ return Uint8Array.from(atob(base64), (c)=>c.charCodeAt(0));
4
+ }
5
+ export async function proveThenVerifyAztecClient(bytecodes, witnessStack, threads) {
6
+ const { AztecClientBackend } = await import('@aztec/bb.js');
7
+ const backend = new AztecClientBackend(bytecodes.map(base64ToUint8Array).map((arr)=>ungzip(arr)), {
8
+ threads
9
+ });
10
+ try {
11
+ const [proof, vk] = await backend.prove(witnessStack.map((arr)=>ungzip(arr)));
12
+ const verified = await backend.verify(proof, vk);
13
+ return verified;
14
+ } finally{
15
+ await backend.destroy();
16
+ }
17
+ }
@@ -10,7 +10,10 @@ const circuits = [
10
10
  'mock_private_kernel_inner',
11
11
  'mock_private_kernel_reset',
12
12
  'mock_private_kernel_tail',
13
- 'mock_public_base'
13
+ 'mock_rollup_base_public',
14
+ 'mock_rollup_base_private',
15
+ 'mock_rollup_merge',
16
+ 'mock_rollup_root'
14
17
  ];
15
18
  const main = async ()=>{
16
19
  try {
package/dest/serve.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import createDebug from 'debug';
2
- import { generate3FunctionTestingIVCStack, proveThenVerifyAztecClient } from './index.js';
2
+ import { generate3FunctionTestingIVCStack } from './index.js';
3
+ import { proveThenVerifyAztecClient } from './prove_wasm.js';
3
4
  const logger = createDebug('aztec:ivc-test');
4
5
  /* eslint-disable no-console */ // Function to set up the output element and redirect all console output
5
6
  function setupConsoleOutput() {
@@ -5,7 +5,6 @@ export type FixedLengthArray<T, L extends number> = L extends 0 ? never[] : T[]
5
5
  };
6
6
  export type Field = string;
7
7
  export type u32 = string;
8
- export type u8 = string;
9
8
  export type AppPublicInputs = {
10
9
  commitments: FixedLengthArray<Field, 2>;
11
10
  read_requests: FixedLengthArray<Field, 2>;
@@ -21,6 +20,23 @@ export type PrivateKernelPublicInputs = {
21
20
  export type KernelPublicInputs = {
22
21
  commitments: FixedLengthArray<Field, 4>;
23
22
  };
23
+ export type TubeData = {
24
+ public_inputs: KernelPublicInputs;
25
+ proof: FixedLengthArray<Field, 535>;
26
+ vk_data: VerificationKey;
27
+ };
28
+ export type VerificationKey = {
29
+ key: FixedLengthArray<Field, 139>;
30
+ hash: Field;
31
+ };
32
+ export type RollupPublicInputs = {
33
+ accumulated: u32;
34
+ };
35
+ export type PreviousRollupData = {
36
+ base_or_merge_public_inputs: RollupPublicInputs;
37
+ proof: FixedLengthArray<Field, 535>;
38
+ vk: VerificationKey;
39
+ };
24
40
  export type AppCreatorInputType = {
25
41
  commitments_to_create: FixedLengthArray<Field, 2>;
26
42
  };
@@ -59,11 +75,29 @@ export type MockPrivateKernelTailInputType = {
59
75
  };
60
76
  export type MockPrivateKernelTailReturnType = KernelPublicInputs;
61
77
  export declare function MockPrivateKernelTail(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: FixedLengthArray<Field, 143>, MockPrivateKernelTail_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<KernelPublicInputs>;
62
- export type MockPublicBaseInputType = {
63
- verification_key: FixedLengthArray<Field, 86>;
64
- proof: FixedLengthArray<Field, 4154>;
65
- pub_cols_flattened: FixedLengthArray<Field, 2956>;
78
+ export type MockRollupBasePublicInputType = {
79
+ tube_data: TubeData;
80
+ verification_key: FixedLengthArray<Field, 1000>;
81
+ proof: FixedLengthArray<Field, 20000>;
82
+ pub_cols_flattened: FixedLengthArray<Field, 1>;
83
+ };
84
+ export type MockRollupBasePublicReturnType = RollupPublicInputs;
85
+ export declare function MockRollupBasePublic(tube_data: TubeData, verification_key: FixedLengthArray<Field, 1000>, proof: FixedLengthArray<Field, 20000>, pub_cols_flattened: FixedLengthArray<Field, 1>, MockRollupBasePublic_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
86
+ export type MockRollupBasePrivateInputType = {
87
+ tube_data: TubeData;
88
+ };
89
+ export type MockRollupBasePrivateReturnType = RollupPublicInputs;
90
+ export declare function MockRollupBasePrivate(tube_data: TubeData, MockRollupBasePrivate_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
91
+ export type MockRollupMergeInputType = {
92
+ a: PreviousRollupData;
93
+ b: PreviousRollupData;
94
+ };
95
+ export type MockRollupMergeReturnType = RollupPublicInputs;
96
+ export declare function MockRollupMerge(a: PreviousRollupData, b: PreviousRollupData, MockRollupMerge_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
97
+ export type MockRollupRootInputType = {
98
+ a: PreviousRollupData;
99
+ b: PreviousRollupData;
66
100
  };
67
- export type MockPublicBaseReturnType = u8;
68
- export declare function MockPublicBase(verification_key: FixedLengthArray<Field, 86>, proof: FixedLengthArray<Field, 4154>, pub_cols_flattened: FixedLengthArray<Field, 2956>, MockPublicBase_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<u8>;
101
+ export type MockRollupRootReturnType = RollupPublicInputs;
102
+ export declare function MockRollupRoot(a: PreviousRollupData, b: PreviousRollupData, MockRollupRoot_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
69
103
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -55,9 +55,10 @@ export async function MockPrivateKernelTail(prev_kernel_public_inputs, kernel_vk
55
55
  const { returnValue } = await program.execute(args, foreignCallHandler);
56
56
  return returnValue;
57
57
  }
58
- export async function MockPublicBase(verification_key, proof, pub_cols_flattened, MockPublicBase_circuit, foreignCallHandler) {
59
- const program = new Noir(MockPublicBase_circuit);
58
+ export async function MockRollupBasePublic(tube_data, verification_key, proof, pub_cols_flattened, MockRollupBasePublic_circuit, foreignCallHandler) {
59
+ const program = new Noir(MockRollupBasePublic_circuit);
60
60
  const args = {
61
+ tube_data,
61
62
  verification_key,
62
63
  proof,
63
64
  pub_cols_flattened
@@ -65,3 +66,29 @@ export async function MockPublicBase(verification_key, proof, pub_cols_flattened
65
66
  const { returnValue } = await program.execute(args, foreignCallHandler);
66
67
  return returnValue;
67
68
  }
69
+ export async function MockRollupBasePrivate(tube_data, MockRollupBasePrivate_circuit, foreignCallHandler) {
70
+ const program = new Noir(MockRollupBasePrivate_circuit);
71
+ const args = {
72
+ tube_data
73
+ };
74
+ const { returnValue } = await program.execute(args, foreignCallHandler);
75
+ return returnValue;
76
+ }
77
+ export async function MockRollupMerge(a, b, MockRollupMerge_circuit, foreignCallHandler) {
78
+ const program = new Noir(MockRollupMerge_circuit);
79
+ const args = {
80
+ a,
81
+ b
82
+ };
83
+ const { returnValue } = await program.execute(args, foreignCallHandler);
84
+ return returnValue;
85
+ }
86
+ export async function MockRollupRoot(a, b, MockRollupRoot_circuit, foreignCallHandler) {
87
+ const program = new Noir(MockRollupRoot_circuit);
88
+ const args = {
89
+ a,
90
+ b
91
+ };
92
+ const { returnValue } = await program.execute(args, foreignCallHandler);
93
+ return returnValue;
94
+ }