@aztec/stdlib 6.0.0-nightly.20260810 → 6.0.0-nightly.20260821

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 (228) hide show
  1. package/dest/abi/abi.d.ts +4 -3
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +5 -1
  4. package/dest/abi/contract_artifact.d.ts +7 -2
  5. package/dest/abi/contract_artifact.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.js +18 -19
  7. package/dest/avm/avm.d.ts +3 -2
  8. package/dest/avm/avm.d.ts.map +1 -1
  9. package/dest/avm/avm.js +9 -3
  10. package/dest/avm/avm_proving_request.d.ts +70 -70
  11. package/dest/block/l2_block.d.ts +1 -2
  12. package/dest/block/l2_block.d.ts.map +1 -1
  13. package/dest/block/l2_block.js +2 -3
  14. package/dest/block/l2_block_source.d.ts +3 -6
  15. package/dest/block/l2_block_source.d.ts.map +1 -1
  16. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +11 -20
  17. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -1
  18. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +12 -116
  19. package/dest/checkpoint/checkpoint_data.d.ts +14 -2
  20. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  21. package/dest/checkpoint/checkpoint_data.js +2 -1
  22. package/dest/checkpoint/index.d.ts +2 -1
  23. package/dest/checkpoint/index.d.ts.map +1 -1
  24. package/dest/checkpoint/index.js +1 -0
  25. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.d.ts +21 -0
  26. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.d.ts.map +1 -0
  27. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.js +34 -0
  28. package/dest/checkpoint/simulation_overrides.d.ts +2 -2
  29. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -1
  30. package/dest/checkpoint/simulation_overrides.js +11 -8
  31. package/dest/config/network-consensus-config.d.ts +4 -3
  32. package/dest/config/network-consensus-config.d.ts.map +1 -1
  33. package/dest/config/network-consensus-config.js +9 -4
  34. package/dest/config/node-rpc-config.d.ts +13 -1
  35. package/dest/config/node-rpc-config.d.ts.map +1 -1
  36. package/dest/config/node-rpc-config.js +34 -1
  37. package/dest/deserialization/index.d.ts +17 -17
  38. package/dest/deserialization/index.d.ts.map +1 -1
  39. package/dest/deserialization/index.js +18 -18
  40. package/dest/gas/gas_settings.d.ts +17 -5
  41. package/dest/gas/gas_settings.d.ts.map +1 -1
  42. package/dest/gas/gas_settings.js +4 -4
  43. package/dest/gas/tx_gas_limits.d.ts +3 -4
  44. package/dest/gas/tx_gas_limits.d.ts.map +1 -1
  45. package/dest/gas/tx_gas_limits.js +4 -5
  46. package/dest/interfaces/archiver.d.ts +2 -2
  47. package/dest/interfaces/archiver.d.ts.map +1 -1
  48. package/dest/interfaces/archiver.js +32 -5
  49. package/dest/interfaces/aztec-node-admin.d.ts +2 -1
  50. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  51. package/dest/interfaces/aztec-node.d.ts +22 -4
  52. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  53. package/dest/interfaces/aztec-node.js +11 -9
  54. package/dest/interfaces/block-builder.d.ts +11 -2
  55. package/dest/interfaces/block-builder.d.ts.map +1 -1
  56. package/dest/interfaces/configs.d.ts +7 -1
  57. package/dest/interfaces/configs.d.ts.map +1 -1
  58. package/dest/interfaces/configs.js +2 -1
  59. package/dest/interfaces/p2p.d.ts +18 -1
  60. package/dest/interfaces/p2p.d.ts.map +1 -1
  61. package/dest/interfaces/p2p.js +8 -0
  62. package/dest/interfaces/proving-job.d.ts +17 -42
  63. package/dest/interfaces/proving-job.d.ts.map +1 -1
  64. package/dest/interfaces/proving-job.js +16 -47
  65. package/dest/interfaces/server_circuit_prover.d.ts +8 -15
  66. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  67. package/dest/interfaces/validator.d.ts +7 -7
  68. package/dest/interfaces/validator.d.ts.map +1 -1
  69. package/dest/messaging/append_l1_to_l2_messages.d.ts +5 -5
  70. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -1
  71. package/dest/messaging/append_l1_to_l2_messages.js +4 -8
  72. package/dest/messaging/inbox_bucket.d.ts +77 -0
  73. package/dest/messaging/inbox_bucket.d.ts.map +1 -0
  74. package/dest/messaging/inbox_bucket.js +73 -0
  75. package/dest/messaging/inbox_consumption.d.ts +55 -0
  76. package/dest/messaging/inbox_consumption.d.ts.map +1 -0
  77. package/dest/messaging/inbox_consumption.js +53 -0
  78. package/dest/messaging/inbox_rolling_hash.d.ts +16 -0
  79. package/dest/messaging/inbox_rolling_hash.d.ts.map +1 -0
  80. package/dest/messaging/inbox_rolling_hash.js +23 -0
  81. package/dest/messaging/index.d.ts +6 -3
  82. package/dest/messaging/index.d.ts.map +1 -1
  83. package/dest/messaging/index.js +5 -2
  84. package/dest/messaging/l1_to_l2_message_bundle.d.ts +31 -0
  85. package/dest/messaging/l1_to_l2_message_bundle.d.ts.map +1 -0
  86. package/dest/messaging/l1_to_l2_message_bundle.js +51 -0
  87. package/dest/messaging/l1_to_l2_message_source.d.ts +44 -10
  88. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  89. package/dest/messaging/l1_to_l2_message_sponge.d.ts +40 -0
  90. package/dest/messaging/l1_to_l2_message_sponge.d.ts.map +1 -0
  91. package/dest/messaging/l1_to_l2_message_sponge.js +56 -0
  92. package/dest/noir/index.d.ts +3 -3
  93. package/dest/noir/index.d.ts.map +1 -1
  94. package/dest/p2p/block_proposal.d.ts +24 -9
  95. package/dest/p2p/block_proposal.d.ts.map +1 -1
  96. package/dest/p2p/block_proposal.js +42 -20
  97. package/dest/p2p/checkpoint_attestation.d.ts +1 -1
  98. package/dest/p2p/checkpoint_proposal.d.ts +13 -3
  99. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  100. package/dest/p2p/checkpoint_proposal.js +26 -8
  101. package/dest/p2p/consensus_payload.d.ts +1 -1
  102. package/dest/p2p/index.d.ts +2 -1
  103. package/dest/p2p/index.d.ts.map +1 -1
  104. package/dest/p2p/index.js +1 -0
  105. package/dest/p2p/validated_proposal.d.ts +35 -0
  106. package/dest/p2p/validated_proposal.d.ts.map +1 -0
  107. package/dest/p2p/validated_proposal.js +17 -0
  108. package/dest/p2p/wire_compat_fixtures.d.ts +7 -0
  109. package/dest/p2p/wire_compat_fixtures.d.ts.map +1 -0
  110. package/dest/p2p/wire_compat_fixtures.js +14 -0
  111. package/dest/parity/inbox_parity_private_inputs.d.ts +61 -0
  112. package/dest/parity/inbox_parity_private_inputs.d.ts.map +1 -0
  113. package/dest/parity/inbox_parity_private_inputs.js +79 -0
  114. package/dest/parity/index.d.ts +2 -3
  115. package/dest/parity/index.d.ts.map +1 -1
  116. package/dest/parity/index.js +1 -2
  117. package/dest/parity/parity_public_inputs.d.ts +15 -14
  118. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  119. package/dest/parity/parity_public_inputs.js +13 -15
  120. package/dest/proofs/proving_request_type.d.ts +11 -14
  121. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  122. package/dest/proofs/proving_request_type.js +10 -13
  123. package/dest/rollup/block_constant_data.d.ts +8 -8
  124. package/dest/rollup/block_constant_data.js +4 -4
  125. package/dest/rollup/block_rollup_public_inputs.d.ts +18 -6
  126. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  127. package/dest/rollup/block_rollup_public_inputs.js +14 -7
  128. package/dest/rollup/block_root_rollup_private_inputs.d.ts +109 -113
  129. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  130. package/dest/rollup/block_root_rollup_private_inputs.js +79 -130
  131. package/dest/rollup/checkpoint_header.d.ts +14 -6
  132. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  133. package/dest/rollup/checkpoint_header.js +18 -14
  134. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +22 -2
  135. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  136. package/dest/rollup/checkpoint_rollup_public_inputs.js +14 -3
  137. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +27 -6
  138. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  139. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +17 -4
  140. package/dest/rollup/root_rollup_public_inputs.d.ts +10 -2
  141. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  142. package/dest/rollup/root_rollup_public_inputs.js +9 -3
  143. package/dest/stats/stats.d.ts +2 -2
  144. package/dest/stats/stats.d.ts.map +1 -1
  145. package/dest/tests/factories.d.ts +7 -7
  146. package/dest/tests/factories.d.ts.map +1 -1
  147. package/dest/tests/factories.js +26 -22
  148. package/dest/tests/fixtures.d.ts +1 -1
  149. package/dest/tests/fixtures.d.ts.map +1 -1
  150. package/dest/tests/fixtures.js +2 -0
  151. package/dest/tests/mocks.d.ts +4 -2
  152. package/dest/tests/mocks.d.ts.map +1 -1
  153. package/dest/tests/mocks.js +4 -7
  154. package/dest/tx/state_reference.d.ts +5 -2
  155. package/dest/tx/state_reference.d.ts.map +1 -1
  156. package/dest/tx/state_reference.js +5 -5
  157. package/package.json +8 -8
  158. package/src/abi/abi.ts +7 -2
  159. package/src/abi/contract_artifact.ts +20 -23
  160. package/src/avm/avm.ts +11 -1
  161. package/src/block/l2_block.ts +2 -3
  162. package/src/block/l2_block_source.ts +2 -5
  163. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +17 -143
  164. package/src/checkpoint/checkpoint_data.ts +14 -1
  165. package/src/checkpoint/index.ts +1 -0
  166. package/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts +46 -0
  167. package/src/checkpoint/simulation_overrides.ts +11 -8
  168. package/src/config/network-consensus-config.ts +17 -4
  169. package/src/config/node-rpc-config.ts +51 -1
  170. package/src/deserialization/index.ts +18 -18
  171. package/src/gas/README.md +4 -3
  172. package/src/gas/gas_settings.ts +7 -3
  173. package/src/gas/tx_gas_limits.ts +4 -12
  174. package/src/interfaces/archiver.ts +19 -2
  175. package/src/interfaces/aztec-node.ts +33 -12
  176. package/src/interfaces/block-builder.ts +10 -1
  177. package/src/interfaces/configs.ts +6 -0
  178. package/src/interfaces/p2p.ts +21 -0
  179. package/src/interfaces/proving-job.ts +19 -70
  180. package/src/interfaces/server_circuit_prover.ts +13 -37
  181. package/src/interfaces/validator.ts +6 -5
  182. package/src/kernel/private_kernel_reset_dimensions.ts +1 -1
  183. package/src/messaging/append_l1_to_l2_messages.ts +5 -13
  184. package/src/messaging/inbox_bucket.ts +125 -0
  185. package/src/messaging/inbox_consumption.ts +74 -0
  186. package/src/messaging/inbox_rolling_hash.ts +24 -0
  187. package/src/messaging/index.ts +5 -2
  188. package/src/messaging/l1_to_l2_message_bundle.ts +65 -0
  189. package/src/messaging/l1_to_l2_message_source.ts +48 -10
  190. package/src/messaging/l1_to_l2_message_sponge.ts +69 -0
  191. package/src/noir/index.ts +1 -2
  192. package/src/p2p/block_proposal.ts +41 -28
  193. package/src/p2p/checkpoint_proposal.ts +31 -6
  194. package/src/p2p/index.ts +1 -0
  195. package/src/p2p/validated_proposal.ts +43 -0
  196. package/src/p2p/wire_compat_fixtures.ts +23 -0
  197. package/src/parity/inbox_parity_private_inputs.ts +116 -0
  198. package/src/parity/index.ts +1 -2
  199. package/src/parity/parity_public_inputs.ts +12 -14
  200. package/src/proofs/proving_request_type.ts +2 -5
  201. package/src/rollup/block_constant_data.ts +4 -4
  202. package/src/rollup/block_rollup_public_inputs.ts +14 -5
  203. package/src/rollup/block_root_rollup_private_inputs.ts +117 -153
  204. package/src/rollup/checkpoint_header.ts +17 -13
  205. package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -0
  206. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +16 -3
  207. package/src/rollup/root_rollup_public_inputs.ts +10 -0
  208. package/src/stats/stats.ts +4 -5
  209. package/src/tests/factories.ts +38 -32
  210. package/src/tests/fixtures.ts +3 -0
  211. package/src/tests/mocks.ts +6 -7
  212. package/src/tx/state_reference.ts +5 -12
  213. package/dest/messaging/in_hash.d.ts +0 -6
  214. package/dest/messaging/in_hash.d.ts.map +0 -1
  215. package/dest/messaging/in_hash.js +0 -10
  216. package/dest/messaging/inbox_leaf.d.ts +0 -25
  217. package/dest/messaging/inbox_leaf.d.ts.map +0 -1
  218. package/dest/messaging/inbox_leaf.js +0 -42
  219. package/dest/parity/parity_base_private_inputs.d.ts +0 -39
  220. package/dest/parity/parity_base_private_inputs.d.ts.map +0 -1
  221. package/dest/parity/parity_base_private_inputs.js +0 -51
  222. package/dest/parity/parity_root_private_inputs.d.ts +0 -39
  223. package/dest/parity/parity_root_private_inputs.d.ts.map +0 -1
  224. package/dest/parity/parity_root_private_inputs.js +0 -46
  225. package/src/messaging/in_hash.ts +0 -12
  226. package/src/messaging/inbox_leaf.ts +0 -44
  227. package/src/parity/parity_base_private_inputs.ts +0 -71
  228. package/src/parity/parity_root_private_inputs.ts +0 -64
