@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d52e

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 (688) hide show
  1. package/dest/abi/decoder.d.ts +1 -1
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +1 -4
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +9 -5
  7. package/dest/abi/function_call.d.ts +47 -9
  8. package/dest/abi/function_call.d.ts.map +1 -1
  9. package/dest/abi/function_call.js +20 -3
  10. package/dest/abi/utils.d.ts +7 -1
  11. package/dest/abi/utils.d.ts.map +1 -1
  12. package/dest/abi/utils.js +7 -0
  13. package/dest/auth_witness/auth_witness.d.ts +2 -1
  14. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  15. package/dest/auth_witness/auth_witness.js +3 -3
  16. package/dest/avm/avm.d.ts +362 -362
  17. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  18. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  19. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  20. package/dest/avm/avm_proving_request.d.ts +465 -465
  21. package/dest/avm/contract_storage_read.d.ts +13 -1
  22. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  23. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  24. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  25. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  26. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  27. package/dest/avm/public_data_read.d.ts +10 -1
  28. package/dest/avm/public_data_read.d.ts.map +1 -1
  29. package/dest/avm/public_data_update_request.d.ts +10 -1
  30. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  31. package/dest/avm/public_data_write.d.ts +7 -1
  32. package/dest/avm/public_data_write.d.ts.map +1 -1
  33. package/dest/avm/public_inner_call_request.d.ts +4 -1
  34. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  35. package/dest/avm/revert_code.d.ts +19 -4
  36. package/dest/avm/revert_code.d.ts.map +1 -1
  37. package/dest/avm/revert_code.js +15 -5
  38. package/dest/block/block_data.d.ts +52 -0
  39. package/dest/block/block_data.d.ts.map +1 -0
  40. package/dest/block/block_data.js +12 -0
  41. package/dest/block/block_hash.d.ts +18 -14
  42. package/dest/block/block_hash.d.ts.map +1 -1
  43. package/dest/block/block_hash.js +22 -20
  44. package/dest/block/block_parameter.d.ts +4 -3
  45. package/dest/block/block_parameter.d.ts.map +1 -1
  46. package/dest/block/block_parameter.js +2 -0
  47. package/dest/block/body.d.ts +1 -1
  48. package/dest/block/body.d.ts.map +1 -1
  49. package/dest/block/body.js +2 -1
  50. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  51. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  52. package/dest/block/checkpointed_l2_block.js +7 -45
  53. package/dest/block/in_block.d.ts +9 -9
  54. package/dest/block/in_block.d.ts.map +1 -1
  55. package/dest/block/in_block.js +5 -5
  56. package/dest/block/index.d.ts +2 -3
  57. package/dest/block/index.d.ts.map +1 -1
  58. package/dest/block/index.js +1 -2
  59. package/dest/block/l2_block.d.ts +56 -59
  60. package/dest/block/l2_block.d.ts.map +1 -1
  61. package/dest/block/l2_block.js +64 -110
  62. package/dest/block/l2_block_source.d.ts +84 -39
  63. package/dest/block/l2_block_source.d.ts.map +1 -1
  64. package/dest/block/l2_block_source.js +2 -1
  65. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  66. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  67. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  68. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  69. package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
  70. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  71. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  72. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  73. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  74. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  75. package/dest/block/validate_block_result.d.ts +1 -1
  76. package/dest/block/validate_block_result.d.ts.map +1 -1
  77. package/dest/block/validate_block_result.js +5 -4
  78. package/dest/checkpoint/checkpoint.d.ts +43 -19
  79. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  80. package/dest/checkpoint/checkpoint.js +37 -14
  81. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  82. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  83. package/dest/checkpoint/checkpoint_data.js +26 -0
  84. package/dest/checkpoint/index.d.ts +2 -1
  85. package/dest/checkpoint/index.d.ts.map +1 -1
  86. package/dest/checkpoint/index.js +1 -0
  87. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  88. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  89. package/dest/checkpoint/published_checkpoint.js +5 -5
  90. package/dest/config/index.d.ts +2 -1
  91. package/dest/config/index.d.ts.map +1 -1
  92. package/dest/config/index.js +1 -0
  93. package/dest/config/node-rpc-config.js +1 -1
  94. package/dest/config/sequencer-config.d.ts +12 -0
  95. package/dest/config/sequencer-config.d.ts.map +1 -0
  96. package/dest/config/sequencer-config.js +25 -0
  97. package/dest/contract/complete_address.d.ts +4 -1
  98. package/dest/contract/complete_address.d.ts.map +1 -1
  99. package/dest/contract/contract_address.js +4 -4
  100. package/dest/contract/contract_class.d.ts +2 -3
  101. package/dest/contract/contract_class.d.ts.map +1 -1
  102. package/dest/contract/contract_class_id.d.ts +2 -2
  103. package/dest/contract/contract_class_id.d.ts.map +1 -1
  104. package/dest/contract/contract_class_id.js +6 -5
  105. package/dest/contract/contract_deployment_data.d.ts +5 -5
  106. package/dest/contract/index.d.ts +1 -3
  107. package/dest/contract/index.d.ts.map +1 -1
  108. package/dest/contract/index.js +0 -2
  109. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  110. package/dest/contract/interfaces/node-info.d.ts +3 -1
  111. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  112. package/dest/contract/interfaces/node-info.js +2 -1
  113. package/dest/contract/private_function.d.ts +1 -1
  114. package/dest/contract/private_function.d.ts.map +1 -1
  115. package/dest/contract/private_function.js +3 -4
  116. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  117. package/dest/contract/private_function_membership_proof.js +1 -1
  118. package/dest/database-version/database_version.d.ts +58 -0
  119. package/dest/database-version/database_version.d.ts.map +1 -0
  120. package/dest/database-version/database_version.js +69 -0
  121. package/dest/database-version/version_manager.d.ts +3 -49
  122. package/dest/database-version/version_manager.d.ts.map +1 -1
  123. package/dest/database-version/version_manager.js +1 -66
  124. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  125. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  126. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  127. package/dest/deserialization/index.d.ts +11 -0
  128. package/dest/deserialization/index.d.ts.map +1 -0
  129. package/dest/deserialization/index.js +10 -0
  130. package/dest/epoch-helpers/index.d.ts +7 -1
  131. package/dest/epoch-helpers/index.d.ts.map +1 -1
  132. package/dest/epoch-helpers/index.js +9 -3
  133. package/dest/errors/proving_error.d.ts +2 -2
  134. package/dest/errors/proving_error.d.ts.map +1 -1
  135. package/dest/file-store/local.d.ts +3 -3
  136. package/dest/file-store/local.d.ts.map +1 -1
  137. package/dest/file-store/local.js +13 -4
  138. package/dest/file-store/s3.d.ts +1 -1
  139. package/dest/file-store/s3.d.ts.map +1 -1
  140. package/dest/file-store/s3.js +11 -3
  141. package/dest/hash/hash.d.ts +2 -1
  142. package/dest/hash/hash.d.ts.map +1 -1
  143. package/dest/hash/hash.js +16 -10
  144. package/dest/hash/map_slot.d.ts +1 -1
  145. package/dest/hash/map_slot.d.ts.map +1 -1
  146. package/dest/hash/map_slot.js +4 -3
  147. package/dest/interfaces/api_limit.d.ts +2 -1
  148. package/dest/interfaces/api_limit.d.ts.map +1 -1
  149. package/dest/interfaces/api_limit.js +1 -0
  150. package/dest/interfaces/archiver.d.ts +1 -1
  151. package/dest/interfaces/archiver.d.ts.map +1 -1
  152. package/dest/interfaces/archiver.js +23 -15
  153. package/dest/interfaces/aztec-node-admin.d.ts +110 -31
  154. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  155. package/dest/interfaces/aztec-node-admin.js +12 -4
  156. package/dest/interfaces/aztec-node.d.ts +66 -69
  157. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  158. package/dest/interfaces/aztec-node.js +10 -16
  159. package/dest/interfaces/block-builder.d.ts +22 -14
  160. package/dest/interfaces/block-builder.d.ts.map +1 -1
  161. package/dest/interfaces/block-builder.js +7 -0
  162. package/dest/interfaces/configs.d.ts +34 -9
  163. package/dest/interfaces/configs.d.ts.map +1 -1
  164. package/dest/interfaces/configs.js +6 -1
  165. package/dest/interfaces/get_logs_response.d.ts +16 -9
  166. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  167. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  168. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  169. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  170. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  171. package/dest/interfaces/p2p.d.ts +4 -9
  172. package/dest/interfaces/p2p.d.ts.map +1 -1
  173. package/dest/interfaces/prover-broker.d.ts +16 -1
  174. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  175. package/dest/interfaces/prover-broker.js +4 -1
  176. package/dest/interfaces/prover-client.d.ts +15 -1
  177. package/dest/interfaces/prover-client.d.ts.map +1 -1
  178. package/dest/interfaces/prover-client.js +12 -1
  179. package/dest/interfaces/proving-job.d.ts +216 -216
  180. package/dest/interfaces/slasher.d.ts +9 -1
  181. package/dest/interfaces/slasher.d.ts.map +1 -1
  182. package/dest/interfaces/slasher.js +2 -0
  183. package/dest/interfaces/tx_provider.d.ts +3 -3
  184. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  185. package/dest/interfaces/validator.d.ts +121 -16
  186. package/dest/interfaces/validator.d.ts.map +1 -1
  187. package/dest/interfaces/validator.js +7 -3
  188. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  189. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  190. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  191. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  192. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  193. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  194. package/dest/kernel/hints/index.d.ts +2 -2
  195. package/dest/kernel/hints/index.js +2 -2
  196. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  197. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  198. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  199. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  200. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  201. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  202. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  203. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  204. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  205. package/dest/kernel/hints/read_request.d.ts +7 -1
  206. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  207. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  208. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  209. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  210. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  211. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  212. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  213. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  214. package/dest/kernel/private_call_data.d.ts +25 -1
  215. package/dest/kernel/private_call_data.d.ts.map +1 -1
  216. package/dest/kernel/private_call_request.d.ts +16 -1
  217. package/dest/kernel/private_call_request.d.ts.map +1 -1
  218. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  219. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  220. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  221. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  222. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  223. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  224. package/dest/kernel/private_kernel_data.d.ts +7 -1
  225. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  226. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  227. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  228. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  229. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  230. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  231. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  232. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  233. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  234. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  235. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +25 -3
  236. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  237. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
  238. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  239. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  240. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  241. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  242. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  243. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  244. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  245. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  246. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  247. package/dest/kernel/private_validation_requests.d.ts +13 -4
  248. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  249. package/dest/kernel/private_validation_requests.js +9 -9
  250. package/dest/kernel/public_call_request.d.ts +22 -1
  251. package/dest/kernel/public_call_request.d.ts.map +1 -1
  252. package/dest/kernel/utils/optional_number.d.ts +7 -1
  253. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  254. package/dest/keys/derivation.d.ts +3 -3
  255. package/dest/keys/derivation.js +15 -15
  256. package/dest/keys/key_types.d.ts +3 -3
  257. package/dest/keys/key_types.d.ts.map +1 -1
  258. package/dest/keys/public_keys.d.ts +5 -1
  259. package/dest/keys/public_keys.d.ts.map +1 -1
  260. package/dest/keys/public_keys.js +2 -2
  261. package/dest/keys/utils.d.ts +1 -1
  262. package/dest/keys/utils.d.ts.map +1 -1
  263. package/dest/keys/utils.js +8 -4
  264. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  265. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  266. package/dest/l1-contracts/slash_factory.js +1 -0
  267. package/dest/logs/debug_log_store.d.ts +30 -0
  268. package/dest/logs/debug_log_store.d.ts.map +1 -0
  269. package/dest/logs/debug_log_store.js +30 -0
  270. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  271. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  272. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  273. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  274. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  275. package/dest/logs/extended_public_log.d.ts +17 -9
  276. package/dest/logs/extended_public_log.d.ts.map +1 -1
  277. package/dest/logs/index.d.ts +3 -2
  278. package/dest/logs/index.d.ts.map +1 -1
  279. package/dest/logs/index.js +2 -1
  280. package/dest/logs/log_id.d.ts +21 -14
  281. package/dest/logs/log_id.d.ts.map +1 -1
  282. package/dest/logs/log_id.js +20 -17
  283. package/dest/logs/pre_tag.d.ts +16 -11
  284. package/dest/logs/pre_tag.d.ts.map +1 -1
  285. package/dest/logs/pre_tag.js +2 -2
  286. package/dest/logs/private_log.d.ts +2 -2
  287. package/dest/logs/private_log.d.ts.map +1 -1
  288. package/dest/logs/siloed_tag.d.ts +5 -3
  289. package/dest/logs/siloed_tag.d.ts.map +1 -1
  290. package/dest/logs/siloed_tag.js +8 -6
  291. package/dest/logs/tag.js +1 -1
  292. package/dest/messaging/inbox_leaf.d.ts +3 -1
  293. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  294. package/dest/messaging/l1_actor.d.ts +7 -1
  295. package/dest/messaging/l1_actor.d.ts.map +1 -1
  296. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  297. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  298. package/dest/messaging/l2_actor.d.ts +7 -1
  299. package/dest/messaging/l2_actor.d.ts.map +1 -1
  300. package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
  301. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  302. package/dest/messaging/l2_to_l1_membership.js +8 -6
  303. package/dest/messaging/out_hash.d.ts +41 -4
  304. package/dest/messaging/out_hash.d.ts.map +1 -1
  305. package/dest/messaging/out_hash.js +52 -26
  306. package/dest/note/index.d.ts +1 -2
  307. package/dest/note/index.d.ts.map +1 -1
  308. package/dest/note/index.js +0 -1
  309. package/dest/note/note_dao.d.ts +36 -5
  310. package/dest/note/note_dao.d.ts.map +1 -1
  311. package/dest/note/note_dao.js +15 -12
  312. package/dest/p2p/attestation_utils.d.ts +11 -1
  313. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  314. package/dest/p2p/attestation_utils.js +45 -0
  315. package/dest/p2p/block_proposal.d.ts +23 -8
  316. package/dest/p2p/block_proposal.d.ts.map +1 -1
  317. package/dest/p2p/block_proposal.js +26 -10
  318. package/dest/p2p/checkpoint_attestation.d.ts +6 -1
  319. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  320. package/dest/p2p/checkpoint_attestation.js +1 -1
  321. package/dest/p2p/checkpoint_proposal.d.ts +34 -9
  322. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  323. package/dest/p2p/checkpoint_proposal.js +46 -20
  324. package/dest/p2p/client_type.d.ts +2 -5
  325. package/dest/p2p/client_type.d.ts.map +1 -1
  326. package/dest/p2p/client_type.js +0 -7
  327. package/dest/p2p/consensus_payload.d.ts +15 -5
  328. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  329. package/dest/p2p/consensus_payload.js +22 -18
  330. package/dest/p2p/constants.d.ts +5 -0
  331. package/dest/p2p/constants.d.ts.map +1 -0
  332. package/dest/p2p/constants.js +3 -0
  333. package/dest/p2p/index.d.ts +2 -2
  334. package/dest/p2p/index.d.ts.map +1 -1
  335. package/dest/p2p/index.js +1 -1
  336. package/dest/p2p/message_validator.d.ts +18 -3
  337. package/dest/p2p/message_validator.d.ts.map +1 -1
  338. package/dest/p2p/message_validator.js +2 -1
  339. package/dest/p2p/signed_txs.d.ts +3 -1
  340. package/dest/p2p/signed_txs.d.ts.map +1 -1
  341. package/dest/p2p/signed_txs.js +6 -1
  342. package/dest/p2p/topic_type.d.ts +3 -4
  343. package/dest/p2p/topic_type.d.ts.map +1 -1
  344. package/dest/p2p/topic_type.js +7 -23
  345. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  346. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  347. package/dest/parity/parity_public_inputs.d.ts +4 -1
  348. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  349. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  350. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  351. package/dest/proofs/chonk_proof.d.ts +1 -1
  352. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  353. package/dest/proofs/chonk_proof.js +9 -4
  354. package/dest/proofs/proof.d.ts +4 -1
  355. package/dest/proofs/proof.d.ts.map +1 -1
  356. package/dest/proofs/recursive_proof.d.ts +10 -1
  357. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  358. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  359. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  360. package/dest/rollup/block_constant_data.d.ts +12 -1
  361. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  362. package/dest/rollup/block_headers_hash.js +1 -1
  363. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  364. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  365. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  366. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  367. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  368. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  369. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  370. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  371. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  372. package/dest/rollup/checkpoint_header.d.ts +31 -4
  373. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  374. package/dest/rollup/checkpoint_header.js +23 -7
  375. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  376. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  377. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  378. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  379. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  380. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  381. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  382. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  383. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  384. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  385. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  386. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  387. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  388. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  389. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  390. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  391. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  392. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  393. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  394. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  395. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  396. package/dest/schemas/schemas.d.ts +1 -1
  397. package/dest/slashing/empire.d.ts +1 -1
  398. package/dest/slashing/empire.d.ts.map +1 -1
  399. package/dest/slashing/empire.js +2 -0
  400. package/dest/slashing/helpers.d.ts +2 -2
  401. package/dest/slashing/helpers.d.ts.map +1 -1
  402. package/dest/slashing/helpers.js +6 -0
  403. package/dest/slashing/tally.d.ts +2 -1
  404. package/dest/slashing/tally.d.ts.map +1 -1
  405. package/dest/slashing/tally.js +6 -2
  406. package/dest/slashing/types.d.ts +7 -3
  407. package/dest/slashing/types.d.ts.map +1 -1
  408. package/dest/slashing/types.js +13 -1
  409. package/dest/stats/stats.d.ts +1 -3
  410. package/dest/stats/stats.d.ts.map +1 -1
  411. package/dest/tests/factories.d.ts +4 -4
  412. package/dest/tests/factories.d.ts.map +1 -1
  413. package/dest/tests/factories.js +26 -27
  414. package/dest/tests/jest.js +1 -1
  415. package/dest/tests/mocks.d.ts +24 -15
  416. package/dest/tests/mocks.d.ts.map +1 -1
  417. package/dest/tests/mocks.js +63 -40
  418. package/dest/timetable/index.d.ts +37 -0
  419. package/dest/timetable/index.d.ts.map +1 -0
  420. package/dest/timetable/index.js +39 -0
  421. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  422. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  423. package/dest/trees/nullifier_leaf.d.ts +13 -1
  424. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  425. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  426. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  427. package/dest/trees/public_data_leaf.d.ts +17 -1
  428. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  429. package/dest/trees/public_data_leaf.js +7 -6
  430. package/dest/trees/public_data_witness.d.ts +11 -1
  431. package/dest/trees/public_data_witness.d.ts.map +1 -1
  432. package/dest/tx/block_header.d.ts +14 -2
  433. package/dest/tx/block_header.d.ts.map +1 -1
  434. package/dest/tx/block_header.js +6 -2
  435. package/dest/tx/call_context.d.ts +13 -1
  436. package/dest/tx/call_context.d.ts.map +1 -1
  437. package/dest/tx/capsule.d.ts +4 -1
  438. package/dest/tx/capsule.d.ts.map +1 -1
  439. package/dest/tx/execution_payload.d.ts +9 -1
  440. package/dest/tx/execution_payload.d.ts.map +1 -1
  441. package/dest/tx/function_data.d.ts +4 -2
  442. package/dest/tx/function_data.d.ts.map +1 -1
  443. package/dest/tx/global_variables.d.ts +12 -4
  444. package/dest/tx/global_variables.d.ts.map +1 -1
  445. package/dest/tx/hashed_values.d.ts +7 -1
  446. package/dest/tx/hashed_values.d.ts.map +1 -1
  447. package/dest/tx/in_tx.d.ts +4 -4
  448. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  449. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  450. package/dest/tx/indexed_tx_effect.js +3 -2
  451. package/dest/tx/partial_state_reference.d.ts +4 -1
  452. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  453. package/dest/tx/private_execution_result.d.ts +23 -2
  454. package/dest/tx/private_execution_result.d.ts.map +1 -1
  455. package/dest/tx/private_execution_result.js +1 -1
  456. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  457. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  458. package/dest/tx/profiling.d.ts +152 -29
  459. package/dest/tx/profiling.d.ts.map +1 -1
  460. package/dest/tx/profiling.js +47 -10
  461. package/dest/tx/protocol_contracts.d.ts +2 -2
  462. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  463. package/dest/tx/protocol_contracts.js +2 -2
  464. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  465. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  466. package/dest/tx/public_simulation_output.d.ts +4 -2
  467. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  468. package/dest/tx/public_simulation_output.js +7 -3
  469. package/dest/tx/state_reference.d.ts +3 -1
  470. package/dest/tx/state_reference.d.ts.map +1 -1
  471. package/dest/tx/tx.d.ts +24 -1
  472. package/dest/tx/tx.d.ts.map +1 -1
  473. package/dest/tx/tx.js +6 -3
  474. package/dest/tx/tx_context.d.ts +2 -1
  475. package/dest/tx/tx_context.d.ts.map +1 -1
  476. package/dest/tx/tx_effect.d.ts +32 -6
  477. package/dest/tx/tx_effect.d.ts.map +1 -1
  478. package/dest/tx/tx_effect.js +0 -7
  479. package/dest/tx/tx_execution_request.d.ts +30 -1
  480. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  481. package/dest/tx/tx_hash.d.ts +2 -1
  482. package/dest/tx/tx_hash.d.ts.map +1 -1
  483. package/dest/tx/tx_receipt.d.ts +62 -14
  484. package/dest/tx/tx_receipt.d.ts.map +1 -1
  485. package/dest/tx/tx_receipt.js +55 -16
  486. package/dest/tx/tx_request.d.ts +6 -1
  487. package/dest/tx/tx_request.d.ts.map +1 -1
  488. package/dest/tx/tx_request.js +2 -2
  489. package/dest/tx/validator/empty_validator.d.ts +2 -2
  490. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  491. package/dest/tx/validator/error_texts.d.ts +3 -2
  492. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  493. package/dest/tx/validator/error_texts.js +3 -1
  494. package/dest/tx/validator/tx_validator.d.ts +2 -2
  495. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  496. package/dest/types/shared.d.ts +4 -1
  497. package/dest/types/shared.d.ts.map +1 -1
  498. package/dest/update-checker/index.d.ts +3 -2
  499. package/dest/update-checker/index.d.ts.map +1 -1
  500. package/dest/update-checker/index.js +2 -1
  501. package/dest/update-checker/package_version.d.ts +3 -0
  502. package/dest/update-checker/package_version.d.ts.map +1 -0
  503. package/dest/update-checker/package_version.js +11 -0
  504. package/dest/update-checker/version_checker.d.ts +25 -0
  505. package/dest/update-checker/version_checker.d.ts.map +1 -0
  506. package/dest/update-checker/version_checker.js +50 -0
  507. package/dest/validators/schemas.d.ts +38 -38
  508. package/dest/validators/schemas.d.ts.map +1 -1
  509. package/dest/validators/schemas.js +4 -3
  510. package/dest/validators/types.d.ts +3 -3
  511. package/dest/validators/types.d.ts.map +1 -1
  512. package/dest/vks/verification_key.d.ts +22 -1
  513. package/dest/vks/verification_key.d.ts.map +1 -1
  514. package/dest/vks/vk_data.d.ts +7 -1
  515. package/dest/vks/vk_data.d.ts.map +1 -1
  516. package/dest/zkpassport/index.d.ts +3 -4
  517. package/dest/zkpassport/index.d.ts.map +1 -1
  518. package/dest/zkpassport/index.js +9 -9
  519. package/package.json +28 -14
  520. package/src/abi/decoder.ts +1 -4
  521. package/src/abi/encoder.ts +8 -5
  522. package/src/abi/function_call.ts +25 -3
  523. package/src/abi/utils.ts +17 -0
  524. package/src/auth_witness/auth_witness.ts +3 -3
  525. package/src/avm/revert_code.ts +15 -0
  526. package/src/block/block_data.ts +26 -0
  527. package/src/block/block_hash.ts +26 -25
  528. package/src/block/block_parameter.ts +4 -2
  529. package/src/block/body.ts +2 -1
  530. package/src/block/checkpointed_l2_block.ts +8 -58
  531. package/src/block/in_block.ts +6 -6
  532. package/src/block/index.ts +1 -2
  533. package/src/block/l2_block.ts +102 -150
  534. package/src/block/l2_block_source.ts +93 -42
  535. package/src/block/l2_block_stream/interfaces.ts +8 -5
  536. package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
  537. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  538. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  539. package/src/block/validate_block_result.ts +5 -4
  540. package/src/checkpoint/checkpoint.ts +61 -21
  541. package/src/checkpoint/checkpoint_data.ts +51 -0
  542. package/src/checkpoint/index.ts +1 -0
  543. package/src/checkpoint/published_checkpoint.ts +7 -4
  544. package/src/config/index.ts +1 -0
  545. package/src/config/node-rpc-config.ts +1 -1
  546. package/src/config/sequencer-config.ts +37 -0
  547. package/src/contract/contract_address.ts +4 -4
  548. package/src/contract/contract_class.ts +3 -3
  549. package/src/contract/contract_class_id.ts +6 -5
  550. package/src/contract/index.ts +0 -2
  551. package/src/contract/interfaces/node-info.ts +3 -0
  552. package/src/contract/private_function.ts +3 -4
  553. package/src/contract/private_function_membership_proof.ts +1 -1
  554. package/src/database-version/database_version.ts +87 -0
  555. package/src/database-version/version_manager.ts +1 -77
  556. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  557. package/src/deserialization/index.ts +21 -0
  558. package/src/epoch-helpers/index.ts +13 -1
  559. package/src/file-store/local.ts +15 -5
  560. package/src/file-store/s3.ts +12 -3
  561. package/src/hash/hash.ts +14 -10
  562. package/src/hash/map_slot.ts +3 -2
  563. package/src/interfaces/api_limit.ts +1 -0
  564. package/src/interfaces/archiver.ts +23 -24
  565. package/src/interfaces/aztec-node-admin.ts +26 -2
  566. package/src/interfaces/aztec-node.ts +86 -135
  567. package/src/interfaces/block-builder.ts +41 -23
  568. package/src/interfaces/configs.ts +19 -4
  569. package/src/interfaces/l2_logs_source.ts +17 -4
  570. package/src/interfaces/merkle_tree_operations.ts +1 -1
  571. package/src/interfaces/p2p.ts +3 -14
  572. package/src/interfaces/prover-broker.ts +22 -0
  573. package/src/interfaces/prover-client.ts +22 -0
  574. package/src/interfaces/slasher.ts +4 -0
  575. package/src/interfaces/tx_provider.ts +2 -2
  576. package/src/interfaces/validator.ts +22 -13
  577. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  578. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  579. package/src/kernel/hints/index.ts +2 -2
  580. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  581. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  582. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  583. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  584. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  585. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  586. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  587. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  588. package/src/kernel/private_validation_requests.ts +8 -8
  589. package/src/keys/derivation.ts +15 -15
  590. package/src/keys/key_types.ts +6 -2
  591. package/src/keys/public_keys.ts +2 -2
  592. package/src/keys/utils.ts +8 -4
  593. package/src/l1-contracts/slash_factory.ts +1 -0
  594. package/src/logs/debug_log_store.ts +54 -0
  595. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  596. package/src/logs/index.ts +2 -1
  597. package/src/logs/log_id.ts +22 -18
  598. package/src/logs/pre_tag.ts +5 -5
  599. package/src/logs/siloed_tag.ts +10 -4
  600. package/src/logs/tag.ts +1 -1
  601. package/src/messaging/l2_to_l1_membership.ts +8 -6
  602. package/src/messaging/out_hash.ts +60 -29
  603. package/src/note/index.ts +0 -1
  604. package/src/note/note_dao.ts +18 -13
  605. package/src/p2p/attestation_utils.ts +56 -0
  606. package/src/p2p/block_proposal.ts +36 -15
  607. package/src/p2p/checkpoint_attestation.ts +6 -1
  608. package/src/p2p/checkpoint_proposal.ts +74 -24
  609. package/src/p2p/client_type.ts +0 -6
  610. package/src/p2p/consensus_payload.ts +25 -17
  611. package/src/p2p/constants.ts +6 -0
  612. package/src/p2p/index.ts +1 -1
  613. package/src/p2p/message_validator.ts +14 -2
  614. package/src/p2p/signed_txs.ts +6 -1
  615. package/src/p2p/topic_type.ts +8 -15
  616. package/src/proofs/chonk_proof.ts +9 -5
  617. package/src/rollup/block_headers_hash.ts +1 -1
  618. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  619. package/src/rollup/checkpoint_header.ts +22 -2
  620. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  621. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  622. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  623. package/src/slashing/empire.ts +3 -1
  624. package/src/slashing/helpers.ts +8 -0
  625. package/src/slashing/tally.ts +8 -2
  626. package/src/slashing/types.ts +14 -0
  627. package/src/stats/stats.ts +0 -2
  628. package/src/tests/factories.ts +32 -43
  629. package/src/tests/jest.ts +1 -1
  630. package/src/tests/mocks.ts +90 -55
  631. package/src/timetable/index.ts +66 -0
  632. package/src/trees/public_data_leaf.ts +11 -5
  633. package/src/tx/block_header.ts +12 -4
  634. package/src/tx/global_variables.ts +3 -3
  635. package/src/tx/indexed_tx_effect.ts +3 -2
  636. package/src/tx/private_execution_result.ts +1 -1
  637. package/src/tx/profiling.ts +51 -9
  638. package/src/tx/protocol_contracts.ts +2 -2
  639. package/src/tx/public_simulation_output.ts +4 -0
  640. package/src/tx/tx.ts +8 -9
  641. package/src/tx/tx_effect.ts +0 -9
  642. package/src/tx/tx_receipt.ts +85 -18
  643. package/src/tx/tx_request.ts +2 -2
  644. package/src/tx/validator/empty_validator.ts +1 -1
  645. package/src/tx/validator/error_texts.ts +4 -1
  646. package/src/tx/validator/tx_validator.ts +1 -1
  647. package/src/update-checker/index.ts +2 -1
  648. package/src/update-checker/package_version.ts +17 -0
  649. package/src/update-checker/version_checker.ts +65 -0
  650. package/src/validators/schemas.ts +8 -1
  651. package/src/validators/types.ts +5 -4
  652. package/src/zkpassport/index.ts +11 -12
  653. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  654. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  655. package/dest/block/l2_block_code_to_purge.js +0 -55
  656. package/dest/block/l2_block_header.d.ts +0 -94
  657. package/dest/block/l2_block_header.d.ts.map +0 -1
  658. package/dest/block/l2_block_header.js +0 -160
  659. package/dest/block/l2_block_new.d.ts +0 -134
  660. package/dest/block/l2_block_new.d.ts.map +0 -1
  661. package/dest/block/l2_block_new.js +0 -155
  662. package/dest/contract/contract_class_metadata.d.ts +0 -8
  663. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  664. package/dest/contract/contract_class_metadata.js +0 -1
  665. package/dest/contract/contract_metadata.d.ts +0 -7
  666. package/dest/contract/contract_metadata.d.ts.map +0 -1
  667. package/dest/contract/contract_metadata.js +0 -1
  668. package/dest/database-version/index.d.ts +0 -2
  669. package/dest/database-version/index.d.ts.map +0 -1
  670. package/dest/database-version/index.js +0 -1
  671. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  672. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  673. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  674. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  675. package/dest/note/notes_filter.d.ts +0 -27
  676. package/dest/note/notes_filter.d.ts.map +0 -1
  677. package/dest/note/notes_filter.js +0 -11
  678. package/dest/update-checker/update-checker.d.ts +0 -49
  679. package/dest/update-checker/update-checker.d.ts.map +0 -1
  680. package/dest/update-checker/update-checker.js +0 -130
  681. package/src/block/l2_block_code_to_purge.ts +0 -80
  682. package/src/block/l2_block_header.ts +0 -255
  683. package/src/block/l2_block_new.ts +0 -211
  684. package/src/contract/contract_class_metadata.ts +0 -8
  685. package/src/contract/contract_metadata.ts +0 -7
  686. package/src/database-version/index.ts +0 -1
  687. package/src/note/notes_filter.ts +0 -38
  688. package/src/update-checker/update-checker.ts +0 -166
