@aztec/bb-prover 0.0.0-test.1 → 0.0.1-commit.017a351

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 (130) hide show
  1. package/dest/avm_proving_tests/avm_proving_tester.d.ts +21 -20
  2. package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
  3. package/dest/avm_proving_tests/avm_proving_tester.js +196 -87
  4. package/dest/bb/bb_js_backend.d.ts +196 -0
  5. package/dest/bb/bb_js_backend.d.ts.map +1 -0
  6. package/dest/bb/bb_js_backend.js +379 -0
  7. package/dest/bb/bb_js_debug.d.ts +52 -0
  8. package/dest/bb/bb_js_debug.d.ts.map +1 -0
  9. package/dest/bb/bb_js_debug.js +176 -0
  10. package/dest/bb/cli.d.ts +1 -1
  11. package/dest/bb/file_names.d.ts +4 -0
  12. package/dest/bb/file_names.d.ts.map +1 -0
  13. package/dest/bb/file_names.js +5 -0
  14. package/dest/bb/index.d.ts +1 -1
  15. package/dest/config.d.ts +19 -1
  16. package/dest/config.d.ts.map +1 -1
  17. package/dest/honk.d.ts +3 -3
  18. package/dest/honk.d.ts.map +1 -1
  19. package/dest/honk.js +3 -2
  20. package/dest/index.d.ts +4 -2
  21. package/dest/index.d.ts.map +1 -1
  22. package/dest/index.js +3 -1
  23. package/dest/instrumentation.d.ts +3 -3
  24. package/dest/instrumentation.d.ts.map +1 -1
  25. package/dest/instrumentation.js +22 -46
  26. package/dest/prover/client/bb_private_kernel_prover.d.ts +46 -0
  27. package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -0
  28. package/dest/prover/client/bb_private_kernel_prover.js +177 -0
  29. package/dest/prover/client/bundle.d.ts +6 -0
  30. package/dest/prover/client/bundle.d.ts.map +1 -0
  31. package/dest/prover/client/bundle.js +7 -0
  32. package/dest/prover/client/lazy.d.ts +6 -0
  33. package/dest/prover/client/lazy.d.ts.map +1 -0
  34. package/dest/prover/client/lazy.js +7 -0
  35. package/dest/prover/index.d.ts +3 -4
  36. package/dest/prover/index.d.ts.map +1 -1
  37. package/dest/prover/index.js +2 -3
  38. package/dest/prover/proof_utils.d.ts +29 -0
  39. package/dest/prover/proof_utils.d.ts.map +1 -0
  40. package/dest/prover/proof_utils.js +95 -0
  41. package/dest/prover/server/bb_prover.d.ts +96 -0
  42. package/dest/prover/server/bb_prover.d.ts.map +1 -0
  43. package/dest/prover/server/bb_prover.js +841 -0
  44. package/dest/test/delay_values.d.ts +1 -1
  45. package/dest/test/delay_values.d.ts.map +1 -1
  46. package/dest/test/delay_values.js +37 -23
  47. package/dest/test/index.d.ts +2 -1
  48. package/dest/test/index.d.ts.map +1 -1
  49. package/dest/test/index.js +1 -0
  50. package/dest/test/test_circuit_prover.d.ts +27 -36
  51. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  52. package/dest/test/test_circuit_prover.js +517 -88
  53. package/dest/test/test_verifier.d.ts +6 -3
  54. package/dest/test/test_verifier.d.ts.map +1 -1
  55. package/dest/test/test_verifier.js +23 -1
  56. package/dest/verification_key/verification_key_data.d.ts +1 -2
  57. package/dest/verification_key/verification_key_data.d.ts.map +1 -1
  58. package/dest/verification_key/verification_key_data.js +9 -34
  59. package/dest/verifier/batch_chonk_verifier.d.ts +56 -0
  60. package/dest/verifier/batch_chonk_verifier.d.ts.map +1 -0
  61. package/dest/verifier/batch_chonk_verifier.js +384 -0
  62. package/dest/verifier/bb_verifier.d.ts +9 -5
  63. package/dest/verifier/bb_verifier.d.ts.map +1 -1
  64. package/dest/verifier/bb_verifier.js +156 -49
  65. package/dest/verifier/index.d.ts +3 -1
  66. package/dest/verifier/index.d.ts.map +1 -1
  67. package/dest/verifier/index.js +2 -0
  68. package/dest/verifier/queued_chonk_verifier.d.ts +14 -0
  69. package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -0
  70. package/dest/verifier/queued_chonk_verifier.js +102 -0
  71. package/package.json +38 -34
  72. package/src/avm_proving_tests/avm_proving_tester.ts +163 -126
  73. package/src/bb/bb_js_backend.ts +435 -0
  74. package/src/bb/bb_js_debug.ts +227 -0
  75. package/src/bb/file_names.ts +6 -0
  76. package/src/config.ts +18 -0
  77. package/src/honk.ts +3 -2
  78. package/src/index.ts +3 -1
  79. package/src/instrumentation.ts +22 -47
  80. package/src/prover/client/bb_private_kernel_prover.ts +423 -0
  81. package/src/prover/client/bundle.ts +10 -0
  82. package/src/prover/client/lazy.ts +10 -0
  83. package/src/prover/index.ts +2 -3
  84. package/src/prover/proof_utils.ts +155 -0
  85. package/src/prover/server/bb_prover.ts +713 -0
  86. package/src/test/delay_values.ts +38 -22
  87. package/src/test/index.ts +1 -0
  88. package/src/test/test_circuit_prover.ts +264 -154
  89. package/src/test/test_verifier.ts +15 -3
  90. package/src/verification_key/verification_key_data.ts +11 -31
  91. package/src/verifier/batch_chonk_verifier.ts +415 -0
  92. package/src/verifier/bb_verifier.ts +93 -76
  93. package/src/verifier/index.ts +2 -0
  94. package/src/verifier/queued_chonk_verifier.ts +108 -0
  95. package/dest/bb/execute.d.ts +0 -140
  96. package/dest/bb/execute.d.ts.map +0 -1
  97. package/dest/bb/execute.js +0 -780
  98. package/dest/prover/bb_native_private_kernel_prover.d.ts +0 -25
  99. package/dest/prover/bb_native_private_kernel_prover.d.ts.map +0 -1
  100. package/dest/prover/bb_native_private_kernel_prover.js +0 -69
  101. package/dest/prover/bb_private_kernel_prover.d.ts +0 -32
  102. package/dest/prover/bb_private_kernel_prover.d.ts.map +0 -1
  103. package/dest/prover/bb_private_kernel_prover.js +0 -109
  104. package/dest/prover/bb_prover.d.ts +0 -120
  105. package/dest/prover/bb_prover.d.ts.map +0 -1
  106. package/dest/prover/bb_prover.js +0 -423
  107. package/dest/prover/client_ivc_proof_utils.d.ts +0 -25
  108. package/dest/prover/client_ivc_proof_utils.d.ts.map +0 -1
  109. package/dest/prover/client_ivc_proof_utils.js +0 -43
  110. package/dest/stats.d.ts +0 -5
  111. package/dest/stats.d.ts.map +0 -1
  112. package/dest/stats.js +0 -62
  113. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +0 -17
  114. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
  115. package/dest/wasm/bb_wasm_private_kernel_prover.js +0 -46
  116. package/dest/wasm/bundle.d.ts +0 -6
  117. package/dest/wasm/bundle.d.ts.map +0 -1
  118. package/dest/wasm/bundle.js +0 -8
  119. package/dest/wasm/lazy.d.ts +0 -6
  120. package/dest/wasm/lazy.d.ts.map +0 -1
  121. package/dest/wasm/lazy.js +0 -8
  122. package/src/bb/execute.ts +0 -853
  123. package/src/prover/bb_native_private_kernel_prover.ts +0 -119
  124. package/src/prover/bb_private_kernel_prover.ts +0 -249
  125. package/src/prover/bb_prover.ts +0 -781
  126. package/src/prover/client_ivc_proof_utils.ts +0 -42
  127. package/src/stats.ts +0 -64
  128. package/src/wasm/bb_wasm_private_kernel_prover.ts +0 -55
  129. package/src/wasm/bundle.ts +0 -11
  130. package/src/wasm/lazy.ts +0 -11
