@aztec/stdlib 0.0.1-commit.03f7ef2 → 0.0.1-commit.04852196a

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 (834) hide show
  1. package/dest/abi/contract_artifact.d.ts +2 -2
  2. package/dest/abi/contract_artifact.d.ts.map +1 -1
  3. package/dest/abi/contract_artifact.js +1 -1
  4. package/dest/abi/decoder.d.ts +2 -2
  5. package/dest/abi/decoder.d.ts.map +1 -1
  6. package/dest/abi/decoder.js +7 -5
  7. package/dest/abi/encoder.d.ts +1 -1
  8. package/dest/abi/encoder.d.ts.map +1 -1
  9. package/dest/abi/encoder.js +37 -6
  10. package/dest/abi/event_metadata_definition.d.ts +3 -1
  11. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  12. package/dest/abi/event_metadata_definition.js +1 -1
  13. package/dest/abi/function_call.d.ts +47 -9
  14. package/dest/abi/function_call.d.ts.map +1 -1
  15. package/dest/abi/function_call.js +20 -3
  16. package/dest/abi/selector.js +3 -1
  17. package/dest/abi/utils.d.ts +20 -1
  18. package/dest/abi/utils.d.ts.map +1 -1
  19. package/dest/abi/utils.js +22 -0
  20. package/dest/auth_witness/auth_witness.d.ts +2 -1
  21. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  22. package/dest/auth_witness/auth_witness.js +3 -3
  23. package/dest/avm/avm.d.ts +362 -362
  24. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  25. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  26. package/dest/avm/avm_accumulated_data.js +5 -2
  27. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  28. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  29. package/dest/avm/avm_proving_request.d.ts +465 -465
  30. package/dest/avm/contract_storage_read.d.ts +13 -1
  31. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  32. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  33. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  34. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  35. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  36. package/dest/avm/public_data_read.d.ts +10 -1
  37. package/dest/avm/public_data_read.d.ts.map +1 -1
  38. package/dest/avm/public_data_update_request.d.ts +10 -1
  39. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  40. package/dest/avm/public_data_update_request.js +3 -1
  41. package/dest/avm/public_data_write.d.ts +7 -1
  42. package/dest/avm/public_data_write.d.ts.map +1 -1
  43. package/dest/avm/public_inner_call_request.d.ts +4 -1
  44. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  45. package/dest/avm/public_inner_call_request.js +3 -1
  46. package/dest/avm/revert_code.d.ts +19 -4
  47. package/dest/avm/revert_code.d.ts.map +1 -1
  48. package/dest/avm/revert_code.js +18 -6
  49. package/dest/aztec-address/index.js +4 -2
  50. package/dest/block/attestation_info.d.ts +5 -5
  51. package/dest/block/attestation_info.d.ts.map +1 -1
  52. package/dest/block/attestation_info.js +4 -4
  53. package/dest/block/block_data.d.ts +52 -0
  54. package/dest/block/block_data.d.ts.map +1 -0
  55. package/dest/block/block_data.js +12 -0
  56. package/dest/block/block_hash.d.ts +18 -14
  57. package/dest/block/block_hash.d.ts.map +1 -1
  58. package/dest/block/block_hash.js +22 -20
  59. package/dest/block/block_parameter.d.ts +4 -3
  60. package/dest/block/block_parameter.d.ts.map +1 -1
  61. package/dest/block/block_parameter.js +2 -0
  62. package/dest/block/body.d.ts +1 -1
  63. package/dest/block/body.d.ts.map +1 -1
  64. package/dest/block/body.js +5 -2
  65. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  66. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  67. package/dest/block/checkpointed_l2_block.js +7 -45
  68. package/dest/block/in_block.d.ts +9 -9
  69. package/dest/block/in_block.d.ts.map +1 -1
  70. package/dest/block/in_block.js +5 -5
  71. package/dest/block/index.d.ts +2 -3
  72. package/dest/block/index.d.ts.map +1 -1
  73. package/dest/block/index.js +1 -2
  74. package/dest/block/l2_block.d.ts +65 -57
  75. package/dest/block/l2_block.d.ts.map +1 -1
  76. package/dest/block/l2_block.js +73 -107
  77. package/dest/block/l2_block_source.d.ts +322 -68
  78. package/dest/block/l2_block_source.d.ts.map +1 -1
  79. package/dest/block/l2_block_source.js +25 -6
  80. package/dest/block/l2_block_stream/index.d.ts +2 -1
  81. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  82. package/dest/block/l2_block_stream/index.js +1 -0
  83. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  84. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  85. package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -3
  86. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.js +116 -31
  88. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  89. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  91. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  92. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  93. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  94. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  95. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  96. package/dest/block/test/l2_tips_store_test_suite.js +478 -38
  97. package/dest/block/validate_block_result.d.ts +24 -24
  98. package/dest/block/validate_block_result.d.ts.map +1 -1
  99. package/dest/block/validate_block_result.js +18 -17
  100. package/dest/checkpoint/checkpoint.d.ts +44 -19
  101. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  102. package/dest/checkpoint/checkpoint.js +46 -17
  103. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  104. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  105. package/dest/checkpoint/checkpoint_data.js +26 -0
  106. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  107. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  108. package/dest/checkpoint/checkpoint_info.js +34 -1
  109. package/dest/checkpoint/index.d.ts +4 -1
  110. package/dest/checkpoint/index.d.ts.map +1 -1
  111. package/dest/checkpoint/index.js +3 -0
  112. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  113. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  114. package/dest/checkpoint/published_checkpoint.js +5 -5
  115. package/dest/checkpoint/validate.d.ts +36 -0
  116. package/dest/checkpoint/validate.d.ts.map +1 -0
  117. package/dest/checkpoint/validate.js +120 -0
  118. package/dest/config/index.d.ts +2 -1
  119. package/dest/config/index.d.ts.map +1 -1
  120. package/dest/config/index.js +1 -0
  121. package/dest/config/node-rpc-config.js +1 -1
  122. package/dest/config/sequencer-config.d.ts +12 -0
  123. package/dest/config/sequencer-config.d.ts.map +1 -0
  124. package/dest/config/sequencer-config.js +24 -0
  125. package/dest/contract/complete_address.d.ts +4 -1
  126. package/dest/contract/complete_address.d.ts.map +1 -1
  127. package/dest/contract/contract_address.js +4 -4
  128. package/dest/contract/contract_class.d.ts +2 -3
  129. package/dest/contract/contract_class.d.ts.map +1 -1
  130. package/dest/contract/contract_class_id.d.ts +2 -2
  131. package/dest/contract/contract_class_id.d.ts.map +1 -1
  132. package/dest/contract/contract_class_id.js +6 -5
  133. package/dest/contract/contract_deployment_data.d.ts +5 -5
  134. package/dest/contract/index.d.ts +1 -3
  135. package/dest/contract/index.d.ts.map +1 -1
  136. package/dest/contract/index.js +0 -2
  137. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  138. package/dest/contract/interfaces/node-info.d.ts +3 -1
  139. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  140. package/dest/contract/interfaces/node-info.js +2 -1
  141. package/dest/contract/private_function.d.ts +1 -1
  142. package/dest/contract/private_function.d.ts.map +1 -1
  143. package/dest/contract/private_function.js +3 -4
  144. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  145. package/dest/contract/private_function_membership_proof.js +1 -1
  146. package/dest/database-version/database_version.d.ts +58 -0
  147. package/dest/database-version/database_version.d.ts.map +1 -0
  148. package/dest/database-version/database_version.js +69 -0
  149. package/dest/database-version/version_manager.d.ts +3 -49
  150. package/dest/database-version/version_manager.d.ts.map +1 -1
  151. package/dest/database-version/version_manager.js +1 -64
  152. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  153. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  154. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  155. package/dest/deserialization/index.d.ts +11 -0
  156. package/dest/deserialization/index.d.ts.map +1 -0
  157. package/dest/deserialization/index.js +10 -0
  158. package/dest/epoch-helpers/index.d.ts +7 -1
  159. package/dest/epoch-helpers/index.d.ts.map +1 -1
  160. package/dest/epoch-helpers/index.js +9 -3
  161. package/dest/errors/proving_error.d.ts +2 -2
  162. package/dest/errors/proving_error.d.ts.map +1 -1
  163. package/dest/file-store/local.d.ts +3 -3
  164. package/dest/file-store/local.d.ts.map +1 -1
  165. package/dest/file-store/local.js +13 -4
  166. package/dest/file-store/s3.d.ts +1 -1
  167. package/dest/file-store/s3.d.ts.map +1 -1
  168. package/dest/file-store/s3.js +11 -3
  169. package/dest/gas/gas.js +3 -1
  170. package/dest/gas/gas_fees.d.ts +1 -1
  171. package/dest/gas/gas_fees.d.ts.map +1 -1
  172. package/dest/gas/gas_fees.js +7 -2
  173. package/dest/ha-signing/config.d.ts +136 -0
  174. package/dest/ha-signing/config.d.ts.map +1 -0
  175. package/dest/ha-signing/config.js +97 -0
  176. package/dest/ha-signing/index.d.ts +4 -0
  177. package/dest/ha-signing/index.d.ts.map +1 -0
  178. package/dest/ha-signing/index.js +3 -0
  179. package/dest/ha-signing/local_config.d.ts +63 -0
  180. package/dest/ha-signing/local_config.d.ts.map +1 -0
  181. package/dest/ha-signing/local_config.js +24 -0
  182. package/dest/ha-signing/types.d.ts +85 -0
  183. package/dest/ha-signing/types.d.ts.map +1 -0
  184. package/dest/ha-signing/types.js +32 -0
  185. package/dest/hash/hash.d.ts +2 -1
  186. package/dest/hash/hash.d.ts.map +1 -1
  187. package/dest/hash/hash.js +16 -10
  188. package/dest/hash/map_slot.d.ts +1 -1
  189. package/dest/hash/map_slot.d.ts.map +1 -1
  190. package/dest/hash/map_slot.js +4 -3
  191. package/dest/interfaces/allowed_element.d.ts +26 -20
  192. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  193. package/dest/interfaces/allowed_element.js +8 -8
  194. package/dest/interfaces/api_limit.d.ts +3 -1
  195. package/dest/interfaces/api_limit.d.ts.map +1 -1
  196. package/dest/interfaces/api_limit.js +2 -0
  197. package/dest/interfaces/archiver.d.ts +6 -6
  198. package/dest/interfaces/archiver.d.ts.map +1 -1
  199. package/dest/interfaces/archiver.js +28 -17
  200. package/dest/interfaces/aztec-node-admin.d.ts +178 -59
  201. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  202. package/dest/interfaces/aztec-node-admin.js +15 -7
  203. package/dest/interfaces/aztec-node.d.ts +83 -80
  204. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  205. package/dest/interfaces/aztec-node.js +17 -17
  206. package/dest/interfaces/block-builder.d.ts +30 -16
  207. package/dest/interfaces/block-builder.d.ts.map +1 -1
  208. package/dest/interfaces/block-builder.js +14 -2
  209. package/dest/interfaces/configs.d.ts +80 -35
  210. package/dest/interfaces/configs.d.ts.map +1 -1
  211. package/dest/interfaces/configs.js +10 -3
  212. package/dest/interfaces/get_logs_response.d.ts +16 -9
  213. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  214. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  215. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  216. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  217. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  218. package/dest/interfaces/p2p.d.ts +9 -16
  219. package/dest/interfaces/p2p.d.ts.map +1 -1
  220. package/dest/interfaces/p2p.js +3 -4
  221. package/dest/interfaces/prover-broker.d.ts +16 -1
  222. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  223. package/dest/interfaces/prover-broker.js +4 -1
  224. package/dest/interfaces/prover-client.d.ts +15 -1
  225. package/dest/interfaces/prover-client.d.ts.map +1 -1
  226. package/dest/interfaces/prover-client.js +12 -1
  227. package/dest/interfaces/proving-job.d.ts +52 -52
  228. package/dest/interfaces/proving-job.d.ts.map +1 -1
  229. package/dest/interfaces/proving-job.js +1 -7
  230. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  231. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  232. package/dest/interfaces/slasher.d.ts +9 -1
  233. package/dest/interfaces/slasher.d.ts.map +1 -1
  234. package/dest/interfaces/slasher.js +2 -0
  235. package/dest/interfaces/tx_provider.d.ts +3 -3
  236. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  237. package/dest/interfaces/validator.d.ts +240 -42
  238. package/dest/interfaces/validator.d.ts.map +1 -1
  239. package/dest/interfaces/validator.js +13 -4
  240. package/dest/interfaces/world_state.d.ts +8 -6
  241. package/dest/interfaces/world_state.d.ts.map +1 -1
  242. package/dest/kernel/claimed_length_array.js +3 -1
  243. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +7 -6
  244. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  245. package/dest/kernel/hints/build_note_hash_read_request_hints.js +31 -19
  246. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  247. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  248. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  249. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  250. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  251. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  252. package/dest/kernel/hints/index.d.ts +2 -2
  253. package/dest/kernel/hints/index.js +2 -2
  254. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  255. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  256. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  257. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  258. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  259. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  260. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  261. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  262. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  263. package/dest/kernel/hints/read_request.d.ts +7 -1
  264. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  265. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  266. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  267. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  268. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  269. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  270. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  271. package/dest/kernel/log_hash.js +3 -1
  272. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  273. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  274. package/dest/kernel/private_call_data.d.ts +25 -1
  275. package/dest/kernel/private_call_data.d.ts.map +1 -1
  276. package/dest/kernel/private_call_request.d.ts +16 -1
  277. package/dest/kernel/private_call_request.d.ts.map +1 -1
  278. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  279. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  280. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  281. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  282. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  283. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  284. package/dest/kernel/private_kernel_data.d.ts +7 -1
  285. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  286. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  287. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  288. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  289. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  290. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  291. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  292. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  293. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  294. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  295. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
  296. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  297. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  298. package/dest/kernel/private_log_data.js +5 -2
  299. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  300. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  301. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  302. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  303. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  304. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  305. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  306. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  307. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  308. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  309. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  310. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  311. package/dest/kernel/private_validation_requests.d.ts +13 -4
  312. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  313. package/dest/kernel/private_validation_requests.js +12 -10
  314. package/dest/kernel/public_call_request.d.ts +22 -1
  315. package/dest/kernel/public_call_request.d.ts.map +1 -1
  316. package/dest/kernel/public_call_request.js +5 -2
  317. package/dest/kernel/utils/optional_number.d.ts +7 -1
  318. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  319. package/dest/keys/derivation.d.ts +3 -3
  320. package/dest/keys/derivation.js +15 -15
  321. package/dest/keys/key_types.d.ts +3 -3
  322. package/dest/keys/key_types.d.ts.map +1 -1
  323. package/dest/keys/public_keys.d.ts +5 -1
  324. package/dest/keys/public_keys.d.ts.map +1 -1
  325. package/dest/keys/public_keys.js +2 -2
  326. package/dest/keys/utils.d.ts +1 -1
  327. package/dest/keys/utils.d.ts.map +1 -1
  328. package/dest/keys/utils.js +8 -4
  329. package/dest/kv-store/config.d.ts +17 -0
  330. package/dest/kv-store/config.d.ts.map +1 -0
  331. package/dest/kv-store/config.js +26 -0
  332. package/dest/kv-store/index.d.ts +2 -0
  333. package/dest/kv-store/index.d.ts.map +1 -0
  334. package/dest/kv-store/index.js +1 -0
  335. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  336. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  337. package/dest/l1-contracts/slash_factory.js +1 -0
  338. package/dest/logs/contract_class_log.js +3 -1
  339. package/dest/logs/debug_log_store.d.ts +30 -0
  340. package/dest/logs/debug_log_store.d.ts.map +1 -0
  341. package/dest/logs/debug_log_store.js +30 -0
  342. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  343. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  344. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  345. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  346. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  347. package/dest/logs/extended_public_log.d.ts +17 -9
  348. package/dest/logs/extended_public_log.d.ts.map +1 -1
  349. package/dest/logs/index.d.ts +3 -3
  350. package/dest/logs/index.d.ts.map +1 -1
  351. package/dest/logs/index.js +2 -2
  352. package/dest/logs/log_id.d.ts +21 -14
  353. package/dest/logs/log_id.d.ts.map +1 -1
  354. package/dest/logs/log_id.js +20 -17
  355. package/dest/logs/pre_tag.d.ts +16 -11
  356. package/dest/logs/pre_tag.d.ts.map +1 -1
  357. package/dest/logs/pre_tag.js +2 -2
  358. package/dest/logs/private_log.d.ts +2 -2
  359. package/dest/logs/private_log.d.ts.map +1 -1
  360. package/dest/logs/private_log.js +3 -1
  361. package/dest/logs/public_log.d.ts +4 -3
  362. package/dest/logs/public_log.d.ts.map +1 -1
  363. package/dest/logs/public_log.js +5 -2
  364. package/dest/logs/siloed_tag.d.ts +5 -3
  365. package/dest/logs/siloed_tag.d.ts.map +1 -1
  366. package/dest/logs/siloed_tag.js +8 -6
  367. package/dest/logs/tag.js +1 -1
  368. package/dest/logs/tx_scoped_l2_log.d.ts +18 -39
  369. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  370. package/dest/logs/tx_scoped_l2_log.js +29 -50
  371. package/dest/messaging/in_hash.d.ts +4 -2
  372. package/dest/messaging/in_hash.d.ts.map +1 -1
  373. package/dest/messaging/in_hash.js +3 -1
  374. package/dest/messaging/inbox_leaf.d.ts +3 -1
  375. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  376. package/dest/messaging/l1_actor.d.ts +7 -1
  377. package/dest/messaging/l1_actor.d.ts.map +1 -1
  378. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  379. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  380. package/dest/messaging/l2_actor.d.ts +7 -1
  381. package/dest/messaging/l2_actor.d.ts.map +1 -1
  382. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  383. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  384. package/dest/messaging/l2_to_l1_membership.js +160 -42
  385. package/dest/messaging/out_hash.d.ts +41 -3
  386. package/dest/messaging/out_hash.d.ts.map +1 -1
  387. package/dest/messaging/out_hash.js +54 -19
  388. package/dest/note/index.d.ts +1 -2
  389. package/dest/note/index.d.ts.map +1 -1
  390. package/dest/note/index.js +0 -1
  391. package/dest/note/note_dao.d.ts +36 -5
  392. package/dest/note/note_dao.d.ts.map +1 -1
  393. package/dest/note/note_dao.js +15 -12
  394. package/dest/p2p/attestation_utils.d.ts +13 -3
  395. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  396. package/dest/p2p/attestation_utils.js +46 -1
  397. package/dest/p2p/block_proposal.d.ts +102 -23
  398. package/dest/p2p/block_proposal.d.ts.map +1 -1
  399. package/dest/p2p/block_proposal.js +138 -39
  400. package/dest/p2p/checkpoint_attestation.d.ts +82 -0
  401. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  402. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  403. package/dest/p2p/checkpoint_proposal.d.ts +174 -0
  404. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  405. package/dest/p2p/checkpoint_proposal.js +231 -0
  406. package/dest/p2p/client_type.d.ts +2 -5
  407. package/dest/p2p/client_type.d.ts.map +1 -1
  408. package/dest/p2p/client_type.js +0 -7
  409. package/dest/p2p/consensus_payload.d.ts +20 -11
  410. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  411. package/dest/p2p/consensus_payload.js +24 -19
  412. package/dest/p2p/constants.d.ts +5 -0
  413. package/dest/p2p/constants.d.ts.map +1 -0
  414. package/dest/p2p/constants.js +3 -0
  415. package/dest/p2p/gossipable.d.ts +4 -3
  416. package/dest/p2p/gossipable.d.ts.map +1 -1
  417. package/dest/p2p/gossipable.js +16 -5
  418. package/dest/p2p/index.d.ts +5 -3
  419. package/dest/p2p/index.d.ts.map +1 -1
  420. package/dest/p2p/index.js +4 -2
  421. package/dest/p2p/message_validator.d.ts +18 -3
  422. package/dest/p2p/message_validator.d.ts.map +1 -1
  423. package/dest/p2p/message_validator.js +2 -1
  424. package/dest/p2p/peer_error.d.ts +3 -1
  425. package/dest/p2p/peer_error.d.ts.map +1 -1
  426. package/dest/p2p/peer_error.js +5 -0
  427. package/dest/p2p/signature_utils.d.ts +5 -3
  428. package/dest/p2p/signature_utils.d.ts.map +1 -1
  429. package/dest/p2p/signature_utils.js +3 -1
  430. package/dest/p2p/signed_txs.d.ts +42 -0
  431. package/dest/p2p/signed_txs.d.ts.map +1 -0
  432. package/dest/p2p/signed_txs.js +75 -0
  433. package/dest/p2p/topic_type.d.ts +5 -5
  434. package/dest/p2p/topic_type.d.ts.map +1 -1
  435. package/dest/p2p/topic_type.js +9 -19
  436. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  437. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  438. package/dest/parity/parity_public_inputs.d.ts +4 -1
  439. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  440. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  441. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  442. package/dest/proofs/chonk_proof.d.ts +1 -1
  443. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  444. package/dest/proofs/chonk_proof.js +9 -4
  445. package/dest/proofs/proof.d.ts +4 -1
  446. package/dest/proofs/proof.d.ts.map +1 -1
  447. package/dest/proofs/recursive_proof.d.ts +10 -1
  448. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  449. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  450. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  451. package/dest/rollup/block_constant_data.d.ts +12 -1
  452. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  453. package/dest/rollup/block_headers_hash.js +1 -1
  454. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  455. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  456. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  457. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  458. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  459. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  460. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  461. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  462. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  463. package/dest/rollup/checkpoint_constant_data.js +3 -1
  464. package/dest/rollup/checkpoint_header.d.ts +43 -13
  465. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  466. package/dest/rollup/checkpoint_header.js +50 -20
  467. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  468. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  469. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +46 -6
  470. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  471. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
  472. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  473. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  474. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  475. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  476. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  477. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  478. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  479. package/dest/rollup/root_rollup_public_inputs.d.ts +21 -6
  480. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  481. package/dest/rollup/root_rollup_public_inputs.js +10 -4
  482. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  483. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  484. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  485. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  486. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  487. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  488. package/dest/schemas/schemas.d.ts +1 -1
  489. package/dest/slashing/empire.d.ts +1 -1
  490. package/dest/slashing/empire.d.ts.map +1 -1
  491. package/dest/slashing/empire.js +2 -0
  492. package/dest/slashing/helpers.d.ts +2 -2
  493. package/dest/slashing/helpers.d.ts.map +1 -1
  494. package/dest/slashing/helpers.js +6 -0
  495. package/dest/slashing/tally.d.ts +8 -2
  496. package/dest/slashing/tally.d.ts.map +1 -1
  497. package/dest/slashing/tally.js +35 -3
  498. package/dest/slashing/types.d.ts +7 -3
  499. package/dest/slashing/types.d.ts.map +1 -1
  500. package/dest/slashing/types.js +13 -1
  501. package/dest/stats/stats.d.ts +1 -3
  502. package/dest/stats/stats.d.ts.map +1 -1
  503. package/dest/tests/factories.d.ts +41 -10
  504. package/dest/tests/factories.d.ts.map +1 -1
  505. package/dest/tests/factories.js +99 -36
  506. package/dest/tests/jest.js +1 -1
  507. package/dest/tests/mocks.d.ts +79 -19
  508. package/dest/tests/mocks.d.ts.map +1 -1
  509. package/dest/tests/mocks.js +148 -72
  510. package/dest/timetable/index.d.ts +37 -0
  511. package/dest/timetable/index.d.ts.map +1 -0
  512. package/dest/timetable/index.js +39 -0
  513. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  514. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  515. package/dest/trees/append_only_tree_snapshot.js +3 -1
  516. package/dest/trees/nullifier_leaf.d.ts +13 -1
  517. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  518. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  519. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  520. package/dest/trees/public_data_leaf.d.ts +17 -1
  521. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  522. package/dest/trees/public_data_leaf.js +7 -6
  523. package/dest/trees/public_data_witness.d.ts +11 -1
  524. package/dest/trees/public_data_witness.d.ts.map +1 -1
  525. package/dest/tx/block_header.d.ts +16 -2
  526. package/dest/tx/block_header.d.ts.map +1 -1
  527. package/dest/tx/block_header.js +13 -3
  528. package/dest/tx/call_context.d.ts +13 -1
  529. package/dest/tx/call_context.d.ts.map +1 -1
  530. package/dest/tx/call_context.js +3 -1
  531. package/dest/tx/capsule.d.ts +4 -1
  532. package/dest/tx/capsule.d.ts.map +1 -1
  533. package/dest/tx/execution_payload.d.ts +9 -1
  534. package/dest/tx/execution_payload.d.ts.map +1 -1
  535. package/dest/tx/function_data.d.ts +4 -2
  536. package/dest/tx/function_data.d.ts.map +1 -1
  537. package/dest/tx/global_variable_builder.d.ts +2 -2
  538. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  539. package/dest/tx/global_variables.d.ts +12 -4
  540. package/dest/tx/global_variables.d.ts.map +1 -1
  541. package/dest/tx/global_variables.js +3 -1
  542. package/dest/tx/hashed_values.d.ts +7 -1
  543. package/dest/tx/hashed_values.d.ts.map +1 -1
  544. package/dest/tx/in_tx.d.ts +4 -4
  545. package/dest/tx/index.d.ts +1 -2
  546. package/dest/tx/index.d.ts.map +1 -1
  547. package/dest/tx/index.js +0 -1
  548. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  549. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  550. package/dest/tx/indexed_tx_effect.js +3 -2
  551. package/dest/tx/partial_state_reference.d.ts +4 -1
  552. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  553. package/dest/tx/private_execution_result.d.ts +23 -6
  554. package/dest/tx/private_execution_result.d.ts.map +1 -1
  555. package/dest/tx/private_execution_result.js +4 -21
  556. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  557. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  558. package/dest/tx/profiling.d.ts +152 -29
  559. package/dest/tx/profiling.d.ts.map +1 -1
  560. package/dest/tx/profiling.js +47 -10
  561. package/dest/tx/protocol_contracts.d.ts +2 -2
  562. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  563. package/dest/tx/protocol_contracts.js +2 -2
  564. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  565. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  566. package/dest/tx/public_call_request_with_calldata.js +3 -1
  567. package/dest/tx/public_simulation_output.d.ts +4 -2
  568. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  569. package/dest/tx/public_simulation_output.js +7 -3
  570. package/dest/tx/simulated_tx.d.ts +5 -2
  571. package/dest/tx/simulated_tx.d.ts.map +1 -1
  572. package/dest/tx/simulated_tx.js +4 -1
  573. package/dest/tx/state_reference.d.ts +3 -1
  574. package/dest/tx/state_reference.d.ts.map +1 -1
  575. package/dest/tx/state_reference.js +3 -1
  576. package/dest/tx/tree_snapshots.js +3 -1
  577. package/dest/tx/tx.d.ts +38 -7
  578. package/dest/tx/tx.d.ts.map +1 -1
  579. package/dest/tx/tx.js +36 -12
  580. package/dest/tx/tx_context.d.ts +2 -1
  581. package/dest/tx/tx_context.d.ts.map +1 -1
  582. package/dest/tx/tx_effect.d.ts +32 -6
  583. package/dest/tx/tx_effect.d.ts.map +1 -1
  584. package/dest/tx/tx_effect.js +6 -9
  585. package/dest/tx/tx_execution_request.d.ts +30 -1
  586. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  587. package/dest/tx/tx_execution_request.js +6 -2
  588. package/dest/tx/tx_hash.d.ts +2 -1
  589. package/dest/tx/tx_hash.d.ts.map +1 -1
  590. package/dest/tx/tx_receipt.d.ts +62 -14
  591. package/dest/tx/tx_receipt.d.ts.map +1 -1
  592. package/dest/tx/tx_receipt.js +55 -16
  593. package/dest/tx/tx_request.d.ts +6 -1
  594. package/dest/tx/tx_request.d.ts.map +1 -1
  595. package/dest/tx/tx_request.js +2 -2
  596. package/dest/tx/validator/empty_validator.d.ts +2 -2
  597. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  598. package/dest/tx/validator/error_texts.d.ts +7 -2
  599. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  600. package/dest/tx/validator/error_texts.js +7 -1
  601. package/dest/tx/validator/tx_validator.d.ts +2 -2
  602. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  603. package/dest/types/shared.d.ts +4 -1
  604. package/dest/types/shared.d.ts.map +1 -1
  605. package/dest/update-checker/index.d.ts +3 -2
  606. package/dest/update-checker/index.d.ts.map +1 -1
  607. package/dest/update-checker/index.js +2 -1
  608. package/dest/update-checker/package_version.d.ts +3 -0
  609. package/dest/update-checker/package_version.d.ts.map +1 -0
  610. package/dest/update-checker/package_version.js +11 -0
  611. package/dest/update-checker/version_checker.d.ts +25 -0
  612. package/dest/update-checker/version_checker.d.ts.map +1 -0
  613. package/dest/update-checker/version_checker.js +50 -0
  614. package/dest/validators/schemas.d.ts +38 -38
  615. package/dest/validators/schemas.d.ts.map +1 -1
  616. package/dest/validators/schemas.js +4 -3
  617. package/dest/validators/types.d.ts +3 -3
  618. package/dest/validators/types.d.ts.map +1 -1
  619. package/dest/vks/verification_key.d.ts +22 -1
  620. package/dest/vks/verification_key.d.ts.map +1 -1
  621. package/dest/vks/vk_data.d.ts +7 -1
  622. package/dest/vks/vk_data.d.ts.map +1 -1
  623. package/dest/zkpassport/index.d.ts +3 -4
  624. package/dest/zkpassport/index.d.ts.map +1 -1
  625. package/dest/zkpassport/index.js +9 -9
  626. package/package.json +29 -14
  627. package/src/abi/contract_artifact.ts +10 -10
  628. package/src/abi/decoder.ts +15 -6
  629. package/src/abi/encoder.ts +49 -6
  630. package/src/abi/event_metadata_definition.ts +2 -0
  631. package/src/abi/function_call.ts +25 -3
  632. package/src/abi/utils.ts +42 -0
  633. package/src/auth_witness/auth_witness.ts +3 -3
  634. package/src/avm/revert_code.ts +15 -0
  635. package/src/block/attestation_info.ts +9 -6
  636. package/src/block/block_data.ts +26 -0
  637. package/src/block/block_hash.ts +26 -25
  638. package/src/block/block_parameter.ts +4 -2
  639. package/src/block/body.ts +2 -1
  640. package/src/block/checkpointed_l2_block.ts +8 -58
  641. package/src/block/in_block.ts +6 -6
  642. package/src/block/index.ts +1 -2
  643. package/src/block/l2_block.ts +112 -147
  644. package/src/block/l2_block_source.ts +151 -44
  645. package/src/block/l2_block_stream/index.ts +1 -0
  646. package/src/block/l2_block_stream/interfaces.ts +15 -4
  647. package/src/block/l2_block_stream/l2_block_stream.ts +151 -39
  648. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  649. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  650. package/src/block/test/l2_tips_store_test_suite.ts +480 -36
  651. package/src/block/validate_block_result.ts +40 -35
  652. package/src/checkpoint/checkpoint.ts +73 -23
  653. package/src/checkpoint/checkpoint_data.ts +51 -0
  654. package/src/checkpoint/checkpoint_info.ts +45 -2
  655. package/src/checkpoint/index.ts +3 -0
  656. package/src/checkpoint/published_checkpoint.ts +7 -4
  657. package/src/checkpoint/validate.ts +230 -0
  658. package/src/config/index.ts +1 -0
  659. package/src/config/node-rpc-config.ts +1 -1
  660. package/src/config/sequencer-config.ts +37 -0
  661. package/src/contract/contract_address.ts +4 -4
  662. package/src/contract/contract_class.ts +3 -3
  663. package/src/contract/contract_class_id.ts +6 -5
  664. package/src/contract/index.ts +0 -2
  665. package/src/contract/interfaces/node-info.ts +3 -0
  666. package/src/contract/private_function.ts +3 -4
  667. package/src/contract/private_function_membership_proof.ts +1 -1
  668. package/src/database-version/database_version.ts +87 -0
  669. package/src/database-version/version_manager.ts +1 -77
  670. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  671. package/src/deserialization/index.ts +21 -0
  672. package/src/epoch-helpers/index.ts +13 -1
  673. package/src/file-store/local.ts +15 -5
  674. package/src/file-store/s3.ts +12 -3
  675. package/src/gas/gas_fees.ts +7 -1
  676. package/src/ha-signing/config.ts +156 -0
  677. package/src/ha-signing/index.ts +27 -0
  678. package/src/ha-signing/local_config.ts +46 -0
  679. package/src/ha-signing/types.ts +112 -0
  680. package/src/hash/hash.ts +14 -10
  681. package/src/hash/map_slot.ts +3 -2
  682. package/src/interfaces/allowed_element.ts +29 -9
  683. package/src/interfaces/api_limit.ts +2 -0
  684. package/src/interfaces/archiver.ts +32 -24
  685. package/src/interfaces/aztec-node-admin.ts +33 -6
  686. package/src/interfaces/aztec-node.ts +124 -133
  687. package/src/interfaces/block-builder.ts +64 -26
  688. package/src/interfaces/configs.ts +36 -8
  689. package/src/interfaces/l2_logs_source.ts +17 -4
  690. package/src/interfaces/merkle_tree_operations.ts +1 -1
  691. package/src/interfaces/p2p.ts +10 -25
  692. package/src/interfaces/prover-broker.ts +22 -0
  693. package/src/interfaces/prover-client.ts +22 -0
  694. package/src/interfaces/proving-job.ts +2 -11
  695. package/src/interfaces/server_circuit_prover.ts +3 -2
  696. package/src/interfaces/slasher.ts +4 -0
  697. package/src/interfaces/tx_provider.ts +2 -2
  698. package/src/interfaces/validator.ts +112 -32
  699. package/src/interfaces/world_state.ts +9 -7
  700. package/src/kernel/hints/build_note_hash_read_request_hints.ts +34 -30
  701. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
  702. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  703. package/src/kernel/hints/index.ts +2 -2
  704. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  705. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  706. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  707. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  708. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  709. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  710. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  711. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  712. package/src/kernel/private_validation_requests.ts +8 -8
  713. package/src/keys/derivation.ts +15 -15
  714. package/src/keys/key_types.ts +6 -2
  715. package/src/keys/public_keys.ts +2 -2
  716. package/src/keys/utils.ts +8 -4
  717. package/src/kv-store/config.ts +36 -0
  718. package/src/kv-store/index.ts +1 -0
  719. package/src/l1-contracts/slash_factory.ts +1 -0
  720. package/src/logs/debug_log_store.ts +54 -0
  721. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  722. package/src/logs/index.ts +2 -2
  723. package/src/logs/log_id.ts +22 -18
  724. package/src/logs/pre_tag.ts +5 -5
  725. package/src/logs/public_log.ts +4 -2
  726. package/src/logs/siloed_tag.ts +10 -4
  727. package/src/logs/tag.ts +1 -1
  728. package/src/logs/tx_scoped_l2_log.ts +37 -53
  729. package/src/messaging/in_hash.ts +3 -1
  730. package/src/messaging/l2_to_l1_membership.ts +178 -52
  731. package/src/messaging/out_hash.ts +62 -21
  732. package/src/note/index.ts +0 -1
  733. package/src/note/note_dao.ts +18 -13
  734. package/src/p2p/attestation_utils.ts +59 -3
  735. package/src/p2p/block_proposal.ts +211 -46
  736. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
  737. package/src/p2p/checkpoint_proposal.ts +370 -0
  738. package/src/p2p/client_type.ts +0 -6
  739. package/src/p2p/consensus_payload.ts +29 -18
  740. package/src/p2p/constants.ts +6 -0
  741. package/src/p2p/gossipable.ts +14 -4
  742. package/src/p2p/index.ts +4 -2
  743. package/src/p2p/message_validator.ts +14 -2
  744. package/src/p2p/peer_error.ts +7 -0
  745. package/src/p2p/signature_utils.ts +3 -1
  746. package/src/p2p/signed_txs.ts +88 -0
  747. package/src/p2p/topic_type.ts +10 -16
  748. package/src/proofs/chonk_proof.ts +9 -5
  749. package/src/rollup/block_headers_hash.ts +1 -1
  750. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  751. package/src/rollup/checkpoint_header.ts +64 -21
  752. package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
  753. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  754. package/src/rollup/root_rollup_public_inputs.ts +16 -7
  755. package/src/slashing/empire.ts +3 -1
  756. package/src/slashing/helpers.ts +8 -0
  757. package/src/slashing/tally.ts +41 -2
  758. package/src/slashing/types.ts +14 -0
  759. package/src/stats/stats.ts +0 -2
  760. package/src/tests/factories.ts +124 -54
  761. package/src/tests/jest.ts +1 -1
  762. package/src/tests/mocks.ts +251 -103
  763. package/src/timetable/index.ts +66 -0
  764. package/src/trees/public_data_leaf.ts +11 -5
  765. package/src/tx/block_header.ts +18 -4
  766. package/src/tx/global_variable_builder.ts +1 -1
  767. package/src/tx/global_variables.ts +3 -3
  768. package/src/tx/index.ts +0 -1
  769. package/src/tx/indexed_tx_effect.ts +3 -2
  770. package/src/tx/private_execution_result.ts +1 -16
  771. package/src/tx/profiling.ts +51 -9
  772. package/src/tx/protocol_contracts.ts +2 -2
  773. package/src/tx/public_simulation_output.ts +4 -0
  774. package/src/tx/simulated_tx.ts +8 -1
  775. package/src/tx/tx.ts +39 -22
  776. package/src/tx/tx_effect.ts +3 -10
  777. package/src/tx/tx_execution_request.ts +2 -0
  778. package/src/tx/tx_receipt.ts +85 -18
  779. package/src/tx/tx_request.ts +2 -2
  780. package/src/tx/validator/empty_validator.ts +1 -1
  781. package/src/tx/validator/error_texts.ts +8 -1
  782. package/src/tx/validator/tx_validator.ts +1 -1
  783. package/src/update-checker/index.ts +2 -1
  784. package/src/update-checker/package_version.ts +17 -0
  785. package/src/update-checker/version_checker.ts +65 -0
  786. package/src/validators/schemas.ts +8 -1
  787. package/src/validators/types.ts +5 -4
  788. package/src/zkpassport/index.ts +11 -12
  789. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  790. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  791. package/dest/block/l2_block_code_to_purge.js +0 -61
  792. package/dest/block/l2_block_header.d.ts +0 -98
  793. package/dest/block/l2_block_header.d.ts.map +0 -1
  794. package/dest/block/l2_block_header.js +0 -153
  795. package/dest/block/l2_block_new.d.ts +0 -135
  796. package/dest/block/l2_block_new.d.ts.map +0 -1
  797. package/dest/block/l2_block_new.js +0 -152
  798. package/dest/contract/contract_class_metadata.d.ts +0 -8
  799. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  800. package/dest/contract/contract_class_metadata.js +0 -1
  801. package/dest/contract/contract_metadata.d.ts +0 -7
  802. package/dest/contract/contract_metadata.d.ts.map +0 -1
  803. package/dest/contract/contract_metadata.js +0 -1
  804. package/dest/database-version/index.d.ts +0 -2
  805. package/dest/database-version/index.d.ts.map +0 -1
  806. package/dest/database-version/index.js +0 -1
  807. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  808. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  809. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  810. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  811. package/dest/logs/log_with_tx_data.d.ts +0 -19
  812. package/dest/logs/log_with_tx_data.d.ts.map +0 -1
  813. package/dest/logs/log_with_tx_data.js +0 -49
  814. package/dest/note/notes_filter.d.ts +0 -27
  815. package/dest/note/notes_filter.d.ts.map +0 -1
  816. package/dest/note/notes_filter.js +0 -11
  817. package/dest/p2p/block_attestation.d.ts +0 -80
  818. package/dest/p2p/block_attestation.d.ts.map +0 -1
  819. package/dest/tx/content_commitment.d.ts +0 -49
  820. package/dest/tx/content_commitment.d.ts.map +0 -1
  821. package/dest/tx/content_commitment.js +0 -90
  822. package/dest/update-checker/update-checker.d.ts +0 -49
  823. package/dest/update-checker/update-checker.d.ts.map +0 -1
  824. package/dest/update-checker/update-checker.js +0 -130
  825. package/src/block/l2_block_code_to_purge.ts +0 -88
  826. package/src/block/l2_block_header.ts +0 -246
  827. package/src/block/l2_block_new.ts +0 -207
  828. package/src/contract/contract_class_metadata.ts +0 -8
  829. package/src/contract/contract_metadata.ts +0 -7
  830. package/src/database-version/index.ts +0 -1
  831. package/src/logs/log_with_tx_data.ts +0 -46
  832. package/src/note/notes_filter.ts +0 -38
  833. package/src/tx/content_commitment.ts +0 -113
  834. package/src/update-checker/update-checker.ts +0 -166