@@ -1,12 +1,11 @@
1
1
  import type { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
2
2
  import type { AvmCircuitInputs } from '../avm/avm.js';
3
- import type { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
3
+ import type { InboxParityPrivateInputs } from '../parity/inbox_parity_private_inputs.js';
4
4
  import type { ParityPublicInputs } from '../parity/parity_public_inputs.js';
5
- import type { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
6
5
  import type { RecursiveProof } from '../proofs/recursive_proof.js';
7
6
  import type { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
8
7
  import type { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
9
- import type { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
8
+ import type { BlockRootNoTxsRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
10
9
  import type { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup_private_inputs.js';
11
10
  import type { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
12
11
  import type { CheckpointPaddingRollupPrivateInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '../rollup/checkpoint_root_rollup_private_inputs.js';
@@ -25,15 +24,11 @@ import type { PublicInputsAndRecursiveProof } from './proving-job.js';
25
24
  */
26
25
  export interface ServerCircuitProver {
27
26
  /**
28
- * Creates a proof for the given input.
29
- * @param input - Input to the circuit.
30
- */
31
- getBaseParityProof(inputs: ParityBasePrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
32
- /**
33
- * Creates a proof for the given input.
34
- * @param input - Input to the circuit.
27
+ * Creates the checkpoint's single InboxParity proof. The circuit variant (ladder size) is selected from
28
+ * `inputs.size`.
29
+ * @param inputs - Input to the circuit.
35
30
  */
36
- getRootParityProof(inputs: ParityRootPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
31
+ getInboxParityProof(inputs: InboxParityPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
37
32
  getPublicChonkVerifierProof(inputs: PublicChonkVerifierPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
38
33
  /**
39
34
  * Creates a proof for the given input.
@@ -50,11 +45,9 @@ export interface ServerCircuitProver {
50
45
  * Creates a proof for the given input.
51
46
  * @param input - Input to the circuit.
52
47
  */
53
- getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
54
- getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
55
- getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
56
48
  getBlockRootRollupProof(input: BlockRootRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
57
49
  getBlockRootSingleTxRollupProof(input: BlockRootSingleTxRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
50
+ getBlockRootNoTxsRollupProof(input: BlockRootNoTxsRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
58
51
  /**
59
52
  * Creates a proof for the given input.
60
53
  * @param input - Input to the circuit.
@@ -95,4 +88,4 @@ export interface ClientProtocolCircuitVerifier {
95
88
  */
96
89
  stop(): Promise<void>;
97
90
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX2NpcmN1aXRfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zZXJ2ZXJfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1YsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3Qix5Q0FBeUMsRUFDekMsc0JBQXNCLEVBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUNWLHdDQUF3QyxFQUN4QyxpQ0FBaUMsRUFDakMsNEJBQTRCLEVBQzVCLHlDQUF5QyxFQUN6QyxvQ0FBb0MsRUFDckMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakcsT0FBTyxLQUFLLEVBQ1Ysb0NBQW9DLEVBQ3BDLGlDQUFpQyxFQUNqQyw0Q0FBNEMsRUFDN0MsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRSxNQUFN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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX2NpcmN1aXRfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zZXJ2ZXJfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1YsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3Qix5Q0FBeUMsRUFDekMsc0JBQXNCLEVBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFDVixpQ0FBaUMsRUFDakMsNEJBQTRCLEVBQzVCLG9DQUFvQyxFQUNyQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUcsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFDVixvQ0FBb0MsRUFDcEMsaUNBQWlDLEVBQ2pDLDRDQUE0QyxFQUM3QyxNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0csT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRyxPQUFPLEtB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
@@ -1 +1 @@
1
- {"version":3,"file":"server_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/server_circuit_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/server_circuit_prover.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import type { Signature } from '@aztec/foundation/eth-signature';
6
6
  import type { SequencerConfig, SlasherConfig } from '@aztec/stdlib/interfaces/server';
7
- import type { BlockProposal, BlockProposalOptions, CheckpointAttestation, CheckpointProposal, CheckpointProposalOptions } from '@aztec/stdlib/p2p';
7
+ import type { BlockProposal, BlockProposalOptions, CheckpointAttestation, CheckpointProposal, CheckpointProposalOptions, ValidatedBlockProposal, ValidatedCheckpointProposalCore } from '@aztec/stdlib/p2p';
8
8
  import type { CheckpointHeader } from '@aztec/stdlib/rollup';
9
9
  import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
10
10
  import type { PeerId } from '@libp2p/interface';
@@ -155,20 +155,20 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
155
155
  export interface Validator {
156
156
  start(): Promise<void>;
157
157
  updateConfig(config: Partial<ValidatorClientFullConfig>): void;
158
- createBlockProposal(blockHeader: BlockHeader, checkpointNumber: CheckpointNumber, indexWithinCheckpoint: number, inHash: Fr, archive: Fr, txs: Tx[], proposerAddress: EthAddress | undefined, options: BlockProposalOptions): Promise<BlockProposal | undefined>;
158
+ createBlockProposal(blockHeader: BlockHeader, checkpointNumber: CheckpointNumber, indexWithinCheckpoint: number, archive: Fr, txs: Tx[], proposerAddress: EthAddress | undefined, options: BlockProposalOptions): Promise<BlockProposal | undefined>;
159
159
  /** Creates a checkpoint proposal for the last block in a checkpoint */
160
160
  createCheckpointProposal(checkpointHeader: CheckpointHeader, archive: Fr, checkpointNumber: CheckpointNumber, feeAssetPriceModifier: bigint, lastBlockProposal: BlockProposal | undefined, proposerAddress: EthAddress | undefined, options: CheckpointProposalOptions): Promise<CheckpointProposal>;
161
161
  /**
162
- * Validate a block proposal from a peer.
162
+ * Validate a block proposal from a peer that has already passed p2p ingress validation.
163
163
  * Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
164
164
  * @returns true if the proposal is valid, false otherwise
165
165
  */
166
- validateBlockProposal(proposal: BlockProposal, sender: PeerId): Promise<boolean>;
166
+ validateBlockProposal(proposal: ValidatedBlockProposal, sender: PeerId): Promise<boolean>;
167
167
  /**
168
- * Validate and attest to a checkpoint proposal from a peer.
168
+ * Validate and attest to a checkpoint proposal from a peer that has already passed p2p ingress validation.
169
169
  * @returns Checkpoint attestations if valid, undefined otherwise
170
170
  */
171
- attestToCheckpointProposal(proposal: CheckpointProposal, sender: PeerId): Promise<CheckpointAttestation[] | undefined>;
171
+ attestToCheckpointProposal(proposal: ValidatedCheckpointProposalCore, sender: PeerId): Promise<CheckpointAttestation[] | undefined>;
172
172
  broadcastBlockProposal(proposal: BlockProposal): Promise<void>;
173
173
  /** Collect own attestations for a checkpoint proposal (used when skipping p2p attestation collection) */
174
174
  collectOwnAttestations(proposal: CheckpointProposal, checkpointNumber: CheckpointNumber): Promise<CheckpointAttestation[]>;
@@ -176,4 +176,4 @@ export interface Validator {
176
176
  collectAttestations(proposal: CheckpointProposal, required: number, deadline: Date, checkpointNumber: CheckpointNumber): Promise<CheckpointAttestation[]>;
177
177
  signAttestationsAndSigners(attestationsAndSigners: CommitteeAttestationsAndSigners, proposer: EthAddress, slot: SlotNumber, checkpointNumber: CheckpointNumber): Promise<Signature>;
178
178
  }
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFDVixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQzFCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUV0QixLQUFLLHVCQUF1QixFQUU3QixNQUFNLHdCQUF3QixDQUFDO0FBR2hDOztH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
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFDVixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QiwrQkFBK0IsRUFDaEMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssdUJBQXVCLEVBRTdC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
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { MerkleTreeWriteOperations } from '../interfaces/merkle_tree_operations.js';
3
3
  /**
4
- * Pads `l1ToL2Messages` to `NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP` and appends them to the
5
- * L1→L2 message tree of `db`. Use whenever a fork at "state before the first block of a
6
- * checkpoint" needs to mirror what the world-state synchronizer inserts at sync time.
4
+ * Appends a block's real L1→L2 message leaves (unpadded, at compact indices) to the L1→L2 message tree of `db`.
5
+ * Use whenever a fork at "state before a block" needs to mirror what the world-state
6
+ * synchronizer inserts at sync time.
7
7
  */
8
8
  export declare function appendL1ToL2MessagesToTree(db: MerkleTreeWriteOperations, l1ToL2Messages: Fr[]): Promise<void>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kX2wxX3RvX2wyX21lc3NhZ2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnaW5nL2FwcGVuZF9sMV90b19sMl9tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd6Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFuSCJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kX2wxX3RvX2wyX21lc3NhZ2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnaW5nL2FwcGVuZF9sMV90b19sMl9tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3pGOzs7O0dBSUc7QUFDSCx3QkFBc0IsMEJBQTBCLENBQUMsRUFBRSxFQUFFLHlCQUF5QixFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRW5IIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"append_l1_to_l2_messages.d.ts","sourceRoot":"","sources":["../../src/messaging/append_l1_to_l2_messages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAGzF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,yBAAyB,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnH"}
1
+ {"version":3,"file":"append_l1_to_l2_messages.d.ts","sourceRoot":"","sources":["../../src/messaging/append_l1_to_l2_messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAGzF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,yBAAyB,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnH"}
@@ -1,12 +1,8 @@
1
- import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
2
- import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
1
  import { MerkleTreeId } from '../trees/merkle_tree_id.js';
5
2
  /**
6
- * Pads `l1ToL2Messages` to `NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP` and appends them to the
7
- * L1→L2 message tree of `db`. Use whenever a fork at "state before the first block of a
8
- * checkpoint" needs to mirror what the world-state synchronizer inserts at sync time.
3
+ * Appends a block's real L1→L2 message leaves (unpadded, at compact indices) to the L1→L2 message tree of `db`.
4
+ * Use whenever a fork at "state before a block" needs to mirror what the world-state
5
+ * synchronizer inserts at sync time.
9
6
  */ export async function appendL1ToL2MessagesToTree(db, l1ToL2Messages) {
10
- const padded = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, 'Too many L1 to L2 messages');
11
- await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padded);
7
+ await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2Messages);
12
8
  }
@@ -0,0 +1,77 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { type ZodFor } from '@aztec/foundation/schemas';
3
+ import { BufferReader } from '@aztec/foundation/serialize';
4
+ import type { FieldsOf } from '@aztec/foundation/types';
5
+ import { z } from 'zod';
6
+ /**
7
+ * Snapshot of an Inbox rolling-hash bucket as tracked by the archiver.
8
+ *
9
+ * A bucket accumulates the message leaves inserted into the Inbox within a single L1 block (up to a per-bucket
10
+ * maximum, after which further messages in the same block spill into the next bucket). Buckets are identified by
11
+ * a dense, monotonically increasing sequence number and keyed for recency lookups by the L1 block timestamp at
12
+ * which they were opened. Mirrors the on-chain `InboxBucket` struct plus the fields the archiver derives while
13
+ * syncing.
14
+ */
15
+ export type InboxBucket = {
16
+ /** Dense, monotonically increasing sequence number of this bucket in the Inbox ring. */
17
+ seq: bigint;
18
+ /** Consensus rolling hash (truncated sha256 chain) after the last message absorbed into this bucket. */
19
+ inboxRollingHash: Fr;
20
+ /** Cumulative number of messages inserted into the Inbox up to and including this bucket. */
21
+ totalMsgCount: bigint;
22
+ /** L1 block timestamp at which this bucket was opened; the recency key for lag/cutoff comparisons, in seconds. */
23
+ timestamp: bigint;
24
+ /** Number of messages absorbed into this bucket. */
25
+ msgCount: number;
26
+ /** Global leaf index of the last message absorbed into this bucket. */
27
+ lastMessageIndex: bigint;
28
+ };
29
+ export declare const InboxBucketSchema: z.ZodObject<{
30
+ seq: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
31
+ inboxRollingHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
32
+ totalMsgCount: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
33
+ timestamp: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
34
+ msgCount: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
35
+ lastMessageIndex: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
36
+ }, z.core.$strip>;
37
+ /**
38
+ * Reference to a settled Inbox rolling-hash bucket, carried alongside a block proposal so a
39
+ * validator can look the bucket up in its own Inbox view and derive the consumed-message bundle itself, rather than
40
+ * trusting a proposer-supplied message list. Pins the bucket by its dense sequence number and recency-key timestamp
41
+ * and asserts the expected consensus rolling hash. A wrong reference can only cause a lookup miss or hash mismatch; it
42
+ * can never change what a validator accepts, because the checkpoint header's `inboxRollingHash` remains the signed
43
+ * consensus commitment (mirrors the unsigned bucket hint on L1's `Rollup.propose`).
44
+ */
45
+ export declare class InboxBucketRef {
46
+ /** Dense, monotonically increasing sequence number of the referenced bucket in the Inbox ring. */
47
+ readonly bucketSeq: bigint;
48
+ /** L1 block timestamp (in seconds) at which the referenced bucket was opened; its recency key. */
49
+ readonly bucketTimestamp: bigint;
50
+ /** Consensus rolling hash (truncated sha256 chain) after the last message absorbed into the referenced bucket. */
51
+ readonly inboxRollingHash: Fr;
52
+ constructor(
53
+ /** Dense, monotonically increasing sequence number of the referenced bucket in the Inbox ring. */
54
+ bucketSeq: bigint,
55
+ /** L1 block timestamp (in seconds) at which the referenced bucket was opened; its recency key. */
56
+ bucketTimestamp: bigint,
57
+ /** Consensus rolling hash (truncated sha256 chain) after the last message absorbed into the referenced bucket. */
58
+ inboxRollingHash: Fr);
59
+ /** Serialized size in bytes: two uint64 fields plus one field element. */
60
+ static readonly SIZE: number;
61
+ static get schema(): ZodFor<InboxBucketRef>;
62
+ static from(fields: FieldsOf<InboxBucketRef>): InboxBucketRef;
63
+ /** Derives a wire reference from a bucket snapshot as tracked by the archiver. */
64
+ static fromBucket(bucket: InboxBucket): InboxBucketRef;
65
+ toBuffer(): Buffer;
66
+ static fromBuffer(buffer: Buffer | BufferReader): InboxBucketRef;
67
+ getSize(): number;
68
+ equals(other: InboxBucketRef): boolean;
69
+ static empty(): InboxBucketRef;
70
+ static random(): InboxBucketRef;
71
+ toInspect(): {
72
+ bucketSeq: string;
73
+ bucketTimestamp: string;
74
+ inboxRollingHash: `0x${string}`;
75
+ };
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3hfYnVja2V0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnaW5nL2luYm94X2J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxNQUFNLFdBQVcsR0FBRztJQUN4Qix3RkFBd0Y7SUFDeEYsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLHdHQUF3RztJQUN4RyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7SUFDckIsNkZBQTZGO0lBQzdGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsa0hBQWtIO0lBQ2xILFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsb0RBQW9EO0lBQ3BELFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsdUVBQXVFO0lBQ3ZFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztDQUMxQixDQUFDO0FBRUYsZUFBTyxNQUFNLGlCQUFpQjs7Ozs7OztpQkFPSyxDQUFDO0FBRXBDOzs7Ozs7O0dBT0c7QUFDSCxxQkFBYSxjQUFjO0lBRXZCLGtHQUFrRzthQUNsRixTQUFTLEVBQUUsTUFBTTtJQUNqQyxrR0FBa0c7YUFDbEYsZUFBZSxFQUFFLE1BQU07SUFDdkMsa0hBQWtIO2FBQ2xHLGdCQUFnQixFQUFFLEVBQUU7SUFOdEM7SUFDRSxrR0FBa0c7SUFDbEYsU0FBUyxFQUFFLE1BQU07SUFDakMsa0dBQWtHO0lBQ2xGLGVBQWUsRUFBRSxNQUFNO0lBQ3ZDLGtIQUFrSDtJQUNsRyxnQkFBZ0IsRUFBRSxFQUFFLEVBQ2xDO0lBRUosMEVBQTBFO0lBQzFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUE0QjtJQUVoRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FRMUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYyxDQUU1RDtJQUVELGtGQUFrRjtJQUNsRixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsY0FBYyxDQUVyRDtJQUVELFFBQVEsSUFBSSxNQUFNLENBTWpCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxjQUFjLENBRy9EO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FFaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxPQUFPLENBTXJDO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxjQUFjLENBRTdCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxjQUFjLENBTTlCO0lBRUQsU0FBUzs7OztNQU1SO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox_bucket.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox_bucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,wGAAwG;IACxG,gBAAgB,EAAE,EAAE,CAAC;IACrB,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB,kHAAkH;IAClH,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;iBAOK,CAAC;AAEpC;;;;;;;GAOG;AACH,qBAAa,cAAc;IAEvB,kGAAkG;aAClF,SAAS,EAAE,MAAM;IACjC,kGAAkG;aAClF,eAAe,EAAE,MAAM;IACvC,kHAAkH;aAClG,gBAAgB,EAAE,EAAE;IANtC;IACE,kGAAkG;IAClF,SAAS,EAAE,MAAM;IACjC,kGAAkG;IAClF,eAAe,EAAE,MAAM;IACvC,kHAAkH;IAClG,gBAAgB,EAAE,EAAE,EAClC;IAEJ,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,SAA4B;IAEhD,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,CAQ1C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,cAAc,CAE5D;IAED,kFAAkF;IAClF,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAErD;IAED,QAAQ,IAAI,MAAM,CAMjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,CAG/D;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAMrC;IAED,MAAM,CAAC,KAAK,IAAI,cAAc,CAE7B;IAED,MAAM,CAAC,MAAM,IAAI,cAAc,CAM9B;IAED,SAAS;;;;MAMR;CACF"}
@@ -0,0 +1,73 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { schemas } from '@aztec/foundation/schemas';
3
+ import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
4
+ import { z } from 'zod';
5
+ export const InboxBucketSchema = z.object({
6
+ seq: schemas.BigInt,
7
+ inboxRollingHash: Fr.schema,
8
+ totalMsgCount: schemas.BigInt,
9
+ timestamp: schemas.BigInt,
10
+ msgCount: schemas.Integer,
11
+ lastMessageIndex: schemas.BigInt
12
+ });
13
+ /**
14
+ * Reference to a settled Inbox rolling-hash bucket, carried alongside a block proposal so a
15
+ * validator can look the bucket up in its own Inbox view and derive the consumed-message bundle itself, rather than
16
+ * trusting a proposer-supplied message list. Pins the bucket by its dense sequence number and recency-key timestamp
17
+ * and asserts the expected consensus rolling hash. A wrong reference can only cause a lookup miss or hash mismatch; it
18
+ * can never change what a validator accepts, because the checkpoint header's `inboxRollingHash` remains the signed
19
+ * consensus commitment (mirrors the unsigned bucket hint on L1's `Rollup.propose`).
20
+ */ export class InboxBucketRef {
21
+ bucketSeq;
22
+ bucketTimestamp;
23
+ inboxRollingHash;
24
+ constructor(/** Dense, monotonically increasing sequence number of the referenced bucket in the Inbox ring. */ bucketSeq, /** L1 block timestamp (in seconds) at which the referenced bucket was opened; its recency key. */ bucketTimestamp, /** Consensus rolling hash (truncated sha256 chain) after the last message absorbed into the referenced bucket. */ inboxRollingHash){
25
+ this.bucketSeq = bucketSeq;
26
+ this.bucketTimestamp = bucketTimestamp;
27
+ this.inboxRollingHash = inboxRollingHash;
28
+ }
29
+ /** Serialized size in bytes: two uint64 fields plus one field element. */ static SIZE = 8 + 8 + Fr.SIZE_IN_BYTES;
30
+ static get schema() {
31
+ return z.object({
32
+ bucketSeq: schemas.BigInt,
33
+ bucketTimestamp: schemas.BigInt,
34
+ inboxRollingHash: Fr.schema
35
+ }).transform(InboxBucketRef.from);
36
+ }
37
+ static from(fields) {
38
+ return new InboxBucketRef(fields.bucketSeq, fields.bucketTimestamp, fields.inboxRollingHash);
39
+ }
40
+ /** Derives a wire reference from a bucket snapshot as tracked by the archiver. */ static fromBucket(bucket) {
41
+ return new InboxBucketRef(bucket.seq, bucket.timestamp, bucket.inboxRollingHash);
42
+ }
43
+ toBuffer() {
44
+ return serializeToBuffer([
45
+ bigintToUInt64BE(this.bucketSeq),
46
+ bigintToUInt64BE(this.bucketTimestamp),
47
+ this.inboxRollingHash
48
+ ]);
49
+ }
50
+ static fromBuffer(buffer) {
51
+ const reader = BufferReader.asReader(buffer);
52
+ return new InboxBucketRef(reader.readUInt64(), reader.readUInt64(), reader.readObject(Fr));
53
+ }
54
+ getSize() {
55
+ return InboxBucketRef.SIZE;
56
+ }
57
+ equals(other) {
58
+ return this.bucketSeq === other.bucketSeq && this.bucketTimestamp === other.bucketTimestamp && this.inboxRollingHash.equals(other.inboxRollingHash);
59
+ }
60
+ static empty() {
61
+ return new InboxBucketRef(0n, 0n, Fr.ZERO);
62
+ }
63
+ static random() {
64
+ return new InboxBucketRef(BigInt(Math.floor(Math.random() * 1000)), BigInt(Math.floor(Math.random() * 1_000_000)), Fr.random());
65
+ }
66
+ toInspect() {
67
+ return {
68
+ bucketSeq: this.bucketSeq.toString(),
69
+ bucketTimestamp: this.bucketTimestamp.toString(),
70
+ inboxRollingHash: this.inboxRollingHash.toString()
71
+ };
72
+ }
73
+ }
@@ -0,0 +1,55 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { type L1RollupConstants } from '../epoch-helpers/index.js';
3
+ import type { InboxBucket } from './inbox_bucket.js';
4
+ /**
5
+ * Censorship cutoff timestamp for a checkpoint proposed in `slot`, mirroring the cutoff in
6
+ * `ProposeLib.validateInboxConsumption`, which is `TimeLib.getBuildFrameStart(slot)`. A checkpoint proposed in slot
7
+ * `S` is built during slot `S - 1`, and the build frame opens one Ethereum slot before that slot starts, since the
8
+ * builder works from the L1 state as of the preceding L1 block: `cutoff(S) = toTimestamp(S - 1) - E`. Buckets opened
9
+ * at or before the cutoff were visible to every node for the whole build frame and are mandatory to consume by the
10
+ * checkpoint's last block; the strict `>` on the L1 "past cutoff" test (see {@link isInboxConsumptionSufficient})
11
+ * makes a bucket opened exactly at the cutoff mandatory.
12
+ *
13
+ * This is the single source of truth for the cutoff formula shared by the sequencer's streaming bucket selection and
14
+ * the validator's last-block censorship check.
15
+ */
16
+ export declare function getInboxCutoffTimestamp(slot: SlotNumber, l1Constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>): bigint;
17
+ /**
18
+ * Smallest number of blocks a checkpoint must be able to build for the streaming Inbox to be guaranteed to clear any
19
+ * mandatory backlog, and therefore the floor on a network's `maxBlocksPerCheckpoint`.
20
+ *
21
+ * Blocks consume whole buckets — a bucket is never split — so a block can only consume a bucket prefix whose message
22
+ * count fits `MAX_L1_TO_L2_MSGS_PER_BLOCK`. The worst case alternates a one-message bucket with a full
23
+ * `MAX_L1_TO_L2_MSGS_PER_BLOCK`-message bucket: each such pair needs two blocks (the pair's `cap + 1` messages
24
+ * overflow one block), and the backlog only stops being mandatory once consuming the next bucket would exceed
25
+ * `MAX_L1_TO_L2_MSGS_PER_CHECKPOINT` (the cap-escape). That bounds the backlog at `cap + 1` messages per block-pair
26
+ * and yields `2 * ceil((MAX_L1_TO_L2_MSGS_PER_CHECKPOINT + 1) / (MAX_L1_TO_L2_MSGS_PER_BLOCK + 1)) - 1` blocks (the
27
+ * final pair needs only its first block).
28
+ *
29
+ * A network configured below this floor can be halted permanently: an adversary posts that bucket pattern, no
30
+ * checkpoint can reach the censorship floor within its block budget, every checkpoint is rejected, and because a
31
+ * rejected checkpoint never advances the consumed position the next checkpoint faces the identical backlog.
32
+ */
33
+ export declare const MIN_BLOCKS_FOR_INBOX_CATCHUP: number;
34
+ /**
35
+ * Whether a checkpoint whose last-consumed bucket is immediately followed by `nextBucket` meets the censorship floor,
36
+ * mirroring the mandatory-consumption assert in `ProposeLib.validateInboxConsumption`.
37
+ * Consumption is sufficient when the first unconsumed bucket:
38
+ * - does not exist (the checkpoint consumed everything the Inbox has), or
39
+ * - was opened strictly after the cutoff (`timestamp > cutoffTimestamp`), or
40
+ * - consuming through it would exceed the per-checkpoint cap (the cap-escape).
41
+ *
42
+ * The strict `>` matches L1: a bucket opened exactly at the cutoff must be consumed. This is the single source of
43
+ * truth for the minimum-consumption / cap-escape rule shared by the sequencer's selection floor and the validator.
44
+ */
45
+ export declare function isInboxConsumptionSufficient(input: {
46
+ /** The first unconsumed bucket (the one after the checkpoint's last-consumed bucket), or undefined if none exists. */
47
+ nextBucket: Pick<InboxBucket, 'timestamp' | 'totalMsgCount'> | undefined;
48
+ /** Censorship cutoff timestamp from {@link getInboxCutoffTimestamp}. */
49
+ cutoffTimestamp: bigint;
50
+ /** Cumulative Inbox message count consumed as of the parent checkpoint; the per-checkpoint cap origin. */
51
+ checkpointStartTotalMsgCount: bigint;
52
+ /** Maximum number of messages the checkpoint may consume in total (`MAX_L1_TO_L2_MSGS_PER_CHECKPOINT`). */
53
+ perCheckpointCap: number;
54
+ }): boolean;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3hfY29uc3VtcHRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvaW5ib3hfY29uc3VtcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUF1QixNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUNyQyxJQUFJLEVBQUUsVUFBVSxFQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsR0FDOUYsTUFBTSxDQUVSO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsZUFBTyxNQUFNLDRCQUE0QixRQUNzRCxDQUFDO0FBRWhHOzs7Ozs7Ozs7O0dBVUc7QUFDSCx3QkFBZ0IsNEJBQTRCLENBQUMsS0FBSyxFQUFFO0lBQ2xELHNIQUFzSDtJQUN0SCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3pFLHdFQUF3RTtJQUN4RSxlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLDBHQUEwRztJQUMxRyw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDckMsMkdBQTJHO0lBQzNHLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztDQUMxQixHQUFHLE9BQU8sQ0FTViJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox_consumption.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox_consumption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,sBAAsB,CAAC,GAC9F,MAAM,CAER;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,QACsD,CAAC;AAEhG;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,sHAAsH;IACtH,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,GAAG,SAAS,CAAC;IACzE,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,0GAA0G;IAC1G,4BAA4B,EAAE,MAAM,CAAC;IACrC,2GAA2G;IAC3G,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CASV"}
@@ -0,0 +1,53 @@
1
+ import { MAX_L1_TO_L2_MSGS_PER_BLOCK, MAX_L1_TO_L2_MSGS_PER_CHECKPOINT } from '@aztec/constants';
2
+ import { SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { getTimestampForSlot } from '../epoch-helpers/index.js';
4
+ /**
5
+ * Censorship cutoff timestamp for a checkpoint proposed in `slot`, mirroring the cutoff in
6
+ * `ProposeLib.validateInboxConsumption`, which is `TimeLib.getBuildFrameStart(slot)`. A checkpoint proposed in slot
7
+ * `S` is built during slot `S - 1`, and the build frame opens one Ethereum slot before that slot starts, since the
8
+ * builder works from the L1 state as of the preceding L1 block: `cutoff(S) = toTimestamp(S - 1) - E`. Buckets opened
9
+ * at or before the cutoff were visible to every node for the whole build frame and are mandatory to consume by the
10
+ * checkpoint's last block; the strict `>` on the L1 "past cutoff" test (see {@link isInboxConsumptionSufficient})
11
+ * makes a bucket opened exactly at the cutoff mandatory.
12
+ *
13
+ * This is the single source of truth for the cutoff formula shared by the sequencer's streaming bucket selection and
14
+ * the validator's last-block censorship check.
15
+ */ export function getInboxCutoffTimestamp(slot, l1Constants) {
16
+ return getTimestampForSlot(SlotNumber(slot - 1), l1Constants) - BigInt(l1Constants.ethereumSlotDuration);
17
+ }
18
+ /**
19
+ * Smallest number of blocks a checkpoint must be able to build for the streaming Inbox to be guaranteed to clear any
20
+ * mandatory backlog, and therefore the floor on a network's `maxBlocksPerCheckpoint`.
21
+ *
22
+ * Blocks consume whole buckets — a bucket is never split — so a block can only consume a bucket prefix whose message
23
+ * count fits `MAX_L1_TO_L2_MSGS_PER_BLOCK`. The worst case alternates a one-message bucket with a full
24
+ * `MAX_L1_TO_L2_MSGS_PER_BLOCK`-message bucket: each such pair needs two blocks (the pair's `cap + 1` messages
25
+ * overflow one block), and the backlog only stops being mandatory once consuming the next bucket would exceed
26
+ * `MAX_L1_TO_L2_MSGS_PER_CHECKPOINT` (the cap-escape). That bounds the backlog at `cap + 1` messages per block-pair
27
+ * and yields `2 * ceil((MAX_L1_TO_L2_MSGS_PER_CHECKPOINT + 1) / (MAX_L1_TO_L2_MSGS_PER_BLOCK + 1)) - 1` blocks (the
28
+ * final pair needs only its first block).
29
+ *
30
+ * A network configured below this floor can be halted permanently: an adversary posts that bucket pattern, no
31
+ * checkpoint can reach the censorship floor within its block budget, every checkpoint is rejected, and because a
32
+ * rejected checkpoint never advances the consumed position the next checkpoint faces the identical backlog.
33
+ */ export const MIN_BLOCKS_FOR_INBOX_CATCHUP = 2 * Math.ceil((MAX_L1_TO_L2_MSGS_PER_CHECKPOINT + 1) / (MAX_L1_TO_L2_MSGS_PER_BLOCK + 1)) - 1;
34
+ /**
35
+ * Whether a checkpoint whose last-consumed bucket is immediately followed by `nextBucket` meets the censorship floor,
36
+ * mirroring the mandatory-consumption assert in `ProposeLib.validateInboxConsumption`.
37
+ * Consumption is sufficient when the first unconsumed bucket:
38
+ * - does not exist (the checkpoint consumed everything the Inbox has), or
39
+ * - was opened strictly after the cutoff (`timestamp > cutoffTimestamp`), or
40
+ * - consuming through it would exceed the per-checkpoint cap (the cap-escape).
41
+ *
42
+ * The strict `>` matches L1: a bucket opened exactly at the cutoff must be consumed. This is the single source of
43
+ * truth for the minimum-consumption / cap-escape rule shared by the sequencer's selection floor and the validator.
44
+ */ export function isInboxConsumptionSufficient(input) {
45
+ const { nextBucket, cutoffTimestamp, checkpointStartTotalMsgCount, perCheckpointCap } = input;
46
+ if (nextBucket === undefined) {
47
+ return true;
48
+ }
49
+ if (nextBucket.timestamp > cutoffTimestamp) {
50
+ return true;
51
+ }
52
+ return nextBucket.totalMsgCount - checkpointStartTotalMsgCount > BigInt(perCheckpointCap);
53
+ }
@@ -0,0 +1,16 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ /**
3
+ * Extends the Inbox rolling-hash chain by a single message leaf, returning the new rolling hash.
4
+ *
5
+ * Each link is `sha256ToField(DOM_SEP__INBOX_ROLLING_HASH || prev || leaf)` over the 4-byte big-endian domain
6
+ * separator followed by the two 32-byte big-endian values, matching the truncated-to-field sha256 the L1 Inbox
7
+ * accumulates and the noir `accumulate_inbox_rolling_hash` helper. The separator distinguishes a chain link from the
8
+ * untagged `outHash` merkle node hash, which absorbs the same two-field preimage shape.
9
+ */
10
+ export declare function updateInboxRollingHash(prev: Fr, leaf: Fr): Fr;
11
+ /**
12
+ * Extends the Inbox rolling-hash chain by a list of message leaves, in order, returning the new rolling hash.
13
+ * The genesis rolling hash is `Fr.ZERO`, and an empty list returns `start` unchanged.
14
+ */
15
+ export declare function accumulateInboxRollingHash(start: Fr, leaves: Fr[]): Fr;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3hfcm9sbGluZ19oYXNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnaW5nL2luYm94X3JvbGxpbmdfaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBRXRFIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox_rolling_hash.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox_rolling_hash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAE7D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAEtE"}
@@ -0,0 +1,23 @@
1
+ import { DomainSeparator } from '@aztec/constants';
2
+ import { sha256ToField } from '@aztec/foundation/crypto/sha256';
3
+ import { numToUInt32BE } from '@aztec/foundation/serialize';
4
+ /**
5
+ * Extends the Inbox rolling-hash chain by a single message leaf, returning the new rolling hash.
6
+ *
7
+ * Each link is `sha256ToField(DOM_SEP__INBOX_ROLLING_HASH || prev || leaf)` over the 4-byte big-endian domain
8
+ * separator followed by the two 32-byte big-endian values, matching the truncated-to-field sha256 the L1 Inbox
9
+ * accumulates and the noir `accumulate_inbox_rolling_hash` helper. The separator distinguishes a chain link from the
10
+ * untagged `outHash` merkle node hash, which absorbs the same two-field preimage shape.
11
+ */ export function updateInboxRollingHash(prev, leaf) {
12
+ return sha256ToField([
13
+ numToUInt32BE(DomainSeparator.INBOX_ROLLING_HASH),
14
+ prev.toBuffer(),
15
+ leaf.toBuffer()
16
+ ]);
17
+ }
18
+ /**
19
+ * Extends the Inbox rolling-hash chain by a list of message leaves, in order, returning the new rolling hash.
20
+ * The genesis rolling hash is `Fr.ZERO`, and an empty list returns `start` unchanged.
21
+ */ export function accumulateInboxRollingHash(start, leaves) {
22
+ return leaves.reduce(updateInboxRollingHash, start);
23
+ }
@@ -1,6 +1,9 @@
1
1
  export * from './append_l1_to_l2_messages.js';
2
- export * from './in_hash.js';
3
- export * from './inbox_leaf.js';
2
+ export * from './inbox_bucket.js';
3
+ export * from './inbox_consumption.js';
4
+ export * from './inbox_rolling_hash.js';
5
+ export * from './l1_to_l2_message_bundle.js';
6
+ export * from './l1_to_l2_message_sponge.js';
4
7
  export * from './l1_to_l2_message.js';
5
8
  export * from './l1_to_l2_message_source.js';
6
9
  export * from './l1_actor.js';
@@ -8,4 +11,4 @@ export * from './l2_actor.js';
8
11
  export * from './l2_to_l1_message.js';
9
12
  export * from './l2_to_l1_membership.js';
10
13
  export * from './out_hash.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxlQUFlLENBQUMifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGVBQWUsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export * from './append_l1_to_l2_messages.js';
2
- export * from './in_hash.js';
3
- export * from './inbox_leaf.js';
2
+ export * from './inbox_bucket.js';
3
+ export * from './inbox_consumption.js';
4
+ export * from './inbox_rolling_hash.js';
5
+ export * from './l1_to_l2_message_bundle.js';
6
+ export * from './l1_to_l2_message_sponge.js';
4
7
  export * from './l1_to_l2_message.js';
5
8
  export * from './l1_to_l2_message_source.js';
6
9
  export * from './l1_actor.js';