@@ -1,119 +0,0 @@
1
- import { runInDirectory } from '@aztec/foundation/fs';
2
- import { type Logger, createLogger } from '@aztec/foundation/log';
3
- import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
4
- import type { SimulationProvider } from '@aztec/simulator/server';
5
- import type { ClientIvcProof } from '@aztec/stdlib/proofs';
6
-
7
- import { encode } from '@msgpack/msgpack';
8
- import { serializeWitness } from '@noir-lang/noirc_abi';
9
- import type { WitnessMap } from '@noir-lang/types';
10
- import { promises as fs } from 'fs';
11
- import path from 'path';
12
-
13
- import { BB_RESULT, computeGateCountForCircuit, executeBbClientIvcProof } from '../bb/execute.js';
14
- import type { BBConfig } from '../config.js';
15
- import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
16
- import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
17
-
18
- /**
19
- * This proof creator implementation uses the native bb binary.
20
- */
21
- export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
22
- private constructor(
23
- private bbBinaryPath: string,
24
- private bbWorkingDirectory: string,
25
- private skipCleanup: boolean,
26
- protected override simulationProvider: SimulationProvider,
27
- protected override log = createLogger('bb-prover:native'),
28
- ) {
29
- super(new BundleArtifactProvider(), simulationProvider, log);
30
- }
31
-
32
- public static async new(config: BBConfig, simulationProvider: SimulationProvider, log?: Logger) {
33
- await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
34
- return new BBNativePrivateKernelProver(
35
- config.bbBinaryPath,
36
- config.bbWorkingDirectory,
37
- !!config.bbSkipCleanup,
38
- simulationProvider,
39
- log,
40
- );
41
- }
42
-
43
- private async _createClientIvcProof(
44
- directory: string,
45
- acirs: Buffer[],
46
- witnessStack: WitnessMap[],
47
- ): Promise<ClientIvcProof> {
48
- // TODO(#7371): Longer term we won't use this hacked together msgpack format
49
- // and instead properly create the bincode serialization from rust
50
- await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
51
- await fs.writeFile(
52
- path.join(directory, 'witnesses.msgpack'),
53
- encode(witnessStack.map(map => serializeWitness(map))),
54
- );
55
- const provingResult = await executeBbClientIvcProof(
56
- this.bbBinaryPath,
57
- directory,
58
- path.join(directory, 'acir.msgpack'),
59
- path.join(directory, 'witnesses.msgpack'),
60
- this.log.info,
61
- );
62
-
63
- if (provingResult.status === BB_RESULT.FAILURE) {
64
- this.log.error(`Failed to generate client ivc proof`);
65
- throw new Error(provingResult.reason);
66
- }
67
-
68
- const proof = await readFromOutputDirectory(directory);
69
-
70
- this.log.info(`Generated IVC proof`, {
71
- duration: provingResult.durationMs,
72
- eventName: 'circuit-proving',
73
- });
74
-
75
- return proof;
76
- }
77
-
78
- public override async createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof> {
79
- this.log.info(`Generating Client IVC proof`);
80
- const operation = async (directory: string) => {
81
- return await this._createClientIvcProof(directory, acirs, witnessStack);
82
- };
83
- return await this.runInDirectory(operation);
84
- }
85
-
86
- public override async computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number> {
87
- const logFunction = (message: string) => {
88
- this.log.debug(`$bb gates ${circuitName} - ${message}`);
89
- };
90
-
91
- const result = await computeGateCountForCircuit(
92
- this.bbBinaryPath,
93
- this.bbWorkingDirectory,
94
- circuitName,
95
- bytecode,
96
- 'mega_honk',
97
- logFunction,
98
- );
99
- if (result.status === BB_RESULT.FAILURE) {
100
- throw new Error(result.reason);
101
- }
102
-
103
- return result.circuitSize as number;
104
- }
105
-
106
- private runInDirectory<T>(fn: (dir: string) => Promise<T>) {
107
- const log = this.log;
108
- return runInDirectory(
109
- this.bbWorkingDirectory,
110
- (dir: string) =>
111
- fn(dir).catch(err => {
112
- log.error(`Error running operation at ${dir}: ${err}`);
113
- throw err;
114
- }),
115
- this.skipCleanup,
116
- this.log,
117
- );
118
- }
119
- }
@@ -1,249 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { Timer } from '@aztec/foundation/timer';
3
- import {
4
- convertPrivateKernelInitInputsToWitnessMapWithAbi,
5
- convertPrivateKernelInitOutputsFromWitnessMapWithAbi,
6
- convertPrivateKernelInnerInputsToWitnessMapWithAbi,
7
- convertPrivateKernelInnerOutputsFromWitnessMapWithAbi,
8
- convertPrivateKernelResetInputsToWitnessMapWithAbi,
9
- convertPrivateKernelResetOutputsFromWitnessMapWithAbi,
10
- convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
11
- convertPrivateKernelTailInputsToWitnessMapWithAbi,
12
- convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
13
- convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi,
14
- getPrivateKernelResetArtifactName,
15
- updateResetCircuitSampleInputs,
16
- } from '@aztec/noir-protocol-circuits-types/client';
17
- import type { ArtifactProvider, ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
18
- import type { SimulationProvider } from '@aztec/simulator/client';
19
- import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
20
- import type {
21
- PrivateKernelCircuitPublicInputs,
22
- PrivateKernelInitCircuitPrivateInputs,
23
- PrivateKernelInnerCircuitPrivateInputs,
24
- PrivateKernelResetCircuitPrivateInputs,
25
- PrivateKernelSimulateOutput,
26
- PrivateKernelTailCircuitPrivateInputs,
27
- PrivateKernelTailCircuitPublicInputs,
28
- } from '@aztec/stdlib/kernel';
29
- import type { NoirCompiledCircuit } from '@aztec/stdlib/noir';
30
- import type { ClientIvcProof } from '@aztec/stdlib/proofs';
31
- import type { CircuitSimulationStats, CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
32
-
33
- import type { Abi, WitnessMap } from '@noir-lang/types';
34
-
35
- import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
36
-
37
- export abstract class BBPrivateKernelProver implements PrivateKernelProver {
38
- constructor(
39
- protected artifactProvider: ArtifactProvider,
40
- protected simulationProvider: SimulationProvider,
41
- protected log = createLogger('bb-prover'),
42
- ) {}
43
-
44
- public async generateInitOutput(
45
- inputs: PrivateKernelInitCircuitPrivateInputs,
46
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
47
- return await this.generateCircuitOutput(
48
- inputs,
49
- 'PrivateKernelInitArtifact',
50
- convertPrivateKernelInitInputsToWitnessMapWithAbi,
51
- convertPrivateKernelInitOutputsFromWitnessMapWithAbi,
52
- );
53
- }
54
-
55
- public async simulateInit(
56
- inputs: PrivateKernelInitCircuitPrivateInputs,
57
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
58
- return await this.simulateCircuitOutput(
59
- inputs,
60
- 'PrivateKernelInitArtifact',
61
- convertPrivateKernelInitInputsToWitnessMapWithAbi,
62
- convertPrivateKernelInitOutputsFromWitnessMapWithAbi,
63
- );
64
- }
65
-
66
- public async generateInnerOutput(
67
- inputs: PrivateKernelInnerCircuitPrivateInputs,
68
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
69
- return await this.generateCircuitOutput(
70
- inputs,
71
- 'PrivateKernelInnerArtifact',
72
- convertPrivateKernelInnerInputsToWitnessMapWithAbi,
73
- convertPrivateKernelInnerOutputsFromWitnessMapWithAbi,
74
- );
75
- }
76
-
77
- public async simulateInner(
78
- inputs: PrivateKernelInnerCircuitPrivateInputs,
79
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
80
- return await this.simulateCircuitOutput(
81
- inputs,
82
- 'PrivateKernelInnerArtifact',
83
- convertPrivateKernelInnerInputsToWitnessMapWithAbi,
84
- convertPrivateKernelInnerOutputsFromWitnessMapWithAbi,
85
- );
86
- }
87
-
88
- public async generateResetOutput(
89
- inputs: PrivateKernelResetCircuitPrivateInputs,
90
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
91
- const variantInputs = inputs.trimToSizes();
92
- const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
93
- return await this.generateCircuitOutput(
94
- variantInputs,
95
- artifactName,
96
- convertPrivateKernelResetInputsToWitnessMapWithAbi,
97
- convertPrivateKernelResetOutputsFromWitnessMapWithAbi,
98
- );
99
- }
100
-
101
- public async simulateReset(
102
- inputs: PrivateKernelResetCircuitPrivateInputs,
103
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
104
- updateResetCircuitSampleInputs(inputs);
105
- const variantInputs = inputs.trimToSizes();
106
- const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
107
- return await this.simulateCircuitOutput(
108
- variantInputs,
109
- artifactName,
110
- convertPrivateKernelResetInputsToWitnessMapWithAbi,
111
- convertPrivateKernelResetOutputsFromWitnessMapWithAbi,
112
- );
113
- }
114
-
115
- public async generateTailOutput(
116
- inputs: PrivateKernelTailCircuitPrivateInputs,
117
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>> {
118
- if (!inputs.isForPublic()) {
119
- return await this.generateCircuitOutput(
120
- inputs,
121
- 'PrivateKernelTailArtifact',
122
- convertPrivateKernelTailInputsToWitnessMapWithAbi,
123
- convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
124
- );
125
- }
126
- return await this.generateCircuitOutput(
127
- inputs,
128
- 'PrivateKernelTailToPublicArtifact',
129
- convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi,
130
- convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
131
- );
132
- }
133
-
134
- public async simulateTail(
135
- inputs: PrivateKernelTailCircuitPrivateInputs,
136
- ): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>> {
137
- if (!inputs.isForPublic()) {
138
- return await this.simulateCircuitOutput(
139
- inputs,
140
- 'PrivateKernelTailArtifact',
141
- convertPrivateKernelTailInputsToWitnessMapWithAbi,
142
- convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
143
- );
144
- }
145
- return await this.simulateCircuitOutput(
146
- inputs,
147
- 'PrivateKernelTailToPublicArtifact',
148
- convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi,
149
- convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
150
- );
151
- }
152
-
153
- public async simulateCircuitOutput<
154
- I extends { toBuffer: () => Buffer },
155
- O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs,
156
- >(
157
- inputs: I,
158
- circuitType: ClientProtocolArtifact,
159
- convertInputs: (inputs: I, abi: Abi) => WitnessMap,
160
- convertOutputs: (outputs: WitnessMap, abi: Abi) => O,
161
- ): Promise<PrivateKernelSimulateOutput<O>> {
162
- const compiledCircuit: NoirCompiledCircuit = await this.artifactProvider.getSimulatedClientCircuitArtifactByName(
163
- circuitType,
164
- );
165
-
166
- const witnessMap = convertInputs(inputs, compiledCircuit.abi);
167
-
168
- const timer = new Timer();
169
- const outputWitness = await this.simulationProvider
170
- .executeProtocolCircuit(witnessMap, compiledCircuit)
171
- .catch((err: Error) => {
172
- this.log.debug(`Failed to simulate ${circuitType}`, {
173
- circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
174
- error: err,
175
- });
176
- throw err;
177
- });
178
- const output = convertOutputs(outputWitness, compiledCircuit.abi);
179
-
180
- this.log.debug(`Simulated ${circuitType}`, {
181
- eventName: 'circuit-simulation',
182
- circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
183
- duration: timer.ms(),
184
- inputSize: inputs.toBuffer().length,
185
- outputSize: output.toBuffer().length,
186
- } satisfies CircuitSimulationStats);
187
-
188
- return this.makeEmptyKernelSimulateOutput<O>(output, circuitType);
189
- }
190
-
191
- public async generateCircuitOutput<
192
- I extends { toBuffer: () => Buffer },
193
- O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs,
194
- >(
195
- inputs: I,
196
- circuitType: ClientProtocolArtifact,
197
- convertInputs: (inputs: I, abi: Abi) => WitnessMap,
198
- convertOutputs: (outputs: WitnessMap, abi: Abi) => O,
199
- ): Promise<PrivateKernelSimulateOutput<O>> {
200
- this.log.debug(`Generating witness for ${circuitType}`);
201
- const compiledCircuit: NoirCompiledCircuit = await this.artifactProvider.getClientCircuitArtifactByName(
202
- circuitType,
203
- );
204
-
205
- const witnessMap = convertInputs(inputs, compiledCircuit.abi);
206
- const timer = new Timer();
207
- const outputWitness = await this.simulationProvider.executeProtocolCircuit(witnessMap, compiledCircuit);
208
- const output = convertOutputs(outputWitness, compiledCircuit.abi);
209
-
210
- this.log.debug(`Generated witness for ${circuitType}`, {
211
- eventName: 'circuit-witness-generation',
212
- circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
213
- duration: timer.ms(),
214
- inputSize: inputs.toBuffer().length,
215
- outputSize: output.toBuffer().length,
216
- } satisfies CircuitWitnessGenerationStats);
217
-
218
- const verificationKey = (await this.artifactProvider.getCircuitVkByName(circuitType)).keyAsFields;
219
- const bytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
220
-
221
- const kernelOutput: PrivateKernelSimulateOutput<O> = {
222
- publicInputs: output,
223
- verificationKey,
224
- outputWitness,
225
- bytecode,
226
- };
227
- return kernelOutput;
228
- }
229
-
230
- public async makeEmptyKernelSimulateOutput<
231
- PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs,
232
- >(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact) {
233
- const kernelProofOutput: PrivateKernelSimulateOutput<PublicInputsType> = {
234
- publicInputs,
235
- verificationKey: (await this.artifactProvider.getCircuitVkByName(circuitType)).keyAsFields,
236
- outputWitness: new Map(),
237
- bytecode: Buffer.from([]),
238
- };
239
- return kernelProofOutput;
240
- }
241
-
242
- public createClientIvcProof(_acirs: Buffer[], _witnessStack: WitnessMap[]): Promise<ClientIvcProof> {
243
- throw new Error('Not implemented');
244
- }
245
-
246
- public computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
247
- throw new Error('Not implemented');
248
- }
249
- }