@aztec/stdlib 3.0.0-nightly.20250916 → 3.0.0-nightly.20250918

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 (202) hide show
  1. package/dest/avm/avm.d.ts +78 -1
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm.js +20 -2
  4. package/dest/avm/avm_circuit_public_inputs.d.ts +6 -1
  5. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  6. package/dest/avm/avm_circuit_public_inputs.js +11 -6
  7. package/dest/avm/avm_proving_request.d.ts +41 -0
  8. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  9. package/dest/block/body.d.ts +4 -1
  10. package/dest/block/body.d.ts.map +1 -1
  11. package/dest/block/body.js +16 -5
  12. package/dest/block/index.d.ts +1 -0
  13. package/dest/block/index.d.ts.map +1 -1
  14. package/dest/block/index.js +1 -0
  15. package/dest/block/l2_block.d.ts +8 -5
  16. package/dest/block/l2_block.d.ts.map +1 -1
  17. package/dest/block/l2_block.js +14 -7
  18. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  19. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  20. package/dest/block/l2_block_code_to_purge.js +23 -13
  21. package/dest/block/l2_block_header.d.ts +100 -0
  22. package/dest/block/l2_block_header.d.ts.map +1 -0
  23. package/dest/block/l2_block_header.js +146 -0
  24. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  25. package/dest/block/published_l2_block.d.ts +2 -2
  26. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  27. package/dest/block/test/l2_tips_store_test_suite.js +1 -3
  28. package/dest/interfaces/aztec-node.d.ts +5 -2
  29. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  30. package/dest/interfaces/aztec-node.js +1 -0
  31. package/dest/interfaces/block-builder.d.ts +1 -2
  32. package/dest/interfaces/block-builder.d.ts.map +1 -1
  33. package/dest/interfaces/epoch-prover.d.ts +25 -8
  34. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  35. package/dest/interfaces/proving-job.d.ts +204 -61
  36. package/dest/interfaces/proving-job.d.ts.map +1 -1
  37. package/dest/interfaces/proving-job.js +101 -39
  38. package/dest/interfaces/pxe.d.ts +8 -1
  39. package/dest/interfaces/pxe.d.ts.map +1 -1
  40. package/dest/interfaces/pxe.js +1 -0
  41. package/dest/interfaces/server_circuit_prover.d.ts +19 -16
  42. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  43. package/dest/interfaces/validator.d.ts +3 -2
  44. package/dest/interfaces/validator.d.ts.map +1 -1
  45. package/dest/kernel/private_circuit_public_inputs.d.ts +4 -4
  46. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  47. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  48. package/dest/kernel/private_context_inputs.d.ts +2 -2
  49. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  50. package/dest/kernel/private_context_inputs.js +4 -4
  51. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +1 -1
  52. package/dest/messaging/inbox_leaf.d.ts +2 -0
  53. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  54. package/dest/messaging/inbox_leaf.js +3 -0
  55. package/dest/p2p/consensus_payload.d.ts +7 -6
  56. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  57. package/dest/p2p/consensus_payload.js +7 -6
  58. package/dest/parity/root_parity_input.d.ts +1 -1
  59. package/dest/proofs/proof_data.d.ts +1 -1
  60. package/dest/proofs/proof_data.d.ts.map +1 -1
  61. package/dest/proofs/proof_data.js +2 -2
  62. package/dest/proofs/proving_request_type.d.ts +13 -8
  63. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  64. package/dest/proofs/proving_request_type.js +13 -8
  65. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +1 -1
  66. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  67. package/dest/rollup/base_or_merge_rollup_public_inputs.js +1 -1
  68. package/dest/rollup/base_rollup_hints.d.ts +12 -3
  69. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  70. package/dest/rollup/base_rollup_hints.js +11 -5
  71. package/dest/rollup/block_constant_data.d.ts +20 -6
  72. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  73. package/dest/rollup/block_constant_data.js +15 -7
  74. package/dest/rollup/block_merge_rollup.d.ts +10 -9
  75. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  76. package/dest/rollup/block_merge_rollup.js +14 -13
  77. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  78. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  79. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  80. package/dest/rollup/block_root_rollup.d.ts +148 -184
  81. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  82. package/dest/rollup/block_root_rollup.js +211 -260
  83. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  84. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  85. package/dest/rollup/checkpoint_constant_data.js +55 -0
  86. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +11 -12
  87. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  88. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
  89. package/dest/rollup/checkpoint_merge_rollup.d.ts +30 -0
  90. package/dest/rollup/checkpoint_merge_rollup.d.ts.map +1 -0
  91. package/dest/rollup/checkpoint_merge_rollup.js +37 -0
  92. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +105 -0
  93. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  94. package/dest/rollup/checkpoint_rollup_public_inputs.js +105 -0
  95. package/dest/rollup/checkpoint_root_rollup.d.ts +117 -0
  96. package/dest/rollup/checkpoint_root_rollup.d.ts.map +1 -0
  97. package/dest/rollup/checkpoint_root_rollup.js +178 -0
  98. package/dest/rollup/epoch_constant_data.d.ts +19 -2
  99. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  100. package/dest/rollup/epoch_constant_data.js +20 -7
  101. package/dest/rollup/index.d.ts +8 -5
  102. package/dest/rollup/index.d.ts.map +1 -1
  103. package/dest/rollup/index.js +8 -5
  104. package/dest/rollup/rollup_proof_data.d.ts +10 -0
  105. package/dest/rollup/rollup_proof_data.d.ts.map +1 -0
  106. package/dest/rollup/rollup_proof_data.js +1 -0
  107. package/dest/rollup/root_rollup.d.ts +26 -23
  108. package/dest/rollup/root_rollup.d.ts.map +1 -1
  109. package/dest/rollup/root_rollup.js +28 -39
  110. package/dest/stats/stats.d.ts +1 -1
  111. package/dest/stats/stats.d.ts.map +1 -1
  112. package/dest/tests/factories.d.ts +17 -41
  113. package/dest/tests/factories.d.ts.map +1 -1
  114. package/dest/tests/factories.js +76 -80
  115. package/dest/tests/mocks.d.ts +3 -2
  116. package/dest/tests/mocks.d.ts.map +1 -1
  117. package/dest/tests/mocks.js +3 -3
  118. package/dest/tx/block_header.d.ts +12 -13
  119. package/dest/tx/block_header.d.ts.map +1 -1
  120. package/dest/tx/block_header.js +16 -21
  121. package/dest/tx/global_variables.d.ts.map +1 -1
  122. package/dest/tx/global_variables.js +0 -1
  123. package/dest/tx/index.d.ts +0 -1
  124. package/dest/tx/index.d.ts.map +1 -1
  125. package/dest/tx/index.js +0 -1
  126. package/dest/tx/private_execution_result.d.ts +2 -2
  127. package/dest/tx/private_execution_result.d.ts.map +1 -1
  128. package/dest/tx/private_execution_result.js +3 -3
  129. package/dest/tx/tx_constant_data.d.ts +4 -4
  130. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  131. package/dest/tx/tx_constant_data.js +6 -6
  132. package/dest/tx/tx_effect.d.ts +0 -3
  133. package/dest/tx/tx_effect.d.ts.map +1 -1
  134. package/dest/tx/tx_effect.js +2 -7
  135. package/dest/zkpassport/index.d.ts +3 -3
  136. package/dest/zkpassport/index.d.ts.map +1 -1
  137. package/dest/zkpassport/index.js +7 -7
  138. package/package.json +8 -8
  139. package/src/avm/avm.ts +22 -0
  140. package/src/avm/avm_circuit_public_inputs.ts +10 -0
  141. package/src/block/body.ts +23 -6
  142. package/src/block/index.ts +1 -0
  143. package/src/block/l2_block.ts +18 -8
  144. package/src/block/l2_block_code_to_purge.ts +30 -31
  145. package/src/block/l2_block_header.ts +232 -0
  146. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  147. package/src/block/test/l2_tips_store_test_suite.ts +1 -2
  148. package/src/interfaces/aztec-node.ts +8 -2
  149. package/src/interfaces/block-builder.ts +1 -6
  150. package/src/interfaces/epoch-prover.ts +34 -10
  151. package/src/interfaces/proving-job.ts +166 -51
  152. package/src/interfaces/pxe.ts +10 -1
  153. package/src/interfaces/server_circuit_prover.ts +65 -29
  154. package/src/interfaces/validator.ts +3 -2
  155. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  156. package/src/kernel/private_context_inputs.ts +2 -2
  157. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +1 -1
  158. package/src/messaging/inbox_leaf.ts +5 -0
  159. package/src/p2p/consensus_payload.ts +8 -7
  160. package/src/proofs/proof_data.ts +1 -6
  161. package/src/proofs/proving_request_type.ts +8 -3
  162. package/src/rollup/base_or_merge_rollup_public_inputs.ts +1 -1
  163. package/src/rollup/base_rollup_hints.ts +9 -1
  164. package/src/rollup/block_constant_data.ts +13 -3
  165. package/src/rollup/block_merge_rollup.ts +13 -11
  166. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  167. package/src/rollup/block_root_rollup.ts +209 -264
  168. package/src/rollup/checkpoint_constant_data.ts +84 -0
  169. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +16 -17
  170. package/src/rollup/checkpoint_merge_rollup.ts +50 -0
  171. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +26 -52
  172. package/src/rollup/checkpoint_root_rollup.ts +216 -0
  173. package/src/rollup/epoch_constant_data.ts +32 -8
  174. package/src/rollup/index.ts +8 -5
  175. package/src/rollup/rollup_proof_data.ts +12 -0
  176. package/src/rollup/root_rollup.ts +30 -41
  177. package/src/stats/stats.ts +8 -3
  178. package/src/tests/factories.ts +139 -135
  179. package/src/tests/mocks.ts +6 -13
  180. package/src/tx/block_header.ts +17 -32
  181. package/src/tx/global_variables.ts +0 -1
  182. package/src/tx/index.ts +0 -1
  183. package/src/tx/private_execution_result.ts +3 -3
  184. package/src/tx/tx_constant_data.ts +4 -4
  185. package/src/tx/tx_effect.ts +2 -7
  186. package/src/zkpassport/index.ts +6 -6
  187. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  188. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  189. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  190. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  191. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  192. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  193. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  194. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  195. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  196. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  197. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  198. package/dest/rollup/previous_rollup_block_data.js +0 -37
  199. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  200. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  201. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  202. package/src/rollup/previous_rollup_block_data.ts +0 -48
