@aztec/prover-client 0.0.1-fake-c83136db25 → 0.0.1-fake-ceab37513c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dest/bin/get-proof-inputs.d.ts +2 -0
  2. package/dest/bin/get-proof-inputs.d.ts.map +1 -0
  3. package/dest/bin/get-proof-inputs.js +51 -0
  4. package/dest/block-factory/light.d.ts +3 -5
  5. package/dest/block-factory/light.d.ts.map +1 -1
  6. package/dest/block-factory/light.js +9 -16
  7. package/dest/config.js +1 -1
  8. package/dest/mocks/fixtures.d.ts +1 -4
  9. package/dest/mocks/fixtures.d.ts.map +1 -1
  10. package/dest/mocks/fixtures.js +3 -31
  11. package/dest/mocks/test_context.d.ts +9 -32
  12. package/dest/mocks/test_context.d.ts.map +1 -1
  13. package/dest/mocks/test_context.js +22 -78
  14. package/dest/orchestrator/block-building-helpers.d.ts +31 -33
  15. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  16. package/dest/orchestrator/block-building-helpers.js +137 -126
  17. package/dest/orchestrator/block-proving-state.d.ts +53 -60
  18. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  19. package/dest/orchestrator/block-proving-state.js +187 -214
  20. package/dest/orchestrator/epoch-proving-state.d.ts +28 -34
  21. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  22. package/dest/orchestrator/epoch-proving-state.js +84 -128
  23. package/dest/orchestrator/orchestrator.d.ts +30 -31
  24. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  25. package/dest/orchestrator/orchestrator.js +236 -368
  26. package/dest/orchestrator/tx-proving-state.d.ts +9 -11
  27. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  28. package/dest/orchestrator/tx-proving-state.js +23 -26
  29. package/dest/prover-client/server-epoch-prover.d.ts +8 -9
  30. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  31. package/dest/prover-client/server-epoch-prover.js +9 -9
  32. package/dest/proving_broker/broker_prover_facade.d.ts +15 -20
  33. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  34. package/dest/proving_broker/broker_prover_facade.js +21 -36
  35. package/dest/proving_broker/fixtures.js +1 -1
  36. package/dest/proving_broker/proof_store/index.d.ts +0 -1
  37. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  38. package/dest/proving_broker/proof_store/index.js +0 -1
  39. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  40. package/dest/proving_broker/proving_broker.js +18 -29
  41. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  42. package/dest/proving_broker/proving_job_controller.js +18 -38
  43. package/dest/test/mock_prover.d.ts +17 -22
  44. package/dest/test/mock_prover.d.ts.map +1 -1
  45. package/dest/test/mock_prover.js +20 -35
  46. package/package.json +17 -16
  47. package/src/bin/get-proof-inputs.ts +59 -0
  48. package/src/block-factory/light.ts +9 -35
  49. package/src/config.ts +1 -1
  50. package/src/mocks/fixtures.ts +11 -39
  51. package/src/mocks/test_context.ts +31 -137
  52. package/src/orchestrator/block-building-helpers.ts +211 -211
  53. package/src/orchestrator/block-proving-state.ts +245 -235
  54. package/src/orchestrator/epoch-proving-state.ts +127 -172
  55. package/src/orchestrator/orchestrator.ts +303 -545
  56. package/src/orchestrator/tx-proving-state.ts +43 -49
  57. package/src/prover-client/server-epoch-prover.ts +18 -28
  58. package/src/proving_broker/broker_prover_facade.ts +86 -157
  59. package/src/proving_broker/fixtures.ts +1 -1
  60. package/src/proving_broker/proof_store/index.ts +0 -1
  61. package/src/proving_broker/proving_broker.ts +18 -36
  62. package/src/proving_broker/proving_job_controller.ts +18 -38
  63. package/src/test/mock_prover.ts +60 -142
  64. package/dest/orchestrator/checkpoint-proving-state.d.ts +0 -63
  65. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +0 -1
  66. package/dest/orchestrator/checkpoint-proving-state.js +0 -211
  67. package/src/orchestrator/checkpoint-proving-state.ts +0 -299
