@aztec/stdlib 3.0.0-nightly.20250917 → 3.0.0-nightly.20250919

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 (234) hide show
  1. package/dest/avm/avm.d.ts +6 -0
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm_circuit_public_inputs.d.ts +6 -1
  4. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  5. package/dest/avm/avm_circuit_public_inputs.js +11 -6
  6. package/dest/avm/avm_proving_request.d.ts +7 -0
  7. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  8. package/dest/block/body.d.ts +4 -1
  9. package/dest/block/body.d.ts.map +1 -1
  10. package/dest/block/body.js +16 -5
  11. package/dest/block/index.d.ts +1 -0
  12. package/dest/block/index.d.ts.map +1 -1
  13. package/dest/block/index.js +1 -0
  14. package/dest/block/l2_block.d.ts +8 -5
  15. package/dest/block/l2_block.d.ts.map +1 -1
  16. package/dest/block/l2_block.js +14 -7
  17. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  18. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  19. package/dest/block/l2_block_code_to_purge.js +23 -13
  20. package/dest/block/l2_block_header.d.ts +100 -0
  21. package/dest/block/l2_block_header.d.ts.map +1 -0
  22. package/dest/block/l2_block_header.js +146 -0
  23. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  24. package/dest/block/published_l2_block.d.ts +2 -2
  25. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  26. package/dest/block/test/l2_tips_store_test_suite.js +1 -3
  27. package/dest/interfaces/block-builder.d.ts +2 -2
  28. package/dest/interfaces/block-builder.d.ts.map +1 -1
  29. package/dest/interfaces/epoch-prover.d.ts +26 -9
  30. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  31. package/dest/interfaces/proving-job.d.ts +233 -125
  32. package/dest/interfaces/proving-job.d.ts.map +1 -1
  33. package/dest/interfaces/proving-job.js +120 -102
  34. package/dest/interfaces/pxe.d.ts +192 -90
  35. package/dest/interfaces/pxe.d.ts.map +1 -1
  36. package/dest/interfaces/pxe.js +5 -31
  37. package/dest/interfaces/server_circuit_prover.d.ts +31 -27
  38. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  39. package/dest/interfaces/validator.d.ts +3 -2
  40. package/dest/interfaces/validator.d.ts.map +1 -1
  41. package/dest/kernel/private_circuit_public_inputs.d.ts +4 -4
  42. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  43. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  44. package/dest/kernel/private_context_inputs.d.ts +2 -2
  45. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  46. package/dest/kernel/private_context_inputs.js +4 -4
  47. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +1 -1
  48. package/dest/p2p/consensus_payload.d.ts +7 -6
  49. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  50. package/dest/p2p/consensus_payload.js +7 -6
  51. package/dest/parity/index.d.ts +2 -3
  52. package/dest/parity/index.d.ts.map +1 -1
  53. package/dest/parity/index.js +2 -3
  54. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
  55. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  56. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
  57. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  58. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  59. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  60. package/dest/proofs/proof_data.d.ts +4 -3
  61. package/dest/proofs/proof_data.d.ts.map +1 -1
  62. package/dest/proofs/proof_data.js +2 -2
  63. package/dest/proofs/proving_request_type.d.ts +16 -11
  64. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  65. package/dest/proofs/proving_request_type.js +16 -11
  66. package/dest/rollup/base_rollup_hints.d.ts +12 -3
  67. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  68. package/dest/rollup/base_rollup_hints.js +11 -5
  69. package/dest/rollup/block_constant_data.d.ts +20 -6
  70. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  71. package/dest/rollup/block_constant_data.js +15 -7
  72. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  73. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  74. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  75. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  76. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  77. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  78. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  79. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  80. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  81. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  82. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  83. package/dest/rollup/checkpoint_constant_data.js +55 -0
  84. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +11 -12
  85. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  86. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
  87. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  88. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  89. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  90. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +105 -0
  91. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  92. package/dest/rollup/checkpoint_rollup_public_inputs.js +105 -0
  93. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  94. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  95. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  96. package/dest/rollup/epoch_constant_data.d.ts +19 -2
  97. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  98. package/dest/rollup/epoch_constant_data.js +20 -7
  99. package/dest/rollup/index.d.ts +14 -12
  100. package/dest/rollup/index.d.ts.map +1 -1
  101. package/dest/rollup/index.js +14 -12
  102. package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
  103. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  104. package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
  105. package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
  106. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  107. package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
  108. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  109. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  110. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  111. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  112. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  113. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  114. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  115. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  116. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  117. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +12 -12
  118. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  119. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +14 -14
  120. package/dest/stats/stats.d.ts +1 -1
  121. package/dest/stats/stats.d.ts.map +1 -1
  122. package/dest/tests/factories.d.ts +28 -68
  123. package/dest/tests/factories.d.ts.map +1 -1
  124. package/dest/tests/factories.js +90 -115
  125. package/dest/tests/mocks.d.ts +3 -2
  126. package/dest/tests/mocks.d.ts.map +1 -1
  127. package/dest/tests/mocks.js +3 -3
  128. package/dest/tx/block_header.d.ts +12 -13
  129. package/dest/tx/block_header.d.ts.map +1 -1
  130. package/dest/tx/block_header.js +16 -21
  131. package/dest/tx/global_variables.d.ts.map +1 -1
  132. package/dest/tx/global_variables.js +0 -1
  133. package/dest/tx/index.d.ts +0 -1
  134. package/dest/tx/index.d.ts.map +1 -1
  135. package/dest/tx/index.js +0 -1
  136. package/dest/tx/private_execution_result.d.ts +2 -2
  137. package/dest/tx/private_execution_result.d.ts.map +1 -1
  138. package/dest/tx/private_execution_result.js +3 -3
  139. package/dest/tx/tx_constant_data.d.ts +4 -4
  140. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  141. package/dest/tx/tx_constant_data.js +6 -6
  142. package/dest/tx/tx_effect.d.ts +0 -3
  143. package/dest/tx/tx_effect.d.ts.map +1 -1
  144. package/dest/tx/tx_effect.js +2 -7
  145. package/package.json +8 -8
  146. package/src/avm/avm_circuit_public_inputs.ts +10 -0
  147. package/src/block/body.ts +23 -6
  148. package/src/block/index.ts +1 -0
  149. package/src/block/l2_block.ts +18 -8
  150. package/src/block/l2_block_code_to_purge.ts +30 -31
  151. package/src/block/l2_block_header.ts +232 -0
  152. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  153. package/src/block/test/l2_tips_store_test_suite.ts +1 -2
  154. package/src/interfaces/block-builder.ts +2 -6
  155. package/src/interfaces/epoch-prover.ts +35 -11
  156. package/src/interfaces/proving-job.ts +199 -123
  157. package/src/interfaces/pxe.ts +3 -138
  158. package/src/interfaces/server_circuit_prover.ts +83 -52
  159. package/src/interfaces/validator.ts +3 -2
  160. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  161. package/src/kernel/private_context_inputs.ts +2 -2
  162. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +1 -1
  163. package/src/p2p/consensus_payload.ts +8 -7
  164. package/src/parity/index.ts +2 -3
  165. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
  166. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  167. package/src/proofs/proof_data.ts +5 -8
  168. package/src/proofs/proving_request_type.ts +14 -8
  169. package/src/rollup/base_rollup_hints.ts +9 -1
  170. package/src/rollup/block_constant_data.ts +13 -3
  171. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  172. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  173. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  174. package/src/rollup/checkpoint_constant_data.ts +84 -0
  175. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +16 -17
  176. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  177. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +26 -52
  178. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  179. package/src/rollup/epoch_constant_data.ts +32 -8
  180. package/src/rollup/index.ts +14 -12
  181. package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
  182. package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
  183. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  184. package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +8 -104
  185. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  186. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +12 -12
  187. package/src/stats/stats.ts +18 -12
  188. package/src/tests/factories.ts +144 -199
  189. package/src/tests/mocks.ts +6 -13
  190. package/src/tx/block_header.ts +17 -32
  191. package/src/tx/global_variables.ts +0 -1
  192. package/src/tx/index.ts +0 -1
  193. package/src/tx/private_execution_result.ts +3 -3
  194. package/src/tx/tx_constant_data.ts +4 -4
  195. package/src/tx/tx_effect.ts +2 -7
  196. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  197. package/dest/parity/root_parity_input.d.ts +0 -52
  198. package/dest/parity/root_parity_input.d.ts.map +0 -1
  199. package/dest/parity/root_parity_input.js +0 -50
  200. package/dest/parity/root_parity_inputs.d.ts +0 -37
  201. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  202. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  203. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  204. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  205. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  206. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  207. package/dest/rollup/block_root_rollup.d.ts +0 -283
  208. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  209. package/dest/rollup/block_root_rollup.js +0 -306
  210. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  211. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  212. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  213. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  214. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  215. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  216. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  217. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  218. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  219. package/dest/rollup/previous_rollup_block_data.js +0 -37
  220. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  221. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  222. package/dest/rollup/previous_rollup_data.js +0 -37
  223. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  224. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  225. package/dest/rollup/root_rollup.d.ts +0 -106
  226. package/dest/rollup/root_rollup.d.ts.map +0 -1
  227. package/dest/rollup/root_rollup.js +0 -147
  228. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  229. package/src/parity/root_parity_input.ts +0 -71
  230. package/src/rollup/block_root_rollup.ts +0 -380
  231. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  232. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  233. package/src/rollup/previous_rollup_block_data.ts +0 -48
  234. package/src/rollup/previous_rollup_data.ts +0 -48