@@ -2,6 +2,7 @@ import {
2
2
  BlockNumber,
3
3
  BlockNumberSchema,
4
4
  CheckpointNumber,
5
+ CheckpointNumberSchema,
5
6
  type EpochNumber,
6
7
  type SlotNumber,
7
8
  } from '@aztec/foundation/branded-types';
@@ -12,16 +13,19 @@ import type { TypedEventEmitter } from '@aztec/foundation/types';
12
13
  import { z } from 'zod';
13
14
 
14
15
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
16
+ import type { CheckpointData } from '../checkpoint/checkpoint_data.js';
15
17
  import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
16
18
  import type { L1RollupConstants } from '../epoch-helpers/index.js';
19
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
17
20
  import type { BlockHeader } from '../tx/block_header.js';
18
21
  import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
19
22
  import type { TxHash } from '../tx/tx_hash.js';
20
23
  import type { TxReceipt } from '../tx/tx_receipt.js';
21
- 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';
22
27
  import type { L2Block } from './l2_block.js';
23
- import type { L2BlockNew } from './l2_block_new.js';
24
- import type { ValidateBlockNegativeResult, ValidateBlockResult } from './validate_block_result.js';
28
+ import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
25
29
 
26
30
  /**
27
31
  * Interface of classes allowing for the retrieval of L2 blocks.
@@ -45,12 +49,32 @@ export interface L2BlockSource {
45
49
  */