@@ -13,6 +13,7 @@ import type { TypedEventEmitter } from '@aztec/foundation/types';
13
13
  import { z } from 'zod';
14
14
 
15
15
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
16
+ import type { CheckpointData } from '../checkpoint/checkpoint_data.js';
16
17
  import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
17
18
  import type { L1RollupConstants } from '../epoch-helpers/index.js';
18
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
@@ -20,9 +21,10 @@ import type { BlockHeader } from '../tx/block_header.js';
20
21
  import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
21
22
  import type { TxHash } from '../tx/tx_hash.js';
22
23
  import type { TxReceipt } from '../tx/tx_receipt.js';
23
- import { type CheckpointedL2Block, PublishedL2Block } from './checkpointed_l2_block.js';
24
+ import type { BlockData } from './block_data.js';
25
+ import type { BlockHash } from './block_hash.js';
26
+ import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
24
27
  import type { L2Block } from './l2_block.js';
25
- import type { L2BlockNew } from './l2_block_new.js';
26
28
  import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
27
29
 
28
30
  /**
@@ -53,6 +55,20 @@ export interface L2BlockSource {
53
55
  */
54
56
  getProvenBlockNumber(): Promise<BlockNumber>;
55
57
 
58
+ /**
59
+ * Gets the number of the latest L2 block checkpointed seen by the block source implementation.
60
+ * @returns The number of the latest L2 block checkpointed seen by the block source implementation.
61
+ */
62
+ getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
63
+
64
+ /**
65
+ * Computes the finalized block number based on the proven block number.
66
+ * A block is considered finalized when it's 2 epochs behind the proven block.
67
+ * TODO(#13569): Compute proper finalized block number based on L1 finalized block.
68
+ * @returns The finalized block number.
69
+ */
70
+ getFinalizedL2BlockNumber(): Promise<BlockNumber>;
71
+
56
72
  /**
57
73
  * Gets an l2 block header.
58
74
  * @param number - The block number to return or 'latest' for the most recent one.
@@ -68,15 +84,15 @@ export interface L2BlockSource {
68
84
  */
