@aztec/bb-prover 0.0.0-test.0 → 0.0.1-commit.0208eb9
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 +14 -18
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +146 -79
- package/dest/bb/cli.d.ts +1 -1
- package/dest/bb/execute.d.ts +17 -50
- package/dest/bb/execute.d.ts.map +1 -1
- package/dest/bb/execute.js +145 -278
- package/dest/bb/index.d.ts +1 -1
- package/dest/config.d.ts +3 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/honk.d.ts +3 -3
- package/dest/honk.d.ts.map +1 -1
- package/dest/honk.js +3 -2
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/instrumentation.d.ts +3 -3
- package/dest/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation.js +11 -43
- package/dest/prover/client/bb_private_kernel_prover.d.ts +38 -0
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/{bb_private_kernel_prover.js → client/bb_private_kernel_prover.js} +53 -21
- 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 +3 -4
- package/dest/prover/index.d.ts.map +1 -1
- package/dest/prover/index.js +2 -3
- package/dest/prover/proof_utils.d.ts +19 -0
- package/dest/prover/proof_utils.d.ts.map +1 -0
- package/dest/prover/proof_utils.js +72 -0
- package/dest/prover/server/bb_prover.d.ts +97 -0
- package/dest/prover/server/bb_prover.d.ts.map +1 -0
- package/dest/prover/server/bb_prover.js +712 -0
- 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 +37 -23
- 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 +27 -36
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +517 -88
- package/dest/test/test_verifier.d.ts +6 -3
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +23 -1
- package/dest/verification_key/verification_key_data.d.ts +1 -2
- package/dest/verification_key/verification_key_data.d.ts.map +1 -1
- package/dest/verification_key/verification_key_data.js +9 -34
- package/dest/verifier/bb_verifier.d.ts +6 -5
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +45 -27
- 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 +15 -0
- package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -0
- package/dest/verifier/queued_chonk_verifier.js +101 -0
- package/package.json +35 -33
- package/src/avm_proving_tests/avm_proving_tester.ts +223 -113
- package/src/bb/execute.ts +116 -291
- package/src/config.ts +2 -0
- package/src/honk.ts +3 -2
- package/src/index.ts +1 -0
- package/src/instrumentation.ts +10 -43
- package/src/prover/{bb_private_kernel_prover.ts → client/bb_private_kernel_prover.ts} +94 -33
- package/src/prover/client/bundle.ts +10 -0
- package/src/prover/client/lazy.ts +10 -0
- package/src/prover/index.ts +2 -3
- package/src/prover/proof_utils.ts +115 -0
- package/src/prover/server/bb_prover.ts +718 -0
- package/src/test/delay_values.ts +38 -22
- package/src/test/index.ts +1 -0
- package/src/test/test_circuit_prover.ts +264 -154
- package/src/test/test_verifier.ts +15 -3
- package/src/verification_key/verification_key_data.ts +11 -31
- package/src/verifier/bb_verifier.ts +62 -35
- package/src/verifier/index.ts +1 -0
- package/src/verifier/queued_chonk_verifier.ts +109 -0
- package/dest/prover/bb_native_private_kernel_prover.d.ts +0 -25
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_native_private_kernel_prover.js +0 -69
- package/dest/prover/bb_private_kernel_prover.d.ts +0 -32
- package/dest/prover/bb_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_prover.d.ts +0 -120
- package/dest/prover/bb_prover.d.ts.map +0 -1
- package/dest/prover/bb_prover.js +0 -423
- package/dest/prover/client_ivc_proof_utils.d.ts +0 -25
- package/dest/prover/client_ivc_proof_utils.d.ts.map +0 -1
- package/dest/prover/client_ivc_proof_utils.js +0 -43
- package/dest/stats.d.ts +0 -5
- package/dest/stats.d.ts.map +0 -1
- package/dest/stats.js +0 -62
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +0 -17
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
- package/dest/wasm/bb_wasm_private_kernel_prover.js +0 -46
- package/dest/wasm/bundle.d.ts +0 -6
- package/dest/wasm/bundle.d.ts.map +0 -1
- package/dest/wasm/bundle.js +0 -8
- package/dest/wasm/lazy.d.ts +0 -6
- package/dest/wasm/lazy.d.ts.map +0 -1
- package/dest/wasm/lazy.js +0 -8
- package/src/prover/bb_native_private_kernel_prover.ts +0 -119
- package/src/prover/bb_prover.ts +0 -781
- package/src/prover/client_ivc_proof_utils.ts +0 -42
- package/src/stats.ts +0 -64
- package/src/wasm/bb_wasm_private_kernel_prover.ts +0 -55
- package/src/wasm/bundle.ts +0 -11
- package/src/wasm/lazy.ts +0 -11
|
@@ -1,78 +1,204 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import type { LogFn, LogLevel, Logger } from '@aztec/foundation/log';
|
|
2
|
+
import { Timer } from '@aztec/foundation/timer';
|
|
3
|
+
import {
|
|
4
|
+
PublicTxSimulationTester,
|
|
5
|
+
SimpleContractDataSource,
|
|
6
|
+
type TestEnqueuedCall,
|
|
7
|
+
type TestExecutorMetrics,
|
|
8
|
+
type TestPrivateInsertions,
|
|
9
|
+
} from '@aztec/simulator/public/fixtures';
|
|
10
|
+
import type { PublicTxResult } from '@aztec/simulator/server';
|
|
11
|
+
import { AvmCircuitInputs, AvmCircuitPublicInputs, PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
4
12
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
13
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
6
|
-
import {
|
|
7
|
-
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
14
|
+
import type { GlobalVariables } from '@aztec/stdlib/tx';
|
|
8
15
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
9
16
|
|
|
10
17
|
import fs from 'node:fs/promises';
|
|
11
18
|
import { tmpdir } from 'node:os';
|
|
12
19
|
import path from 'path';
|
|
13
20
|
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
import { type BBResult, type BBSuccess, BB_RESULT, generateAvmProof, verifyAvmProof } from '../bb/execute.js';
|
|
22
|
+
|
|
23
|
+
const BB_PATH = path.resolve('../../barretenberg/cpp/build/bin/bb-avm');
|
|
24
|
+
|
|
25
|
+
// An InterceptingLogger that records all log messages and forwards them to a wrapped logger.
|
|
26
|
+
class InterceptingLogger implements Logger {
|
|
27
|
+
public readonly logs: string[] = [];
|
|
28
|
+
public level: LogLevel;
|
|
29
|
+
public module: string;
|
|
30
|
+
|
|
31
|
+
private logger: Logger;
|
|
32
|
+
|
|
33
|
+
constructor(logger: Logger) {
|
|
34
|
+
this.logger = logger;
|
|
35
|
+
this.level = logger.level;
|
|
36
|
+
this.module = logger.module;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
isLevelEnabled(level: LogLevel): boolean {
|
|
40
|
+
return this.logger.isLevelEnabled(level);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
createChild(_childModule: string): Logger {
|
|
44
|
+
throw new Error('Not implemented');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getBindings() {
|
|
48
|
+
return this.logger.getBindings();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
private intercept(level: LogLevel, msg: string, ...args: any[]) {
|
|
52
|
+
this.logs.push(...msg.split('\n'));
|
|
53
|
+
// Forward to the wrapped logger
|
|
54
|
+
(this.logger[level] as LogFn)(msg, ...args);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Log methods for each level
|
|
58
|
+
silent(msg: string, ...args: any[]) {
|
|
59
|
+
this.intercept('silent', msg, ...args);
|
|
60
|
+
}
|
|
61
|
+
fatal(msg: string, ...args: any[]) {
|
|
62
|
+
this.intercept('fatal', msg, ...args);
|
|
63
|
+
}
|
|
64
|
+
warn(msg: string, ...args: any[]) {
|
|
65
|
+
this.intercept('warn', msg, ...args);
|
|
66
|
+
}
|
|
67
|
+
info(msg: string, ...args: any[]) {
|
|
68
|
+
this.intercept('info', msg, ...args);
|
|
69
|
+
}
|
|
70
|
+
verbose(msg: string, ...args: any[]) {
|
|
71
|
+
this.intercept('verbose', msg, ...args);
|
|
72
|
+
}
|
|
73
|
+
debug(msg: string, ...args: any[]) {
|
|
74
|
+
this.intercept('debug', msg, ...args);
|
|
75
|
+
}
|
|
76
|
+
trace(msg: string, ...args: any[]) {
|
|
77
|
+
this.intercept('trace', msg, ...args);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Error log function can be string or Error
|
|
81
|
+
error(err: Error | string, ...args: any[]) {
|
|
82
|
+
const msg = typeof err === 'string' ? err : err.message;
|
|
83
|
+
this.logs.push(msg);
|
|
84
|
+
this.logger.error(msg, err, ...args);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Config with collectHints enabled for proving tests
|
|
89
|
+
const provingConfig: PublicSimulatorConfig = PublicSimulatorConfig.from({
|
|
90
|
+
skipFeeEnforcement: false,
|
|
91
|
+
collectCallMetadata: true, // For results.
|
|
92
|
+
collectDebugLogs: false,
|
|
93
|
+
collectHints: true, // Required for proving!
|
|
94
|
+
collectPublicInputs: true, // Required for proving!
|
|
95
|
+
collectStatistics: false,
|
|
96
|
+
});
|
|
26
97
|
|
|
27
98
|
export class AvmProvingTester extends PublicTxSimulationTester {
|
|
99
|
+
private bbWorkingDirectory: string = '';
|
|
100
|
+
|
|
28
101
|
constructor(
|
|
29
|
-
private bbWorkingDirectory: string,
|
|
30
102
|
private checkCircuitOnly: boolean,
|
|
31
|
-
worldStateDB: WorldStateDB,
|
|
32
103
|
contractDataSource: SimpleContractDataSource,
|
|
33
104
|
merkleTrees: MerkleTreeWriteOperations,
|
|
105
|
+
globals?: GlobalVariables,
|
|
106
|
+
metrics?: TestExecutorMetrics,
|
|
34
107
|
) {
|
|
35
|
-
|
|
108
|
+
// simulator factory is undefined because for proving, we use the default C++ simulator
|
|
109
|
+
super(merkleTrees, contractDataSource, globals, metrics, /*simulatorFactory=*/ undefined, provingConfig);
|
|
36
110
|
}
|
|
37
111
|
|
|
38
|
-
static
|
|
39
|
-
|
|
40
|
-
|
|
112
|
+
static async new(
|
|
113
|
+
worldStateService: NativeWorldStateService, // make sure to close this later
|
|
114
|
+
checkCircuitOnly: boolean = false,
|
|
115
|
+
globals?: GlobalVariables,
|
|
116
|
+
metrics?: TestExecutorMetrics,
|
|
117
|
+
) {
|
|
41
118
|
const contractDataSource = new SimpleContractDataSource();
|
|
42
|
-
const merkleTrees = await
|
|
43
|
-
|
|
44
|
-
return new AvmProvingTester(bbWorkingDirectory, checkCircuitOnly, worldStateDB, contractDataSource, merkleTrees);
|
|
119
|
+
const merkleTrees = await worldStateService.fork();
|
|
120
|
+
return new AvmProvingTester(checkCircuitOnly, contractDataSource, merkleTrees, globals, metrics);
|
|
45
121
|
}
|
|
46
122
|
|
|
47
|
-
async prove(avmCircuitInputs: AvmCircuitInputs): Promise<BBResult> {
|
|
123
|
+
async prove(avmCircuitInputs: AvmCircuitInputs, txLabel: string = 'unlabeledTx'): Promise<BBResult> {
|
|
124
|
+
// We use a new working directory for each proof.
|
|
125
|
+
this.bbWorkingDirectory = await fs.mkdtemp(path.join(tmpdir(), 'bb-'));
|
|
126
|
+
|
|
127
|
+
const interceptingLogger = new InterceptingLogger(this.logger);
|
|
128
|
+
|
|
48
129
|
// Then we prove.
|
|
49
130
|
const proofRes = await generateAvmProof(
|
|
50
131
|
BB_PATH,
|
|
51
132
|
this.bbWorkingDirectory,
|
|
52
133
|
avmCircuitInputs,
|
|
53
|
-
|
|
134
|
+
interceptingLogger,
|
|
54
135
|
this.checkCircuitOnly,
|
|
55
136
|
);
|
|
56
137
|
if (proofRes.status === BB_RESULT.FAILURE) {
|
|
57
138
|
this.logger.error(`Proof generation failed: ${proofRes.reason}`);
|
|
58
139
|
}
|
|
59
|
-
|
|
140
|
+
expect(proofRes.status).toEqual(BB_RESULT.SUCCESS);
|
|
141
|
+
|
|
142
|
+
// Parse the logs into a structured format.
|
|
143
|
+
const logs = interceptingLogger.logs;
|
|
144
|
+
// const traceSizes: { name: string; size: number }[] = [];
|
|
145
|
+
// logs.forEach(log => {
|
|
146
|
+
// const match = log.match(/\b(\w+): (\d+) \(~2/);
|
|
147
|
+
// if (match) {
|
|
148
|
+
// traceSizes.push({
|
|
149
|
+
// name: match[1],
|
|
150
|
+
// size: parseInt(match[2]),
|
|
151
|
+
// });
|
|
152
|
+
// }
|
|
153
|
+
// });
|
|
154
|
+
const times: { [key: string]: number } = {};
|
|
155
|
+
logs.forEach(log => {
|
|
156
|
+
const match = log.match(/\b([\w/]+)_ms: (\d+)/);
|
|
157
|
+
if (match) {
|
|
158
|
+
times[match[1]] = parseInt(match[2]);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Throw if logs did not contain any times.
|
|
163
|
+
if (Object.keys(times).length === 0) {
|
|
164
|
+
throw new Error('AVM stdout did not contain any proving times in the stats!');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Hack to make labels match.
|
|
168
|
+
const txLabelWithCount = `${txLabel}/${this.txCount - 1}`;
|
|
169
|
+
// I need to cast because TS doesnt realize metrics is protected not private.
|
|
170
|
+
(this as any).metrics?.recordProverMetrics(txLabelWithCount, {
|
|
171
|
+
proverSimulationStepMs: times['simulation/all'],
|
|
172
|
+
proverProvingStepMs: times['proving/all'],
|
|
173
|
+
proverTraceGenerationStepMs: times['tracegen/all'],
|
|
174
|
+
traceGenerationInteractionsMs: times['tracegen/interactions'],
|
|
175
|
+
traceGenerationTracesMs: times['tracegen/traces'],
|
|
176
|
+
provingSumcheckMs: times['prove/sumcheck'],
|
|
177
|
+
provingPcsMs: times['prove/pcs_rounds'],
|
|
178
|
+
provingLogDerivativeInverseMs: times['prove/log_derivative_inverse_round'],
|
|
179
|
+
provingLogDerivativeInverseCommitmentsMs: times['prove/log_derivative_inverse_commitments_round'],
|
|
180
|
+
provingWireCommitmentsMs: times['prove/wire_commitments_round'],
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
return proofRes as BBSuccess;
|
|
60
184
|
}
|
|
61
185
|
|
|
62
|
-
async verify(proofRes: BBSuccess): Promise<BBResult> {
|
|
186
|
+
async verify(proofRes: BBSuccess, publicInputs: AvmCircuitPublicInputs): Promise<BBResult> {
|
|
63
187
|
if (this.checkCircuitOnly) {
|
|
64
|
-
// Skip verification if we
|
|
65
|
-
// Check-circuit
|
|
188
|
+
// Skip verification if we are only checking the circuit.
|
|
189
|
+
// Check-circuit does not generate a proof to verify.
|
|
66
190
|
return proofRes;
|
|
67
191
|
}
|
|
68
|
-
// Then we test VK extraction and serialization.
|
|
69
|
-
const succeededRes = proofRes as BBSuccess;
|
|
70
|
-
const vkData = await extractAvmVkData(succeededRes.vkPath!);
|
|
71
|
-
VerificationKeyData.fromBuffer(vkData.toBuffer());
|
|
72
192
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
193
|
+
return await verifyAvmProof(BB_PATH, this.bbWorkingDirectory, proofRes.proofPath!, publicInputs, this.logger);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
public async proveVerify(avmCircuitInputs: AvmCircuitInputs, txLabel: string = 'unlabeledTx') {
|
|
197
|
+
const provingRes = await this.prove(avmCircuitInputs, txLabel);
|
|
198
|
+
expect(provingRes.status).toEqual(BB_RESULT.SUCCESS);
|
|
199
|
+
|
|
200
|
+
const verificationRes = await this.verify(provingRes as BBSuccess, avmCircuitInputs.publicInputs);
|
|
201
|
+
expect(verificationRes.status).toBe(BB_RESULT.SUCCESS);
|
|
76
202
|
}
|
|
77
203
|
|
|
78
204
|
public async simProveVerify(
|
|
@@ -82,89 +208,73 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
82
208
|
teardownCall: TestEnqueuedCall | undefined,
|
|
83
209
|
expectRevert: boolean | undefined,
|
|
84
210
|
feePayer = sender,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
expect(provingRes.status).toEqual(BB_RESULT.SUCCESS);
|
|
211
|
+
privateInsertions?: TestPrivateInsertions,
|
|
212
|
+
txLabel: string = 'unlabeledTx',
|
|
213
|
+
disableRevertCheck: boolean = false,
|
|
214
|
+
): Promise<PublicTxResult> {
|
|
215
|
+
const simTimer = new Timer();
|
|
216
|
+
const simRes = await this.simulateTx(
|
|
217
|
+
sender,
|
|
218
|
+
setupCalls,
|
|
219
|
+
appCalls,
|
|
220
|
+
teardownCall,
|
|
221
|
+
feePayer,
|
|
222
|
+
privateInsertions,
|
|
223
|
+
txLabel,
|
|
224
|
+
);
|
|
225
|
+
const simDuration = simTimer.ms();
|
|
226
|
+
this.logger.info(`Simulation took ${simDuration} ms for tx ${txLabel}`);
|
|
102
227
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
228
|
+
if (!disableRevertCheck) {
|
|
229
|
+
expect(simRes.revertCode.isOK()).toBe(expectRevert ? false : true);
|
|
230
|
+
}
|
|
107
231
|
|
|
108
|
-
|
|
109
|
-
constructor(
|
|
110
|
-
private bbWorkingDirectory: string,
|
|
111
|
-
worldStateDB: WorldStateDB,
|
|
112
|
-
contractDataSource: SimpleContractDataSource,
|
|
113
|
-
merkleTrees: MerkleTreeWriteOperations,
|
|
114
|
-
) {
|
|
115
|
-
super(worldStateDB, contractDataSource, merkleTrees);
|
|
116
|
-
}
|
|
232
|
+
const opString = this.checkCircuitOnly ? 'Check circuit' : 'Proving and verification';
|
|
117
233
|
|
|
118
|
-
|
|
119
|
-
const
|
|
234
|
+
const avmCircuitInputs = new AvmCircuitInputs(simRes.hints!, simRes.publicInputs!);
|
|
235
|
+
const timer = new Timer();
|
|
236
|
+
await this.proveVerify(avmCircuitInputs, txLabel);
|
|
237
|
+
this.logger.info(`${opString} took ${timer.ms()} ms for tx ${txLabel}`);
|
|
120
238
|
|
|
121
|
-
|
|
122
|
-
const merkleTrees = await (await NativeWorldStateService.tmp()).fork();
|
|
123
|
-
const worldStateDB = new WorldStateDB(merkleTrees, contractDataSource);
|
|
124
|
-
return new AvmProvingTesterV2(bbWorkingDirectory, worldStateDB, contractDataSource, merkleTrees);
|
|
239
|
+
return simRes;
|
|
125
240
|
}
|
|
126
241
|
|
|
127
|
-
async
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
inputs.publicInputs,
|
|
147
|
-
rawVkPath,
|
|
148
|
-
this.logger,
|
|
242
|
+
public override async executeTxWithLabel(
|
|
243
|
+
txLabel: string,
|
|
244
|
+
sender: AztecAddress,
|
|
245
|
+
setupCalls?: TestEnqueuedCall[],
|
|
246
|
+
appCalls?: TestEnqueuedCall[],
|
|
247
|
+
teardownCall?: TestEnqueuedCall,
|
|
248
|
+
feePayer?: AztecAddress,
|
|
249
|
+
privateInsertions?: TestPrivateInsertions,
|
|
250
|
+
) {
|
|
251
|
+
return await this.simProveVerify(
|
|
252
|
+
sender,
|
|
253
|
+
setupCalls ?? [],
|
|
254
|
+
appCalls ?? [],
|
|
255
|
+
teardownCall,
|
|
256
|
+
undefined,
|
|
257
|
+
feePayer,
|
|
258
|
+
privateInsertions,
|
|
259
|
+
txLabel,
|
|
260
|
+
true,
|
|
149
261
|
);
|
|
150
262
|
}
|
|
151
263
|
|
|
152
|
-
public async
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
teardownCall: TestEnqueuedCall | undefined,
|
|
157
|
-
expectRevert: boolean | undefined,
|
|
158
|
-
feePayer = sender,
|
|
264
|
+
public async simProveVerifyAppLogic(
|
|
265
|
+
appCall: TestEnqueuedCall,
|
|
266
|
+
expectRevert?: boolean,
|
|
267
|
+
txLabel: string = 'unlabeledTx',
|
|
159
268
|
) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
269
|
+
await this.simProveVerify(
|
|
270
|
+
/*sender=*/ AztecAddress.fromNumber(42),
|
|
271
|
+
/*setupCalls=*/ [],
|
|
272
|
+
[appCall],
|
|
273
|
+
undefined,
|
|
274
|
+
expectRevert,
|
|
275
|
+
/*feePayer=*/ undefined,
|
|
276
|
+
/*privateInsertions=*/ undefined,
|
|
277
|
+
txLabel,
|
|
278
|
+
);
|
|
169
279
|
}
|
|
170
280
|
}
|