46
50
  getBlockNumber(): Promise<BlockNumber>;
47
51
 
52
+ /**
53
+ * Gets the number of the latest L2 checkpoint processed by the block source implementation.
54
+ * @returns The number of the latest L2 checkpoint processed by the block source implementation.
55
+ */
56
+ getCheckpointNumber(): Promise<CheckpointNumber>;
57
+
48
58
  /**
49
59
  * Gets the number of the latest L2 block proven seen by the block source implementation.
50
60
  * @returns The number of the latest L2 block proven seen by the block source implementation.
51
61
  */
52
62
  getProvenBlockNumber(): Promise<BlockNumber>;
53
63
 
64
+ /**
65
+ * Gets the number of the latest L2 block checkpointed seen by the block source implementation.
66
+ * @returns The number of the latest L2 block checkpointed seen by the block source implementation.
67
+ */
68
+ getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
69
+
70
+ /**
71
+ * Computes the finalized block number based on the proven block number.
72
+ * A block is considered finalized when it's 2 epochs behind the proven block.
73
+ * TODO(#13569): Compute proper finalized block number based on L1 finalized block.
74
+ * @returns The finalized block number.
75
+ */
76
+ getFinalizedL2BlockNumber(): Promise<BlockNumber>;
77
+
54
78
  /**
55
79
  * Gets an l2 block header.
56
80
  * @param number - The block number to return or 'latest' for the most recent one.
@@ -66,13 +90,15 @@ export interface L2BlockSource {
66
90
  */