69
85
  getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
70
86
 
71
- getCheckpointedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<CheckpointedL2Block[]>;
87
+ getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
72
88
 
73
89
  /**
74
- * Retrieves a collection of published checkpoints
75
- * @param checkpointNumber The first checkpoint to be retrieved
76
- * @param limit The number of checkpoints to be retrieved
77
- * @returns The collection of complete checkpoints
90
+ * Retrieves a collection of checkpoints.
91
+ * @param checkpointNumber The first checkpoint to be retrieved.
92
+ * @param limit The number of checkpoints to be retrieved.
93
+ * @returns The collection of complete checkpoints.
78
94
  */
79
- getPublishedCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
95
+ getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
80
96
 
81
97
  /**
82
98
  * Gets the checkpoints for a given epoch
@@ -84,12 +100,18 @@ export interface L2BlockSource {
84
100
  */
85
101
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
86
102
 
103
+ /**
104
+ * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
105
+ * @param epochNumber - Epoch for which we want checkpoint data
106
+ */
107
+ getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
108
+
87
109
  /**
88
110
  * Gets a block header by its hash.
89
111
  * @param blockHash - The block hash to retrieve.
90
112
  * @returns The requested block header (or undefined if not found).
91
113
  */
92
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
114
+ getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
93
115
 