@@ -1,23 +1,12 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
+ import type { FieldsOf } from '@aztec/foundation/types';
2
3
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
3
- import { BlockHeader } from '../tx/block_header.js';
4
- import { GlobalVariables } from '../tx/global_variables.js';
5
- /**
6
- * Makes header.
7
- */
8
- export declare function makeHeader(seed?: number, blockNumber?: number, slotNumber?: number, inHash?: Fr): BlockHeader;
4
+ import { L2BlockHeader } from './l2_block_header.js';
5
+ export declare function makeL2BlockHeader(seed?: number, blockNumber?: number, slotNumber?: number, overrides?: Partial<FieldsOf<L2BlockHeader>>, inHash?: Fr): L2BlockHeader;
9
6
  /**
10
7
  * Makes arbitrary append only tree snapshot.
11
8
  * @param seed - The seed to use for generating the append only tree snapshot.
12
9
  * @returns An append only tree snapshot.
13
10
  */
14
11
  export declare function makeAppendOnlyTreeSnapshot(seed?: number): AppendOnlyTreeSnapshot;
15
- /**
16
- * Makes global variables.
17
- * @param seed - The seed to use for generating the global variables.
18
- * @param blockNumber - The block number to use for generating the global variables.
19
- * If blockNumber is undefined, it will be set to seed + 2.
20
- * @returns Global variables.
21
- */
22
- export declare function makeGlobalVariables(seed?: number, blockNumber?: number | undefined, slotNumber?: number | undefined): GlobalVariables;
23
12
  //# sourceMappingURL=l2_block_code_to_purge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI5D;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAI,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CASxG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,SAAI,GAAG,sBAAsB,CAE3E;AA+BD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,SAAI,EACR,WAAW,GAAE,MAAM,GAAG,SAAqB,EAC3C,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,eAAe,CAWjB"}