@@ -1,28 +1,55 @@
1
1
  import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Fr } from '@aztec/foundation/fields';
3
4
 
4
- import type { L2Block } from '../block/l2_block.js';
5
5
  import type { Proof } from '../proofs/proof.js';
6
+ import type { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
6
7
  import type { RootRollupPublicInputs } from '../rollup/root_rollup.js';
7
8
  import type { BlockHeader } from '../tx/block_header.js';
8
9
  import type { Tx } from '../tx/tx.js';
10
+ import type { UInt64 } from '../types/index.js';
9
11
  import type { IBlockFactory } from './block-builder.js';
10
12
 
11
13
  /** Coordinates the proving of an entire epoch. */
12
- export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
14
+ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | 'startNewBlock'> {
13
15
  /**
14
16
  * Starts a new epoch. Must be the first method to be called.
15
17
  * @param epochNumber - The epoch number.
16
- * @param firstBlockNumber - The block number of the first block in the epoch.
17
- * @param totalNumBlocks - The total number of blocks expected in the epoch (must be at least one).
18
+ * @param firstCheckpointNumber - The number of the first checkpoint in the epoch. Used to determine the correct order when checkpoints are added.
19
+ * @param totalNumCheckpoints - The total number of checkpoints expected in the epoch (must be at least one).
20
+ * @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
18
21
  **/
19
22
  startNewEpoch(
20
23
  epochNumber: number,
21
- firstBlockNumber: number,
22
- totalNumBlocks: number,
24
+ firstCheckpointNumber: Fr,
25
+ totalNumCheckpoints: number,
23
26
  finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
24
27
  ): void;
25
28
 
29
+ /**
30
+ * Starts a new checkpoint.
31
+ * @param constants - The constants for this checkpoint.
32
+ * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
33
+ * @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
34
+ * @param totalNumBlobFields - The total number of blob fields expected in the checkpoint.
35
+ * @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
36
+ */
37
+ startNewCheckpoint(
38
+ constants: CheckpointConstantData,
39
+ l1ToL2Messages: Fr[],
40
+ totalNumBlocks: number,
41
+ totalNumBlobFields: number,
42
+ headerOfLastBlockInPreviousCheckpoint: BlockHeader,
43
+ ): Promise<void>;
44
+
45
+ /**
46
+ * Starts a new block.
47
+ * @param blockNumber - The block number.
48
+ * @param timestamp - The timestamp of the block.
49
+ * @param totalNumTxs - The total number of txs in the block.
50
+ */
51
+ startNewBlock(blockNumber: number, timestamp: UInt64, totalNumTxs: number): Promise<void>;
52
+
26
53
  /**
27
54
  * Kickstarts tube circuits for the specified txs. These will be used during epoch proving.
28
55
  * Note that if the tube circuits are not started this way, they will be started nontheless after processing.
@@ -30,7 +57,7 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
30
57
  startTubeCircuits(txs: Tx[]): Promise<void>;
31
58
 
32
59
  /** Returns the block. */
33
- setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<L2Block>;
60
+ setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<BlockHeader>;
34
61
 
35
62
  /** Pads the epoch with empty block roots if needed and blocks until proven. Throws if proving has failed. */
36
63
  finalizeEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }>;
@@ -41,9 +68,6 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
41
68
  /** Returns an identifier for the prover or zero if not set. */
42
69
  getProverId(): EthAddress;
43
70
 
44
- /** Returns the block assembled at a given index (zero-based) within the epoch. */
45
- getBlock(index: number): L2Block;
46
-
47
71
  /** Called when no longer required, cleans up internal resources */
48
72
  stop(): Promise<void>;
49
73
  }
