@aztec/prover-client 0.57.0 → 0.58.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.
- package/dest/config.d.ts +4 -5
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -2
- package/dest/mocks/fixtures.d.ts +6 -6
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +8 -4
- package/dest/mocks/test_context.d.ts +5 -5
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +9 -12
- package/dest/orchestrator/block-building-helpers.d.ts +12 -12
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +4 -2
- package/dest/orchestrator/block-proving-state.d.ts +1 -0
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +2 -1
- package/dest/orchestrator/orchestrator.d.ts +4 -5
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +35 -16
- package/dest/prover-agent/memory-proving-queue.d.ts +4 -7
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/rpc.d.ts.map +1 -1
- package/dest/prover-agent/rpc.js +2 -4
- package/dest/test/mock_prover.d.ts +7 -13
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +16 -22
- package/dest/tx-prover/tx-prover.d.ts +2 -3
- package/dest/tx-prover/tx-prover.d.ts.map +1 -1
- package/dest/tx-prover/tx-prover.js +1 -1
- package/package.json +11 -10
- package/src/config.ts +20 -11
- package/src/mocks/fixtures.ts +21 -7
- package/src/mocks/test_context.ts +19 -15
- package/src/orchestrator/block-building-helpers.ts +21 -12
- package/src/orchestrator/block-proving-state.ts +2 -0
- package/src/orchestrator/orchestrator.ts +45 -16
- package/src/prover-agent/memory-proving-queue.ts +4 -4
- package/src/prover-agent/rpc.ts +0 -3
- package/src/test/mock_prover.ts +24 -26
- package/src/tx-prover/tx-prover.ts +2 -2
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
mapProvingRequestTypeToCircuitName,
|
|
17
17
|
toTxEffect,
|
|
18
18
|
} from '@aztec/circuit-types';
|
|
19
|
-
import { type EpochProver } from '@aztec/circuit-types/interfaces';
|
|
19
|
+
import { type EpochProver, type MerkleTreeWriteOperations } from '@aztec/circuit-types/interfaces';
|
|
20
20
|
import { type CircuitName } from '@aztec/circuit-types/stats';
|
|
21
21
|
import {
|
|
22
22
|
AvmCircuitInputs,
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
EmptyBlockRootRollupInputs,
|
|
29
29
|
Fr,
|
|
30
30
|
type GlobalVariables,
|
|
31
|
+
type Header,
|
|
31
32
|
type KernelCircuitPublicInputs,
|
|
32
33
|
L1_TO_L2_MSG_SUBTREE_HEIGHT,
|
|
33
34
|
L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
|
|
@@ -41,6 +42,7 @@ import {
|
|
|
41
42
|
type RecursiveProof,
|
|
42
43
|
type RootParityInput,
|
|
43
44
|
RootParityInputs,
|
|
45
|
+
TUBE_INDEX,
|
|
44
46
|
type TUBE_PROOF_LENGTH,
|
|
45
47
|
TubeInputs,
|
|
46
48
|
type VMCircuitPublicInputs,
|
|
@@ -57,9 +59,9 @@ import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
|
57
59
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
58
60
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
59
61
|
import { elapsed } from '@aztec/foundation/timer';
|
|
60
|
-
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
62
|
+
import { TubeVk, getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
63
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
61
64
|
import { Attributes, type TelemetryClient, type Tracer, trackSpan, wrapCallbackInSpan } from '@aztec/telemetry-client';
|
|
62
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
63
65
|
|
|
64
66
|
import { inspect } from 'util';
|
|
65
67
|
|
|
@@ -112,7 +114,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
112
114
|
private metrics: ProvingOrchestratorMetrics;
|
|
113
115
|
|
|
114
116
|
constructor(
|
|
115
|
-
private db:
|
|
117
|
+
private db: MerkleTreeWriteOperations,
|
|
116
118
|
private prover: ServerCircuitProver,
|
|
117
119
|
telemetryClient: TelemetryClient,
|
|
118
120
|
private readonly proverId: Fr = Fr.ZERO,
|
|
@@ -299,12 +301,16 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
299
301
|
[Attributes.BLOCK_TXS_COUNT]: block.transactionsReceived,
|
|
300
302
|
};
|
|
301
303
|
})
|
|
302
|
-
public async setBlockCompleted(): Promise<L2Block> {
|
|
304
|
+
public async setBlockCompleted(expectedHeader?: Header): Promise<L2Block> {
|
|
303
305
|
const provingState = this.provingState?.currentBlock;
|
|
304
306
|
if (!provingState) {
|
|
305
307
|
throw new Error(`Invalid proving state, call startNewBlock before adding transactions or completing the block`);
|
|
306
308
|
}
|
|
307
309
|
|
|
310
|
+
if (!provingState.verifyState()) {
|
|
311
|
+
throw new Error(`Block proving failed: ${provingState.error}`);
|
|
312
|
+
}
|
|
313
|
+
|
|
308
314
|
// We may need to pad the rollup with empty transactions
|
|
309
315
|
const paddingTxCount = provingState.totalNumTxs - provingState.transactionsReceived;
|
|
310
316
|
if (paddingTxCount > 0 && provingState.totalNumTxs > 2) {
|
|
@@ -325,6 +331,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
325
331
|
provingState.globalVariables.chainId,
|
|
326
332
|
provingState.globalVariables.version,
|
|
327
333
|
getVKTreeRoot(),
|
|
334
|
+
protocolContractTreeRoot,
|
|
328
335
|
);
|
|
329
336
|
const txInputs: Array<{ inputs: BaseRollupInputs; snapshot: TreeSnapshots }> = [];
|
|
330
337
|
for (let i = 0; i < paddingTxCount; i++) {
|
|
@@ -342,7 +349,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
342
349
|
|
|
343
350
|
// And build the block header
|
|
344
351
|
logger.verbose(`Block ${provingState.globalVariables.blockNumber} completed. Assembling header.`);
|
|
345
|
-
await this.buildBlock(provingState);
|
|
352
|
+
await this.buildBlock(provingState, expectedHeader);
|
|
346
353
|
|
|
347
354
|
// If the proofs were faster than the block building, then we need to try the block root rollup again here
|
|
348
355
|
this.checkAndEnqueueBlockRootRollup(provingState);
|
|
@@ -367,16 +374,16 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
367
374
|
[Attributes.EPOCH_SIZE]: this.provingState.totalNumBlocks,
|
|
368
375
|
};
|
|
369
376
|
})
|
|
370
|
-
private padEpoch() {
|
|
377
|
+
private padEpoch(): Promise<void> {
|
|
371
378
|
const provingState = this.provingState!;
|
|
372
379
|
const lastBlock = provingState.currentBlock?.block;
|
|
373
380
|
if (!lastBlock) {
|
|
374
|
-
|
|
381
|
+
return Promise.reject(new Error(`Epoch needs at least one completed block in order to be padded`));
|
|
375
382
|
}
|
|
376
383
|
|
|
377
384
|
const paddingBlockCount = Math.max(2, provingState.totalNumBlocks) - provingState.blocks.length;
|
|
378
385
|
if (paddingBlockCount === 0) {
|
|
379
|
-
return;
|
|
386
|
+
return Promise.resolve();
|
|
380
387
|
}
|
|
381
388
|
|
|
382
389
|
logger.debug(`Padding epoch proof with ${paddingBlockCount} empty block proofs`);
|
|
@@ -386,6 +393,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
386
393
|
blockHash: lastBlock.header.hash(),
|
|
387
394
|
globalVariables: lastBlock.header.globalVariables,
|
|
388
395
|
vkTreeRoot: getVKTreeRoot(),
|
|
396
|
+
protocolContractTreeRoot,
|
|
389
397
|
proverId: this.proverId,
|
|
390
398
|
});
|
|
391
399
|
|
|
@@ -415,9 +423,10 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
415
423
|
}
|
|
416
424
|
},
|
|
417
425
|
);
|
|
426
|
+
return Promise.resolve();
|
|
418
427
|
}
|
|
419
428
|
|
|
420
|
-
private async buildBlock(provingState: BlockProvingState) {
|
|
429
|
+
private async buildBlock(provingState: BlockProvingState, expectedHeader?: Header) {
|
|
421
430
|
// Collect all new nullifiers, commitments, and contracts from all txs in this block to build body
|
|
422
431
|
const gasFees = provingState.globalVariables.gasFees;
|
|
423
432
|
const nonEmptyTxEffects: TxEffect[] = provingState!.allTxs
|
|
@@ -434,6 +443,11 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
434
443
|
this.db,
|
|
435
444
|
);
|
|
436
445
|
|
|
446
|
+
if (expectedHeader && !header.equals(expectedHeader)) {
|
|
447
|
+
logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
|
|
448
|
+
throw new Error('Block header mismatch');
|
|
449
|
+
}
|
|
450
|
+
|
|
437
451
|
logger.verbose(`Updating archive tree with block ${provingState.blockNumber} header ${header.hash().toString()}`);
|
|
438
452
|
await this.db.updateArchive(header);
|
|
439
453
|
|
|
@@ -486,6 +500,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
486
500
|
unprovenPaddingTx.data.constants.txContext.chainId,
|
|
487
501
|
unprovenPaddingTx.data.constants.txContext.version,
|
|
488
502
|
getVKTreeRoot(),
|
|
503
|
+
protocolContractTreeRoot,
|
|
489
504
|
),
|
|
490
505
|
signal,
|
|
491
506
|
provingState.epochNumber,
|
|
@@ -566,7 +581,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
566
581
|
throw new Error(`Invalid proving state, an epoch must be proven before it can be finalised`);
|
|
567
582
|
}
|
|
568
583
|
|
|
569
|
-
this.padEpoch();
|
|
584
|
+
await this.padEpoch();
|
|
570
585
|
|
|
571
586
|
const result = await this.provingPromise!;
|
|
572
587
|
if (result.status === 'failure') {
|
|
@@ -700,7 +715,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
700
715
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
701
716
|
provingState.globalVariables,
|
|
702
717
|
this.db,
|
|
703
|
-
|
|
718
|
+
TubeVk,
|
|
704
719
|
),
|
|
705
720
|
);
|
|
706
721
|
|
|
@@ -832,8 +847,14 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
832
847
|
),
|
|
833
848
|
result => {
|
|
834
849
|
logger.debug(`Completed tube proof for tx index: ${txIndex}`);
|
|
835
|
-
const nextKernelRequest = txProvingState.getNextPublicKernelFromTubeProof(result.
|
|
836
|
-
this.checkAndEnqueueNextTxCircuit(
|
|
850
|
+
const nextKernelRequest = txProvingState.getNextPublicKernelFromTubeProof(result.proof, result.verificationKey);
|
|
851
|
+
this.checkAndEnqueueNextTxCircuit(
|
|
852
|
+
provingState,
|
|
853
|
+
txIndex,
|
|
854
|
+
result.proof,
|
|
855
|
+
result.verificationKey,
|
|
856
|
+
nextKernelRequest,
|
|
857
|
+
);
|
|
837
858
|
},
|
|
838
859
|
);
|
|
839
860
|
}
|
|
@@ -1217,7 +1238,10 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1217
1238
|
logger.warn(
|
|
1218
1239
|
`Error thrown when proving AVM circuit, but AVM_PROVING_STRICT is off, so faking AVM proof and carrying on. Error: ${err}.`,
|
|
1219
1240
|
);
|
|
1220
|
-
return {
|
|
1241
|
+
return {
|
|
1242
|
+
proof: makeEmptyProof(),
|
|
1243
|
+
verificationKey: VerificationKeyData.makeFakeHonk(),
|
|
1244
|
+
};
|
|
1221
1245
|
}
|
|
1222
1246
|
}
|
|
1223
1247
|
},
|
|
@@ -1270,7 +1294,12 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1270
1294
|
// Take the final proof and assign it to the base rollup inputs
|
|
1271
1295
|
txProvingState.baseRollupInputs.kernelData.proof = proof;
|
|
1272
1296
|
txProvingState.baseRollupInputs.kernelData.vk = verificationKey;
|
|
1273
|
-
|
|
1297
|
+
try {
|
|
1298
|
+
txProvingState.baseRollupInputs.kernelData.vkIndex = getVKIndex(verificationKey);
|
|
1299
|
+
} catch (_ignored) {
|
|
1300
|
+
// TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
|
|
1301
|
+
txProvingState.baseRollupInputs.kernelData.vkIndex = TUBE_INDEX;
|
|
1302
|
+
}
|
|
1274
1303
|
txProvingState.baseRollupInputs.kernelData.vkPath = getVKSiblingPath(
|
|
1275
1304
|
txProvingState.baseRollupInputs.kernelData.vkIndex,
|
|
1276
1305
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
type
|
|
2
|
+
type ProofAndVerificationKey,
|
|
3
3
|
type ProvingJob,
|
|
4
4
|
type ProvingJobSource,
|
|
5
5
|
type ProvingRequest,
|
|
@@ -21,6 +21,7 @@ import type {
|
|
|
21
21
|
MergeRollupInputs,
|
|
22
22
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
23
23
|
PrivateKernelEmptyInputData,
|
|
24
|
+
Proof,
|
|
24
25
|
PublicKernelCircuitPrivateInputs,
|
|
25
26
|
PublicKernelCircuitPublicInputs,
|
|
26
27
|
PublicKernelInnerCircuitPrivateInputs,
|
|
@@ -33,7 +34,6 @@ import type {
|
|
|
33
34
|
RootRollupPublicInputs,
|
|
34
35
|
TubeInputs,
|
|
35
36
|
VMCircuitPublicInputs,
|
|
36
|
-
VerificationKeyData,
|
|
37
37
|
} from '@aztec/circuits.js';
|
|
38
38
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
39
39
|
import { AbortError, TimeoutError } from '@aztec/foundation/error';
|
|
@@ -280,7 +280,7 @@ export class MemoryProvingQueue implements ServerCircuitProver, ProvingJobSource
|
|
|
280
280
|
inputs: TubeInputs,
|
|
281
281
|
signal?: AbortSignal,
|
|
282
282
|
epochNumber?: number,
|
|
283
|
-
): Promise<
|
|
283
|
+
): Promise<ProofAndVerificationKey<RecursiveProof<typeof RECURSIVE_PROOF_LENGTH>>> {
|
|
284
284
|
return this.enqueue({ type: ProvingRequestType.TUBE_PROOF, inputs }, signal, epochNumber);
|
|
285
285
|
}
|
|
286
286
|
|
|
@@ -427,7 +427,7 @@ export class MemoryProvingQueue implements ServerCircuitProver, ProvingJobSource
|
|
|
427
427
|
inputs: AvmCircuitInputs,
|
|
428
428
|
signal?: AbortSignal,
|
|
429
429
|
epochNumber?: number,
|
|
430
|
-
): Promise<
|
|
430
|
+
): Promise<ProofAndVerificationKey<Proof>> {
|
|
431
431
|
return this.enqueue({ type: ProvingRequestType.PUBLIC_VM, inputs }, signal, epochNumber);
|
|
432
432
|
}
|
|
433
433
|
|
package/src/prover-agent/rpc.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type ProvingJobSource } from '@aztec/circuit-types';
|
|
2
2
|
import {
|
|
3
3
|
AvmCircuitInputs,
|
|
4
|
-
AvmVerificationKeyData,
|
|
5
4
|
AztecAddress,
|
|
6
5
|
BaseOrMergeRollupPublicInputs,
|
|
7
6
|
BaseParityInputs,
|
|
@@ -41,7 +40,6 @@ export function createProvingJobSourceServer(queue: ProvingJobSource): JsonRpcSe
|
|
|
41
40
|
return new JsonRpcServer(
|
|
42
41
|
queue,
|
|
43
42
|
{
|
|
44
|
-
AvmVerificationKeyData,
|
|
45
43
|
AvmCircuitInputs,
|
|
46
44
|
BaseOrMergeRollupPublicInputs,
|
|
47
45
|
BaseParityInputs,
|
|
@@ -83,7 +81,6 @@ export function createProvingJobSourceClient(
|
|
|
83
81
|
return createJsonRpcClient(
|
|
84
82
|
url,
|
|
85
83
|
{
|
|
86
|
-
AvmVerificationKeyData,
|
|
87
84
|
AvmCircuitInputs,
|
|
88
85
|
BaseOrMergeRollupPublicInputs,
|
|
89
86
|
BaseParityInputs,
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
type ProofAndVerificationKey,
|
|
2
3
|
type PublicInputsAndRecursiveProof,
|
|
3
|
-
type PublicInputsAndTubeProof,
|
|
4
4
|
type ServerCircuitProver,
|
|
5
|
+
makeProofAndVerificationKey,
|
|
5
6
|
makePublicInputsAndRecursiveProof,
|
|
6
7
|
} from '@aztec/circuit-types';
|
|
7
8
|
import {
|
|
8
|
-
|
|
9
|
+
AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
|
|
9
10
|
type BaseOrMergeRollupPublicInputs,
|
|
10
11
|
type BlockRootOrBlockMergePublicInputs,
|
|
11
12
|
type KernelCircuitPublicInputs,
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
13
14
|
RECURSIVE_PROOF_LENGTH,
|
|
14
15
|
type RecursiveProof,
|
|
15
16
|
type RootRollupPublicInputs,
|
|
17
|
+
TUBE_PROOF_LENGTH,
|
|
16
18
|
type VMCircuitPublicInputs,
|
|
17
19
|
VerificationKeyData,
|
|
18
20
|
makeEmptyProof,
|
|
@@ -33,10 +35,10 @@ export class MockProver implements ServerCircuitProver {
|
|
|
33
35
|
|
|
34
36
|
getAvmProof() {
|
|
35
37
|
return Promise.resolve(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
makeProofAndVerificationKey(
|
|
39
|
+
makeEmptyProof(),
|
|
40
|
+
VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
|
|
41
|
+
),
|
|
40
42
|
);
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -53,7 +55,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
53
55
|
makePublicInputsAndRecursiveProof(
|
|
54
56
|
makeBaseOrMergeRollupPublicInputs(),
|
|
55
57
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
56
|
-
VerificationKeyData.
|
|
58
|
+
VerificationKeyData.makeFakeHonk(),
|
|
57
59
|
),
|
|
58
60
|
);
|
|
59
61
|
}
|
|
@@ -63,7 +65,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
63
65
|
makePublicInputsAndRecursiveProof(
|
|
64
66
|
makeBaseOrMergeRollupPublicInputs(),
|
|
65
67
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
66
|
-
VerificationKeyData.
|
|
68
|
+
VerificationKeyData.makeFakeHonk(),
|
|
67
69
|
),
|
|
68
70
|
);
|
|
69
71
|
}
|
|
@@ -73,7 +75,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
73
75
|
makePublicInputsAndRecursiveProof(
|
|
74
76
|
makeBlockRootOrBlockMergeRollupPublicInputs(),
|
|
75
77
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
76
|
-
VerificationKeyData.
|
|
78
|
+
VerificationKeyData.makeFakeHonk(),
|
|
77
79
|
),
|
|
78
80
|
);
|
|
79
81
|
}
|
|
@@ -83,7 +85,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
83
85
|
makePublicInputsAndRecursiveProof(
|
|
84
86
|
makeBlockRootOrBlockMergeRollupPublicInputs(),
|
|
85
87
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
86
|
-
VerificationKeyData.
|
|
88
|
+
VerificationKeyData.makeFakeHonk(),
|
|
87
89
|
),
|
|
88
90
|
);
|
|
89
91
|
}
|
|
@@ -93,7 +95,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
93
95
|
makePublicInputsAndRecursiveProof(
|
|
94
96
|
makeBlockRootOrBlockMergeRollupPublicInputs(),
|
|
95
97
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
96
|
-
VerificationKeyData.
|
|
98
|
+
VerificationKeyData.makeFakeHonk(),
|
|
97
99
|
),
|
|
98
100
|
);
|
|
99
101
|
}
|
|
@@ -103,17 +105,17 @@ export class MockProver implements ServerCircuitProver {
|
|
|
103
105
|
makePublicInputsAndRecursiveProof(
|
|
104
106
|
makeKernelCircuitPublicInputs(),
|
|
105
107
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
106
|
-
VerificationKeyData.
|
|
108
|
+
VerificationKeyData.makeFakeHonk(),
|
|
107
109
|
),
|
|
108
110
|
);
|
|
109
111
|
}
|
|
110
112
|
|
|
111
|
-
getEmptyTubeProof(): Promise<
|
|
113
|
+
getEmptyTubeProof(): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>> {
|
|
112
114
|
return Promise.resolve(
|
|
113
115
|
makePublicInputsAndRecursiveProof(
|
|
114
116
|
makeKernelCircuitPublicInputs(),
|
|
115
117
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
116
|
-
VerificationKeyData.
|
|
118
|
+
VerificationKeyData.makeFakeHonk(),
|
|
117
119
|
),
|
|
118
120
|
);
|
|
119
121
|
}
|
|
@@ -123,7 +125,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
123
125
|
makePublicInputsAndRecursiveProof(
|
|
124
126
|
makeVMCircuitPublicInputs(),
|
|
125
127
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
126
|
-
VerificationKeyData.
|
|
128
|
+
VerificationKeyData.makeFakeHonk(),
|
|
127
129
|
),
|
|
128
130
|
);
|
|
129
131
|
}
|
|
@@ -133,7 +135,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
133
135
|
makePublicInputsAndRecursiveProof(
|
|
134
136
|
makePublicKernelCircuitPublicInputs(),
|
|
135
137
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
136
|
-
VerificationKeyData.
|
|
138
|
+
VerificationKeyData.makeFakeHonk(),
|
|
137
139
|
),
|
|
138
140
|
);
|
|
139
141
|
}
|
|
@@ -143,7 +145,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
143
145
|
makePublicInputsAndRecursiveProof(
|
|
144
146
|
makeKernelCircuitPublicInputs(),
|
|
145
147
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
146
|
-
VerificationKeyData.
|
|
148
|
+
VerificationKeyData.makeFakeHonk(),
|
|
147
149
|
),
|
|
148
150
|
);
|
|
149
151
|
}
|
|
@@ -153,18 +155,14 @@ export class MockProver implements ServerCircuitProver {
|
|
|
153
155
|
makePublicInputsAndRecursiveProof(
|
|
154
156
|
makeRootRollupPublicInputs(),
|
|
155
157
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
156
|
-
VerificationKeyData.
|
|
158
|
+
VerificationKeyData.makeFakeHonk(),
|
|
157
159
|
),
|
|
158
160
|
);
|
|
159
161
|
}
|
|
160
162
|
|
|
161
|
-
getTubeProof(): Promise<{
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return Promise.resolve({
|
|
166
|
-
tubeVK: VerificationKeyData.makeFake(),
|
|
167
|
-
tubeProof: makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
168
|
-
});
|
|
163
|
+
getTubeProof(): Promise<ProofAndVerificationKey<RecursiveProof<typeof TUBE_PROOF_LENGTH>>> {
|
|
164
|
+
return Promise.resolve(
|
|
165
|
+
makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFake()),
|
|
166
|
+
);
|
|
169
167
|
}
|
|
170
168
|
}
|
|
@@ -2,13 +2,13 @@ import { BBNativeRollupProver, TestCircuitProver } from '@aztec/bb-prover';
|
|
|
2
2
|
import {
|
|
3
3
|
type EpochProver,
|
|
4
4
|
type EpochProverManager,
|
|
5
|
+
type MerkleTreeWriteOperations,
|
|
5
6
|
type ProvingJobSource,
|
|
6
7
|
type ServerCircuitProver,
|
|
7
8
|
} from '@aztec/circuit-types/interfaces';
|
|
8
9
|
import { Fr } from '@aztec/circuits.js';
|
|
9
10
|
import { NativeACVMSimulator } from '@aztec/simulator';
|
|
10
11
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
11
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
12
12
|
|
|
13
13
|
import { type ProverClientConfig } from '../config.js';
|
|
14
14
|
import { ProvingOrchestrator } from '../orchestrator/orchestrator.js';
|
|
@@ -33,7 +33,7 @@ export class TxProver implements EpochProverManager {
|
|
|
33
33
|
this.queue = new MemoryProvingQueue(telemetry, config.proverJobTimeoutMs, config.proverJobPollIntervalMs);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
public createEpochProver(db:
|
|
36
|
+
public createEpochProver(db: MerkleTreeWriteOperations): EpochProver {
|
|
37
37
|
return new ProvingOrchestrator(db, this.queue, this.telemetry, this.config.proverId);
|
|
38
38
|
}
|
|
39
39
|
|