1
+ {"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,IAAI,SAAI,EACR,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM,EAChD,MAAM,CAAC,EAAE,EAAE,iBAcZ;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,SAAI,GAAG,sBAAsB,CAE3E"}
@@ -1,17 +1,23 @@
1
+ import { compact } from '@aztec/foundation/collection';
1
2
  import { EthAddress } from '@aztec/foundation/eth-address';
2
3
  import { Fr } from '@aztec/foundation/fields';
3
4
  import { AztecAddress } from '../aztec-address/index.js';
4
5
  import { GasFees } from '../gas/gas_fees.js';
5
6
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
6
- import { BlockHeader } from '../tx/block_header.js';
7
7
  import { ContentCommitment } from '../tx/content_commitment.js';
8
8
  import { GlobalVariables } from '../tx/global_variables.js';
9
9
  import { PartialStateReference } from '../tx/partial_state_reference.js';
10
10
  import { StateReference } from '../tx/state_reference.js';
11
- /**
12
- * Makes header.
13
- */ export function makeHeader(seed = 0, blockNumber, slotNumber, inHash) {
14
- return new BlockHeader(makeAppendOnlyTreeSnapshot(seed + 0x100), makeContentCommitment(seed + 0x200, inHash), makeStateReference(seed + 0x600), makeGlobalVariables(seed += 0x700, blockNumber, slotNumber ?? blockNumber), new Fr(seed + 0x800), new Fr(seed + 0x900));
11
+ import { L2BlockHeader } from './l2_block_header.js';
12
+ export function makeL2BlockHeader(seed = 0, blockNumber, slotNumber, overrides = {}, inHash) {
13
+ return new L2BlockHeader(makeAppendOnlyTreeSnapshot(seed + 0x100), overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200, inHash), overrides?.state ?? makeStateReference(seed + 0x600), makeGlobalVariables(seed += 0x700, {
14
+ ...blockNumber ? {
15
+ blockNumber
16
+ } : {},
17
+ ...slotNumber ? {
18
+ slotNumber: new Fr(slotNumber)
19
+ } : {}
20
+ }), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00));
15
21
  }