67
91
  getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
68
92
 
93
+ getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
94
+
69
95
  /**
70
- * Retrieves a collection of published checkpoints
71
- * @param checkpointNumber The first checkpoint to be retrieved
72
- * @param limit The number of checkpoints to be retrieved
73
- * @returns The collection of complete checkpoints
96
+ * Retrieves a collection of checkpoints.
97
+ * @param checkpointNumber The first checkpoint to be retrieved.
98
+ * @param limit The number of checkpoints to be retrieved.
99
+ * @returns The collection of complete checkpoints.
74
100
  */
75
- getPublishedCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
101
+ getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
76
102
 
77
103
  /**
78
104
  * Gets the checkpoints for a given epoch
@@ -80,12 +106,18 @@ export interface L2BlockSource {
80
106
  */
81
107
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
82
108
 
109
+ /**
110
+ * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
111
+ * @param epochNumber - Epoch for which we want checkpoint data
112
+ */
113
+ getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
114
+
83
115
  /**
84
116
  * Gets a block header by its hash.
85
117
  * @param blockHash - The block hash to retrieve.
86
118
  * @returns The requested block header (or undefined if not found).
87
119
  */
88
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
120
+ getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
89
121
 
90
122
  /**
91
123
  * Gets a block header by its archive root.
@@ -94,12 +126,40 @@ export interface L2BlockSource {
94
126
  */