@@ -17,15 +17,27 @@ import { RootParityInputs } from '../parity/root_parity_inputs.js';
17
17
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
18
18
  import { RecursiveProof } from '../proofs/recursive_proof.js';
19
19
  import { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
20
- import { BlockMergeRollupInputs } from '../rollup/block_merge_rollup.js';
21
- import { BlockRootOrBlockMergePublicInputs } from '../rollup/block_root_or_block_merge_public_inputs.js';
22
- import { BlockRootRollupInputs, SingleTxBlockRootRollupInputs } from '../rollup/block_root_rollup.js';
23
- import { EmptyBlockRootRollupInputs } from '../rollup/empty_block_root_rollup_inputs.js';
24
- import { PaddingBlockRootRollupInputs, PublicTubePrivateInputs } from '../rollup/index.js';
20
+ import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup.js';
21
+ import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
22
+ import {
23
+ BlockRootEmptyTxFirstRollupPrivateInputs,
24
+ BlockRootFirstRollupPrivateInputs,
25
+ BlockRootRollupPrivateInputs,
26
+ BlockRootSingleTxFirstRollupPrivateInputs,
27
+ BlockRootSingleTxRollupPrivateInputs,
28
+ } from '../rollup/block_root_rollup.js';
29
+ import { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup.js';
30
+ import { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
31
+ import {
32
+ CheckpointPaddingRollupPrivateInputs,
33
+ CheckpointRootRollupPrivateInputs,
34
+ CheckpointRootSingleBlockRollupPrivateInputs,
35
+ } from '../rollup/checkpoint_root_rollup.js';
36
+ import { PublicTubePrivateInputs } from '../rollup/index.js';
25
37
  import { MergeRollupInputs } from '../rollup/merge_rollup.js';
26
38
  import { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
27
39
  import { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
28
- import { RootRollupInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
40
+ import { RootRollupPrivateInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
29
41
  import type { ServerCircuitName } from '../stats/index.js';
30
42
  import { VerificationKeyData } from '../vks/verification_key.js';
31
43
 
@@ -87,16 +99,26 @@ export function mapProvingRequestTypeToCircuitName(type: ProvingRequestType): Se
87
99
  return 'public-base-rollup';
88
100
  case ProvingRequestType.MERGE_ROLLUP:
89
101
  return 'merge-rollup';
90
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP:
91
- return 'empty-block-root-rollup';
92
- case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP:
93
- return 'padding-block-root-rollup';
102
+ case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
103
+ return 'block-root-first-rollup';
104
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
105
+ return 'block-root-single-tx-first-rollup';
106
+ case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
107
+ return 'block-root-empty-tx-first-rollup';
94
108
  case ProvingRequestType.BLOCK_ROOT_ROLLUP:
95
109
  return 'block-root-rollup';
96
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP:
97
- return 'single-tx-block-root-rollup';
110
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
111
+ return 'block-root-single-tx-rollup';
98
112
  case ProvingRequestType.BLOCK_MERGE_ROLLUP:
99
113
  return 'block-merge-rollup';
114
+ case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
115
+ return 'checkpoint-root-rollup';
116
+ case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
117
+ return 'checkpoint-root-single-block-rollup';
118
+ case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
119
+ return 'checkpoint-padding-rollup';
120
+ case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
121
+ return 'checkpoint-merge-rollup';
100
122
  case ProvingRequestType.ROOT_ROLLUP:
101
123
  return 'root-rollup';
102
124
  case ProvingRequestType.BASE_PARITY:
@@ -118,18 +140,41 @@ export const ProvingJobInputs = z.discriminatedUnion('type', [
118
140
  z.object({ type: z.literal(ProvingRequestType.PRIVATE_BASE_ROLLUP), inputs: PrivateBaseRollupInputs.schema }),
119
141
  z.object({ type: z.literal(ProvingRequestType.PUBLIC_BASE_ROLLUP), inputs: PublicBaseRollupInputs.schema }),
120
142
  z.object({ type: z.literal(ProvingRequestType.MERGE_ROLLUP), inputs: MergeRollupInputs.schema }),
121
- z.object({ type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP), inputs: BlockRootRollupInputs.schema }),
122
143
  z.object({
123
- type: z.literal(ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP),
124
- inputs: SingleTxBlockRootRollupInputs.schema,
144
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP),
145
+ inputs: BlockRootFirstRollupPrivateInputs.schema,
146
+ }),
147
+ z.object({
148
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP),
149
+ inputs: BlockRootSingleTxFirstRollupPrivateInputs.schema,
125
150
  }),
126
- z.object({ type: z.literal(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP), inputs: EmptyBlockRootRollupInputs.schema }),
127
151
  z.object({
128
- type: z.literal(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP),
129
- inputs: PaddingBlockRootRollupInputs.schema,
152
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP),
153
+ inputs: BlockRootEmptyTxFirstRollupPrivateInputs.schema,
130
154
  }),
131
- z.object({ type: z.literal(ProvingRequestType.BLOCK_MERGE_ROLLUP), inputs: BlockMergeRollupInputs.schema }),
132
- z.object({ type: z.literal(ProvingRequestType.ROOT_ROLLUP), inputs: RootRollupInputs.schema }),
155
+ z.object({ type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP), inputs: BlockRootRollupPrivateInputs.schema }),
156
+ z.object({
157
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP),
158
+ inputs: BlockRootSingleTxRollupPrivateInputs.schema,
159
+ }),
160
+ z.object({ type: z.literal(ProvingRequestType.BLOCK_MERGE_ROLLUP), inputs: BlockMergeRollupPrivateInputs.schema }),
161
+ z.object({
162
+ type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP),
163
+ inputs: CheckpointRootRollupPrivateInputs.schema,
164
+ }),
165
+ z.object({
166
+ type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP),
167
+ inputs: CheckpointRootSingleBlockRollupPrivateInputs.schema,
168
+ }),
169
+ z.object({
170
+ type: z.literal(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP),
171
+ inputs: CheckpointPaddingRollupPrivateInputs.schema,
172
+ }),
173
+ z.object({
174
+ type: z.literal(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP),
175
+ inputs: CheckpointMergeRollupPrivateInputs.schema,
176
+ }),
177
+ z.object({ type: z.literal(ProvingRequestType.ROOT_ROLLUP), inputs: RootRollupPrivateInputs.schema }),
133
178
  ]);