16
22
  /**
17
23
  * Makes arbitrary append only tree snapshot.
@@ -39,12 +45,16 @@ import { StateReference } from '../tx/state_reference.js';
39
45
  */ function makePartialStateReference(seed = 0) {
40
46
  return new PartialStateReference(makeAppendOnlyTreeSnapshot(seed), makeAppendOnlyTreeSnapshot(seed + 1), makeAppendOnlyTreeSnapshot(seed + 2));
41
47
  }
42
- /**
43
- * Makes global variables.
44
- * @param seed - The seed to use for generating the global variables.
45
- * @param blockNumber - The block number to use for generating the global variables.
46
- * If blockNumber is undefined, it will be set to seed + 2.
47
- * @returns Global variables.
48
- */ export function makeGlobalVariables(seed = 1, blockNumber = undefined, slotNumber = undefined) {
49
- return new GlobalVariables(new Fr(seed), new Fr(seed + 1), blockNumber ?? seed + 2, new Fr(slotNumber ?? seed + 3), BigInt(seed + 4), EthAddress.fromField(new Fr(seed + 5)), AztecAddress.fromField(new Fr(seed + 6)), new GasFees(seed + 7, seed + 8));
48
+ function makeGlobalVariables(seed = 1, overrides = {}) {
49
+ return GlobalVariables.from({
50
+ chainId: new Fr(seed),
51
+ version: new Fr(seed + 1),
52
+ blockNumber: seed + 2,
53
+ slotNumber: new Fr(seed + 3),
54
+ timestamp: BigInt(seed + 4),
55
+ coinbase: EthAddress.fromField(new Fr(seed + 5)),
56
+ feeRecipient: AztecAddress.fromField(new Fr(seed + 6)),
57
+ gasFees: new GasFees(seed + 7, seed + 8),
58
+ ...compact(overrides)
59
+ });
50
60
  }
@@ -0,0 +1,100 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { type ZodFor } from '@aztec/foundation/schemas';
3
+ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
4
+ import type { FieldsOf } from '@aztec/foundation/types';
5
+ import { inspect } from 'util';
6
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
7
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
8
+ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from '../tx/index.js';
9
+ /**
10
+ * TO BE DELETED
11
+ *
12
+ * A header of an L2 block combining the block header and the checkpoint header.
13
+ * This is a temporary workaround to avoid changing too many things before building in chunks is properly implemented.
14
+ * This works for now because we only have one block per checkpoint.
15
+ *
16
+ * @deprecated Use BlockHeader or CheckpointHeader instead.
17
+ */
18
+ export declare class L2BlockHeader {
19
+ /** Snapshot of archive before the block is applied. */
20
+ lastArchive: AppendOnlyTreeSnapshot;
21
+ /** Hash of the body of an L2 block. */
22
+ contentCommitment: ContentCommitment;
23
+ /** State reference. */
24
+ state: StateReference;
25
+ /** Global variables of an L2 block. */
26
+ globalVariables: GlobalVariables;
27
+ /** Total fees in the block, computed by the root rollup circuit */
28
+ totalFees: Fr;
29
+ /** Total mana used in the block, computed by the root rollup circuit */
30
+ totalManaUsed: Fr;
31
+ /** Hash of the sponge blob of the block. */
32
+ spongeBlobHash: Fr;
33
+ constructor(
34
+ /** Snapshot of archive before the block is applied. */
35
+ lastArchive: AppendOnlyTreeSnapshot,
36
+ /** Hash of the body of an L2 block. */
37
+ contentCommitment: ContentCommitment,
38
+ /** State reference. */
39
+ state: StateReference,
40
+ /** Global variables of an L2 block. */
41
+ globalVariables: GlobalVariables,
42
+ /** Total fees in the block, computed by the root rollup circuit */
43
+ totalFees: Fr,
44
+ /** Total mana used in the block, computed by the root rollup circuit */
45
+ totalManaUsed: Fr,
46
+ /** Hash of the sponge blob of the block. */
47
+ spongeBlobHash: Fr);
48
+ static get schema(): ZodFor<L2BlockHeader>;
49
+ static getFields(fields: FieldsOf<L2BlockHeader>): readonly [AppendOnlyTreeSnapshot, ContentCommitment, StateReference, GlobalVariables, Fr, Fr, Fr];
50
+ static from(fields: FieldsOf<L2BlockHeader>): L2BlockHeader;
51
+ getSlot(): bigint;
52
+ getBlockNumber(): number;
53
+ getSize(): number;
54
+ toBuffer(): Buffer<ArrayBufferLike>;
55
+ toFields(): Fr[];
56
+ clone(): L2BlockHeader;
57
+ static fromBuffer(buffer: Buffer | BufferReader): L2BlockHeader;
58
+ static fromFields(fields: Fr[] | FieldReader): L2BlockHeader;
59
+ static empty(fields?: Partial<FieldsOf<L2BlockHeader>>): L2BlockHeader;
60
+ isEmpty(): boolean;
61
+ /**
62
+ * Serializes this instance into a string.
63
+ * @returns Encoded string.
64
+ */
65
+ toString(): `0x${string}`;
66
+ static fromString(str: string): L2BlockHeader;
67
+ toCheckpointHeader(): CheckpointHeader;
68
+ toBlockHeader(): BlockHeader;
69
+ toInspect(): {
70
+ lastArchive: `0x${string}`;
71
+ contentCommitment: {
72
+ blobsHash: `0x${string}`;
73
+ inHash: `0x${string}`;
74
+ outHash: `0x${string}`;
75
+ };
76
+ state: {
77
+ l1ToL2MessageTree: `0x${string}`;
78
+ noteHashTree: `0x${string}`;
79
+ nullifierTree: `0x${string}`;
80
+ publicDataTree: `0x${string}`;
81
+ };
82
+ globalVariables: {
83
+ chainId: number;
84
+ version: number;
85
+ blockNumber: number;
86
+ slotNumber: number;
87
+ timestamp: bigint;
88
+ coinbase: `0x${string}`;
89
+ feeRecipient: `0x${string}`;
90
+ feePerDaGas: number;
91
+ feePerL2Gas: number;
92
+ };
93
+ totalFees: bigint;
94
+ totalManaUsed: bigint;
95
+ spongeBlobHash: `0x${string}`;
96
+ };
97
+ [inspect.custom](): string;
98
+ equals(other: this): boolean;
99
+ }
100
+ //# sourceMappingURL=l2_block_header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l2_block_header.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjG;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEtB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;;IAbzB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;IAG3B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAYzC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAYhD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAI3C,OAAO;IAIP,cAAc;IAId,OAAO;IAYP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK;IAIL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAc/C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAc5C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM;IAa1D,OAAO,IAAI,OAAO;IAYlB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,kBAAkB;IAalB,aAAa;IAWb,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYT,CAAC,OAAO,CAAC,MAAM,CAAC;IAiBT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAWpC"}
@@ -0,0 +1,146 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { schemas } from '@aztec/foundation/schemas';
3
+ import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
4
+ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
5
+ import { inspect } from 'util';
6
+ import { z } from 'zod';
7
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
+ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from '../tx/index.js';
10
+ /**
11
+ * TO BE DELETED
12
+ *
13
+ * A header of an L2 block combining the block header and the checkpoint header.
14
+ * This is a temporary workaround to avoid changing too many things before building in chunks is properly implemented.
15
+ * This works for now because we only have one block per checkpoint.
16
+ *
17
+ * @deprecated Use BlockHeader or CheckpointHeader instead.
18
+ */ export class L2BlockHeader {
19
+ lastArchive;
20
+ contentCommitment;
21
+ state;
22
+ globalVariables;
23
+ totalFees;
24
+ totalManaUsed;
25
+ spongeBlobHash;
26
+ constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** Hash of the body of an L2 block. */ contentCommitment, /** State reference. */ state, /** Global variables of an L2 block. */ globalVariables, /** Total fees in the block, computed by the root rollup circuit */ totalFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed, /** Hash of the sponge blob of the block. */ spongeBlobHash){
27
+ this.lastArchive = lastArchive;
28
+ this.contentCommitment = contentCommitment;
29
+ this.state = state;
30
+ this.globalVariables = globalVariables;
31
+ this.totalFees = totalFees;
32
+ this.totalManaUsed = totalManaUsed;
33
+ this.spongeBlobHash = spongeBlobHash;
34
+ }
35
+ static get schema() {
36
+ return z.object({
37
+ lastArchive: AppendOnlyTreeSnapshot.schema,
38
+ contentCommitment: ContentCommitment.schema,
39
+ state: StateReference.schema,
40
+ globalVariables: GlobalVariables.schema,
41
+ totalFees: schemas.Fr,
42
+ totalManaUsed: schemas.Fr,
43
+ spongeBlobHash: schemas.Fr
44
+ }).transform(L2BlockHeader.from);
45
+ }
46
+ static getFields(fields) {
47
+ return [
48
+ fields.lastArchive,
49
+ fields.contentCommitment,
50
+ fields.state,
51
+ fields.globalVariables,
52
+ fields.totalFees,
53
+ fields.totalManaUsed,
54
+ fields.spongeBlobHash
55
+ ];
56
+ }
57
+ static from(fields) {
58
+ return new L2BlockHeader(...L2BlockHeader.getFields(fields));
59
+ }
60
+ getSlot() {
61
+ return this.globalVariables.slotNumber.toBigInt();
62
+ }
63
+ getBlockNumber() {
64
+ return this.globalVariables.blockNumber;
65
+ }
66
+ getSize() {
67
+ return this.lastArchive.getSize() + this.contentCommitment.getSize() + this.state.getSize() + this.globalVariables.getSize() + this.totalFees.size + this.totalManaUsed.size + this.spongeBlobHash.size;
68
+ }
69
+ toBuffer() {
70
+ return serializeToBuffer(...L2BlockHeader.getFields(this));
71
+ }
72
+ toFields() {
73
+ return serializeToFields(...L2BlockHeader.getFields(this));
74
+ }
75
+ clone() {
76
+ return L2BlockHeader.fromBuffer(this.toBuffer());
77
+ }
78
+ static fromBuffer(buffer) {
79
+ const reader = BufferReader.asReader(buffer);
80
+ return new L2BlockHeader(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(ContentCommitment), reader.readObject(StateReference), reader.readObject(GlobalVariables), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
81
+ }
82
+ static fromFields(fields) {
83
+ const reader = FieldReader.asReader(fields);
84
+ return new L2BlockHeader(AppendOnlyTreeSnapshot.fromFields(reader), ContentCommitment.fromFields(reader), StateReference.fromFields(reader), GlobalVariables.fromFields(reader), reader.readField(), reader.readField(), reader.readField());
85
+ }
86
+ static empty(fields = {}) {
87
+ return L2BlockHeader.from({
88
+ lastArchive: AppendOnlyTreeSnapshot.empty(),
89
+ contentCommitment: ContentCommitment.empty(),
90
+ state: StateReference.empty(),
91
+ globalVariables: GlobalVariables.empty(),
92
+ totalFees: Fr.ZERO,
93
+ totalManaUsed: Fr.ZERO,
94
+ spongeBlobHash: Fr.ZERO,
95
+ ...fields
96
+ });
97
+ }
98
+ isEmpty() {
99
+ return this.lastArchive.isEmpty() && this.contentCommitment.isEmpty() && this.state.isEmpty() && this.globalVariables.isEmpty() && this.totalFees.isZero() && this.totalManaUsed.isZero() && this.spongeBlobHash.isZero();
100
+ }
101
+ /**
102
+ * Serializes this instance into a string.
103
+ * @returns Encoded string.
104
+ */ toString() {
105
+ return bufferToHex(this.toBuffer());
106
+ }
107
+ static fromString(str) {
108
+ return L2BlockHeader.fromBuffer(hexToBuffer(str));
109
+ }
110
+ toCheckpointHeader() {
111
+ return new CheckpointHeader(this.lastArchive.root, this.contentCommitment, this.globalVariables.slotNumber, this.globalVariables.timestamp, this.globalVariables.coinbase, this.globalVariables.feeRecipient, this.globalVariables.gasFees, this.totalManaUsed);
112
+ }
113
+ toBlockHeader() {
114
+ return new BlockHeader(this.lastArchive, this.state, this.spongeBlobHash, this.globalVariables, this.totalFees, this.totalManaUsed);
115
+ }
116
+ toInspect() {
117
+ return {
118
+ lastArchive: this.lastArchive.root.toString(),
119
+ contentCommitment: this.contentCommitment.toInspect(),
120
+ state: this.state.toInspect(),
121
+ globalVariables: this.globalVariables.toInspect(),
122
+ totalFees: this.totalFees.toBigInt(),
123
+ totalManaUsed: this.totalManaUsed.toBigInt(),
124
+ spongeBlobHash: this.spongeBlobHash.toString()
125
+ };
126
+ }
127
+ [inspect.custom]() {
128
+ return `L2BlockHeader {
129
+ lastArchive: ${inspect(this.lastArchive)},
130
+ contentCommitment.blobsHash: ${inspect(this.contentCommitment.blobsHash)},
131
+ contentCommitment.inHash: ${inspect(this.contentCommitment.inHash)},
132
+ contentCommitment.outHash: ${inspect(this.contentCommitment.outHash)},
133
+ state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
134
+ state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
135
+ state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
136
+ state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
137
+ globalVariables: ${inspect(this.globalVariables)},
138
+ totalFees: ${this.totalFees},
139
+ totalManaUsed: ${this.totalManaUsed},
140
+ spongeBlobHash: ${this.spongeBlobHash},
141
+ }`;
142
+ }
143
+ equals(other) {
144
+ return this.contentCommitment.equals(other.contentCommitment) && this.state.equals(other.state) && this.globalVariables.equals(other.globalVariables) && this.totalFees.equals(other.totalFees) && this.totalManaUsed.equals(other.totalManaUsed) && this.lastArchive.equals(other.lastArchive) && this.spongeBlobHash.equals(other.spongeBlobHash);
145
+ }
146
+ }
@@ -65,6 +65,6 @@
65
65
  }