95
127
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
96
128
 
129
+ /**
130
+ * Gets block metadata (without tx data) by block number.
131
+ * @param number - The block number to retrieve.
132
+ * @returns The requested block data (or undefined if not found).
133
+ */
134
+ getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
135
+
136
+ /**
137
+ * Gets block metadata (without tx data) by archive root.
138
+ * @param archive - The archive root to retrieve.
139
+ * @returns The requested block data (or undefined if not found).
140
+ */
141
+ getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
142
+
97
143
  /**
98
144
  * Gets an L2 block by block number.
99
145
  * @param number - The block number to return.
100
146
  * @returns The requested L2 block (or undefined if not found).
101
147
  */
102
- getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
148
+ getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
149
+
150
+ /**
151
+ * Gets an L2 block by its hash.
152
+ * @param blockHash - The block hash to retrieve.
153
+ * @returns The requested L2 block (or undefined if not found).
154
+ */
155
+ getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
156
+
157
+ /**
158
+ * Gets an L2 block by its archive root.
159
+ * @param archive - The archive root to retrieve.
160
+ * @returns The requested L2 block (or undefined if not found).
161
+ */
162
+ getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
103
163
 
104
164
  /**
105
165
  * Gets a tx effect.
@@ -126,11 +186,11 @@ export interface L2BlockSource {
126
186
  getL2EpochNumber(): Promise<EpochNumber | undefined>;
127
187
 
128
188
  /**
129
- * Returns all block headers for a given epoch.
189
+ * Returns all checkpointed block headers for a given epoch.
130
190
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
131
191
  * @param epochNumber - The epoch number to return headers for.
132
192
  */