134
179
 
135
180
  export function getProvingJobInputClassFor(type: ProvingRequestType) {
@@ -144,18 +189,28 @@ export function getProvingJobInputClassFor(type: ProvingRequestType) {
144
189
  return PublicBaseRollupInputs;
145
190
  case ProvingRequestType.MERGE_ROLLUP:
146
191
  return MergeRollupInputs;
147
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP:
148
- return EmptyBlockRootRollupInputs;
149
- case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP:
150
- return PaddingBlockRootRollupInputs;
192
+ case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
193
+ return BlockRootFirstRollupPrivateInputs;
194
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
195
+ return BlockRootSingleTxFirstRollupPrivateInputs;
196
+ case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
197
+ return BlockRootEmptyTxFirstRollupPrivateInputs;
151
198
  case ProvingRequestType.BLOCK_ROOT_ROLLUP:
152
- return BlockRootRollupInputs;
153
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP:
154
- return SingleTxBlockRootRollupInputs;
199
+ return BlockRootRollupPrivateInputs;
200
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
201
+ return BlockRootSingleTxRollupPrivateInputs;
155
202
  case ProvingRequestType.BLOCK_MERGE_ROLLUP:
156
- return BlockMergeRollupInputs;
203
+ return BlockMergeRollupPrivateInputs;
204
+ case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
205
+ return CheckpointRootRollupPrivateInputs;
206
+ case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
207
+ return CheckpointRootSingleBlockRollupPrivateInputs;
208
+ case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
209
+ return CheckpointPaddingRollupPrivateInputs;
210
+ case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
211
+ return CheckpointMergeRollupPrivateInputs;
157
212
  case ProvingRequestType.ROOT_ROLLUP:
158
- return RootRollupInputs;
213
+ return RootRollupPrivateInputs;
159
214
  case ProvingRequestType.BASE_PARITY:
160
215
  return BaseParityInputs;
161
216
  case ProvingRequestType.ROOT_PARITY:
@@ -175,12 +230,17 @@ export type ProvingJobInputsMap = {
175
230
  [ProvingRequestType.PRIVATE_BASE_ROLLUP]: PrivateBaseRollupInputs;
176
231
  [ProvingRequestType.PUBLIC_BASE_ROLLUP]: PublicBaseRollupInputs;
177
232
  [ProvingRequestType.MERGE_ROLLUP]: MergeRollupInputs;
178
- [ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: EmptyBlockRootRollupInputs;
179
- [ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP]: PaddingBlockRootRollupInputs;
180
- [ProvingRequestType.BLOCK_ROOT_ROLLUP]: BlockRootRollupInputs;
181
- [ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: SingleTxBlockRootRollupInputs;
182
- [ProvingRequestType.BLOCK_MERGE_ROLLUP]: BlockMergeRollupInputs;
183
- [ProvingRequestType.ROOT_ROLLUP]: RootRollupInputs;
233
+ [ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: BlockRootFirstRollupPrivateInputs;
234
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: BlockRootSingleTxFirstRollupPrivateInputs;
235
+ [ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: BlockRootEmptyTxFirstRollupPrivateInputs;
236
+ [ProvingRequestType.BLOCK_ROOT_ROLLUP]: BlockRootRollupPrivateInputs;
237
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: BlockRootSingleTxRollupPrivateInputs;
238
+ [ProvingRequestType.BLOCK_MERGE_ROLLUP]: BlockMergeRollupPrivateInputs;
239
+ [ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: CheckpointRootRollupPrivateInputs;
240
+ [ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: CheckpointRootSingleBlockRollupPrivateInputs;
241
+ [ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: CheckpointPaddingRollupPrivateInputs;
242
+ [ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: CheckpointMergeRollupPrivateInputs;
243
+ [ProvingRequestType.ROOT_ROLLUP]: RootRollupPrivateInputs;
184
244
  [ProvingRequestType.BASE_PARITY]: BaseParityInputs;
185
245
  [ProvingRequestType.ROOT_PARITY]: RootParityInputs;
186
246
  };
@@ -219,37 +279,72 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
219
279
  ),
220
280
  }),
221
281
  z.object({
222
- type: z.literal(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP),
282
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP),
283
+ result: schemaForPublicInputsAndRecursiveProof(
284
+ BlockRollupPublicInputs.schema,
285
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
286
+ ),
287
+ }),
288
+ z.object({
289
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP),
223
290
  result: schemaForPublicInputsAndRecursiveProof(
224
- BlockRootOrBlockMergePublicInputs.schema,
291
+ BlockRollupPublicInputs.schema,
225
292
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
226
293
  ),
227
294
  }),
228
295
  z.object({
229
- type: z.literal(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP),
296
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP),
230
297
  result: schemaForPublicInputsAndRecursiveProof(
231
- BlockRootOrBlockMergePublicInputs.schema,
298
+ BlockRollupPublicInputs.schema,
232
299
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
233
300
  ),
234
301
  }),
235
302
  z.object({
236
303
  type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP),
237
304
  result: schemaForPublicInputsAndRecursiveProof(
238
- BlockRootOrBlockMergePublicInputs.schema,
305
+ BlockRollupPublicInputs.schema,
239
306
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
240
307
  ),
241
308
  }),
242
309
  z.object({
243
- type: z.literal(ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP),
310
+ type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP),
244
311
  result: schemaForPublicInputsAndRecursiveProof(
245
- BlockRootOrBlockMergePublicInputs.schema,
312
+ BlockRollupPublicInputs.schema,
246
313
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
247
314
  ),
248
315
  }),
249
316
  z.object({
250
317
  type: z.literal(ProvingRequestType.BLOCK_MERGE_ROLLUP),
251
318
  result: schemaForPublicInputsAndRecursiveProof(
252
- BlockRootOrBlockMergePublicInputs.schema,
319
+ BlockRollupPublicInputs.schema,
320
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
321
+ ),
322
+ }),
323
+ z.object({
324
+ type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP),
325
+ result: schemaForPublicInputsAndRecursiveProof(
326
+ CheckpointRollupPublicInputs.schema,
327
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
328
+ ),
329
+ }),
330
+ z.object({
331
+ type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP),
332
+ result: schemaForPublicInputsAndRecursiveProof(
333
+ CheckpointRollupPublicInputs.schema,
334
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
335
+ ),
336
+ }),
337
+ z.object({
338
+ type: z.literal(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP),
339
+ result: schemaForPublicInputsAndRecursiveProof(
340
+ CheckpointRollupPublicInputs.schema,
341
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
342
+ ),
343
+ }),
344
+ z.object({
345
+ type: z.literal(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP),
346
+ result: schemaForPublicInputsAndRecursiveProof(
347
+ CheckpointRollupPublicInputs.schema,
253
348
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
254
349
  ),
255
350
  }),