94
116
  /**
95
117
  * Gets a block header by its archive root.
@@ -98,12 +120,40 @@ export interface L2BlockSource {
98
120
  */
99
121
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
100
122
 
123
+ /**
124
+ * Gets block metadata (without tx data) by block number.
125
+ * @param number - The block number to retrieve.
126
+ * @returns The requested block data (or undefined if not found).
127
+ */
128
+ getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
129
+
130
+ /**
131
+ * Gets block metadata (without tx data) by archive root.
132
+ * @param archive - The archive root to retrieve.
133
+ * @returns The requested block data (or undefined if not found).
134
+ */
135
+ getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
136
+
101
137
  /**
102
138
  * Gets an L2 block by block number.
103
139
  * @param number - The block number to return.
104
140
  * @returns The requested L2 block (or undefined if not found).
105
141
  */
106
- getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
142
+ getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
143
+
144
+ /**
145
+ * Gets an L2 block by its hash.
146
+ * @param blockHash - The block hash to retrieve.
147
+ * @returns The requested L2 block (or undefined if not found).
148
+ */
149
+ getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
150
+
151
+ /**
152
+ * Gets an L2 block by its archive root.
153
+ * @param archive - The archive root to retrieve.
154
+ * @returns The requested L2 block (or undefined if not found).
155
+ */
156
+ getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
107
157
 