133
- getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
193
+ getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
134
194
 
135
195
  /**
136
196
  * Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
@@ -161,10 +221,10 @@ export interface L2BlockSource {
161
221
  isPendingChainInvalid(): Promise<boolean>;
162
222
 
163
223
  /**
164
- * Returns the status of the pending chain validation. If the chain is invalid, reports the earliest consecutive block
165
- * that is invalid, along with the reason for being invalid, which can be used to trigger an invalidation.
224
+ * Returns the status of the pending chain validation. If the chain is invalid, reports the earliest consecutive
225
+ * checkpoint that is invalid, along with the reason for being invalid, which can be used to trigger an invalidation.
166
226
  */
167
- getPendingChainValidationStatus(): Promise<ValidateBlockResult>;
227
+ getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
168
228
 
169
229
  /** Force a sync. */
170
230
  syncImmediate(): Promise<void>;
@@ -175,42 +235,44 @@ export interface L2BlockSource {
175
235
  * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
176
236
  * @param number - The block number to return (inclusive).
177
237
  * @returns The requested L2 block.
178
- * @deprecated Use getL2BlockNew instead.
179
238
  */
180
239
  getBlock(number: BlockNumber): Promise<L2Block | undefined>;
181
240
 
182
241
  /**
183
- * Returns all blocks for a given epoch.
242
+ * Returns all checkpointed blocks for a given epoch.
184
243
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
185
244
  * @param epochNumber - The epoch number to return blocks for.
186
245
  */
187
- getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]>;
246
+ getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
247
+
248
+ /**
249
+ * Returns all blocks for a given slot.
250
+ * @dev Use this method only with recent slots, since it walks the block list backwards.
251
+ * @param slotNumber - The slot number to return blocks for.
252
+ */
253
+ getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
188
254
 
189
255
  /**
190
- * Gets a published block by its block hash.
256
+ * Gets a checkpointed block by its block hash.
191
257
  * @param blockHash - The block hash to retrieve.
192
258
  * @returns The requested block (or undefined if not found).
193
259
  */
194
- getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined>;
260
+ getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
195
261
 
196
262
  /**
197
- * Gets a published block by its archive root.
263
+ * Gets a checkpointed block by its archive root.
198
264
  * @param archive - The archive root to retrieve.
199
265
  * @returns The requested block (or undefined if not found).
200
266
  */
201
- getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined>;
267
+ getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
202
268
 
203
269
  /**
204
270
  * Gets up to `limit` amount of L2 blocks starting from `from`.
205
271
  * @param from - Number of the first block to return (inclusive).
206
272
  * @param limit - The maximum number of blocks to return.
207
- * @param proven - If true, only return blocks that have been proven.
208
273
  * @returns The requested L2 blocks.
209
274
  */
210
- getBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<L2Block[]>;
211
-
212
- /** Equivalent to getBlocks but includes publish data. */
213
- getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
275
+ getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
214
276
  }
215
277
 
216
278
  /**
@@ -222,7 +284,7 @@ export interface L2BlockSink {
222
284
  * @param block - The L2 block to add.
223
285
  * @throws If block number is not incremental (i.e., not exactly one more than the last stored block).
224
286
  */
225
- addBlock(block: L2BlockNew): Promise<void>;
287
+ addBlock(block: L2Block): Promise<void>;
226
288
  }
227
289
 
228
290
  /**
@@ -230,26 +292,42 @@ export interface L2BlockSink {
230
292
  * see L2BlockSourceEvents for the events emitted.
231
293
  */