@@ -285,24 +380,44 @@ export type ProvingJobResultsMap = {
285
380
  BaseOrMergeRollupPublicInputs,
286
381
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
287
382
  >;
288
- [ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
289
- BlockRootOrBlockMergePublicInputs,
383
+ [ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
384
+ BlockRollupPublicInputs,
290
385
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
291
386
  >;
292
- [ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
293
- BlockRootOrBlockMergePublicInputs,
387
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
388
+ BlockRollupPublicInputs,
294
389
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
295
390
  >;
296
- [ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
297
- BlockRootOrBlockMergePublicInputs,
391
+ [ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
392
+ BlockRollupPublicInputs,
298
393
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
299
394
  >;
300
395
  [ProvingRequestType.BLOCK_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
301
- BlockRootOrBlockMergePublicInputs,
396
+ BlockRollupPublicInputs,
397
+ typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
398
+ >;
399
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: PublicInputsAndRecursiveProof<
400
+ BlockRollupPublicInputs,
302
401
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
303
402
  >;
304
403
  [ProvingRequestType.BLOCK_MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
305
- BlockRootOrBlockMergePublicInputs,
404
+ BlockRollupPublicInputs,
405
+ typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
406
+ >;
407
+ [ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
408
+ CheckpointRollupPublicInputs,
409
+ typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
410
+ >;
411
+ [ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: PublicInputsAndRecursiveProof<
412
+ CheckpointRollupPublicInputs,
413
+ typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
414
+ >;
415
+ [ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: PublicInputsAndRecursiveProof<
416
+ CheckpointRollupPublicInputs,
417
+ typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
418
+ >;
419
+ [ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
420
+ CheckpointRollupPublicInputs,
306
421
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
307
422
  >;
308
423
  [ProvingRequestType.ROOT_ROLLUP]: PublicInputsAndRecursiveProof<RootRollupPublicInputs>;
@@ -56,12 +56,20 @@ import {
56
56
  */
57
57
  export interface PXE {
58
58
  /**
59
- * Returns whether an L1 to L2 message is synced by archiver and if it's ready to be included in a block.
59
+ * Returns whether an L1 to L2 message is synced by archiver.
60
60
  * @param l1ToL2Message - The L1 to L2 message to check.
61
61
  * @returns Whether the message is synced and ready to be included in a block.
62
+ * @deprecated Use `waitForL1ToL2MessageReady` and `isL1ToL2MessageReady` instead.
62
63
  */
63
64
  isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
64
65
 
66
+ /**
67
+ * Returns the L2 block number in which this L1 to L2 message becomes available, or undefined if not found.
68
+ * @param l1ToL2Message - The L1 to L2 message to check.
69
+ * @returns The L2 block number or undefined if not synced yet.
70
+ */
71
+ getL1ToL2MessageBlock(l1ToL2Message: Fr): Promise<number | undefined>;
72
+
65
73
  /**
66
74
  * Registers a user account in PXE given its master encryption private key.
67
75
  * Once a new account is registered, the PXE Service will trial-decrypt all published notes on
@@ -447,6 +455,7 @@ const PXEInfoSchema = z.object({
447
455
 
448
456
  export const PXESchema: ApiSchemaFor<PXE> = {
449
457
  isL1ToL2MessageSynced: z.function().args(schemas.Fr).returns(z.boolean()),
458
+ getL1ToL2MessageBlock: z.function().args(schemas.Fr).returns(z.number().optional()),
450
459
  registerAccount: z.function().args(schemas.Fr, schemas.Fr).returns(CompleteAddress.schema),
451
460
  getRegisteredAccounts: z.function().returns(z.array(CompleteAddress.schema)),
452
461
  registerSender: z.function().args(schemas.AztecAddress).returns(schemas.AztecAddress),
@@ -11,15 +11,27 @@ import type { BaseParityInputs } from '../parity/base_parity_inputs.js';
11
11
  import type { ParityPublicInputs } from '../parity/parity_public_inputs.js';
12
12
  import type { RootParityInputs } from '../parity/root_parity_inputs.js';
13
13
  import type { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
14
- import type { BlockMergeRollupInputs } from '../rollup/block_merge_rollup.js';
15
- import type { BlockRootOrBlockMergePublicInputs } from '../rollup/block_root_or_block_merge_public_inputs.js';
16
- import type { BlockRootRollupInputs, SingleTxBlockRootRollupInputs } from '../rollup/block_root_rollup.js';
17
- import type { EmptyBlockRootRollupInputs } from '../rollup/empty_block_root_rollup_inputs.js';
18
- import type { PaddingBlockRootRollupInputs, PublicTubePrivateInputs } from '../rollup/index.js';
14
+ import type { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup.js';
15
+ import type { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
16
+ import type {
17
+ BlockRootEmptyTxFirstRollupPrivateInputs,
18
+ BlockRootFirstRollupPrivateInputs,
19
+ BlockRootRollupPrivateInputs,
20
+ BlockRootSingleTxFirstRollupPrivateInputs,
21
+ BlockRootSingleTxRollupPrivateInputs,
22
+ } from '../rollup/block_root_rollup.js';
23
+ import type { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup.js';
24
+ import type { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
25
+ import type {
26
+ CheckpointPaddingRollupPrivateInputs,
27
+ CheckpointRootRollupPrivateInputs,
28
+ CheckpointRootSingleBlockRollupPrivateInputs,
29
+ } from '../rollup/checkpoint_root_rollup.js';
30
+ import type { PublicTubePrivateInputs } from '../rollup/index.js';
19
31
  import type { MergeRollupInputs } from '../rollup/merge_rollup.js';
20
32
  import type { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
21
33
  import type { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
22
- import type { RootRollupInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
34
+ import type { RootRollupPrivateInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
23
35
  import type { Tx } from '../tx/tx.js';
24
36
  import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from './proving-job.js';
25
37
 
@@ -94,52 +106,76 @@ export interface ServerCircuitProver {
94
106
  * Creates a proof for the given input.
95
107
  * @param input - Input to the circuit.
96
108
  */
109
+ getBlockRootFirstRollupProof(
110
+ input: BlockRootFirstRollupPrivateInputs,
111
+ signal?: AbortSignal,
112
+ epochNumber?: number,
113
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
114
+
115
+ getBlockRootSingleTxFirstRollupProof(
116
+ input: BlockRootSingleTxFirstRollupPrivateInputs,
117
+ signal?: AbortSignal,
118
+ epochNumber?: number,
119
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
120
+
121
+ getBlockRootEmptyTxFirstRollupProof(
122
+ input: BlockRootEmptyTxFirstRollupPrivateInputs,
123
+ signal?: AbortSignal,
124
+ epochNumber?: number,
125
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
126
+
97
127
  getBlockRootRollupProof(
98
- input: BlockRootRollupInputs,
128
+ input: BlockRootRollupPrivateInputs,
99
129
  signal?: AbortSignal,
100
130
  epochNumber?: number,
101
- ): Promise<
102
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
103
- >;
131
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
104
132
 
105
- getSingleTxBlockRootRollupProof(
106
- input: SingleTxBlockRootRollupInputs,
133
+ getBlockRootSingleTxRollupProof(
134
+ input: BlockRootSingleTxRollupPrivateInputs,
107
135
  signal?: AbortSignal,
108
136
  epochNumber?: number,
109
- ): Promise<
110
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
111
- >;
137
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
112
138
 
113
139
  /**
114
140
  * Creates a proof for the given input.
115
141
  * @param input - Input to the circuit.
116
142
  */
117
- getEmptyBlockRootRollupProof(
118
- input: EmptyBlockRootRollupInputs,
143
+ getBlockMergeRollupProof(
144
+ input: BlockMergeRollupPrivateInputs,
145
+ signal?: AbortSignal,
146
+ epochNumber?: number,
147
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
148
+
149
+ getCheckpointRootRollupProof(
150
+ input: CheckpointRootRollupPrivateInputs,
119
151
  signal?: AbortSignal,
120
152
  epochNumber?: number,
121
153
  ): Promise<
122
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
154
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
123
155
  >;
124
156
 
125
- getPaddingBlockRootRollupProof(
126
- input: PaddingBlockRootRollupInputs,
157
+ getCheckpointRootSingleBlockRollupProof(
158
+ input: CheckpointRootSingleBlockRollupPrivateInputs,
127
159
  signal?: AbortSignal,
128
160
  epochNumber?: number,
129
161
  ): Promise<
130
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
162
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
131
163
  >;
132
164
 
133
- /**
134
- * Creates a proof for the given input.
135
- * @param input - Input to the circuit.
136
- */
137
- getBlockMergeRollupProof(
138
- input: BlockMergeRollupInputs,
165
+ getCheckpointPaddingRollupProof(
166
+ input: CheckpointPaddingRollupPrivateInputs,
167
+ signal?: AbortSignal,
168
+ epochNumber?: number,
169
+ ): Promise<
170
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
171
+ >;
172
+
173
+ getCheckpointMergeRollupProof(
174
+ input: CheckpointMergeRollupPrivateInputs,
139
175
  signal?: AbortSignal,
140
176
  epochNumber?: number,
141
177
  ): Promise<
142
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
178
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
143
179
  >;
144
180
 
145
181
  /**
@@ -147,7 +183,7 @@ export interface ServerCircuitProver {
147
183
  * @param input - Input to the circuit.
148
184
  */
149
185
  getRootRollupProof(
150
- input: RootRollupInputs,
186
+ input: RootRollupPrivateInputs,
151
187
  signal?: AbortSignal,
152
188
  epochNumber?: number,
153
189
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
@@ -5,12 +5,13 @@ import { Fr } from '@aztec/foundation/fields';
5
5
  import { type ZodFor, schemas } from '@aztec/foundation/schemas';
6
6
  import type { SequencerConfig, SlasherConfig } from '@aztec/stdlib/interfaces/server';
7
7
  import type { BlockAttestation, BlockProposal, BlockProposalOptions } from '@aztec/stdlib/p2p';
8
- import type { ProposedBlockHeader, StateReference, Tx } from '@aztec/stdlib/tx';
8
+ import type { StateReference, Tx } from '@aztec/stdlib/tx';
9
9
 
10
10
  import type { PeerId } from '@libp2p/interface';
11
11
  import { z } from 'zod';
12
12
 
13
13
  import type { CommitteeAttestationsAndSigners } from '../block/index.js';
14
+ import type { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
15
 
15
16
  /**
16
17
  * Validator client configuration
@@ -59,7 +60,7 @@ export interface Validator {
59
60
  // Block validation responsibilities
60
61
  createBlockProposal(
61
62
  blockNumber: number,
62
- header: ProposedBlockHeader,
63
+ header: CheckpointHeader,
63
64
  archive: Fr,
64
65
  stateReference: StateReference,
65
66
  txs: Tx[],
@@ -127,11 +127,11 @@ export class PrivateCircuitPublicInputs {
127
127
  /**
128
128
  * Header of a block whose state is used during private execution (not the block the transaction is included in).
129
129
  */
130
- public historicalHeader: BlockHeader,
130
+ public anchorBlockHeader: BlockHeader,
131
131
  /**
132
132
  * Transaction context.
133
133
  *
134
- * Note: The chainId and version in the txContext are not redundant to the values in self.historical_header.global_variables because
134
+ * Note: The chainId and version in the txContext are not redundant to the values in self.anchor_block_header.global_variables because
135
135
  * they can be different in case of a protocol upgrade. In such a situation we could be using header from a block
136
136
  * before the upgrade took place but be using the updated protocol to execute and prove the transaction.
137
137
  */
@@ -261,7 +261,7 @@ export class PrivateCircuitPublicInputs {
261
261
  this.contractClassLogsHashes.isEmpty() &&
262
262
  this.startSideEffectCounter.isZero() &&
263
263
  this.endSideEffectCounter.isZero() &&
264
- this.historicalHeader.isEmpty() &&
264
+ this.anchorBlockHeader.isEmpty() &&
265
265
  this.txContext.isEmpty()
266
266
  );
267
267
  }
@@ -292,7 +292,7 @@ export class PrivateCircuitPublicInputs {
292
292
  fields.contractClassLogsHashes,
293
293
  fields.startSideEffectCounter,
294
294
  fields.endSideEffectCounter,
295
- fields.historicalHeader,
295
+ fields.anchorBlockHeader,
296
296
  fields.txContext,
297
297
  ] as const;
298
298
  }
@@ -324,7 +324,7 @@ export class PrivateCircuitPublicInputs {
324
324
  this.contractClassLogsHashes,
325
325
  this.startSideEffectCounter,
326
326
  this.endSideEffectCounter,
327
- this.historicalHeader,
327
+ this.anchorBlockHeader,
328
328
  this.txContext,
329
329
  ]);
330
330
  }
@@ -8,7 +8,7 @@ import { TxContext } from '../tx/tx_context.js';
8
8
  export class PrivateContextInputs {
9
9
  constructor(
10
10
  public callContext: CallContext,
11
- public historicalHeader: BlockHeader,
11
+ public anchorBlockHeader: BlockHeader,
12
12
  public txContext: TxContext,
13
13
  public startSideEffectCounter: number,
14
14
  ) {}
@@ -18,6 +18,6 @@ export class PrivateContextInputs {
18
18
  }
19
19
 
20
20
  public toFields(): Fr[] {
21
- return serializeToFields([this.callContext, this.historicalHeader, this.txContext, this.startSideEffectCounter]);
21
+ return serializeToFields([this.callContext, this.anchorBlockHeader, this.txContext, this.startSideEffectCounter]);
22
22
  }
23
23
  }
@@ -170,7 +170,7 @@ export class PrivateKernelTailCircuitPublicInputs {
170
170
  throw new Error('Private tail public inputs is not for rollup circuit.');
171
171
  }
172
172
  const constants = new TxConstantData(
173
- this.constants.historicalHeader,
173
+ this.constants.anchorBlockHeader,
174
174
  this.constants.txContext,
175
175
  this.constants.vkTreeRoot,
176
176
  this.constants.protocolContractTreeRoot,