108
158
  /**
109
159
  * Gets a tx effect.
@@ -130,11 +180,11 @@ export interface L2BlockSource {
130
180
  getL2EpochNumber(): Promise<EpochNumber | undefined>;
131
181
 
132
182
  /**
133
- * Returns all block headers for a given epoch.
183
+ * Returns all checkpointed block headers for a given epoch.
134
184
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
135
185
  * @param epochNumber - The epoch number to return headers for.
136
186
  */
137
- getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
187
+ getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
138
188
 
139
189
  /**
140
190
  * Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
@@ -179,46 +229,44 @@ export interface L2BlockSource {
179
229
  * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
180
230
  * @param number - The block number to return (inclusive).
181
231
  * @returns The requested L2 block.
182
- * @deprecated Use getL2BlockNew instead.
183
232
  */
184
233
  getBlock(number: BlockNumber): Promise<L2Block | undefined>;
185
234
 
186
- getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
187
-
188
- getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
189
-
190
235
  /**
191
- * Returns all blocks for a given epoch.
236
+ * Returns all checkpointed blocks for a given epoch.
192
237
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
193
238
  * @param epochNumber - The epoch number to return blocks for.
194
239
  */
195
- getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]>;
240
+ getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
241
+
242
+ /**
243
+ * Returns all blocks for a given slot.
244
+ * @dev Use this method only with recent slots, since it walks the block list backwards.
245
+ * @param slotNumber - The slot number to return blocks for.
246
+ */
247
+ getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
196
248
 