232
294
  export type ArchiverEmitter = TypedEventEmitter<{
233
- [L2BlockSourceEvents.L2PruneDetected]: (args: L2BlockPruneEvent) => void;
295
+ [L2BlockSourceEvents.L2PruneUnproven]: (args: L2PruneUnprovenEvent) => void;
296
+ [L2BlockSourceEvents.L2PruneUncheckpointed]: (args: L2PruneUncheckpointedEvent) => void;
234
297
  [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
235
- [L2BlockSourceEvents.InvalidAttestationsBlockDetected]: (args: InvalidBlockDetectedEvent) => void;
298
+ [L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
299
+ [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
236
300
  }>;
237
- export interface L2BlockSourceEventEmitter extends L2BlockSource, ArchiverEmitter {}
301
+ export interface L2BlockSourceEventEmitter extends L2BlockSource {
302
+ events: ArchiverEmitter;
303
+ }
238
304
 
239
305
  /**
240
306
  * Identifier for L2 block tags.
241
- * - latest: Latest block pushed to L1.
307
+ * - proposed: Latest block proposed on L2.
308
+ * - checkpointed: Checkpointed block on L1.
242
309
  * - proven: Proven block on L1.
243
310
  * - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
244
311
  */
245
- export type L2BlockTag = 'latest' | 'proven' | 'finalized';
312
+ export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
246
313
 
247
314
  /** Tips of the L2 chain. */
248
- export type L2Tips = Record<L2BlockTag, L2BlockId>;
315
+ export type L2Tips = {
316
+ proposed: L2BlockId;
317
+ checkpointed: L2TipId;
318
+ proven: L2TipId;
319
+ finalized: L2TipId;
320
+ };
321
+
322
+ export const GENESIS_CHECKPOINT_HEADER_HASH = CheckpointHeader.empty().hash();
249
323
 
250
324
  /** Identifies a block by number and hash. */
251
325
  export type L2BlockId = { number: BlockNumber; hash: string };
252
326
 
327
+ export type CheckpointId = { number: CheckpointNumber; hash: string };
328
+
329
+ export type L2TipId = { block: L2BlockId; checkpoint: CheckpointId };
330
+
253
331
  /** Creates an L2 block id */
254
332
  export function makeL2BlockId(number: BlockNumber, hash?: string): L2BlockId {
255
333
  if (number !== 0 && !hash) {
@@ -258,21 +336,39 @@ export function makeL2BlockId(number: BlockNumber, hash?: string): L2BlockId {
258
336
  return { number, hash: hash! };
259
337
  }
260
338
 
339
+ /** Creates an L2 checkpoint id */
340
+ export function makeL2CheckpointId(number: CheckpointNumber, hash: string): CheckpointId {
341
+ return { number, hash };
342
+ }
343
+
261
344
  const L2BlockIdSchema = z.object({
262
345
  number: BlockNumberSchema,
263
346
  hash: z.string(),
264
347
  });
265
348
 
349
+ const L2CheckpointIdSchema = z.object({
350
+ number: CheckpointNumberSchema,
351
+ hash: z.string(),
352
+ });
353
+
354
+ const L2TipIdSchema = z.object({
355
+ block: L2BlockIdSchema,
356
+ checkpoint: L2CheckpointIdSchema,
357
+ });
358
+
266
359
  export const L2TipsSchema = z.object({
267
- latest: L2BlockIdSchema,
268
- proven: L2BlockIdSchema,
269
- finalized: L2BlockIdSchema,
360
+ proposed: L2BlockIdSchema,
361
+ checkpointed: L2TipIdSchema,
362
+ proven: L2TipIdSchema,
363
+ finalized: L2TipIdSchema,
270
364
  });
271
365
 
272
366
  export enum L2BlockSourceEvents {
273
- L2PruneDetected = 'l2PruneDetected',
367
+ L2PruneUnproven = 'l2PruneUnproven',
368
+ L2PruneUncheckpointed = 'l2PruneUncheckpointed',
274
369
  L2BlockProven = 'l2BlockProven',
275
- InvalidAttestationsBlockDetected = 'invalidBlockDetected',
370
+ L2BlocksCheckpointed = 'l2BlocksCheckpointed',
371
+ InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
276
372
  }
277
373
 
278
374
  export type L2BlockProvenEvent = {
@@ -282,13 +378,24 @@ export type L2BlockProvenEvent = {
282
378
  epochNumber: EpochNumber;
283
379
  };
284
380
 
285
- export type L2BlockPruneEvent = {
286
- type: 'l2PruneDetected';
381
+ export type L2PruneUnprovenEvent = {
382
+ type: 'l2PruneUnproven';
287
383
  epochNumber: EpochNumber;
288
384
  blocks: L2Block[];
289
385
  };
290
386
 
291
- export type InvalidBlockDetectedEvent = {
292
- type: 'invalidBlockDetected';
293
- validationResult: ValidateBlockNegativeResult;
387
+ export type L2PruneUncheckpointedEvent = {
388
+ type: 'l2PruneUncheckpointed';
389
+ slotNumber: SlotNumber;
390
+ blocks: L2Block[];
391
+ };
392
+
393
+ export type L2CheckpointEvent = {
394
+ type: 'l2BlocksCheckpointed';
395
+ checkpoint: PublishedCheckpoint;
396
+ };
397
+
398
+ export type InvalidCheckpointDetectedEvent = {
399
+ type: 'invalidCheckpointDetected';
400
+ validationResult: ValidateCheckpointNegativeResult;
294
401
  };
@@ -1,3 +1,4 @@
1
1
  export * from './interfaces.js';
2
2
  export * from './l2_block_stream.js';
3
3
  export * from './l2_tips_memory_store.js';
4
+ export * from './l2_tips_store_base.js';
@@ -1,5 +1,6 @@
1
- import type { PublishedL2Block } from '../checkpointed_l2_block.js';
2
- import type { L2BlockId, L2Tips } from '../l2_block_source.js';
1
+ import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
2
+ import type { L2Block } from '../l2_block.js';
3
+ import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
3
4
 
4
5
  /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
5
6
  export interface L2BlockStreamLocalDataProvider {
@@ -15,11 +16,21 @@ export interface L2BlockStreamEventHandler {
15
16
  export type L2BlockStreamEvent =
16
17
  | /** Emits blocks added to the chain. */ {
17
18
  type: 'blocks-added';
18
- blocks: PublishedL2Block[];
19
+ blocks: L2Block[];
19
20
  }
20
- | /** Reports last correct block (new tip of the unproven chain). */ {
21
+ | /** Emits checkpoints published to L1. */ {
22
+ type: 'chain-checkpointed';
23
+ checkpoint: PublishedCheckpoint;
24
+ block: L2BlockId;
25
+ }
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
+ */ {
21
31
  type: 'chain-pruned';
22
32
  block: L2BlockId;
33
+ checkpoint: CheckpointId;
23
34
  }
24
35
  | /** Reports new proven block. */ {
25
36
  type: 'chain-proven';
@@ -1,11 +1,15 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
1
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
  import { AbortError } from '@aztec/foundation/error';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { RunningPromise } from '@aztec/foundation/running-promise';
5
5
 
6
+ import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
6
7
  import { type L2BlockId, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
7
8
  import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
8
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
+
9
13
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
10
14
  export class L2BlockStream {
11
15
  private readonly runningPromise: RunningPromise;
@@ -13,17 +17,23 @@ export class L2BlockStream {
13
17
  private hasStarted = false;
14
18
 
15
19
  constructor(
16
- private l2BlockSource: Pick<L2BlockSource, 'getPublishedBlocks' | 'getBlockHeader' | 'getL2Tips'>,
20
+ private l2BlockSource: Pick<
21
+ L2BlockSource,
22
+ 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
23
+ >,
17
24
  private localData: L2BlockStreamLocalDataProvider,
18
25
  private handler: L2BlockStreamEventHandler,
19
26
  private readonly log = createLogger('types:block_stream'),
20
27
  private opts: {
21
- proven?: boolean;
22
28
  pollIntervalMS?: number;
23
29
  batchSize?: number;
24
30
  startingBlock?: number;
25
31
  /** Instead of downloading all blocks, only fetch the smallest subset that results in reliable reorg detection. */
26
32
  skipFinalized?: boolean;
33
+ /** When true, checkpoint events will not be emitted. Blocks are still fetched via checkpoints but only blocks-added events are emitted. */
34
+ ignoreCheckpoints?: boolean;
35
+ /** Maximum number of checkpoints to prefetch at once during sync. Defaults to CHECKPOINT_PREFETCH_LIMIT (50). */
36
+ checkpointPrefetchLimit?: number;
27
37
  } = {},
28
38
  ) {
29
39
  // Note that RunningPromise is in stopped state by default. This promise won't run until someone invokes `start`,
@@ -61,36 +71,29 @@ export class L2BlockStream {
61
71
  try {
62
72
  const sourceTips = await this.l2BlockSource.getL2Tips();
63
73
  const localTips = await this.localData.getL2Tips();
64
- this.log.trace(`Running L2 block stream`, {
65
- sourceLatest: sourceTips.latest.number,
66
- localLatest: localTips.latest.number,
67
- sourceFinalized: sourceTips.finalized.number,
68
- localFinalized: localTips.finalized.number,
69
- sourceProven: sourceTips.proven.number,
70
- localProven: localTips.proven.number,
71
- sourceLatestHash: sourceTips.latest.hash,
72
- localLatestHash: localTips.latest.hash,
73
- sourceProvenHash: sourceTips.proven.hash,
74
- localProvenHash: localTips.proven.hash,
75
- sourceFinalizedHash: sourceTips.finalized.hash,
76
- localFinalizedHash: localTips.finalized.hash,
77
- });
74
+ this.log.trace(`Running L2 block stream`, { sourceTips, localTips });
78
75
 
79
76
  // Check if there was a reorg and emit a chain-pruned event if so.
80
- let latestBlockNumber = localTips.latest.number;
81
- const sourceCache = new BlockHashCache([sourceTips.latest]);
77
+ let latestBlockNumber = localTips.proposed.number;
78
+ const sourceCache = new BlockHashCache([sourceTips.proposed]);
82
79
  while (!(await this.areBlockHashesEqualAt(latestBlockNumber, { sourceCache }))) {
83
80
  latestBlockNumber--;
84
81
  }
85
82
 
86
- if (latestBlockNumber < localTips.latest.number) {
87
- latestBlockNumber = BlockNumber(Math.min(latestBlockNumber, sourceTips.latest.number)); // see #13471
83
+ if (latestBlockNumber < localTips.proposed.number) {
84
+ latestBlockNumber = BlockNumber(Math.min(latestBlockNumber, sourceTips.proposed.number)); // see #13471
88
85
  const hash = sourceCache.get(latestBlockNumber) ?? (await this.getBlockHashFromSource(latestBlockNumber));
89
86
  if (latestBlockNumber !== 0 && !hash) {
90
87
  throw new Error(`Block hash not found in block source for block number ${latestBlockNumber}`);
91
88
  }
92
- this.log.verbose(`Reorg detected. Pruning blocks from ${latestBlockNumber + 1} to ${localTips.latest.number}.`);
93
- await this.emitEvent({ type: 'chain-pruned', block: makeL2BlockId(latestBlockNumber, hash) });
89
+ this.log.verbose(
90
+ `Reorg detected. Pruning blocks from ${latestBlockNumber + 1} to ${localTips.proposed.number}.`,
91
+ );
92
+ await this.emitEvent({
93
+ type: 'chain-pruned',
94
+ block: makeL2BlockId(latestBlockNumber, hash),
95
+ checkpoint: sourceTips.checkpointed.checkpoint,
96
+ });
94
97
  }
95
98
 
96
99
  // If we are just starting, use the starting block number from the options.
@@ -105,40 +108,149 @@ export class L2BlockStream {
105
108
  }
106
109
 
107
110
  let nextBlockNumber = latestBlockNumber + 1;
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
+
108
133
  if (this.opts.skipFinalized) {
109
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
110
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
111
136
  // last finalized block however in order to guarantee that we will eventually find a block in which our local
112
137
  // store matches the source.
113
138
  // If the last finalized block is behind our local tip, there is nothing to skip.
114
- nextBlockNumber = Math.max(sourceTips.finalized.number, nextBlockNumber);
139
+ nextBlockNumber = Math.max(sourceTips.finalized.block.number, nextBlockNumber);
140
+ // If the next checkpoint to emit is behind the finalized tip then skip forward
141
+ nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, sourceTips.finalized.checkpoint.number));
115
142
  }
116
143
 
117
- // Request new blocks from the source.
118
- while (nextBlockNumber <= sourceTips.latest.number) {
119
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.latest.number - nextBlockNumber + 1);
120
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit} proven=${this.opts.proven}`);
121
- const blocks = await this.l2BlockSource.getPublishedBlocks(
122
- BlockNumber(nextBlockNumber),
123
- limit,
124
- this.opts.proven,
125
- );
144
+ // Loop 1: Emit checkpoint events for checkpoints whose blocks are already in local storage.
145
+ // This handles the case where blocks were synced as uncheckpointed and later became checkpointed.
146
+ // The guard `lastBlockInCheckpoint.number > localTips.proposed.number` ensures we don't emit
147
+ // checkpoints for blocks we don't have (e.g., when startingBlock skips earlier blocks).
148
+ // Since only one checkpoint can ever be uncheckpointed, this loop should iterate at most once.
149
+ if (!this.opts.ignoreCheckpoints) {
150
+ let loop1Iterations = 0;
151
+ while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
152
+ const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
153
+ if (checkpoints.length === 0) {
154
+ break;
155
+ }
156
+ const lastBlockInCheckpoint = checkpoints[0].checkpoint.blocks.at(-1)!;
157
+ // If this checkpoint has blocks we haven't seen yet, stop - they need to be fetched first
158
+ if (lastBlockInCheckpoint.number > localTips.proposed.number) {
159
+ break;
160
+ }
161
+ loop1Iterations++;
162
+ if (loop1Iterations > 1) {
163
+ this.log.warn(
164
+ `Emitting multiple checkpoints (${loop1Iterations}) for already-local blocks. ` +
165
+ `Next checkpoint: ${nextCheckpointToEmit}, source checkpointed: ${sourceTips.checkpointed.checkpoint.number}`,
166
+ );
167
+ }
168
+ const lastBlockHash = await lastBlockInCheckpoint.hash();
169
+ await this.emitEvent({
170
+ type: 'chain-checkpointed',
171
+ checkpoint: checkpoints[0],
172
+ block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
173
+ });
174
+ nextCheckpointToEmit = CheckpointNumber(nextCheckpointToEmit + 1);
175
+ }
176
+ }
177
+
178
+ // Loop 2: Fetch new checkpointed blocks. For each checkpoint, emit all blocks
179
+ // from that checkpoint that we need, then emit the checkpoint event.
180
+ // We prefetch multiple checkpoints, then process them one by one.
181
+ let prefetchedCheckpoints: PublishedCheckpoint[] = [];
182
+ let prefetchIdx = 0;
183
+ let nextCheckpointNumber: CheckpointNumber | undefined;
184
+
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) {
200
+ break;
201
+ }
202
+ }
203
+
204
+ const checkpoint = prefetchedCheckpoints[prefetchIdx]!;
205
+
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);
208
+ const blocksForCheckpoint = checkpoint.checkpoint.blocks
209
+ .filter(b => b.number >= nextBlockNumber)
210
+ .slice(0, limit);
211
+ if (blocksForCheckpoint.length === 0) {
212
+ break;
213
+ }
214
+ await this.emitEvent({ type: 'blocks-added', blocks: blocksForCheckpoint });
215
+ nextBlockNumber = blocksForCheckpoint.at(-1)!.number + 1;
216
+
217
+ // If we've reached the end of this checkpoint, emit the checkpoint event and move to next
218
+ const lastBlockInCheckpoint = checkpoint.checkpoint.blocks.at(-1)!;
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);
230
+ }
231
+ }
232
+
233
+ // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
234
+ while (nextBlockNumber <= sourceTips.proposed.number) {
235
+ const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
236
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
237
+ const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
126
238
  if (blocks.length === 0) {
127
239
  break;
128
240
  }
129
241
  await this.emitEvent({ type: 'blocks-added', blocks });
130
- nextBlockNumber = blocks.at(-1)!.block.number + 1;
242
+ nextBlockNumber = blocks.at(-1)!.number + 1;
131
243
  }
132
244
 
133
245
  // Update the proven and finalized tips.
134
- if (localTips.proven !== undefined && sourceTips.proven.number !== localTips.proven.number) {
246
+ if (localTips.proven !== undefined && sourceTips.proven.block.number !== localTips.proven.block.number) {
135
247
  await this.emitEvent({
136
248
  type: 'chain-proven',
137
- block: sourceTips.proven,
249
+ block: sourceTips.proven.block,
138
250
  });
139
251
  }
140
- if (localTips.finalized !== undefined && sourceTips.finalized.number !== localTips.finalized.number) {
141
- await this.emitEvent({ type: 'chain-finalized', block: sourceTips.finalized });
252
+ if (localTips.finalized !== undefined && sourceTips.finalized.block.number !== localTips.finalized.block.number) {
253
+ await this.emitEvent({ type: 'chain-finalized', block: sourceTips.finalized.block });
142
254
  }
143
255
  } catch (err: any) {
144
256
  if (err.name === 'AbortError') {
@@ -186,7 +298,7 @@ export class L2BlockStream {
186
298
 
187
299
  private async emitEvent(event: L2BlockStreamEvent) {
188
300
  this.log.debug(
189
- `Emitting ${event.type} (${event.type === 'blocks-added' ? event.blocks.length : event.block.number})`,
301
+ `Emitting ${event.type} (${event.type === 'blocks-added' ? event.blocks.length : event.type === 'chain-checkpointed' ? event.checkpoint.checkpoint.number : event.block.number})`,
190
302
  );
191
303
  await this.handler.handleBlockStreamEvent(event);
192
304
  if (!this.isRunning() && !this.isSyncing) {