66
66
  }
67
67
  computeBlockHash(block) {
68
- return block.header.hash().then((hash)=>hash.toString());
68
+ return block.hash().then((hash)=>hash.toString());
69
69
  }
70
70
  }
@@ -45,11 +45,11 @@ export declare class PublishedL2Block {
45
45
  root: string;
46
46
  nextAvailableLeafIndex: string | number | bigint;
47
47
  }>;
48
- header: import("@aztec/foundation/schemas").ZodFor<import("../tx/block_header.js").BlockHeader>;
48
+ header: import("@aztec/foundation/schemas").ZodFor<import("./l2_block_header.js").L2BlockHeader>;
49
49
  body: import("@aztec/foundation/schemas").ZodFor<import("./body.js").Body>;
50
50
  }, "strip", z.ZodTypeAny, {
51
51
  archive: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
52
- header: import("../tx/block_header.js").BlockHeader;
52
+ header: import("./l2_block_header.js").L2BlockHeader;
53
53
  body: import("./body.js").Body;
54
54
  }, {
55
55
  archive: {
@@ -1 +1 @@
1
- {"version":3,"file":"l2_tips_store_test_suite.d.ts","sourceRoot":"","sources":["../../../src/block/test/l2_tips_store_test_suite.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,QA8ExE"}
1
+ {"version":3,"file":"l2_tips_store_test_suite.d.ts","sourceRoot":"","sources":["../../../src/block/test/l2_tips_store_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,QA8ExE"}
@@ -10,9 +10,7 @@ export function testL2TipsStore(makeTipsStore) {
10
10
  const makeBlock = (number)=>PublishedL2Block.fromFields({
11
11
  block: {
12
12
  number,
13
- header: {
14
- hash: ()=>Promise.resolve(new Fr(number))
15
- }
13
+ hash: ()=>Promise.resolve(new Fr(number))
16
14
  },
17
15
  l1: {
18
16
  blockNumber: BigInt(number),
@@ -17,9 +17,8 @@ export interface IBlockFactory extends ProcessedTxHandler {
17
17
  * Prepares to build a new block. Updates the L1 to L2 message tree.
18
18
  * @param globalVariables - The global variables for this block.
19
19
  * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this block.
20
- * @param previousBlockHeader - The header of the previous block.
21
20
  */
22
- startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], previousBlockHeader: BlockHeader): Promise<void>;
21
+ startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
23
22
  /**
24
23
  * Adds all processed txs to the block. Updates world state with the effects from this tx.
25
24
  * @param txs - The transactions to be added.
@@ -34,6 +33,7 @@ export interface PublicProcessorLimits {
34
33
  maxTransactions?: number;
35
34
  maxBlockSize?: number;
36
35
  maxBlockGas?: Gas;
36
+ maxBlobFields?: number;
37
37
  deadline?: Date;
38
38
  }
39
39
  export interface PublicProcessorValidator {
@@ -1 +1 @@
1
- {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,46 @@
1
1
  import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
- import type { L2Block } from '../block/l2_block.js';
3
+ import type { Fr } from '@aztec/foundation/fields';
4
4
  import type { Proof } from '../proofs/proof.js';
5
- import type { RootRollupPublicInputs } from '../rollup/root_rollup.js';
5
+ import type { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
6
+ import type { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
6
7
  import type { BlockHeader } from '../tx/block_header.js';
7
8
  import type { Tx } from '../tx/tx.js';
9
+ import type { UInt64 } from '../types/index.js';
8
10
  import type { IBlockFactory } from './block-builder.js';
9
11
  /** Coordinates the proving of an entire epoch. */
10
- export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
12
+ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | 'startNewBlock'> {
11
13
  /**
12
14
  * Starts a new epoch. Must be the first method to be called.
13
15
  * @param epochNumber - The epoch number.
14
- * @param firstBlockNumber - The block number of the first block in the epoch.
15
- * @param totalNumBlocks - The total number of blocks expected in the epoch (must be at least one).
16
+ * @param firstCheckpointNumber - The number of the first checkpoint in the epoch. Used to determine the correct order when checkpoints are added.
17
+ * @param totalNumCheckpoints - The total number of checkpoints expected in the epoch (must be at least one).
18
+ * @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
16
19
  **/
17
- startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
20
+ startNewEpoch(epochNumber: number, firstCheckpointNumber: Fr, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
21
+ /**
22
+ * Starts a new checkpoint.
23
+ * @param constants - The constants for this checkpoint.
24
+ * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
25
+ * @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
26
+ * @param totalNumBlobFields - The total number of blob fields expected in the checkpoint.
27
+ * @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
28
+ */
29
+ startNewCheckpoint(constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
30
+ /**
31
+ * Starts a new block.
32
+ * @param blockNumber - The block number.
33
+ * @param timestamp - The timestamp of the block.
34
+ * @param totalNumTxs - The total number of txs in the block.
35
+ */
36
+ startNewBlock(blockNumber: number, timestamp: UInt64, totalNumTxs: number): Promise<void>;
18
37
  /**
19
38
  * Kickstarts tube circuits for the specified txs. These will be used during epoch proving.
20
39
  * Note that if the tube circuits are not started this way, they will be started nontheless after processing.
21
40
  */
22
41
  startTubeCircuits(txs: Tx[]): Promise<void>;
23
42
  /** Returns the block. */
24
- setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<L2Block>;
43
+ setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<BlockHeader>;
25
44
  /** Pads the epoch with empty block roots if needed and blocks until proven. Throws if proving has failed. */
26
45
  finalizeEpoch(): Promise<{
27
46
  publicInputs: RootRollupPublicInputs;
@@ -32,8 +51,6 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
32
51
  cancel(): void;
33
52
  /** Returns an identifier for the prover or zero if not set. */
34
53
  getProverId(): EthAddress;
35
- /** Returns the block assembled at a given index (zero-based) within the epoch. */
36
- getBlock(index: number): L2Block;
37
54
  /** Called when no longer required, cleans up internal resources */
38
55
  stop(): Promise<void>;
39
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,kDAAkD;AAClD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC3E;;;;;QAKI;IACJ,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,2BAA2B,EAAE,2BAA2B,GACvD,IAAI,CAAC;IAER;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,yBAAyB;IACzB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5F,6GAA6G;IAC7G,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAEjH,gCAAgC;IAChC,MAAM,IAAI,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,IAAI,UAAU,CAAC;IAE1B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,mEAAmE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
1
+ {"version":3,"file":"epoch-prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,kDAAkD;AAClD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC7F;;;;;;QAMI;IACJ,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,EAAE,EACzB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,GACvD,IAAI,CAAC;IAER;;;;;;;OAOG;IACH,kBAAkB,CAChB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,qCAAqC,EAAE,WAAW,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,yBAAyB;IACzB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhG,6GAA6G;IAC7G,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAEjH,gCAAgC;IAChC,MAAM,IAAI,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,IAAI,UAAU,CAAC;IAE1B,mEAAmE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}