197
249
  /**
198
- * Gets a published block by its block hash.
250
+ * Gets a checkpointed block by its block hash.
199
251
  * @param blockHash - The block hash to retrieve.
200
252
  * @returns The requested block (or undefined if not found).
201
253
  */
202
- getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined>;
254
+ getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
203
255
 
204
256
  /**
205
- * Gets a published block by its archive root.
257
+ * Gets a checkpointed block by its archive root.
206
258
  * @param archive - The archive root to retrieve.
207
259
  * @returns The requested block (or undefined if not found).
208
260
  */
209
- getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined>;
261
+ getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
210
262
 
211
263
  /**
212
264
  * Gets up to `limit` amount of L2 blocks starting from `from`.
213
265
  * @param from - Number of the first block to return (inclusive).
214
266
  * @param limit - The maximum number of blocks to return.
215
- * @param proven - If true, only return blocks that have been proven.
216
267
  * @returns The requested L2 blocks.
217
268
  */
218
- getBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<L2Block[]>;
219
-
220
- /** Equivalent to getBlocks but includes publish data. */
221
- getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
269
+ getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
222
270
  }
223
271
 
224
272
  /**
@@ -230,7 +278,7 @@ export interface L2BlockSink {
230
278
  * @param block - The L2 block to add.
231
279
  * @throws If block number is not incremental (i.e., not exactly one more than the last stored block).
232
280
  */
233
- addBlock(block: L2BlockNew): Promise<void>;
281
+ addBlock(block: L2Block): Promise<void>;
234
282
  }
235
283
 
236
284
  /**
@@ -238,12 +286,15 @@ export interface L2BlockSink {
238
286
  * see L2BlockSourceEvents for the events emitted.
239
287
  */
