@aztec/prover-client 3.0.0-devnet.5 → 3.0.0-devnet.6-patch.1
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/block-factory/index.d.ts +1 -1
- package/dest/block-factory/light.d.ts +8 -8
- package/dest/block-factory/light.d.ts.map +1 -1
- package/dest/block-factory/light.js +37 -23
- package/dest/config.d.ts +1 -1
- package/dest/config.js +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/light/lightweight_checkpoint_builder.d.ts +29 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
- package/dest/light/lightweight_checkpoint_builder.js +108 -0
- package/dest/mocks/fixtures.d.ts +1 -4
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +7 -17
- package/dest/mocks/test_context.d.ts +27 -46
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +102 -116
- package/dest/orchestrator/block-building-helpers.d.ts +19 -21
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +93 -118
- package/dest/orchestrator/block-proving-state.d.ts +17 -11
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +81 -20
- package/dest/orchestrator/checkpoint-proving-state.d.ts +8 -8
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/checkpoint-proving-state.js +15 -16
- package/dest/orchestrator/epoch-proving-state.d.ts +10 -9
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +6 -6
- package/dest/orchestrator/index.d.ts +1 -1
- package/dest/orchestrator/orchestrator.d.ts +13 -13
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +54 -60
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -1
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.d.ts +6 -6
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +14 -23
- package/dest/prover-client/factory.d.ts +1 -1
- package/dest/prover-client/index.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.d.ts +9 -8
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +4 -4
- package/dest/proving_broker/broker_prover_facade.d.ts +21 -21
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +7 -6
- package/dest/proving_broker/config.d.ts +12 -8
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +8 -2
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/fixtures.d.ts +3 -2
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +3 -2
- package/dest/proving_broker/index.d.ts +1 -1
- package/dest/proving_broker/proof_store/factory.d.ts +2 -2
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.d.ts +2 -2
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +4 -3
- package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.d.ts +3 -2
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +3 -3
- package/dest/proving_broker/rpc.d.ts +4 -4
- package/dest/test/mock_proof_store.d.ts +3 -3
- package/dest/test/mock_proof_store.d.ts.map +1 -1
- package/dest/test/mock_prover.d.ts +5 -6
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +3 -3
- package/package.json +18 -17
- package/src/block-factory/light.ts +40 -43
- package/src/config.ts +1 -1
- package/src/light/lightweight_checkpoint_builder.ts +144 -0
- package/src/mocks/fixtures.ts +7 -30
- package/src/mocks/test_context.ts +145 -177
- package/src/orchestrator/block-building-helpers.ts +133 -215
- package/src/orchestrator/block-proving-state.ts +103 -25
- package/src/orchestrator/checkpoint-proving-state.ts +24 -20
- package/src/orchestrator/epoch-proving-state.ts +15 -11
- package/src/orchestrator/orchestrator.ts +76 -74
- package/src/orchestrator/tx-proving-state.ts +24 -33
- package/src/prover-client/server-epoch-prover.ts +8 -9
- package/src/proving_broker/broker_prover_facade.ts +32 -29
- package/src/proving_broker/config.ts +8 -1
- package/src/proving_broker/fixtures.ts +8 -3
- package/src/proving_broker/proving_broker.ts +4 -3
- package/src/proving_broker/proving_broker_database/memory.ts +2 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +5 -4
- package/src/proving_broker/proving_broker_database.ts +2 -1
- package/src/proving_broker/proving_job_controller.ts +5 -4
- package/src/test/mock_prover.ts +9 -7
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
|
-
} from '@aztec/constants';
|
|
6
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
7
|
-
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
8
|
-
import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { getAvmVkData, getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
9
4
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
10
5
|
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
11
6
|
import { ProofData } from '@aztec/stdlib/proofs';
|
|
@@ -14,15 +9,18 @@ import {
|
|
|
14
9
|
PrivateBaseRollupHints,
|
|
15
10
|
PrivateTxBaseRollupPrivateInputs,
|
|
16
11
|
PublicBaseRollupHints,
|
|
17
|
-
|
|
12
|
+
PublicChonkVerifierPublicInputs,
|
|
18
13
|
PublicTxBaseRollupPrivateInputs,
|
|
19
14
|
} from '@aztec/stdlib/rollup';
|
|
20
15
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
21
16
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
22
17
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
23
|
-
import { VerificationKeyData, VkData } from '@aztec/stdlib/vks';
|
|
24
18
|
|
|
25
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
getChonkProofFromTx,
|
|
21
|
+
getPublicChonkVerifierPrivateInputsFromTx,
|
|
22
|
+
toProofData,
|
|
23
|
+
} from './block-building-helpers.js';
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
26
|
* Helper class to manage the proving cycle of a transaction
|
|
@@ -30,8 +28,8 @@ import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } fro
|
|
|
30
28
|
* Also stores the inputs to the base rollup for this transaction and the tree snapshots
|
|
31
29
|
*/
|
|
32
30
|
export class TxProvingState {
|
|
33
|
-
private
|
|
34
|
-
|
|
31
|
+
private publicChonkVerifier?: PublicInputsAndRecursiveProof<
|
|
32
|
+
PublicChonkVerifierPublicInputs,
|
|
35
33
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
36
34
|
>;
|
|
37
35
|
private avm?: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
|
|
@@ -48,15 +46,15 @@ export class TxProvingState {
|
|
|
48
46
|
}
|
|
49
47
|
|
|
50
48
|
public ready() {
|
|
51
|
-
return !this.requireAvmProof || (!!this.avm && !!this.
|
|
49
|
+
return !this.requireAvmProof || (!!this.avm && !!this.publicChonkVerifier);
|
|
52
50
|
}
|
|
53
51
|
|
|
54
52
|
public getAvmInputs(): AvmCircuitInputs {
|
|
55
53
|
return this.processedTx.avmProvingRequest!.inputs;
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
public
|
|
59
|
-
return
|
|
56
|
+
public getPublicChonkVerifierPrivateInputs() {
|
|
57
|
+
return getPublicChonkVerifierPrivateInputsFromTx(this.processedTx, this.proverId);
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
public getBaseRollupTypeAndInputs() {
|
|
@@ -73,13 +71,13 @@ export class TxProvingState {
|
|
|
73
71
|
}
|
|
74
72
|
}
|
|
75
73
|
|
|
76
|
-
public
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
public setPublicChonkVerifierProof(
|
|
75
|
+
publicChonkVerifierProofAndVk: PublicInputsAndRecursiveProof<
|
|
76
|
+
PublicChonkVerifierPublicInputs,
|
|
79
77
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
80
78
|
>,
|
|
81
79
|
) {
|
|
82
|
-
this.
|
|
80
|
+
this.publicChonkVerifier = publicChonkVerifierProofAndVk;
|
|
83
81
|
}
|
|
84
82
|
|
|
85
83
|
public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>) {
|
|
@@ -93,7 +91,7 @@ export class TxProvingState {
|
|
|
93
91
|
|
|
94
92
|
const privateTailProofData = new ProofData(
|
|
95
93
|
this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(),
|
|
96
|
-
|
|
94
|
+
getChonkProofFromTx(this.processedTx),
|
|
97
95
|
getVkData('HidingKernelToRollup'),
|
|
98
96
|
);
|
|
99
97
|
|
|
@@ -104,8 +102,8 @@ export class TxProvingState {
|
|
|
104
102
|
if (!this.processedTx.avmProvingRequest) {
|
|
105
103
|
throw new Error('Should create private base rollup for a tx not requiring avm proof.');
|
|
106
104
|
}
|
|
107
|
-
if (!this.
|
|
108
|
-
throw new Error('Tx not ready for proving base rollup: public
|
|
105
|
+
if (!this.publicChonkVerifier) {
|
|
106
|
+
throw new Error('Tx not ready for proving base rollup: public chonk verifier proof undefined');
|
|
109
107
|
}
|
|
110
108
|
if (!this.avm) {
|
|
111
109
|
throw new Error('Tx not ready for proving base rollup: avm proof undefined');
|
|
@@ -114,21 +112,14 @@ export class TxProvingState {
|
|
|
114
112
|
throw new Error('Mismatched base rollup hints, expected public base rollup hints');
|
|
115
113
|
}
|
|
116
114
|
|
|
117
|
-
const
|
|
115
|
+
const publicChonkVerifierProofData = toProofData(this.publicChonkVerifier);
|
|
118
116
|
|
|
119
117
|
const avmProofData = new ProofData(
|
|
120
118
|
this.processedTx.avmProvingRequest.inputs.publicInputs,
|
|
121
119
|
this.avm.proof,
|
|
122
|
-
|
|
120
|
+
getAvmVkData(),
|
|
123
121
|
);
|
|
124
122
|
|
|
125
|
-
return new PublicTxBaseRollupPrivateInputs(
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
#getVkData(verificationKey: VerificationKeyData, vkIndex: number) {
|
|
129
|
-
// TODO(#17162): Add avm vk hash to the tree and call `getVkData('AVM')` instead.
|
|
130
|
-
// Below will return a path to an empty leaf.
|
|
131
|
-
const vkPath = getVKSiblingPath(vkIndex);
|
|
132
|
-
return new VkData(verificationKey, vkIndex, vkPath);
|
|
123
|
+
return new PublicTxBaseRollupPrivateInputs(publicChonkVerifierProofData, avmProofData, this.baseRollupHints);
|
|
133
124
|
}
|
|
134
125
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
|
|
2
|
-
import
|
|
1
|
+
import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
|
+
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import type { EthAddress } from '@aztec/stdlib/block';
|
|
4
5
|
import type { EpochProver } from '@aztec/stdlib/interfaces/server';
|
|
5
6
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
@@ -18,7 +19,7 @@ export class ServerEpochProver implements EpochProver {
|
|
|
18
19
|
) {}
|
|
19
20
|
|
|
20
21
|
startNewEpoch(
|
|
21
|
-
epochNumber:
|
|
22
|
+
epochNumber: EpochNumber,
|
|
22
23
|
totalNumCheckpoints: number,
|
|
23
24
|
finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
|
|
24
25
|
): void {
|
|
@@ -30,7 +31,6 @@ export class ServerEpochProver implements EpochProver {
|
|
|
30
31
|
constants: CheckpointConstantData,
|
|
31
32
|
l1ToL2Messages: Fr[],
|
|
32
33
|
totalNumBlocks: number,
|
|
33
|
-
totalNumBlobFields: number,
|
|
34
34
|
headerOfLastBlockInPreviousCheckpoint: BlockHeader,
|
|
35
35
|
): Promise<void> {
|
|
36
36
|
return this.orchestrator.startNewCheckpoint(
|
|
@@ -38,14 +38,13 @@ export class ServerEpochProver implements EpochProver {
|
|
|
38
38
|
constants,
|
|
39
39
|
l1ToL2Messages,
|
|
40
40
|
totalNumBlocks,
|
|
41
|
-
totalNumBlobFields,
|
|
42
41
|
headerOfLastBlockInPreviousCheckpoint,
|
|
43
42
|
);
|
|
44
43
|
}
|
|
45
|
-
|
|
46
|
-
return this.orchestrator.
|
|
44
|
+
startChonkVerifierCircuits(txs: Tx[]): Promise<void> {
|
|
45
|
+
return this.orchestrator.startChonkVerifierCircuits(txs);
|
|
47
46
|
}
|
|
48
|
-
setBlockCompleted(blockNumber:
|
|
47
|
+
setBlockCompleted(blockNumber: BlockNumber, expectedBlockHeader?: BlockHeader): Promise<BlockHeader> {
|
|
49
48
|
return this.orchestrator.setBlockCompleted(blockNumber, expectedBlockHeader);
|
|
50
49
|
}
|
|
51
50
|
finalizeEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }> {
|
|
@@ -61,7 +60,7 @@ export class ServerEpochProver implements EpochProver {
|
|
|
61
60
|
await this.facade.stop();
|
|
62
61
|
await this.orchestrator.stop();
|
|
63
62
|
}
|
|
64
|
-
startNewBlock(blockNumber:
|
|
63
|
+
startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number): Promise<void> {
|
|
65
64
|
return this.orchestrator.startNewBlock(blockNumber, timestamp, totalNumTxs);
|
|
66
65
|
}
|
|
67
66
|
addTxs(txs: ProcessedTx[]): Promise<void> {
|
|
@@ -4,8 +4,9 @@ import type {
|
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
RECURSIVE_PROOF_LENGTH,
|
|
6
6
|
} from '@aztec/constants';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
8
|
+
import { sha256 } from '@aztec/foundation/crypto/sha256';
|
|
9
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
9
10
|
import { createLogger } from '@aztec/foundation/log';
|
|
10
11
|
import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
11
12
|
import { truncate } from '@aztec/foundation/string';
|
|
@@ -38,8 +39,8 @@ import type {
|
|
|
38
39
|
CheckpointRootRollupPrivateInputs,
|
|
39
40
|
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
40
41
|
PrivateTxBaseRollupPrivateInputs,
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
PublicChonkVerifierPrivateInputs,
|
|
43
|
+
PublicChonkVerifierPublicInputs,
|
|
43
44
|
PublicTxBaseRollupPrivateInputs,
|
|
44
45
|
RootRollupPrivateInputs,
|
|
45
46
|
RootRollupPublicInputs,
|
|
@@ -130,7 +131,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
130
131
|
id: ProvingJobId,
|
|
131
132
|
type: T,
|
|
132
133
|
inputs: ProvingJobInputsMap[T],
|
|
133
|
-
epochNumber =
|
|
134
|
+
epochNumber = EpochNumber.ZERO,
|
|
134
135
|
signal?: AbortSignal,
|
|
135
136
|
): Promise<ProvingJobResultsMap[T]> {
|
|
136
137
|
const { job: job, isEnqueued } = this.getOrCreateProvingJob(id, type, signal);
|
|
@@ -399,7 +400,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
399
400
|
inputs: AvmCircuitInputs,
|
|
400
401
|
skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
|
|
401
402
|
signal?: AbortSignal,
|
|
402
|
-
epochNumber?:
|
|
403
|
+
epochNumber?: EpochNumber,
|
|
403
404
|
): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
|
|
404
405
|
this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
|
|
405
406
|
|
|
@@ -420,7 +421,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
420
421
|
getBaseParityProof(
|
|
421
422
|
inputs: ParityBasePrivateInputs,
|
|
422
423
|
signal?: AbortSignal,
|
|
423
|
-
epochNumber?:
|
|
424
|
+
epochNumber?: EpochNumber,
|
|
424
425
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
|
|
425
426
|
return this.enqueueJob(
|
|
426
427
|
this.generateId(ProvingRequestType.PARITY_BASE, inputs, epochNumber),
|
|
@@ -434,7 +435,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
434
435
|
getTxMergeRollupProof(
|
|
435
436
|
input: TxMergeRollupPrivateInputs,
|
|
436
437
|
signal?: AbortSignal,
|
|
437
|
-
epochNumber?:
|
|
438
|
+
epochNumber?: EpochNumber,
|
|
438
439
|
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
439
440
|
return this.enqueueJob(
|
|
440
441
|
this.generateId(ProvingRequestType.TX_MERGE_ROLLUP, input, epochNumber),
|
|
@@ -445,14 +446,16 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
445
446
|
);
|
|
446
447
|
}
|
|
447
448
|
|
|
448
|
-
|
|
449
|
-
inputs:
|
|
449
|
+
getPublicChonkVerifierProof(
|
|
450
|
+
inputs: PublicChonkVerifierPrivateInputs,
|
|
450
451
|
signal?: AbortSignal,
|
|
451
|
-
epochNumber?:
|
|
452
|
-
): Promise<
|
|
452
|
+
epochNumber?: EpochNumber,
|
|
453
|
+
): Promise<
|
|
454
|
+
PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
455
|
+
> {
|
|
453
456
|
return this.enqueueJob(
|
|
454
|
-
this.generateId(ProvingRequestType.
|
|
455
|
-
ProvingRequestType.
|
|
457
|
+
this.generateId(ProvingRequestType.PUBLIC_CHONK_VERIFIER, inputs, epochNumber),
|
|
458
|
+
ProvingRequestType.PUBLIC_CHONK_VERIFIER,
|
|
456
459
|
inputs,
|
|
457
460
|
epochNumber,
|
|
458
461
|
signal,
|
|
@@ -462,7 +465,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
462
465
|
getPrivateTxBaseRollupProof(
|
|
463
466
|
baseRollupInput: PrivateTxBaseRollupPrivateInputs,
|
|
464
467
|
signal?: AbortSignal,
|
|
465
|
-
epochNumber?:
|
|
468
|
+
epochNumber?: EpochNumber,
|
|
466
469
|
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
467
470
|
return this.enqueueJob(
|
|
468
471
|
this.generateId(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, baseRollupInput, epochNumber),
|
|
@@ -476,7 +479,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
476
479
|
getPublicTxBaseRollupProof(
|
|
477
480
|
inputs: PublicTxBaseRollupPrivateInputs,
|
|
478
481
|
signal?: AbortSignal,
|
|
479
|
-
epochNumber?:
|
|
482
|
+
epochNumber?: EpochNumber,
|
|
480
483
|
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
481
484
|
return this.enqueueJob(
|
|
482
485
|
this.generateId(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, inputs, epochNumber),
|
|
@@ -490,7 +493,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
490
493
|
getRootParityProof(
|
|
491
494
|
inputs: ParityRootPrivateInputs,
|
|
492
495
|
signal?: AbortSignal,
|
|
493
|
-
epochNumber?:
|
|
496
|
+
epochNumber?: EpochNumber,
|
|
494
497
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
|
|
495
498
|
return this.enqueueJob(
|
|
496
499
|
this.generateId(ProvingRequestType.PARITY_ROOT, inputs, epochNumber),
|
|
@@ -504,7 +507,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
504
507
|
getBlockRootFirstRollupProof(
|
|
505
508
|
input: BlockRootFirstRollupPrivateInputs,
|
|
506
509
|
signal?: AbortSignal,
|
|
507
|
-
epochNumber?:
|
|
510
|
+
epochNumber?: EpochNumber,
|
|
508
511
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
509
512
|
return this.enqueueJob(
|
|
510
513
|
this.generateId(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, input, epochNumber),
|
|
@@ -518,7 +521,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
518
521
|
getBlockRootSingleTxFirstRollupProof(
|
|
519
522
|
input: BlockRootSingleTxFirstRollupPrivateInputs,
|
|
520
523
|
signal?: AbortSignal,
|
|
521
|
-
epochNumber?:
|
|
524
|
+
epochNumber?: EpochNumber,
|
|
522
525
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
523
526
|
return this.enqueueJob(
|
|
524
527
|
this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP, input, epochNumber),
|
|
@@ -532,7 +535,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
532
535
|
getBlockRootEmptyTxFirstRollupProof(
|
|
533
536
|
input: BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
534
537
|
signal?: AbortSignal,
|
|
535
|
-
epochNumber?:
|
|
538
|
+
epochNumber?: EpochNumber,
|
|
536
539
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
537
540
|
return this.enqueueJob(
|
|
538
541
|
this.generateId(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP, input, epochNumber),
|
|
@@ -546,7 +549,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
546
549
|
getBlockRootRollupProof(
|
|
547
550
|
input: BlockRootRollupPrivateInputs,
|
|
548
551
|
signal?: AbortSignal,
|
|
549
|
-
epochNumber?:
|
|
552
|
+
epochNumber?: EpochNumber,
|
|
550
553
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
551
554
|
return this.enqueueJob(
|
|
552
555
|
this.generateId(ProvingRequestType.BLOCK_ROOT_ROLLUP, input, epochNumber),
|
|
@@ -560,7 +563,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
560
563
|
getBlockRootSingleTxRollupProof(
|
|
561
564
|
input: BlockRootSingleTxRollupPrivateInputs,
|
|
562
565
|
signal?: AbortSignal,
|
|
563
|
-
epochNumber?:
|
|
566
|
+
epochNumber?: EpochNumber,
|
|
564
567
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
565
568
|
return this.enqueueJob(
|
|
566
569
|
this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP, input, epochNumber),
|
|
@@ -574,7 +577,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
574
577
|
getBlockMergeRollupProof(
|
|
575
578
|
input: BlockMergeRollupPrivateInputs,
|
|
576
579
|
signal?: AbortSignal,
|
|
577
|
-
epochNumber?:
|
|
580
|
+
epochNumber?: EpochNumber,
|
|
578
581
|
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
579
582
|
return this.enqueueJob(
|
|
580
583
|
this.generateId(ProvingRequestType.BLOCK_MERGE_ROLLUP, input, epochNumber),
|
|
@@ -588,7 +591,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
588
591
|
getCheckpointRootRollupProof(
|
|
589
592
|
input: CheckpointRootRollupPrivateInputs,
|
|
590
593
|
signal?: AbortSignal,
|
|
591
|
-
epochNumber?:
|
|
594
|
+
epochNumber?: EpochNumber,
|
|
592
595
|
): Promise<
|
|
593
596
|
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
594
597
|
> {
|
|
@@ -604,7 +607,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
604
607
|
getCheckpointRootSingleBlockRollupProof(
|
|
605
608
|
input: CheckpointRootSingleBlockRollupPrivateInputs,
|
|
606
609
|
signal?: AbortSignal,
|
|
607
|
-
epochNumber?:
|
|
610
|
+
epochNumber?: EpochNumber,
|
|
608
611
|
): Promise<
|
|
609
612
|
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
610
613
|
> {
|
|
@@ -620,7 +623,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
620
623
|
getCheckpointPaddingRollupProof(
|
|
621
624
|
input: CheckpointPaddingRollupPrivateInputs,
|
|
622
625
|
signal?: AbortSignal,
|
|
623
|
-
epochNumber?:
|
|
626
|
+
epochNumber?: EpochNumber,
|
|
624
627
|
): Promise<
|
|
625
628
|
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
626
629
|
> {
|
|
@@ -636,7 +639,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
636
639
|
getCheckpointMergeRollupProof(
|
|
637
640
|
input: CheckpointMergeRollupPrivateInputs,
|
|
638
641
|
signal?: AbortSignal,
|
|
639
|
-
epochNumber?:
|
|
642
|
+
epochNumber?: EpochNumber,
|
|
640
643
|
): Promise<
|
|
641
644
|
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
642
645
|
> {
|
|
@@ -652,7 +655,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
652
655
|
getRootRollupProof(
|
|
653
656
|
input: RootRollupPrivateInputs,
|
|
654
657
|
signal?: AbortSignal,
|
|
655
|
-
epochNumber?:
|
|
658
|
+
epochNumber?: EpochNumber,
|
|
656
659
|
): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
|
|
657
660
|
return this.enqueueJob(
|
|
658
661
|
this.generateId(ProvingRequestType.ROOT_ROLLUP, input, epochNumber),
|
|
@@ -663,7 +666,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
663
666
|
);
|
|
664
667
|
}
|
|
665
668
|
|
|
666
|
-
private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber =
|
|
669
|
+
private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber = EpochNumber.ZERO) {
|
|
667
670
|
const inputsHash = sha256(inputs.toBuffer());
|
|
668
671
|
return makeProvingJobId(epochNumber, type, inputsHash.toString('hex'));
|
|
669
672
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
1
|
+
import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
|
|
2
2
|
import {
|
|
3
3
|
type ConfigMappingsType,
|
|
4
4
|
booleanConfigHelper,
|
|
@@ -98,6 +98,8 @@ export const ProverAgentConfig = z.object({
|
|
|
98
98
|
proverTestDelayMs: z.number(),
|
|
99
99
|
/** If using realistic delays, what percentage of realistic times to apply. */
|
|
100
100
|
proverTestDelayFactor: z.number(),
|
|
101
|
+
/** The delay (ms) to inject during fake proof verification */
|
|
102
|
+
proverTestVerificationDelayMs: z.number().optional(),
|
|
101
103
|
});
|
|
102
104
|
|
|
103
105
|
export type ProverAgentConfig = z.infer<typeof ProverAgentConfig>;
|
|
@@ -146,4 +148,9 @@ export const proverAgentConfigMappings: ConfigMappingsType<ProverAgentConfig> =
|
|
|
146
148
|
description: 'If using realistic delays, what percentage of realistic times to apply.',
|
|
147
149
|
...numberConfigHelper(1),
|
|
148
150
|
},
|
|
151
|
+
proverTestVerificationDelayMs: {
|
|
152
|
+
env: 'PROVER_TEST_VERIFICATION_DELAY_MS',
|
|
153
|
+
description: 'The delay (ms) to inject during fake proof verification',
|
|
154
|
+
...numberConfigHelper(10),
|
|
155
|
+
},
|
|
149
156
|
};
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
2
3
|
import { type ProofUri, type ProvingJobId, makeProvingJobId } from '@aztec/stdlib/interfaces/server';
|
|
3
4
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
4
5
|
|
|
5
|
-
export function makeRandomProvingJobId(epochNumber?:
|
|
6
|
-
return makeProvingJobId(
|
|
6
|
+
export function makeRandomProvingJobId(epochNumber?: EpochNumber): ProvingJobId {
|
|
7
|
+
return makeProvingJobId(
|
|
8
|
+
epochNumber ?? EpochNumber(1),
|
|
9
|
+
ProvingRequestType.PARITY_BASE,
|
|
10
|
+
randomBytes(8).toString('hex'),
|
|
11
|
+
);
|
|
7
12
|
}
|
|
8
13
|
|
|
9
14
|
export function makeInputsUri(): ProofUri {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
3
4
|
import { PriorityMemoryQueue } from '@aztec/foundation/queue';
|
|
@@ -44,7 +45,7 @@ type EnqueuedProvingJob = Pick<ProvingJob, 'id' | 'epochNumber'>;
|
|
|
44
45
|
export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Traceable {
|
|
45
46
|
private queues: ProvingQueues = {
|
|
46
47
|
[ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
47
|
-
[ProvingRequestType.
|
|
48
|
+
[ProvingRequestType.PUBLIC_CHONK_VERIFIER]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
48
49
|
|
|
49
50
|
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
50
51
|
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
@@ -567,7 +568,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
|
|
|
567
568
|
this.reEnqueueExpiredJobs();
|
|
568
569
|
const oldestEpochToKeep = this.oldestEpochToKeep();
|
|
569
570
|
if (oldestEpochToKeep > 0) {
|
|
570
|
-
await this.database.deleteAllProvingJobsOlderThanEpoch(oldestEpochToKeep);
|
|
571
|
+
await this.database.deleteAllProvingJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
|
|
571
572
|
this.logger.trace(`Deleted all epochs older than ${oldestEpochToKeep}`);
|
|
572
573
|
}
|
|
573
574
|
}
|
|
@@ -700,7 +701,7 @@ export const PROOF_TYPES_IN_PRIORITY_ORDER: ProvingRequestType[] = [
|
|
|
700
701
|
ProvingRequestType.PUBLIC_TX_BASE_ROLLUP,
|
|
701
702
|
ProvingRequestType.PRIVATE_TX_BASE_ROLLUP,
|
|
702
703
|
ProvingRequestType.PUBLIC_VM,
|
|
703
|
-
ProvingRequestType.
|
|
704
|
+
ProvingRequestType.PUBLIC_CHONK_VERIFIER,
|
|
704
705
|
ProvingRequestType.PARITY_ROOT,
|
|
705
706
|
ProvingRequestType.PARITY_BASE,
|
|
706
707
|
];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import {
|
|
2
3
|
type ProofUri,
|
|
3
4
|
type ProvingJob,
|
|
@@ -43,7 +44,7 @@ export class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
43
44
|
return Promise.resolve();
|
|
44
45
|
}
|
|
45
46
|
|
|
46
|
-
deleteAllProvingJobsOlderThanEpoch(epochNumber:
|
|
47
|
+
deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
|
|
47
48
|
const toDelete = [
|
|
48
49
|
...Array.from(this.jobs.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
|
|
49
50
|
...Array.from(this.results.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
3
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { BatchQueue } from '@aztec/foundation/queue';
|
|
@@ -104,7 +105,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
104
105
|
const jobsToAdd = items.filter((item): item is ProvingJob => 'id' in item);
|
|
105
106
|
const resultsToAdd = items.filter((item): item is [ProvingJobId, ProvingJobSettledResult] => Array.isArray(item));
|
|
106
107
|
|
|
107
|
-
const db = await this.getEpochDatabase(epochNumber);
|
|
108
|
+
const db = await this.getEpochDatabase(EpochNumber(epochNumber));
|
|
108
109
|
await db.batchWrite(jobsToAdd, resultsToAdd);
|
|
109
110
|
}
|
|
110
111
|
|
|
@@ -164,8 +165,8 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
|
|
167
|
-
async deleteAllProvingJobsOlderThanEpoch(epochNumber:
|
|
168
|
-
const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < epochNumber);
|
|
168
|
+
async deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
|
|
169
|
+
const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < Number(epochNumber));
|
|
169
170
|
for (const old of oldEpochs) {
|
|
170
171
|
const db = this.epochs.get(old);
|
|
171
172
|
if (!db) {
|
|
@@ -196,7 +197,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
196
197
|
return this.batchQueue.put([id, { status: 'fulfilled', value }], getEpochFromProvingJobId(id));
|
|
197
198
|
}
|
|
198
199
|
|
|
199
|
-
private async getEpochDatabase(epochNumber:
|
|
200
|
+
private async getEpochDatabase(epochNumber: EpochNumber): Promise<SingleEpochDatabase> {
|
|
200
201
|
let epochDb = this.epochs.get(epochNumber);
|
|
201
202
|
if (!epochDb) {
|
|
202
203
|
const newEpochDirectory = join(this.config.dataDirectory!, epochNumber.toString());
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -14,7 +15,7 @@ export interface ProvingBrokerDatabase {
|
|
|
14
15
|
* Deletes all proving jobs belonging to epochs older than the given epoch
|
|
15
16
|
* @param epochNumber - The epoch number beyond which jobs should be deleted
|
|
16
17
|
*/
|
|
17
|
-
deleteAllProvingJobsOlderThanEpoch(epochNumber:
|
|
18
|
+
deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Returns an iterator over all saved proving jobs
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
2
3
|
import { AbortError } from '@aztec/foundation/error';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import type {
|
|
@@ -24,7 +25,7 @@ export class ProvingJobController {
|
|
|
24
25
|
constructor(
|
|
25
26
|
private jobId: ProvingJobId,
|
|
26
27
|
private inputs: ProvingJobInputs,
|
|
27
|
-
private epochNumber:
|
|
28
|
+
private epochNumber: EpochNumber,
|
|
28
29
|
private startedAt: number,
|
|
29
30
|
private circuitProver: ServerCircuitProver,
|
|
30
31
|
private onComplete: () => void,
|
|
@@ -128,8 +129,8 @@ export class ProvingJobController {
|
|
|
128
129
|
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
case ProvingRequestType.
|
|
132
|
-
return await this.circuitProver.
|
|
132
|
+
case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
|
|
133
|
+
return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -33,8 +33,8 @@ import type {
|
|
|
33
33
|
CheckpointRootRollupPrivateInputs,
|
|
34
34
|
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
35
35
|
PrivateTxBaseRollupPrivateInputs,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
PublicChonkVerifierPrivateInputs,
|
|
37
|
+
PublicChonkVerifierPublicInputs,
|
|
38
38
|
PublicTxBaseRollupPrivateInputs,
|
|
39
39
|
RootRollupPrivateInputs,
|
|
40
40
|
RootRollupPublicInputs,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
makeBlockRollupPublicInputs,
|
|
46
46
|
makeCheckpointRollupPublicInputs,
|
|
47
47
|
makeParityPublicInputs,
|
|
48
|
-
|
|
48
|
+
makePublicChonkVerifierPublicInputs,
|
|
49
49
|
makeRootRollupPublicInputs,
|
|
50
50
|
makeTxRollupPublicInputs,
|
|
51
51
|
} from '@aztec/stdlib/testing';
|
|
@@ -139,14 +139,16 @@ export class MockProver implements ServerCircuitProver {
|
|
|
139
139
|
);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
_inputs:
|
|
142
|
+
getPublicChonkVerifierProof(
|
|
143
|
+
_inputs: PublicChonkVerifierPrivateInputs,
|
|
144
144
|
_signal?: AbortSignal,
|
|
145
145
|
_epochNumber?: number,
|
|
146
|
-
): Promise<
|
|
146
|
+
): Promise<
|
|
147
|
+
PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
148
|
+
> {
|
|
147
149
|
return Promise.resolve(
|
|
148
150
|
makePublicInputsAndRecursiveProof(
|
|
149
|
-
|
|
151
|
+
makePublicChonkVerifierPublicInputs(),
|
|
150
152
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
151
153
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
152
154
|
),
|