@aztec/bb-prover 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa
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.
- package/dest/avm_proving_tests/avm_proving_tester.d.ts +18 -13
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +192 -111
- package/dest/bb/bb_js_backend.d.ts +196 -0
- package/dest/bb/bb_js_backend.d.ts.map +1 -0
- package/dest/bb/bb_js_backend.js +379 -0
- package/dest/bb/bb_js_debug.d.ts +52 -0
- package/dest/bb/bb_js_debug.d.ts.map +1 -0
- package/dest/bb/bb_js_debug.js +176 -0
- package/dest/bb/cli.d.ts +1 -1
- package/dest/bb/file_names.d.ts +4 -0
- package/dest/bb/file_names.d.ts.map +1 -0
- package/dest/bb/file_names.js +5 -0
- package/dest/bb/index.d.ts +1 -1
- package/dest/config.d.ts +17 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/honk.d.ts +1 -1
- package/dest/index.d.ts +3 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/instrumentation.d.ts +1 -1
- package/dest/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation.js +21 -43
- package/dest/prover/client/bb_private_kernel_prover.d.ts +31 -9
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -1
- package/dest/prover/client/bb_private_kernel_prover.js +107 -14
- package/dest/prover/client/bundle.d.ts +6 -0
- package/dest/prover/client/bundle.d.ts.map +1 -0
- package/dest/prover/client/bundle.js +7 -0
- package/dest/prover/client/lazy.d.ts +6 -0
- package/dest/prover/client/lazy.d.ts.map +1 -0
- package/dest/prover/client/lazy.js +7 -0
- package/dest/prover/index.d.ts +1 -1
- package/dest/prover/proof_utils.d.ts +11 -1
- package/dest/prover/proof_utils.d.ts.map +1 -1
- package/dest/prover/proof_utils.js +25 -2
- package/dest/prover/server/bb_prover.d.ts +9 -22
- package/dest/prover/server/bb_prover.d.ts.map +1 -1
- package/dest/prover/server/bb_prover.js +613 -113
- package/dest/test/delay_values.d.ts +1 -1
- package/dest/test/delay_values.d.ts.map +1 -1
- package/dest/test/delay_values.js +29 -27
- package/dest/test/index.d.ts +2 -1
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +1 -0
- package/dest/test/test_circuit_prover.d.ts +5 -5
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +462 -59
- package/dest/test/test_verifier.d.ts +3 -1
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +15 -0
- package/dest/verification_key/verification_key_data.d.ts +1 -8
- package/dest/verification_key/verification_key_data.d.ts.map +1 -1
- package/dest/verification_key/verification_key_data.js +2 -21
- package/dest/verifier/batch_chonk_verifier.d.ts +56 -0
- package/dest/verifier/batch_chonk_verifier.d.ts.map +1 -0
- package/dest/verifier/batch_chonk_verifier.js +384 -0
- package/dest/verifier/bb_verifier.d.ts +4 -1
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +137 -48
- package/dest/verifier/index.d.ts +2 -1
- package/dest/verifier/index.d.ts.map +1 -1
- package/dest/verifier/index.js +1 -0
- package/dest/verifier/queued_chonk_verifier.d.ts +2 -3
- package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -1
- package/dest/verifier/queued_chonk_verifier.js +15 -45
- package/package.json +26 -23
- package/src/avm_proving_tests/avm_proving_tester.ts +99 -140
- package/src/bb/bb_js_backend.ts +435 -0
- package/src/bb/bb_js_debug.ts +227 -0
- package/src/bb/file_names.ts +6 -0
- package/src/config.ts +16 -0
- package/src/index.ts +2 -1
- package/src/instrumentation.ts +20 -43
- package/src/prover/client/bb_private_kernel_prover.ts +281 -23
- package/src/prover/client/bundle.ts +10 -0
- package/src/prover/client/lazy.ts +10 -0
- package/src/prover/proof_utils.ts +42 -2
- package/src/prover/server/bb_prover.ts +132 -162
- package/src/test/delay_values.ts +31 -27
- package/src/test/index.ts +1 -0
- package/src/test/test_circuit_prover.ts +11 -16
- package/src/test/test_verifier.ts +8 -0
- package/src/verification_key/verification_key_data.ts +2 -27
- package/src/verifier/batch_chonk_verifier.ts +415 -0
- package/src/verifier/bb_verifier.ts +69 -80
- package/src/verifier/index.ts +1 -0
- package/src/verifier/queued_chonk_verifier.ts +15 -47
- package/dest/bb/execute.d.ts +0 -107
- package/dest/bb/execute.d.ts.map +0 -1
- package/dest/bb/execute.js +0 -672
- package/dest/prover/client/native/bb_native_private_kernel_prover.d.ts +0 -23
- package/dest/prover/client/native/bb_native_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/client/native/bb_native_private_kernel_prover.js +0 -66
- package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.d.ts +0 -15
- package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.js +0 -46
- package/dest/prover/client/wasm/bundle.d.ts +0 -6
- package/dest/prover/client/wasm/bundle.d.ts.map +0 -1
- package/dest/prover/client/wasm/bundle.js +0 -8
- package/dest/prover/client/wasm/lazy.d.ts +0 -6
- package/dest/prover/client/wasm/lazy.d.ts.map +0 -1
- package/dest/prover/client/wasm/lazy.js +0 -8
- package/src/bb/execute.ts +0 -709
- package/src/prover/client/native/bb_native_private_kernel_prover.ts +0 -105
- package/src/prover/client/wasm/bb_wasm_private_kernel_prover.ts +0 -58
- package/src/prover/client/wasm/bundle.ts +0 -11
- package/src/prover/client/wasm/lazy.ts +0 -11
|
@@ -1,95 +1,44 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AvmStat } from '@aztec/bb.js';
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
3
4
|
import {
|
|
5
|
+
type MeasuredSimulatorFactory,
|
|
4
6
|
PublicTxSimulationTester,
|
|
5
7
|
SimpleContractDataSource,
|
|
6
8
|
type TestEnqueuedCall,
|
|
7
9
|
type TestExecutorMetrics,
|
|
8
10
|
type TestPrivateInsertions,
|
|
9
11
|
} from '@aztec/simulator/public/fixtures';
|
|
12
|
+
import { AvmSimulatorPool, MeasuredPublicTxSimulator } from '@aztec/simulator/server';
|
|
10
13
|
import type { PublicTxResult } from '@aztec/simulator/server';
|
|
11
|
-
import {
|
|
14
|
+
import { AvmCircuitInputs, AvmCircuitPublicInputs, PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
12
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
16
|
+
import type { Gas } from '@aztec/stdlib/gas';
|
|
13
17
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
14
18
|
import type { GlobalVariables } from '@aztec/stdlib/tx';
|
|
15
19
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
16
20
|
|
|
17
|
-
import fs from 'node:fs/promises';
|
|
18
|
-
import { tmpdir } from 'node:os';
|
|
19
21
|
import path from 'path';
|
|
20
22
|
|
|
21
|
-
import {
|
|
22
|
-
type BBResult,
|
|
23
|
-
type BBSuccess,
|
|
24
|
-
BB_RESULT,
|
|
25
|
-
VK_FILENAME,
|
|
26
|
-
generateAvmProof,
|
|
27
|
-
verifyAvmProof,
|
|
28
|
-
} from '../bb/execute.js';
|
|
23
|
+
import { BBJsFactory } from '../bb/bb_js_backend.js';
|
|
29
24
|
|
|
30
25
|
const BB_PATH = path.resolve('../../barretenberg/cpp/build/bin/bb-avm');
|
|
31
26
|
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.logger = logger;
|
|
42
|
-
this.level = logger.level;
|
|
43
|
-
this.module = logger.module;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
isLevelEnabled(level: LogLevel): boolean {
|
|
47
|
-
return this.logger.isLevelEnabled(level);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
createChild(_childModule: string): Logger {
|
|
51
|
-
throw new Error('Not implemented');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private intercept(level: LogLevel, msg: string, ...args: any[]) {
|
|
55
|
-
this.logs.push(...msg.split('\n'));
|
|
56
|
-
// Forward to the wrapped logger
|
|
57
|
-
(this.logger[level] as LogFn)(msg, ...args);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Log methods for each level
|
|
61
|
-
silent(msg: string, ...args: any[]) {
|
|
62
|
-
this.intercept('silent', msg, ...args);
|
|
63
|
-
}
|
|
64
|
-
fatal(msg: string, ...args: any[]) {
|
|
65
|
-
this.intercept('fatal', msg, ...args);
|
|
66
|
-
}
|
|
67
|
-
warn(msg: string, ...args: any[]) {
|
|
68
|
-
this.intercept('warn', msg, ...args);
|
|
69
|
-
}
|
|
70
|
-
info(msg: string, ...args: any[]) {
|
|
71
|
-
this.intercept('info', msg, ...args);
|
|
72
|
-
}
|
|
73
|
-
verbose(msg: string, ...args: any[]) {
|
|
74
|
-
this.intercept('verbose', msg, ...args);
|
|
75
|
-
}
|
|
76
|
-
debug(msg: string, ...args: any[]) {
|
|
77
|
-
this.intercept('debug', msg, ...args);
|
|
78
|
-
}
|
|
79
|
-
trace(msg: string, ...args: any[]) {
|
|
80
|
-
this.intercept('trace', msg, ...args);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Error log function can be string or Error
|
|
84
|
-
error(err: Error | string, ...args: any[]) {
|
|
85
|
-
const msg = typeof err === 'string' ? err : err.message;
|
|
86
|
-
this.logs.push(msg);
|
|
87
|
-
this.logger.error(msg, err, ...args);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
27
|
+
// Config with collectHints enabled for proving tests
|
|
28
|
+
const provingConfig: PublicSimulatorConfig = PublicSimulatorConfig.from({
|
|
29
|
+
skipFeeEnforcement: false,
|
|
30
|
+
collectCallMetadata: true, // For results.
|
|
31
|
+
collectDebugLogs: false,
|
|
32
|
+
collectHints: true, // Required for proving!
|
|
33
|
+
collectPublicInputs: true, // Required for proving!
|
|
34
|
+
collectStatistics: false,
|
|
35
|
+
});
|
|
90
36
|
|
|
91
37
|
export class AvmProvingTester extends PublicTxSimulationTester {
|
|
92
|
-
private
|
|
38
|
+
private readonly bbJsFactory = new BBJsFactory(BB_PATH, {
|
|
39
|
+
debugDir: process.env.BB_DEBUG_OUTPUT_DIR,
|
|
40
|
+
logger: createLogger('bb-prover:avm-proving-tester'),
|
|
41
|
+
});
|
|
93
42
|
|
|
94
43
|
constructor(
|
|
95
44
|
private checkCircuitOnly: boolean,
|
|
@@ -97,8 +46,9 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
97
46
|
merkleTrees: MerkleTreeWriteOperations,
|
|
98
47
|
globals?: GlobalVariables,
|
|
99
48
|
metrics?: TestExecutorMetrics,
|
|
49
|
+
simulatorFactory?: MeasuredSimulatorFactory,
|
|
100
50
|
) {
|
|
101
|
-
super(merkleTrees, contractDataSource, globals, metrics);
|
|
51
|
+
super(merkleTrees, contractDataSource, globals, metrics, simulatorFactory, provingConfig);
|
|
102
52
|
}
|
|
103
53
|
|
|
104
54
|
static async new(
|
|
@@ -109,56 +59,82 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
109
59
|
) {
|
|
110
60
|
const contractDataSource = new SimpleContractDataSource();
|
|
111
61
|
const merkleTrees = await worldStateService.fork();
|
|
112
|
-
|
|
62
|
+
|
|
63
|
+
const avmSimulator = await AvmSimulatorPool.spawn({ wsdbIpcPath: worldStateService.getIpcPath() });
|
|
64
|
+
const simulatorFactory: MeasuredSimulatorFactory = (mt, cdb, g, m, c) =>
|
|
65
|
+
new MeasuredPublicTxSimulator(avmSimulator, g, cdb, mt.getRevision().forkId, m, c, undefined);
|
|
66
|
+
|
|
67
|
+
const tester = new AvmProvingTester(
|
|
68
|
+
checkCircuitOnly,
|
|
69
|
+
contractDataSource,
|
|
70
|
+
merkleTrees,
|
|
71
|
+
globals,
|
|
72
|
+
metrics,
|
|
73
|
+
simulatorFactory,
|
|
74
|
+
);
|
|
75
|
+
tester.avmSimulator = avmSimulator;
|
|
76
|
+
return tester;
|
|
113
77
|
}
|
|
114
78
|
|
|
115
|
-
async
|
|
116
|
-
|
|
117
|
-
|
|
79
|
+
public override async close(): Promise<void> {
|
|
80
|
+
const results = await Promise.allSettled([super.close(), this.bbJsFactory.destroy()]);
|
|
81
|
+
const errors = results.flatMap(result => (result.status === 'rejected' ? [result.reason] : []));
|
|
82
|
+
if (errors.length > 0) {
|
|
83
|
+
throw new AggregateError(errors, `Failed to close AVM proving tester`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
118
86
|
|
|
119
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Generate an AVM proof (or run check-circuit if configured). Records per-stage timings in the test metrics.
|
|
89
|
+
* Returns the in-memory proof fields on success; throws via jest expect() on failure.
|
|
90
|
+
*/
|
|
91
|
+
async prove(avmCircuitInputs: AvmCircuitInputs, txLabel: string = 'unlabeledTx'): Promise<Uint8Array[]> {
|
|
92
|
+
const inputsBuffer = avmCircuitInputs.serializeWithMessagePack();
|
|
120
93
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
this.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
this.checkCircuitOnly,
|
|
128
|
-
);
|
|
129
|
-
if (proofRes.status === BB_RESULT.FAILURE) {
|
|
130
|
-
this.logger.error(`Proof generation failed: ${proofRes.reason}`);
|
|
94
|
+
if (this.checkCircuitOnly) {
|
|
95
|
+
await using instance = await this.bbJsFactory.getInstance();
|
|
96
|
+
const { passed, stats } = await instance.checkAvmCircuit(inputsBuffer);
|
|
97
|
+
this.recordProverMetrics(stats, txLabel);
|
|
98
|
+
expect(passed).toBe(true);
|
|
99
|
+
return [];
|
|
131
100
|
}
|
|
132
|
-
expect(proofRes.status).toEqual(BB_RESULT.SUCCESS);
|
|
133
101
|
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
// if (match) {
|
|
140
|
-
// traceSizes.push({
|
|
141
|
-
// name: match[1],
|
|
142
|
-
// size: parseInt(match[2]),
|
|
143
|
-
// });
|
|
144
|
-
// }
|
|
145
|
-
// });
|
|
146
|
-
const times: { [key: string]: number } = {};
|
|
147
|
-
logs.forEach(log => {
|
|
148
|
-
const match = log.match(/\b([\w/]+)_ms: (\d+)/);
|
|
149
|
-
if (match) {
|
|
150
|
-
times[match[1]] = parseInt(match[2]);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
102
|
+
await using instance = await this.bbJsFactory.getInstance();
|
|
103
|
+
const { proof, stats } = await instance.generateAvmProof(inputsBuffer);
|
|
104
|
+
this.recordProverMetrics(stats, txLabel);
|
|
105
|
+
return proof;
|
|
106
|
+
}
|
|
153
107
|
|
|
154
|
-
|
|
155
|
-
if (
|
|
156
|
-
|
|
108
|
+
async verify(proof: Uint8Array[], publicInputs: AvmCircuitPublicInputs): Promise<void> {
|
|
109
|
+
if (this.checkCircuitOnly) {
|
|
110
|
+
// Check-circuit did not generate a proof; nothing to verify.
|
|
111
|
+
return;
|
|
157
112
|
}
|
|
113
|
+
const piBuffer = publicInputs.serializeWithMessagePack();
|
|
114
|
+
await using instance = await this.bbJsFactory.getInstance();
|
|
115
|
+
const { verified } = await instance.verifyAvmProof(proof, piBuffer);
|
|
116
|
+
expect(verified).toBe(true);
|
|
117
|
+
}
|
|
158
118
|
|
|
119
|
+
public async proveVerify(avmCircuitInputs: AvmCircuitInputs, txLabel: string = 'unlabeledTx') {
|
|
120
|
+
const proof = await this.prove(avmCircuitInputs, txLabel);
|
|
121
|
+
await this.verify(proof, avmCircuitInputs.publicInputs);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
private recordProverMetrics(stats: AvmStat[], txLabel: string) {
|
|
125
|
+
// Build a lookup keyed on the stage name with the `_ms` suffix stripped, matching the legacy
|
|
126
|
+
// stdout-scraped shape. bb::avm2::Stats::time() stores keys with `_ms` appended.
|
|
127
|
+
const times: { [key: string]: number } = {};
|
|
128
|
+
for (const { name, valueMs } of stats) {
|
|
129
|
+
const key = name.endsWith('_ms') ? name.slice(0, -'_ms'.length) : name;
|
|
130
|
+
times[key] = valueMs;
|
|
131
|
+
}
|
|
132
|
+
if (Object.keys(times).length === 0) {
|
|
133
|
+
throw new Error('AVM response did not contain any proving-stage timings!');
|
|
134
|
+
}
|
|
159
135
|
// Hack to make labels match.
|
|
160
136
|
const txLabelWithCount = `${txLabel}/${this.txCount - 1}`;
|
|
161
|
-
//
|
|
137
|
+
// Cast because TS doesn't realize `metrics` is protected, not private on the parent class.
|
|
162
138
|
(this as any).metrics?.recordProverMetrics(txLabelWithCount, {
|
|
163
139
|
proverSimulationStepMs: times['simulation/all'],
|
|
164
140
|
proverProvingStepMs: times['proving/all'],
|
|
@@ -171,33 +147,6 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
171
147
|
provingLogDerivativeInverseCommitmentsMs: times['prove/log_derivative_inverse_commitments_round'],
|
|
172
148
|
provingWireCommitmentsMs: times['prove/wire_commitments_round'],
|
|
173
149
|
});
|
|
174
|
-
|
|
175
|
-
return proofRes as BBSuccess;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
async verify(proofRes: BBSuccess, publicInputs: AvmCircuitPublicInputs): Promise<BBResult> {
|
|
179
|
-
if (this.checkCircuitOnly) {
|
|
180
|
-
// Skip verification if we are only checking the circuit.
|
|
181
|
-
// Check-circuit does not generate a proof to verify.
|
|
182
|
-
return proofRes;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
return await verifyAvmProof(
|
|
186
|
-
BB_PATH,
|
|
187
|
-
this.bbWorkingDirectory,
|
|
188
|
-
proofRes.proofPath!,
|
|
189
|
-
publicInputs,
|
|
190
|
-
path.join(proofRes.vkDirectoryPath!, VK_FILENAME),
|
|
191
|
-
this.logger,
|
|
192
|
-
);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
public async proveVerify(avmCircuitInputs: AvmCircuitInputs, txLabel: string = 'unlabeledTx') {
|
|
196
|
-
const provingRes = await this.prove(avmCircuitInputs, txLabel);
|
|
197
|
-
expect(provingRes.status).toEqual(BB_RESULT.SUCCESS);
|
|
198
|
-
|
|
199
|
-
const verificationRes = await this.verify(provingRes as BBSuccess, avmCircuitInputs.publicInputs);
|
|
200
|
-
expect(verificationRes.status).toBe(BB_RESULT.SUCCESS);
|
|
201
150
|
}
|
|
202
151
|
|
|
203
152
|
public async simProveVerify(
|
|
@@ -210,7 +159,9 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
210
159
|
privateInsertions?: TestPrivateInsertions,
|
|
211
160
|
txLabel: string = 'unlabeledTx',
|
|
212
161
|
disableRevertCheck: boolean = false,
|
|
162
|
+
gasLimits?: Gas,
|
|
213
163
|
): Promise<PublicTxResult> {
|
|
164
|
+
const simTimer = new Timer();
|
|
214
165
|
const simRes = await this.simulateTx(
|
|
215
166
|
sender,
|
|
216
167
|
setupCalls,
|
|
@@ -219,7 +170,10 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
219
170
|
feePayer,
|
|
220
171
|
privateInsertions,
|
|
221
172
|
txLabel,
|
|
173
|
+
gasLimits,
|
|
222
174
|
);
|
|
175
|
+
const simDuration = simTimer.ms();
|
|
176
|
+
this.logger.info(`Simulation took ${simDuration} ms for tx ${txLabel}`);
|
|
223
177
|
|
|
224
178
|
if (!disableRevertCheck) {
|
|
225
179
|
expect(simRes.revertCode.isOK()).toBe(expectRevert ? false : true);
|
|
@@ -227,7 +181,7 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
227
181
|
|
|
228
182
|
const opString = this.checkCircuitOnly ? 'Check circuit' : 'Proving and verification';
|
|
229
183
|
|
|
230
|
-
const avmCircuitInputs = simRes.
|
|
184
|
+
const avmCircuitInputs = new AvmCircuitInputs(simRes.hints!, simRes.publicInputs!);
|
|
231
185
|
const timer = new Timer();
|
|
232
186
|
await this.proveVerify(avmCircuitInputs, txLabel);
|
|
233
187
|
this.logger.info(`${opString} took ${timer.ms()} ms for tx ${txLabel}`);
|
|
@@ -243,6 +197,7 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
243
197
|
teardownCall?: TestEnqueuedCall,
|
|
244
198
|
feePayer?: AztecAddress,
|
|
245
199
|
privateInsertions?: TestPrivateInsertions,
|
|
200
|
+
gasLimits?: Gas,
|
|
246
201
|
) {
|
|
247
202
|
return await this.simProveVerify(
|
|
248
203
|
sender,
|
|
@@ -254,6 +209,7 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
254
209
|
privateInsertions,
|
|
255
210
|
txLabel,
|
|
256
211
|
true,
|
|
212
|
+
gasLimits,
|
|
257
213
|
);
|
|
258
214
|
}
|
|
259
215
|
|
|
@@ -261,9 +217,10 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
261
217
|
appCall: TestEnqueuedCall,
|
|
262
218
|
expectRevert?: boolean,
|
|
263
219
|
txLabel: string = 'unlabeledTx',
|
|
220
|
+
gasLimits?: Gas,
|
|
264
221
|
) {
|
|
265
222
|
await this.simProveVerify(
|
|
266
|
-
/*sender=*/ AztecAddress.
|
|
223
|
+
/*sender=*/ AztecAddress.fromNumberUnsafe(42),
|
|
267
224
|
/*setupCalls=*/ [],
|
|
268
225
|
[appCall],
|
|
269
226
|
undefined,
|
|
@@ -271,6 +228,8 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
271
228
|
/*feePayer=*/ undefined,
|
|
272
229
|
/*privateInsertions=*/ undefined,
|
|
273
230
|
txLabel,
|
|
231
|
+
/*disableRevertCheck=*/ false,
|
|
232
|
+
gasLimits,
|
|
274
233
|
);
|
|
275
234
|
}
|
|
276
235
|
}
|