240
288
  export type ArchiverEmitter = TypedEventEmitter<{
241
- [L2BlockSourceEvents.L2PruneDetected]: (args: L2BlockPruneEvent) => void;
289
+ [L2BlockSourceEvents.L2PruneUnproven]: (args: L2PruneUnprovenEvent) => void;
290
+ [L2BlockSourceEvents.L2PruneUncheckpointed]: (args: L2PruneUncheckpointedEvent) => void;
242
291
  [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
243
292
  [L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
244
293
  [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
245
294
  }>;
246
- export interface L2BlockSourceEventEmitter extends L2BlockSource, ArchiverEmitter {}
295
+ export interface L2BlockSourceEventEmitter extends L2BlockSource {
296
+ events: ArchiverEmitter;
297
+ }
247
298
 
248
299
  /**
249
300
  * Identifier for L2 block tags.
@@ -254,13 +305,6 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource, ArchiverEmitte
254
305
  */
255
306
  export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
256
307
 
257
- /**
258
- * Reason for L2 block prune.
259
- * - uncheckpointed: L2 blocks were pruned due to a failure to checkpoint.
260
- * - unproven: L2 blocks were pruned due to a failure to prove.
261
- */
262
- export type L2BlockPruneReason = 'uncheckpointed' | 'unproven';
263
-
264
308
  /** Tips of the L2 chain. */
265
309
  export type L2Tips = {
266
310
  proposed: L2BlockId;
@@ -314,7 +358,8 @@ export const L2TipsSchema = z.object({
314
358
  });
315
359
 
316
360
  export enum L2BlockSourceEvents {
317
- L2PruneDetected = 'l2PruneDetected',
361
+ L2PruneUnproven = 'l2PruneUnproven',
362
+ L2PruneUncheckpointed = 'l2PruneUncheckpointed',
318
363
  L2BlockProven = 'l2BlockProven',
319
364
  L2BlocksCheckpointed = 'l2BlocksCheckpointed',
320
365
  InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
@@ -327,10 +372,16 @@ export type L2BlockProvenEvent = {
327
372
  epochNumber: EpochNumber;
328
373
  };
329
374
 
330
- export type L2BlockPruneEvent = {
331
- type: 'l2PruneDetected';
375
+ export type L2PruneUnprovenEvent = {
376
+ type: 'l2PruneUnproven';
332
377
  epochNumber: EpochNumber;
333
- blocks: L2BlockNew[];
378
+ blocks: L2Block[];
379
+ };
380
+
381
+ export type L2PruneUncheckpointedEvent = {
382
+ type: 'l2PruneUncheckpointed';
383
+ slotNumber: SlotNumber;
384
+ blocks: L2Block[];
334
385
  };
335
386
 
336
387
  export type L2CheckpointEvent = {
@@ -1,6 +1,6 @@
1
1
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
2
- import type { L2BlockNew } from '../l2_block_new.js';
3
- import type { CheckpointId, L2BlockId, L2BlockPruneReason, L2Tips } from '../l2_block_source.js';
2
+ import type { L2Block } from '../l2_block.js';
3
+ import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
4
4
 
5
5
  /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
6
6
  export interface L2BlockStreamLocalDataProvider {
@@ -16,16 +16,19 @@ export interface L2BlockStreamEventHandler {
16
16
  export type L2BlockStreamEvent =
17
17
  | /** Emits blocks added to the chain. */ {
18
18
  type: 'blocks-added';
19
- blocks: L2BlockNew[];
19
+ blocks: L2Block[];
20
20
  }
21
21
  | /** Emits checkpoints published to L1. */ {
22
22
  type: 'chain-checkpointed';
23
23
  checkpoint: PublishedCheckpoint;
24
24
  block: L2BlockId;
25
25
  }
26
- | /** Reports last correct block (new tip of the proposed chain). */ {
26
+ | /**
27
+ * Reports last correct block (new tip of the proposed chain). Note that this is not necessarily the anchor block
28
+ * that will be used in the transaction - if the chain has already moved past the reorg, we'll also see blocks-added
29
+ * events that will push the anchor block forward.
30
+ */ {
27
31
  type: 'chain-pruned';
28
- reason: L2BlockPruneReason;
29
32
  block: L2BlockId;
30
33
  checkpoint: CheckpointId;
31
34
  }
@@ -4,9 +4,12 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { RunningPromise } from '@aztec/foundation/running-promise';
5
5
 
6
6
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
7
- import { type L2BlockId, type L2BlockPruneReason, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
7
+ import { type L2BlockId, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
8
8
  import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
9
9
 
10
+ /** Maximum number of checkpoints to prefetch at once during sync. Matches MAX_RPC_CHECKPOINTS_LEN. */
11
+ export const CHECKPOINT_PREFETCH_LIMIT = 50;
12
+
10
13
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
11
14
  export class L2BlockStream {
12
15
  private readonly runningPromise: RunningPromise;
@@ -16,13 +19,12 @@ export class L2BlockStream {
16
19
  constructor(
17
20
  private l2BlockSource: Pick<
18
21
  L2BlockSource,
19
- 'getL2BlocksNew' | 'getBlockHeader' | 'getL2Tips' | 'getPublishedCheckpoints' | 'getCheckpointedBlocks'
22
+ 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
20
23
  >,
21
24
  private localData: L2BlockStreamLocalDataProvider,
22
25
  private handler: L2BlockStreamEventHandler,
23
26
  private readonly log = createLogger('types:block_stream'),
24
27
  private opts: {
25
- proven?: boolean;
26
28
  pollIntervalMS?: number;
27
29
  batchSize?: number;
28
30
  startingBlock?: number;
@@ -30,6 +32,8 @@ export class L2BlockStream {
30
32
  skipFinalized?: boolean;
31
33
  /** When true, checkpoint events will not be emitted. Blocks are still fetched via checkpoints but only blocks-added events are emitted. */
32
34
  ignoreCheckpoints?: boolean;
35
+ /** Maximum number of checkpoints to prefetch at once during sync. Defaults to CHECKPOINT_PREFETCH_LIMIT (50). */
36
+ checkpointPrefetchLimit?: number;
33
37
  } = {},
34
38
  ) {
35
39
  // Note that RunningPromise is in stopped state by default. This promise won't run until someone invokes `start`,
@@ -85,18 +89,9 @@ export class L2BlockStream {
85
89
  this.log.verbose(
86
90
  `Reorg detected. Pruning blocks from ${latestBlockNumber + 1} to ${localTips.proposed.number}.`,
87
91
  );
88
- // This check is not 100% accurate
89
- // If the local tips are sufficiently behind the source tips, such that we are missing at least one checkpoint
90
- // that has now been re-orged due to a proof failure then this will indicate a failure to checkpoint rather than a failure to prove
91
- // TODO: (mbps/PhilWindle): Improve re-org detection accuracy when we come to do re-orgs
92
- let reason: L2BlockPruneReason = 'unproven';
93
- if (latestBlockNumber === localTips.checkpointed.block.number && !this.opts.ignoreCheckpoints) {
94
- reason = 'uncheckpointed';
95
- }
96
92
  await this.emitEvent({
97
93
  type: 'chain-pruned',
98
94
  block: makeL2BlockId(latestBlockNumber, hash),
99
- reason,
100
95
  checkpoint: sourceTips.checkpointed.checkpoint,
101
96
  });
102
97
  }
@@ -114,6 +109,27 @@ export class L2BlockStream {
114
109
 
115
110
  let nextBlockNumber = latestBlockNumber + 1;
116
111
  let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
112
+
113
+ // When startingBlock is set, also skip ahead for checkpoints.
114
+ if (
115
+ this.opts.startingBlock !== undefined &&
116
+ this.opts.startingBlock >= 1 &&
117
+ nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number
118
+ ) {
119
+ const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(
120
+ BlockNumber(this.opts.startingBlock),
121
+ 1,
122
+ );
123
+ if (startingBlockCheckpoints.length > 0) {
124
+ nextCheckpointToEmit = CheckpointNumber(
125
+ Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber),
126
+ );
127
+ } else {
128
+ // startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
129
+ nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
130
+ }
131
+ }
132
+
117
133
  if (this.opts.skipFinalized) {
118
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
119
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
@@ -133,7 +149,7 @@ export class L2BlockStream {
133
149
  if (!this.opts.ignoreCheckpoints) {
134
150
  let loop1Iterations = 0;
135
151
  while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
136
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointToEmit, 1);
152
+ const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
137
153
  if (checkpoints.length === 0) {
138
154
  break;
139
155
  }
@@ -159,27 +175,36 @@ export class L2BlockStream {
159
175
  }
160
176
  }
161
177
 
162
- // Loop 2: Fetch new checkpointed blocks. For each block, get its checkpoint, emit all blocks
178
+ // Loop 2: Fetch new checkpointed blocks. For each checkpoint, emit all blocks
163
179
  // from that checkpoint that we need, then emit the checkpoint event.
164
- // We cache the current checkpoint to avoid redundant fetches when batchSize < checkpoint size.
165
- let checkpoint: PublishedCheckpoint | undefined;
166
- while (nextBlockNumber <= sourceTips.checkpointed.block.number) {
167
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
180
+ // We prefetch multiple checkpoints, then process them one by one.
181
+ let prefetchedCheckpoints: PublishedCheckpoint[] = [];
182
+ let prefetchIdx = 0;
183
+ let nextCheckpointNumber: CheckpointNumber | undefined;
168
184
 
169
- // Check if we need to fetch a new checkpoint (nextBlockNumber is beyond the cached one)
170
- if (!checkpoint || nextBlockNumber > checkpoint.checkpoint.blocks.at(-1)!.number) {
171
- const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
172
- if (blocks.length === 0) {
173
- break;
174
- }
175
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(blocks[0].checkpointNumber, 1);
176
- if (checkpoints.length === 0) {
185
+ // Find the starting checkpoint number
186
+ if (nextBlockNumber <= sourceTips.checkpointed.block.number) {
187
+ const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
188
+ if (blocks.length > 0) {
189
+ nextCheckpointNumber = blocks[0].checkpointNumber;
190
+ }
191
+ }
192
+
193
+ while (nextBlockNumber <= sourceTips.checkpointed.block.number && nextCheckpointNumber !== undefined) {
194
+ // Refill the prefetch buffer when exhausted
195
+ if (prefetchIdx >= prefetchedCheckpoints.length) {
196
+ const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
197
+ prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
198
+ prefetchIdx = 0;
199
+ if (prefetchedCheckpoints.length === 0) {
177
200
  break;
178
201
  }
179
- checkpoint = checkpoints[0];
180
202
  }
181
203
 
204
+ const checkpoint = prefetchedCheckpoints[prefetchIdx]!;
205
+
182
206
  // Get all blocks from this checkpoint that we need, respecting batchSize
207
+ const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
183
208
  const blocksForCheckpoint = checkpoint.checkpoint.blocks
184
209
  .filter(b => b.number >= nextBlockNumber)
185
210
  .slice(0, limit);
@@ -189,23 +214,27 @@ export class L2BlockStream {
189
214
  await this.emitEvent({ type: 'blocks-added', blocks: blocksForCheckpoint });
190
215
  nextBlockNumber = blocksForCheckpoint.at(-1)!.number + 1;
191
216
 
192
- // If we've reached the end of this checkpoint, emit the checkpoint event
217
+ // If we've reached the end of this checkpoint, emit the checkpoint event and move to next
193
218
  const lastBlockInCheckpoint = checkpoint.checkpoint.blocks.at(-1)!;
194
- if (!this.opts.ignoreCheckpoints && nextBlockNumber > lastBlockInCheckpoint.number) {
195
- const lastBlockHash = await lastBlockInCheckpoint.hash();
196
- await this.emitEvent({
197
- type: 'chain-checkpointed',
198
- checkpoint,
199
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
200
- });
219
+ if (nextBlockNumber > lastBlockInCheckpoint.number) {
220
+ if (!this.opts.ignoreCheckpoints) {
221
+ const lastBlockHash = await lastBlockInCheckpoint.hash();
222
+ await this.emitEvent({
223
+ type: 'chain-checkpointed',
224
+ checkpoint,
225
+ block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
226
+ });
227
+ }
228
+ prefetchIdx++;
229
+ nextCheckpointNumber = CheckpointNumber(nextCheckpointNumber + 1);
201
230
  }
202
231
  }
203
232
 
204
233
  // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
205
234
  while (nextBlockNumber <= sourceTips.proposed.number) {
206
235
  const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
207
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit} proven=${this.opts.proven}`);
208
- const blocks = await this.l2BlockSource.getL2BlocksNew(BlockNumber(nextBlockNumber), limit, this.opts.proven);
236
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
237
+ const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
209
238
  if (blocks.length === 0) {
210
239
  break;
211
240
  }
@@ -2,7 +2,7 @@ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
2
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
3
 
4
4
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
5
- import type { L2BlockNew } from '../l2_block_new.js';
5
+ import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
8
8
  GENESIS_CHECKPOINT_HEADER_HASH,
@@ -109,7 +109,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
109
109
  }
110
110
 
111
111
  // Protected helper that subclasses can override for block hash computation
112
- protected computeBlockHash(block: L2BlockNew): Promise<string> {
112
+ protected computeBlockHash(block: L2Block): Promise<string> {
113
113
  return block.hash().then(hash => hash.toString());
114
114
  }
115
115
 
@@ -5,8 +5,8 @@ import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import {
6
6
  type CheckpointId,
7
7
  GENESIS_CHECKPOINT_HEADER_HASH,
8
+ L2Block,
8
9
  type L2BlockId,
9
- L2BlockNew,
10
10
  type L2TipId,
11
11
  } from '@aztec/stdlib/block';
12
12
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
@@ -31,8 +31,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
31
31
  blockToCheckpoint.clear();
32
32
  });
33
33
 
34
- const makeBlock = async (number: number): Promise<L2BlockNew> => {
35
- const block = await L2BlockNew.random(BlockNumber(number));
34
+ const makeBlock = async (number: number): Promise<L2Block> => {
35
+ const block = await L2Block.random(BlockNumber(number));
36
36
  blockHashes.set(number, (await block.hash()).toString());
37
37
  return block;
38
38
  };
@@ -74,7 +74,7 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
74
74
  checkpointed: makeTipId(checkpointed),
75
75
  });
76
76
 
77
- const makeCheckpoint = async (checkpointNumber: number, blocks: L2BlockNew[]): Promise<PublishedCheckpoint> => {
77
+ const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
78
78
  const checkpoint = await Checkpoint.random(CheckpointNumber(checkpointNumber), {
79
79
  numBlocks: blocks.length,
80
80
  startBlockNumber: blocks[0].number,
@@ -243,7 +243,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
243
243
  await tipsStore.handleBlockStreamEvent({
244
244
  type: 'chain-pruned',
245
245
  block: makeBlockId(5),
246
- reason: 'unproven',
247
246
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
248
247
  });
249
248
 
@@ -268,7 +267,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
268
267
  await tipsStore.handleBlockStreamEvent({
269
268
  type: 'chain-pruned',
270
269
  block: makeTip(0),
271
- reason: 'unproven',
272
270
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
273
271
  });
274
272
 
@@ -334,7 +332,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
334
332
  await tipsStore.handleBlockStreamEvent({
335
333
  type: 'chain-pruned',
336
334
  block: makeBlockId(5),
337
- reason: 'unproven',
338
335
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
339
336
  });
340
337
 
@@ -399,7 +396,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
399
396
  await tipsStore.handleBlockStreamEvent({
400
397
  type: 'chain-pruned',
401
398
  block: makeBlockId(3),
402
- reason: 'unproven',
403
399
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
404
400
  });
405
401
 
@@ -478,7 +474,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
478
474
  await tipsStore.handleBlockStreamEvent({
479
475
  type: 'chain-pruned',
480
476
  block: makeBlockId(3),
481
- reason: 'unproven',
482
477
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
483
478
  });
484
479
 
@@ -11,6 +11,7 @@ import {
11
11
  deserializeCheckpointInfo,
12
12
  serializeCheckpointInfo,
13
13
  } from '../checkpoint/checkpoint_info.js';
14
+ import { MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
14
15
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
15
16
 
16
17
  /** Subtype for invalid checkpoint validation results */
@@ -109,13 +110,13 @@ export function deserializeValidateCheckpointResult(bufferOrReader: Buffer | Buf
109
110
  if (valid) {
110
111
  return { valid };
111
112
  }
112
- const reason = reader.readString() as 'insufficient-attestations' | 'invalid-attestation';
113
+ const reason = reader.readString(64) as 'insufficient-attestations' | 'invalid-attestation';
113
114
  const checkpoint = deserializeCheckpointInfo(reader.readBuffer());
114
- const committee = reader.readVector(EthAddress);
115
+ const committee = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
115
116
  const epoch = EpochNumber(reader.readNumber());
116
117
  const seed = reader.readBigInt();
117
- const attestors = reader.readVector(EthAddress);
118
- const attestations = reader.readVector(CommitteeAttestation);
118
+ const attestors = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
119
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
119
120
  const invalidIndex = reader.readNumber();
120
121
  if (reason === 'insufficient-attestations') {
121
122
  return { valid, reason, checkpoint, committee, epoch, seed, attestors, attestations };