@@ -44,33 +44,21 @@ type EnqueuedProvingJob = Pick<ProvingJob, 'id' | 'epochNumber'>;
44
44
  export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Traceable {
45
45
  private queues: ProvingQueues = {
46
46
  [ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
47
- [ProvingRequestType.PUBLIC_CHONK_VERIFIER]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
47
+ [ProvingRequestType.TUBE_PROOF]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
48
48
 
49
- [ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
50
- [ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
51
- [ProvingRequestType.TX_MERGE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
49
+ [ProvingRequestType.PRIVATE_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
50
+ [ProvingRequestType.PUBLIC_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
51
+ [ProvingRequestType.MERGE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
52
52
  [ProvingRequestType.ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
53
53
 
54
54
  [ProvingRequestType.BLOCK_MERGE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
55
- [ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
56
- [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(
57
- provingJobComparator,
58
- ),
59
- [ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(
60
- provingJobComparator,
61
- ),
62
55
  [ProvingRequestType.BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
63
- [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
56
+ [ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
57
+ [ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
58
+ [ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
64
59
 
65
- [ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
66
- [ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(
67
- provingJobComparator,
68
- ),
69
- [ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
70
- [ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
71
-
72
- [ProvingRequestType.PARITY_BASE]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
73
- [ProvingRequestType.PARITY_ROOT]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
60
+ [ProvingRequestType.BASE_PARITY]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
61
+ [ProvingRequestType.ROOT_PARITY]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
74
62
  };
75
63
 
76
64
  // holds a copy of the database in memory in order to quickly fulfill requests
@@ -685,22 +673,16 @@ function proofTypeComparator(a: ProvingRequestType, b: ProvingRequestType): -1 |
685
673
  * is to get picked up by agents
686
674
  */
687
675
  export const PROOF_TYPES_IN_PRIORITY_ORDER: ProvingRequestType[] = [
688
- ProvingRequestType.ROOT_ROLLUP,
689
- ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP,
690
- ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
691
- ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
692
676
  ProvingRequestType.BLOCK_ROOT_ROLLUP,
693
- ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP,
677
+ ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP,
694
678
  ProvingRequestType.BLOCK_MERGE_ROLLUP,
695
- ProvingRequestType.CHECKPOINT_ROOT_ROLLUP,
696
- ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP,
697
- ProvingRequestType.CHECKPOINT_MERGE_ROLLUP,
698
- ProvingRequestType.CHECKPOINT_PADDING_ROLLUP,
699
- ProvingRequestType.TX_MERGE_ROLLUP,
700
- ProvingRequestType.PUBLIC_TX_BASE_ROLLUP,
701
- ProvingRequestType.PRIVATE_TX_BASE_ROLLUP,
679
+ ProvingRequestType.ROOT_ROLLUP,
680
+ ProvingRequestType.MERGE_ROLLUP,
681
+ ProvingRequestType.PUBLIC_BASE_ROLLUP,
682
+ ProvingRequestType.PRIVATE_BASE_ROLLUP,
702
683
  ProvingRequestType.PUBLIC_VM,
703
- ProvingRequestType.PUBLIC_CHONK_VERIFIER,
704
- ProvingRequestType.PARITY_ROOT,
705
- ProvingRequestType.PARITY_BASE,
684
+ ProvingRequestType.TUBE_PROOF,
685
+ ProvingRequestType.ROOT_PARITY,
686
+ ProvingRequestType.BASE_PARITY,
687
+ ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP,
706
688
  ];
@@ -128,74 +128,54 @@ export class ProvingJobController {
128
128
  return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
129
129
  }
130
130
 
131
- case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
132
- return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
131
+ case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
132
+ return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
133
133
  }
134
134
 
135
- case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
136
- return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
135
+ case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
136
+ return await this.circuitProver.getPublicBaseRollupProof(inputs, signal, this.epochNumber);
137
137
  }
138
138
 
139
- case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
140
- return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
139
+ case ProvingRequestType.MERGE_ROLLUP: {
140
+ return await this.circuitProver.getMergeRollupProof(inputs, signal, this.epochNumber);
141
141
  }
142
142
 
143
- case ProvingRequestType.TX_MERGE_ROLLUP: {
144
- return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
143
+ case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
144
+ return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
145
145
  }
146
146
 
147
- case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP: {
148
- return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
149
- }
150
-
151
- case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP: {
152
- return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
153
- }
154
-
155
- case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP: {
156
- return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
147
+ case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP: {
148
+ return await this.circuitProver.getPaddingBlockRootRollupProof(inputs, signal, this.epochNumber);
157
149
  }
158
150
 
159
151
  case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
160
152
  return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
161
153
  }
162
154
 
163
- case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP: {
164
- return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
155
+ case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
156
+ return await this.circuitProver.getSingleTxBlockRootRollupProof(inputs, signal, this.epochNumber);
165
157
  }
166
158
 
167
159
  case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
168
160
  return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
169
161
  }
170
162
 
171
- case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP: {
172
- return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
173
- }
174
-
175
- case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP: {
176
- return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
177
- }
178
-
179
- case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP: {
180
- return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
181
- }
182
-
183
- case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP: {
184
- return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
185
- }
186
-
187
163
  case ProvingRequestType.ROOT_ROLLUP: {
188
164
  return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
189
165
  }
190
166
 
191
- case ProvingRequestType.PARITY_BASE: {
167
+ case ProvingRequestType.BASE_PARITY: {
192
168
  return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
193
169
  }
194
170
 
195
- case ProvingRequestType.PARITY_ROOT: {
171
+ case ProvingRequestType.ROOT_PARITY: {
196
172
  return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
197
173
  }
198
174
 
175
+ case ProvingRequestType.TUBE_PROOF: {
176
+ return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
177
+ }
178
+
199
179
  default: {
200
180
  const _exhaustive: never = type;
201
181
  return Promise.reject(new Error(`Invalid proof request type: ${type}`));
@@ -4,10 +4,12 @@ import {
4
4
  NESTED_RECURSIVE_PROOF_LENGTH,
5
5
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
6
6
  RECURSIVE_PROOF_LENGTH,
7
+ TUBE_PROOF_LENGTH,
7
8
  } from '@aztec/constants';
8
9
  import { times } from '@aztec/foundation/collection';
9
10
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
10
11
  import {
12
+ type ProofAndVerificationKey,
11
13
  type ProvingJob,
12
14
  type ProvingJobId,
13
15
  type ProvingJobProducer,
@@ -17,37 +19,27 @@ import {
17
19
  makeProofAndVerificationKey,
18
20
  makePublicInputsAndRecursiveProof,
19
21
  } from '@aztec/stdlib/interfaces/server';
20
- import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
22
+ import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
21
23
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
22
24
  import type {
23
- BlockMergeRollupPrivateInputs,
24
- BlockRollupPublicInputs,
25
- BlockRootEmptyTxFirstRollupPrivateInputs,
26
- BlockRootFirstRollupPrivateInputs,
27
- BlockRootRollupPrivateInputs,
28
- BlockRootSingleTxFirstRollupPrivateInputs,
29
- BlockRootSingleTxRollupPrivateInputs,
30
- CheckpointMergeRollupPrivateInputs,
31
- CheckpointPaddingRollupPrivateInputs,
32
- CheckpointRollupPublicInputs,
33
- CheckpointRootRollupPrivateInputs,
34
- CheckpointRootSingleBlockRollupPrivateInputs,
35
- PrivateTxBaseRollupPrivateInputs,
36
- PublicChonkVerifierPrivateInputs,
37
- PublicChonkVerifierPublicInputs,
38
- PublicTxBaseRollupPrivateInputs,
39
- RootRollupPrivateInputs,
25
+ BaseOrMergeRollupPublicInputs,
26
+ BlockMergeRollupInputs,
27
+ BlockRootOrBlockMergePublicInputs,
28
+ BlockRootRollupInputs,
29
+ EmptyBlockRootRollupInputs,
30
+ MergeRollupInputs,
31
+ PaddingBlockRootRollupInputs,
32
+ PrivateBaseRollupInputs,
33
+ PublicBaseRollupInputs,
34
+ RootRollupInputs,
40
35
  RootRollupPublicInputs,
41
- TxMergeRollupPrivateInputs,
42
- TxRollupPublicInputs,
36
+ SingleTxBlockRootRollupInputs,
43
37
  } from '@aztec/stdlib/rollup';
44
38
  import {
45
- makeBlockRollupPublicInputs,
46
- makeCheckpointRollupPublicInputs,
39
+ makeBaseOrMergeRollupPublicInputs,
40
+ makeBlockRootOrBlockMergeRollupPublicInputs,
47
41
  makeParityPublicInputs,
48
- makePublicChonkVerifierPublicInputs,
49
42
  makeRootRollupPublicInputs,
50
- makeTxRollupPublicInputs,
51
43
  } from '@aztec/stdlib/testing';
52
44
  import { VerificationKeyData } from '@aztec/stdlib/vks';
53
45
 
@@ -119,7 +111,7 @@ export class MockProver implements ServerCircuitProver {
119
111
  );
120
112
  }
121
113
 
122
- getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
114
+ getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
123
115
  return Promise.resolve(
124
116
  makePublicInputsAndRecursiveProof(
125
117
  makeParityPublicInputs(),
@@ -129,7 +121,7 @@ export class MockProver implements ServerCircuitProver {
129
121
  );
130
122
  }
131
123
 
132
- getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
124
+ getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
133
125
  return Promise.resolve(
134
126
  makePublicInputsAndRecursiveProof(
135
127
  makeParityPublicInputs(),
@@ -139,210 +131,130 @@ export class MockProver implements ServerCircuitProver {
139
131
  );
140
132
  }
141
133
 
142
- getPublicChonkVerifierProof(
143
- _inputs: PublicChonkVerifierPrivateInputs,
134
+ getPrivateBaseRollupProof(
135
+ _baseRollupInput: PrivateBaseRollupInputs,
144
136
  _signal?: AbortSignal,
145
137
  _epochNumber?: number,
146
138
  ): Promise<
147
- PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
139
+ PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
148
140
  > {
149
141
  return Promise.resolve(
150
142
  makePublicInputsAndRecursiveProof(
151
- makePublicChonkVerifierPublicInputs(),
143
+ makeBaseOrMergeRollupPublicInputs(),
152
144
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
153
145
  VerificationKeyData.makeFakeRollupHonk(),
154
146
  ),
155
147
  );
156
148
  }
157
149
 
158
- getPrivateTxBaseRollupProof(
159
- _baseRollupInput: PrivateTxBaseRollupPrivateInputs,
150
+ getPublicBaseRollupProof(
151
+ _inputs: PublicBaseRollupInputs,
160
152
  _signal?: AbortSignal,
161
153
  _epochNumber?: number,
162
- ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
163
- return Promise.resolve(
164
- makePublicInputsAndRecursiveProof(
165
- makeTxRollupPublicInputs(),
166
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
167
- VerificationKeyData.makeFakeRollupHonk(),
168
- ),
169
- );
170
- }
171
-
172
- getPublicTxBaseRollupProof(
173
- _inputs: PublicTxBaseRollupPrivateInputs,
174
- _signal?: AbortSignal,
175
- _epochNumber?: number,
176
- ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
- return Promise.resolve(
178
- makePublicInputsAndRecursiveProof(
179
- makeTxRollupPublicInputs(),
180
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
- VerificationKeyData.makeFakeRollupHonk(),
182
- ),
183
- );
184
- }
185
-
186
- getTxMergeRollupProof(
187
- _input: TxMergeRollupPrivateInputs,
188
- _signal?: AbortSignal,
189
- _epochNumber?: number,
190
- ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
191
- return Promise.resolve(
192
- makePublicInputsAndRecursiveProof(
193
- makeTxRollupPublicInputs(),
194
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
195
- VerificationKeyData.makeFakeRollupHonk(),
196
- ),
197
- );
198
- }
199
-
200
- getBlockRootFirstRollupProof(
201
- _input: BlockRootFirstRollupPrivateInputs,
202
- _signal?: AbortSignal,
203
- _epochNumber?: number,
204
- ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
205
- return Promise.resolve(
206
- makePublicInputsAndRecursiveProof(
207
- makeBlockRollupPublicInputs(),
208
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
209
- VerificationKeyData.makeFakeRollupHonk(),
210
- ),
211
- );
212
- }
213
-
214
- getBlockRootSingleTxFirstRollupProof(
215
- _input: BlockRootSingleTxFirstRollupPrivateInputs,
216
- _signal?: AbortSignal,
217
- _epochNumber?: number,
218
- ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
219
- return Promise.resolve(
220
- makePublicInputsAndRecursiveProof(
221
- makeBlockRollupPublicInputs(),
222
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
223
- VerificationKeyData.makeFakeHonk(),
224
- ),
225
- );
226
- }
227
-
228
- getBlockRootEmptyTxFirstRollupProof(
229
- _input: BlockRootEmptyTxFirstRollupPrivateInputs,
230
- _signal?: AbortSignal,
231
- _epochNumber?: number,
232
- ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
154
+ ): Promise<
155
+ PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
156
+ > {
233
157
  return Promise.resolve(
234
158
  makePublicInputsAndRecursiveProof(
235
- makeBlockRollupPublicInputs(),
159
+ makeBaseOrMergeRollupPublicInputs(),
236
160
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
237
161
  VerificationKeyData.makeFakeRollupHonk(),
238
162
  ),
239
163
  );
240
164
  }
241
165
 
242
- getBlockRootRollupProof(
243
- _input: BlockRootRollupPrivateInputs,
166
+ getMergeRollupProof(
167
+ _input: MergeRollupInputs,
244
168
  _signal?: AbortSignal,
245
169
  _epochNumber?: number,
246
- ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
170
+ ): Promise<
171
+ PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
172
+ > {
247
173
  return Promise.resolve(
248
174
  makePublicInputsAndRecursiveProof(
249
- makeBlockRollupPublicInputs(),
175
+ makeBaseOrMergeRollupPublicInputs(),
250
176
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
251
177
  VerificationKeyData.makeFakeRollupHonk(),
252
178
  ),
253
179
  );
254
180
  }
255
181
 
256
- getBlockRootSingleTxRollupProof(
257
- _input: BlockRootSingleTxRollupPrivateInputs,
258
- _signal?: AbortSignal,
259
- _epochNumber?: number,
260
- ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
261
- return Promise.resolve(
262
- makePublicInputsAndRecursiveProof(
263
- makeBlockRollupPublicInputs(),
264
- makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
265
- VerificationKeyData.makeFakeHonk(),
266
- ),
267
- );
268
- }
269
-
270
- getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
182
+ getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number) {
271
183
  return Promise.resolve(
272
184
  makePublicInputsAndRecursiveProof(
273
- makeBlockRollupPublicInputs(),
185
+ makeBlockRootOrBlockMergeRollupPublicInputs(),
274
186
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
275
187
  VerificationKeyData.makeFakeRollupHonk(),
276
188
  ),
277
189
  );
278
190
  }
279
191
 
280
- getCheckpointRootRollupProof(
281
- _input: CheckpointRootRollupPrivateInputs,
192
+ getEmptyBlockRootRollupProof(
193
+ _input: EmptyBlockRootRollupInputs,
282
194
  _signal?: AbortSignal,
283
195
  _epochNumber?: number,
284
196
  ): Promise<
285
- PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
197
+ PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
286
198
  > {
287
199
  return Promise.resolve(
288
200
  makePublicInputsAndRecursiveProof(
289
- makeCheckpointRollupPublicInputs(),
201
+ makeBlockRootOrBlockMergeRollupPublicInputs(),
290
202
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
291
203
  VerificationKeyData.makeFakeRollupHonk(),
292
204
  ),
293
205
  );
294
206
  }
295
207
 
296
- getCheckpointRootSingleBlockRollupProof(
297
- _input: CheckpointRootSingleBlockRollupPrivateInputs,
208
+ getPaddingBlockRootRollupProof(
209
+ _input: PaddingBlockRootRollupInputs,
298
210
  _signal?: AbortSignal,
299
211
  _epochNumber?: number,
300
212
  ): Promise<
301
- PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
213
+ PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
302
214
  > {
303
215
  return Promise.resolve(
304
216
  makePublicInputsAndRecursiveProof(
305
- makeCheckpointRollupPublicInputs(),
217
+ makeBlockRootOrBlockMergeRollupPublicInputs(),
306
218
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
307
219
  VerificationKeyData.makeFakeRollupHonk(),
308
220
  ),
309
221
  );
310
222
  }
311
223
 
312
- getCheckpointMergeRollupProof(
313
- _input: CheckpointMergeRollupPrivateInputs,
224
+ getBlockRootRollupProof(
225
+ _input: BlockRootRollupInputs,
314
226
  _signal?: AbortSignal,
315
227
  _epochNumber?: number,
316
228
  ): Promise<
317
- PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
229
+ PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
318
230
  > {
319
231
  return Promise.resolve(
320
232
  makePublicInputsAndRecursiveProof(
321
- makeCheckpointRollupPublicInputs(),
233
+ makeBlockRootOrBlockMergeRollupPublicInputs(),
322
234
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
323
235
  VerificationKeyData.makeFakeRollupHonk(),
324
236
  ),
325
237
  );
326
238
  }
327
239
 
328
- getCheckpointPaddingRollupProof(
329
- _input: CheckpointPaddingRollupPrivateInputs,
240
+ getSingleTxBlockRootRollupProof(
241
+ _input: SingleTxBlockRootRollupInputs,
330
242
  _signal?: AbortSignal,
331
243
  _epochNumber?: number,
332
244
  ): Promise<
333
- PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
245
+ PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
334
246
  > {
335
247
  return Promise.resolve(
336
248
  makePublicInputsAndRecursiveProof(
337
- makeCheckpointRollupPublicInputs(),
249
+ makeBlockRootOrBlockMergeRollupPublicInputs(),
338
250
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
339
- VerificationKeyData.makeFakeRollupHonk(),
251
+ VerificationKeyData.makeFakeHonk(),
340
252
  ),
341
253
  );
342
254
  }
343
255
 
344
256
  getRootRollupProof(
345
- _input: RootRollupPrivateInputs,
257
+ _input: RootRollupInputs,
346
258
  _signal?: AbortSignal,
347
259
  _epochNumber?: number,
348
260
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
@@ -354,4 +266,10 @@ export class MockProver implements ServerCircuitProver {
354
266
  ),
355
267
  );
356
268
  }
269
+
270
+ getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
271
+ return Promise.resolve(
272
+ makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
273
+ );
274
+ }
357
275
  }
@@ -1,63 +0,0 @@
1
- import { BatchedBlobAccumulator, type FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
- import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
3
- import { Fr } from '@aztec/foundation/fields';
4
- import type { Tuple } from '@aztec/foundation/serialize';
5
- import { type TreeNodeLocation } from '@aztec/foundation/trees';
6
- import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
7
- import { ParityBasePrivateInputs } from '@aztec/stdlib/parity';
8
- import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, CheckpointConstantData, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '@aztec/stdlib/rollup';
9
- import type { CircuitName } from '@aztec/stdlib/stats';
10
- import type { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
11
- import type { BlockHeader } from '@aztec/stdlib/tx';
12
- import type { UInt64 } from '@aztec/stdlib/types';
13
- import { BlockProvingState } from './block-proving-state.js';
14
- import type { EpochProvingState } from './epoch-proving-state.js';
15
- export declare class CheckpointProvingState {
16
- #private;
17
- readonly index: number;
18
- readonly constants: CheckpointConstantData;
19
- readonly totalNumBlocks: number;
20
- private readonly totalNumBlobFields;
21
- private readonly finalBlobBatchingChallenges;
22
- private readonly headerOfLastBlockInPreviousCheckpoint;
23
- private readonly lastArchiveSiblingPath;
24
- private readonly l1ToL2Messages;
25
- private readonly lastL1ToL2MessageTreeSnapshot;
26
- private readonly lastL1ToL2MessageSubtreeRootSiblingPath;
27
- private readonly newL1ToL2MessageTreeSnapshot;
28
- private readonly newL1ToL2MessageSubtreeRootSiblingPath;
29
- parentEpoch: EpochProvingState;
30
- private onBlobAccumulatorSet;
31
- private blockProofs;
32
- private checkpointRootProof;
33
- private blocks;
34
- private startBlobAccumulator;
35
- private endBlobAccumulator;
36
- private blobFields;
37
- private error;
38
- readonly firstBlockNumber: number;
39
- constructor(index: number, constants: CheckpointConstantData, totalNumBlocks: number, totalNumBlobFields: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, headerOfLastBlockInPreviousCheckpoint: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, parentEpoch: EpochProvingState, onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void);
40
- get epochNumber(): number;
41
- startNewBlock(blockNumber: number, timestamp: UInt64, totalNumTxs: number, lastArchiveTreeSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>): Promise<BlockProvingState>;
42
- isAcceptingBlocks(): boolean;
43
- setBlockRootRollupProof(blockIndex: number, provingOutput: PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
44
- tryStartProvingBlockMerge(location: TreeNodeLocation): boolean;
45
- setBlockMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
46
- tryStartProvingCheckpointRoot(): boolean;
47
- setCheckpointRootRollupProof(provingOutput: PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
48
- getBaseParityInputs(baseParityIndex: number): ParityBasePrivateInputs;
49
- accumulateBlobs(startBlobAccumulator: BatchedBlobAccumulator): Promise<BatchedBlobAccumulator | undefined>;
50
- getEndBlobAccumulator(): BatchedBlobAccumulator | undefined;
51
- getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
52
- getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupPrivateInputs;
53
- getCheckpointRootRollupType(): CircuitName;
54
- getCheckpointRootRollupInputs(): CheckpointRootSingleBlockRollupPrivateInputs | CheckpointRootRollupPrivateInputs;
55
- getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
56
- isReadyForBlockMerge(location: TreeNodeLocation): boolean;
57
- isReadyForCheckpointRoot(): boolean;
58
- verifyState(): boolean;
59
- getError(): string | undefined;
60
- cancel(): void;
61
- reject(reason: string): void;
62
- }
63
- //# sourceMappingURL=checkpoint-proving-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"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"}