@aztec/stdlib 0.0.1-commit.3469e52 → 0.0.1-commit.3895657bc

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 (520) hide show
  1. package/dest/abi/decoder.d.ts +2 -2
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +7 -5
  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 +37 -6
  7. package/dest/abi/event_metadata_definition.d.ts +3 -1
  8. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  9. package/dest/abi/event_metadata_definition.js +1 -1
  10. package/dest/abi/function_call.d.ts +39 -9
  11. package/dest/abi/function_call.d.ts.map +1 -1
  12. package/dest/abi/function_call.js +20 -3
  13. package/dest/abi/utils.d.ts +14 -1
  14. package/dest/abi/utils.d.ts.map +1 -1
  15. package/dest/abi/utils.js +15 -0
  16. package/dest/auth_witness/auth_witness.js +3 -3
  17. package/dest/avm/avm.d.ts +300 -300
  18. package/dest/avm/avm_proving_request.d.ts +166 -166
  19. package/dest/avm/revert_code.d.ts +16 -1
  20. package/dest/avm/revert_code.d.ts.map +1 -1
  21. package/dest/avm/revert_code.js +15 -5
  22. package/dest/block/block_data.d.ts +52 -0
  23. package/dest/block/block_data.d.ts.map +1 -0
  24. package/dest/block/block_data.js +12 -0
  25. package/dest/block/block_hash.d.ts +16 -18
  26. package/dest/block/block_hash.d.ts.map +1 -1
  27. package/dest/block/block_hash.js +21 -31
  28. package/dest/block/block_parameter.d.ts +4 -4
  29. package/dest/block/block_parameter.d.ts.map +1 -1
  30. package/dest/block/block_parameter.js +2 -2
  31. package/dest/block/checkpointed_l2_block.d.ts +6 -6
  32. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  33. package/dest/block/checkpointed_l2_block.js +3 -3
  34. package/dest/block/in_block.d.ts +11 -11
  35. package/dest/block/in_block.d.ts.map +1 -1
  36. package/dest/block/in_block.js +5 -5
  37. package/dest/block/index.d.ts +3 -2
  38. package/dest/block/index.d.ts.map +1 -1
  39. package/dest/block/index.js +2 -1
  40. package/dest/block/{l2_block_new.d.ts → l2_block.d.ts} +16 -7
  41. package/dest/block/l2_block.d.ts.map +1 -0
  42. package/dest/block/{l2_block_new.js → l2_block.js} +17 -11
  43. package/dest/block/l2_block_source.d.ts +63 -30
  44. package/dest/block/l2_block_source.d.ts.map +1 -1
  45. package/dest/block/l2_block_stream/interfaces.d.ts +3 -3
  46. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  47. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -3
  48. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  49. package/dest/block/l2_block_stream/l2_block_stream.js +14 -4
  50. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  51. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  52. package/dest/block/test/l2_tips_store_test_suite.js +2 -2
  53. package/dest/checkpoint/checkpoint.d.ts +28 -13
  54. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  55. package/dest/checkpoint/checkpoint.js +35 -19
  56. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  57. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  58. package/dest/checkpoint/checkpoint_data.js +26 -0
  59. package/dest/checkpoint/index.d.ts +3 -1
  60. package/dest/checkpoint/index.d.ts.map +1 -1
  61. package/dest/checkpoint/index.js +2 -0
  62. package/dest/checkpoint/published_checkpoint.d.ts +19 -4
  63. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  64. package/dest/checkpoint/published_checkpoint.js +1 -2
  65. package/dest/checkpoint/validate.d.ts +36 -0
  66. package/dest/checkpoint/validate.d.ts.map +1 -0
  67. package/dest/checkpoint/validate.js +120 -0
  68. package/dest/config/index.d.ts +2 -1
  69. package/dest/config/index.d.ts.map +1 -1
  70. package/dest/config/index.js +1 -0
  71. package/dest/config/node-rpc-config.js +1 -1
  72. package/dest/config/sequencer-config.d.ts +12 -0
  73. package/dest/config/sequencer-config.d.ts.map +1 -0
  74. package/dest/config/sequencer-config.js +24 -0
  75. package/dest/contract/contract_address.js +4 -4
  76. package/dest/contract/contract_class.d.ts +2 -3
  77. package/dest/contract/contract_class.d.ts.map +1 -1
  78. package/dest/contract/contract_class_id.d.ts +2 -2
  79. package/dest/contract/contract_class_id.d.ts.map +1 -1
  80. package/dest/contract/contract_class_id.js +6 -5
  81. package/dest/contract/interfaces/node-info.d.ts +3 -1
  82. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  83. package/dest/contract/interfaces/node-info.js +2 -1
  84. package/dest/contract/private_function.d.ts +1 -1
  85. package/dest/contract/private_function.d.ts.map +1 -1
  86. package/dest/contract/private_function.js +3 -4
  87. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  88. package/dest/contract/private_function_membership_proof.js +1 -1
  89. package/dest/database-version/database_version.d.ts +58 -0
  90. package/dest/database-version/database_version.d.ts.map +1 -0
  91. package/dest/database-version/database_version.js +69 -0
  92. package/dest/database-version/version_manager.d.ts +2 -50
  93. package/dest/database-version/version_manager.d.ts.map +1 -1
  94. package/dest/database-version/version_manager.js +1 -66
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  97. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  98. package/dest/epoch-helpers/index.d.ts +7 -1
  99. package/dest/epoch-helpers/index.d.ts.map +1 -1
  100. package/dest/epoch-helpers/index.js +9 -3
  101. package/dest/file-store/local.d.ts +3 -3
  102. package/dest/file-store/local.d.ts.map +1 -1
  103. package/dest/file-store/local.js +13 -4
  104. package/dest/file-store/s3.d.ts +1 -1
  105. package/dest/file-store/s3.d.ts.map +1 -1
  106. package/dest/file-store/s3.js +11 -3
  107. package/dest/gas/gas_fees.d.ts +1 -1
  108. package/dest/gas/gas_fees.d.ts.map +1 -1
  109. package/dest/gas/gas_fees.js +4 -1
  110. package/dest/ha-signing/config.d.ts +136 -0
  111. package/dest/ha-signing/config.d.ts.map +1 -0
  112. package/dest/ha-signing/config.js +97 -0
  113. package/dest/ha-signing/index.d.ts +4 -0
  114. package/dest/ha-signing/index.d.ts.map +1 -0
  115. package/dest/ha-signing/index.js +3 -0
  116. package/dest/ha-signing/local_config.d.ts +63 -0
  117. package/dest/ha-signing/local_config.d.ts.map +1 -0
  118. package/dest/ha-signing/local_config.js +24 -0
  119. package/dest/ha-signing/types.d.ts +85 -0
  120. package/dest/ha-signing/types.d.ts.map +1 -0
  121. package/dest/ha-signing/types.js +32 -0
  122. package/dest/hash/hash.d.ts +2 -1
  123. package/dest/hash/hash.d.ts.map +1 -1
  124. package/dest/hash/hash.js +16 -10
  125. package/dest/hash/map_slot.d.ts +1 -1
  126. package/dest/hash/map_slot.d.ts.map +1 -1
  127. package/dest/hash/map_slot.js +4 -3
  128. package/dest/interfaces/allowed_element.d.ts +26 -20
  129. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  130. package/dest/interfaces/allowed_element.js +8 -8
  131. package/dest/interfaces/archiver.d.ts +1 -1
  132. package/dest/interfaces/archiver.d.ts.map +1 -1
  133. package/dest/interfaces/archiver.js +23 -16
  134. package/dest/interfaces/aztec-node-admin.d.ts +118 -32
  135. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  136. package/dest/interfaces/aztec-node-admin.js +12 -4
  137. package/dest/interfaces/aztec-node.d.ts +60 -62
  138. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  139. package/dest/interfaces/aztec-node.js +16 -19
  140. package/dest/interfaces/block-builder.d.ts +23 -11
  141. package/dest/interfaces/block-builder.d.ts.map +1 -1
  142. package/dest/interfaces/block-builder.js +14 -2
  143. package/dest/interfaces/configs.d.ts +73 -33
  144. package/dest/interfaces/configs.d.ts.map +1 -1
  145. package/dest/interfaces/configs.js +9 -3
  146. package/dest/interfaces/get_logs_response.d.ts +15 -8
  147. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  148. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  149. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  150. package/dest/interfaces/p2p.d.ts +4 -9
  151. package/dest/interfaces/p2p.d.ts.map +1 -1
  152. package/dest/interfaces/prover-broker.d.ts +16 -1
  153. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  154. package/dest/interfaces/prover-broker.js +4 -1
  155. package/dest/interfaces/prover-client.d.ts +15 -1
  156. package/dest/interfaces/prover-client.d.ts.map +1 -1
  157. package/dest/interfaces/prover-client.js +12 -1
  158. package/dest/interfaces/proving-job.d.ts +202 -202
  159. package/dest/interfaces/slasher.d.ts +9 -1
  160. package/dest/interfaces/slasher.d.ts.map +1 -1
  161. package/dest/interfaces/slasher.js +2 -0
  162. package/dest/interfaces/tx_provider.d.ts +3 -3
  163. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  164. package/dest/interfaces/validator.d.ts +150 -42
  165. package/dest/interfaces/validator.d.ts.map +1 -1
  166. package/dest/interfaces/validator.js +11 -4
  167. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  168. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  169. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  170. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  171. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  172. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -15
  173. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  174. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  175. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  176. package/dest/kernel/hints/index.d.ts +2 -2
  177. package/dest/kernel/hints/index.js +2 -2
  178. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  179. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  180. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  181. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  182. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  183. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  184. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  185. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  187. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  188. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  189. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  190. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  191. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  192. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  193. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  194. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  196. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  197. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  198. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  199. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  200. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  201. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  202. package/dest/kernel/private_validation_requests.d.ts +3 -3
  203. package/dest/kernel/private_validation_requests.js +9 -9
  204. package/dest/keys/derivation.d.ts +3 -3
  205. package/dest/keys/derivation.js +15 -15
  206. package/dest/keys/key_types.d.ts +3 -3
  207. package/dest/keys/key_types.d.ts.map +1 -1
  208. package/dest/keys/public_keys.js +2 -2
  209. package/dest/keys/utils.d.ts +1 -1
  210. package/dest/keys/utils.d.ts.map +1 -1
  211. package/dest/keys/utils.js +8 -4
  212. package/dest/kv-store/config.d.ts +17 -0
  213. package/dest/kv-store/config.d.ts.map +1 -0
  214. package/dest/kv-store/config.js +26 -0
  215. package/dest/kv-store/index.d.ts +2 -0
  216. package/dest/kv-store/index.d.ts.map +1 -0
  217. package/dest/kv-store/index.js +1 -0
  218. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  219. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  220. package/dest/l1-contracts/slash_factory.js +1 -0
  221. package/dest/logs/debug_log_store.d.ts +30 -0
  222. package/dest/logs/debug_log_store.d.ts.map +1 -0
  223. package/dest/logs/debug_log_store.js +30 -0
  224. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  225. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  226. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  227. package/dest/logs/extended_public_log.d.ts +13 -7
  228. package/dest/logs/extended_public_log.d.ts.map +1 -1
  229. package/dest/logs/index.d.ts +3 -2
  230. package/dest/logs/index.d.ts.map +1 -1
  231. package/dest/logs/index.js +2 -1
  232. package/dest/logs/log_id.d.ts +17 -14
  233. package/dest/logs/log_id.d.ts.map +1 -1
  234. package/dest/logs/log_id.js +20 -17
  235. package/dest/logs/pre_tag.d.ts +16 -11
  236. package/dest/logs/pre_tag.d.ts.map +1 -1
  237. package/dest/logs/pre_tag.js +2 -2
  238. package/dest/logs/private_log.d.ts +2 -2
  239. package/dest/logs/private_log.d.ts.map +1 -1
  240. package/dest/logs/public_log.d.ts +4 -3
  241. package/dest/logs/public_log.d.ts.map +1 -1
  242. package/dest/logs/public_log.js +2 -1
  243. package/dest/logs/siloed_tag.d.ts +5 -3
  244. package/dest/logs/siloed_tag.d.ts.map +1 -1
  245. package/dest/logs/siloed_tag.js +8 -6
  246. package/dest/logs/tag.js +1 -1
  247. package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
  248. package/dest/messaging/l2_to_l1_membership.js +3 -3
  249. package/dest/note/index.d.ts +1 -2
  250. package/dest/note/index.d.ts.map +1 -1
  251. package/dest/note/index.js +0 -1
  252. package/dest/p2p/attestation_utils.d.ts +11 -1
  253. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  254. package/dest/p2p/attestation_utils.js +45 -0
  255. package/dest/p2p/block_proposal.d.ts +14 -7
  256. package/dest/p2p/block_proposal.d.ts.map +1 -1
  257. package/dest/p2p/block_proposal.js +3 -5
  258. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  259. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  260. package/dest/p2p/checkpoint_attestation.js +1 -1
  261. package/dest/p2p/checkpoint_proposal.d.ts +27 -13
  262. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  263. package/dest/p2p/checkpoint_proposal.js +30 -28
  264. package/dest/p2p/client_type.d.ts +2 -5
  265. package/dest/p2p/client_type.d.ts.map +1 -1
  266. package/dest/p2p/client_type.js +0 -7
  267. package/dest/p2p/consensus_payload.d.ts +12 -3
  268. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  269. package/dest/p2p/consensus_payload.js +22 -15
  270. package/dest/p2p/constants.d.ts +3 -1
  271. package/dest/p2p/constants.d.ts.map +1 -1
  272. package/dest/p2p/constants.js +1 -0
  273. package/dest/p2p/index.d.ts +1 -2
  274. package/dest/p2p/index.d.ts.map +1 -1
  275. package/dest/p2p/index.js +0 -1
  276. package/dest/p2p/message_validator.d.ts +18 -3
  277. package/dest/p2p/message_validator.d.ts.map +1 -1
  278. package/dest/p2p/message_validator.js +2 -1
  279. package/dest/p2p/peer_error.d.ts +3 -1
  280. package/dest/p2p/peer_error.d.ts.map +1 -1
  281. package/dest/p2p/peer_error.js +5 -0
  282. package/dest/p2p/topic_type.d.ts +3 -4
  283. package/dest/p2p/topic_type.d.ts.map +1 -1
  284. package/dest/p2p/topic_type.js +7 -24
  285. package/dest/rollup/checkpoint_header.d.ts +2 -2
  286. package/dest/rollup/checkpoint_header.js +2 -2
  287. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  288. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  289. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  290. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  291. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  292. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  293. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  294. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  295. package/dest/slashing/empire.d.ts +1 -1
  296. package/dest/slashing/empire.d.ts.map +1 -1
  297. package/dest/slashing/empire.js +2 -0
  298. package/dest/slashing/helpers.d.ts +2 -2
  299. package/dest/slashing/helpers.d.ts.map +1 -1
  300. package/dest/slashing/helpers.js +6 -0
  301. package/dest/slashing/tally.d.ts +8 -2
  302. package/dest/slashing/tally.d.ts.map +1 -1
  303. package/dest/slashing/tally.js +35 -3
  304. package/dest/slashing/types.d.ts +7 -3
  305. package/dest/slashing/types.d.ts.map +1 -1
  306. package/dest/slashing/types.js +13 -1
  307. package/dest/stats/stats.d.ts +1 -3
  308. package/dest/stats/stats.d.ts.map +1 -1
  309. package/dest/tests/factories.d.ts +3 -1
  310. package/dest/tests/factories.d.ts.map +1 -1
  311. package/dest/tests/factories.js +22 -14
  312. package/dest/tests/jest.d.ts +4 -4
  313. package/dest/tests/jest.js +9 -9
  314. package/dest/tests/mocks.d.ts +21 -11
  315. package/dest/tests/mocks.d.ts.map +1 -1
  316. package/dest/tests/mocks.js +49 -33
  317. package/dest/timetable/index.d.ts +37 -0
  318. package/dest/timetable/index.d.ts.map +1 -0
  319. package/dest/timetable/index.js +39 -0
  320. package/dest/trees/public_data_leaf.d.ts +2 -1
  321. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  322. package/dest/trees/public_data_leaf.js +7 -6
  323. package/dest/tx/block_header.d.ts +5 -2
  324. package/dest/tx/block_header.d.ts.map +1 -1
  325. package/dest/tx/block_header.js +8 -3
  326. package/dest/tx/global_variables.d.ts +4 -4
  327. package/dest/tx/global_variables.d.ts.map +1 -1
  328. package/dest/tx/in_tx.d.ts +3 -3
  329. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  330. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  331. package/dest/tx/indexed_tx_effect.js +3 -2
  332. package/dest/tx/profiling.d.ts +4 -4
  333. package/dest/tx/profiling.d.ts.map +1 -1
  334. package/dest/tx/profiling.js +3 -3
  335. package/dest/tx/protocol_contracts.d.ts +1 -1
  336. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  337. package/dest/tx/protocol_contracts.js +2 -2
  338. package/dest/tx/public_simulation_output.d.ts +4 -2
  339. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  340. package/dest/tx/public_simulation_output.js +7 -3
  341. package/dest/tx/simulated_tx.d.ts +5 -2
  342. package/dest/tx/simulated_tx.d.ts.map +1 -1
  343. package/dest/tx/simulated_tx.js +4 -1
  344. package/dest/tx/tx.d.ts +6 -5
  345. package/dest/tx/tx.d.ts.map +1 -1
  346. package/dest/tx/tx.js +18 -6
  347. package/dest/tx/tx_receipt.d.ts +57 -15
  348. package/dest/tx/tx_receipt.d.ts.map +1 -1
  349. package/dest/tx/tx_receipt.js +55 -16
  350. package/dest/tx/tx_request.js +2 -2
  351. package/dest/tx/validator/empty_validator.d.ts +2 -2
  352. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  353. package/dest/tx/validator/error_texts.d.ts +6 -2
  354. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  355. package/dest/tx/validator/error_texts.js +5 -1
  356. package/dest/tx/validator/tx_validator.d.ts +2 -2
  357. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  358. package/dest/update-checker/index.d.ts +3 -2
  359. package/dest/update-checker/index.d.ts.map +1 -1
  360. package/dest/update-checker/index.js +2 -1
  361. package/dest/update-checker/package_version.d.ts +3 -0
  362. package/dest/update-checker/package_version.d.ts.map +1 -0
  363. package/dest/update-checker/package_version.js +11 -0
  364. package/dest/update-checker/version_checker.d.ts +25 -0
  365. package/dest/update-checker/version_checker.d.ts.map +1 -0
  366. package/dest/update-checker/version_checker.js +50 -0
  367. package/dest/validators/schemas.d.ts +30 -30
  368. package/dest/validators/schemas.d.ts.map +1 -1
  369. package/dest/validators/schemas.js +4 -3
  370. package/dest/validators/types.d.ts +3 -3
  371. package/dest/validators/types.d.ts.map +1 -1
  372. package/package.json +26 -13
  373. package/src/abi/decoder.ts +15 -6
  374. package/src/abi/encoder.ts +49 -6
  375. package/src/abi/event_metadata_definition.ts +2 -0
  376. package/src/abi/function_call.ts +25 -3
  377. package/src/abi/utils.ts +25 -0
  378. package/src/auth_witness/auth_witness.ts +3 -3
  379. package/src/avm/revert_code.ts +15 -0
  380. package/src/block/block_data.ts +26 -0
  381. package/src/block/block_hash.ts +26 -47
  382. package/src/block/block_parameter.ts +3 -3
  383. package/src/block/checkpointed_l2_block.ts +4 -4
  384. package/src/block/in_block.ts +8 -8
  385. package/src/block/index.ts +2 -1
  386. package/src/block/{l2_block_new.ts → l2_block.ts} +21 -13
  387. package/src/block/l2_block_source.ts +68 -31
  388. package/src/block/l2_block_stream/interfaces.ts +2 -2
  389. package/src/block/l2_block_stream/l2_block_stream.ts +26 -6
  390. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  391. package/src/block/test/l2_tips_store_test_suite.ts +4 -4
  392. package/src/checkpoint/checkpoint.ts +49 -22
  393. package/src/checkpoint/checkpoint_data.ts +51 -0
  394. package/src/checkpoint/index.ts +2 -0
  395. package/src/checkpoint/published_checkpoint.ts +3 -1
  396. package/src/checkpoint/validate.ts +230 -0
  397. package/src/config/index.ts +1 -0
  398. package/src/config/node-rpc-config.ts +1 -1
  399. package/src/config/sequencer-config.ts +37 -0
  400. package/src/contract/contract_address.ts +4 -4
  401. package/src/contract/contract_class.ts +3 -3
  402. package/src/contract/contract_class_id.ts +6 -5
  403. package/src/contract/interfaces/node-info.ts +3 -0
  404. package/src/contract/private_function.ts +3 -4
  405. package/src/contract/private_function_membership_proof.ts +1 -1
  406. package/src/database-version/database_version.ts +87 -0
  407. package/src/database-version/version_manager.ts +1 -77
  408. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  409. package/src/epoch-helpers/index.ts +13 -1
  410. package/src/file-store/local.ts +15 -5
  411. package/src/file-store/s3.ts +12 -3
  412. package/src/gas/gas_fees.ts +7 -1
  413. package/src/ha-signing/config.ts +156 -0
  414. package/src/ha-signing/index.ts +27 -0
  415. package/src/ha-signing/local_config.ts +46 -0
  416. package/src/ha-signing/types.ts +112 -0
  417. package/src/hash/hash.ts +14 -10
  418. package/src/hash/map_slot.ts +3 -2
  419. package/src/interfaces/allowed_element.ts +29 -9
  420. package/src/interfaces/archiver.ts +23 -25
  421. package/src/interfaces/aztec-node-admin.ts +26 -2
  422. package/src/interfaces/aztec-node.ts +87 -121
  423. package/src/interfaces/block-builder.ts +41 -10
  424. package/src/interfaces/configs.ts +34 -11
  425. package/src/interfaces/merkle_tree_operations.ts +1 -1
  426. package/src/interfaces/p2p.ts +3 -14
  427. package/src/interfaces/prover-broker.ts +22 -0
  428. package/src/interfaces/prover-client.ts +22 -0
  429. package/src/interfaces/slasher.ts +4 -0
  430. package/src/interfaces/tx_provider.ts +2 -2
  431. package/src/interfaces/validator.ts +59 -29
  432. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  433. package/src/kernel/hints/build_nullifier_read_request_hints.ts +16 -28
  434. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  435. package/src/kernel/hints/index.ts +2 -2
  436. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  437. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  438. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  439. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  440. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  441. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  442. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  443. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  444. package/src/kernel/private_validation_requests.ts +8 -8
  445. package/src/keys/derivation.ts +15 -15
  446. package/src/keys/key_types.ts +6 -2
  447. package/src/keys/public_keys.ts +2 -2
  448. package/src/keys/utils.ts +8 -4
  449. package/src/kv-store/config.ts +36 -0
  450. package/src/kv-store/index.ts +1 -0
  451. package/src/l1-contracts/slash_factory.ts +1 -0
  452. package/src/logs/debug_log_store.ts +54 -0
  453. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  454. package/src/logs/index.ts +2 -1
  455. package/src/logs/log_id.ts +22 -18
  456. package/src/logs/pre_tag.ts +5 -5
  457. package/src/logs/public_log.ts +4 -2
  458. package/src/logs/siloed_tag.ts +10 -4
  459. package/src/logs/tag.ts +1 -1
  460. package/src/messaging/l2_to_l1_membership.ts +3 -3
  461. package/src/note/index.ts +0 -1
  462. package/src/p2p/attestation_utils.ts +56 -0
  463. package/src/p2p/block_proposal.ts +13 -8
  464. package/src/p2p/checkpoint_attestation.ts +6 -1
  465. package/src/p2p/checkpoint_proposal.ts +55 -33
  466. package/src/p2p/client_type.ts +0 -6
  467. package/src/p2p/consensus_payload.ts +25 -12
  468. package/src/p2p/constants.ts +3 -0
  469. package/src/p2p/index.ts +0 -1
  470. package/src/p2p/message_validator.ts +14 -2
  471. package/src/p2p/peer_error.ts +7 -0
  472. package/src/p2p/topic_type.ts +8 -15
  473. package/src/rollup/checkpoint_header.ts +2 -2
  474. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  475. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  476. package/src/slashing/empire.ts +3 -1
  477. package/src/slashing/helpers.ts +8 -0
  478. package/src/slashing/tally.ts +41 -2
  479. package/src/slashing/types.ts +14 -0
  480. package/src/stats/stats.ts +0 -2
  481. package/src/tests/factories.ts +27 -18
  482. package/src/tests/jest.ts +9 -9
  483. package/src/tests/mocks.ts +71 -36
  484. package/src/timetable/index.ts +66 -0
  485. package/src/trees/public_data_leaf.ts +11 -5
  486. package/src/tx/block_header.ts +14 -5
  487. package/src/tx/global_variables.ts +3 -3
  488. package/src/tx/indexed_tx_effect.ts +3 -2
  489. package/src/tx/profiling.ts +5 -5
  490. package/src/tx/protocol_contracts.ts +2 -2
  491. package/src/tx/public_simulation_output.ts +4 -0
  492. package/src/tx/simulated_tx.ts +8 -1
  493. package/src/tx/tx.ts +20 -11
  494. package/src/tx/tx_receipt.ts +85 -18
  495. package/src/tx/tx_request.ts +2 -2
  496. package/src/tx/validator/empty_validator.ts +1 -1
  497. package/src/tx/validator/error_texts.ts +5 -1
  498. package/src/tx/validator/tx_validator.ts +1 -1
  499. package/src/update-checker/index.ts +2 -1
  500. package/src/update-checker/package_version.ts +17 -0
  501. package/src/update-checker/version_checker.ts +65 -0
  502. package/src/validators/schemas.ts +8 -1
  503. package/src/validators/types.ts +5 -4
  504. package/dest/block/l2_block_new.d.ts.map +0 -1
  505. package/dest/database-version/index.d.ts +0 -2
  506. package/dest/database-version/index.d.ts.map +0 -1
  507. package/dest/database-version/index.js +0 -1
  508. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  509. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  510. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  511. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  512. package/dest/note/notes_filter.d.ts +0 -27
  513. package/dest/note/notes_filter.d.ts.map +0 -1
  514. package/dest/note/notes_filter.js +0 -11
  515. package/dest/update-checker/update-checker.d.ts +0 -49
  516. package/dest/update-checker/update-checker.d.ts.map +0 -1
  517. package/dest/update-checker/update-checker.js +0 -130
  518. package/src/database-version/index.ts +0 -1
  519. package/src/note/notes_filter.ts +0 -38
  520. package/src/update-checker/update-checker.ts +0 -166
@@ -0,0 +1,26 @@
1
+ import { CheckpointNumberSchema, IndexWithinCheckpointSchema } from '@aztec/foundation/branded-types';
2
+ import type { CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
+ import type { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { schemas } from '@aztec/foundation/schemas';
5
+
6
+ import { z } from 'zod';
7
+
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
+ import { BlockHeader } from '../tx/block_header.js';
10
+
11
+ /** L2Block metadata. Equivalent to L2Block but without block body containing tx data. */
12
+ export type BlockData = {
13
+ header: BlockHeader;
14
+ archive: AppendOnlyTreeSnapshot;
15
+ blockHash: Fr;
16
+ checkpointNumber: CheckpointNumber;
17
+ indexWithinCheckpoint: IndexWithinCheckpoint;
18
+ };
19
+
20
+ export const BlockDataSchema = z.object({
21
+ header: BlockHeader.schema,
22
+ archive: AppendOnlyTreeSnapshot.schema,
23
+ blockHash: schemas.Fr,
24
+ checkpointNumber: CheckpointNumberSchema,
25
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
26
+ });
@@ -1,66 +1,45 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
1
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import type { ZodFor } from '@aztec/foundation/schemas';
4
3
 
5
- import { schemas } from '../schemas/schemas.js';
4
+ import { inspect } from 'util';
6
5
 
7
- /** Hash of an L2 block. */
8
- export class L2BlockHash extends Buffer32 {
9
- constructor(
10
- /** The buffer containing the hash. */
11
- hash: Buffer,
12
- ) {
13
- super(hash);
14
- }
6
+ import { hexSchemaFor } from '../schemas/schemas.js';
15
7
 
16
- /**
17
- * Type guard that checks if a value is an L2BlockHash instance.
18
- * Uses duck typing to handle cases where instanceof fails due to module duplication.
19
- * Checks for Buffer32-like structure with a 32-byte buffer.
20
- */
21
- static isL2BlockHash(value: unknown): value is L2BlockHash {
22
- if (value instanceof L2BlockHash) {
23
- return true;
24
- }
25
- // Duck typing fallback: check if it looks like a Buffer32 with a 32-byte buffer
26
- // This helps when instanceof fails due to module duplication
27
- return (
28
- typeof value === 'object' &&
29
- value !== null &&
30
- 'buffer' in value &&
31
- Buffer.isBuffer((value as Buffer32).buffer) &&
32
- (value as Buffer32).buffer.length === 32 &&
33
- 'toBuffer' in value &&
34
- typeof (value as Buffer32).toBuffer === 'function'
35
- );
36
- }
8
+ const BLOCK_HASH_BRAND = Symbol.for('aztec.BlockHash');
37
9
 
38
- static override random() {
39
- return new L2BlockHash(Fr.random().toBuffer());
10
+ /** Hash of an L2 block. */
11
+ export class BlockHash extends Fr {
12
+ readonly [BLOCK_HASH_BRAND] = true as const;
13
+
14
+ constructor(hash: Fr) {
15
+ super(hash);
40
16
  }
41
17
 
42
- static override fromNumber(num: number): L2BlockHash {
43
- return new L2BlockHash(super.fromNumber(num).toBuffer());
18
+ override [inspect.custom]() {
19
+ return `BlockHash<${this.toString()}>`;
44
20
  }
45
21
 
46
- static override fromBuffer(buffer: Buffer | BufferReader) {
47
- const reader = BufferReader.asReader(buffer);
48
- return new L2BlockHash(reader.readBytes(L2BlockHash.SIZE));
22
+ toFr(): Fr {
23
+ return new Fr(this.toBigInt());
49
24
  }
50
25
 
51
- static override fromString(str: string): Buffer32 {
52
- return new L2BlockHash(super.fromString(str).toBuffer());
26
+ /**
27
+ * Type guard that checks if a value is a BlockHash instance.
28
+ * Uses Symbol.for to ensure cross-module compatibility.
29
+ */
30
+ static isBlockHash(value: unknown): value is BlockHash {
31
+ return typeof value === 'object' && value !== null && BLOCK_HASH_BRAND in value;
53
32
  }
54
33
 
55
- static get schema() {
56
- return schemas.BufferHex.transform(value => new L2BlockHash(value));
34
+ static override random() {
35
+ return new BlockHash(Fr.random());
57
36
  }
58
37
 
59
- static zero() {
60
- return new L2BlockHash(Buffer32.ZERO.toBuffer());
38
+ static override fromString(str: string): BlockHash {
39
+ return new BlockHash(Fr.fromString(str));
61
40
  }
62
41
 
63
- static override fromField(hash: Fr) {
64
- return new L2BlockHash(hash.toBuffer());
42
+ static override get schema() {
43
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
65
44
  }
66
45
  }
@@ -2,9 +2,9 @@ import { BlockNumberSchema } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import { z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
5
+ import { BlockHash } from './block_hash.js';
6
6
 
7
- export const BlockParameterSchema = z.union([L2BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
7
+ export const BlockParameterSchema = z.union([BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
8
8
 
9
- /** Block parameter - either a specific BlockNumber, block hash (L2BlockHash), or 'latest' */
9
+ /** Block parameter - either a specific BlockNumber, block hash (BlockHash), or 'latest' */
10
10
  export type BlockParameter = z.infer<typeof BlockParameterSchema>;
@@ -7,7 +7,7 @@ import { z } from 'zod';
7
7
 
8
8
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
9
9
  import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
10
- import { L2BlockNew } from './l2_block_new.js';
10
+ import { L2Block } from './l2_block.js';
11
11
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
12
12
 
13
13
  /**
@@ -16,7 +16,7 @@ import { CommitteeAttestation } from './proposal/committee_attestation.js';
16
16
  export class CheckpointedL2Block {
17
17
  constructor(
18
18
  public checkpointNumber: CheckpointNumber,
19
- public block: L2BlockNew,
19
+ public block: L2Block,
20
20
  public l1: L1PublishedData,
21
21
  public attestations: CommitteeAttestation[],
22
22
  ) {}
@@ -24,7 +24,7 @@ export class CheckpointedL2Block {
24
24
  return z
25
25
  .object({
26
26
  checkpointNumber: CheckpointNumberSchema,
27
- block: L2BlockNew.schema,
27
+ block: L2Block.schema,
28
28
  l1: L1PublishedData.schema,
29
29
  attestations: z.array(CommitteeAttestation.schema),
30
30
  })
@@ -34,7 +34,7 @@ export class CheckpointedL2Block {
34
34
  static fromBuffer(bufferOrReader: Buffer | BufferReader): CheckpointedL2Block {
35
35
  const reader = BufferReader.asReader(bufferOrReader);
36
36
  const checkpointNumber = reader.readNumber();
37
- const block = reader.readObject(L2BlockNew);
37
+ const block = reader.readObject(L2Block);
38
38
  const l1BlockNumber = reader.readBigInt();
39
39
  const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
40
40
  const l1Timestamp = reader.readBigInt();
@@ -2,12 +2,12 @@ import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types'
2
2
 
3
3
  import { type ZodTypeAny, z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
6
- import type { L2BlockNew } from './l2_block_new.js';
5
+ import { BlockHash } from './block_hash.js';
6
+ import type { L2Block } from './l2_block.js';
7
7
 
8
8
  export type InBlock = {
9
9
  l2BlockNumber: BlockNumber;
10
- l2BlockHash: L2BlockHash;
10
+ l2BlockHash: BlockHash;
11
11
  };
12
12
 
13
13
  // Note: If you expand this type with indexInBlock, then delete `IndexedTxEffect` and use this type instead.
@@ -17,8 +17,8 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
21
- l2BlockHash: L2BlockHash.random(),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
+ l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
24
24
 
@@ -29,18 +29,18 @@ export function randomDataInBlock<T>(data: T): DataInBlock<T> {
29
29
  };
30
30
  }
31
31
 
32
- export async function wrapDataInBlock<T>(data: T, block: L2BlockNew): Promise<DataInBlock<T>> {
32
+ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataInBlock<T>> {
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: L2BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
40
40
  export function inBlockSchema() {
41
41
  return z.object({
42
42
  l2BlockNumber: BlockNumberSchema,
43
- l2BlockHash: L2BlockHash.schema,
43
+ l2BlockHash: BlockHash.schema,
44
44
  });
45
45
  }
46
46
 
@@ -1,4 +1,5 @@
1
- export * from './l2_block_new.js';
1
+ export * from './block_data.js';
2
+ export * from './l2_block.js';
2
3
  export * from './l2_block_stream/index.js';
3
4
  export * from './in_block.js';
4
5
  export * from './body.js';
@@ -1,4 +1,5 @@
1
1
  import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
+ import { DA_GAS_PER_FIELD } from '@aztec/constants';
2
3
  import {
3
4
  BlockNumber,
4
5
  CheckpointNumber,
@@ -15,18 +16,14 @@ import { z } from 'zod';
15
16
  import type { PrivateLog } from '../logs/private_log.js';
16
17
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
17
18
  import { BlockHeader } from '../tx/block_header.js';
19
+ import type { BlockHash } from './block_hash.js';
18
20
  import { Body } from './body.js';
19
21
  import type { L2BlockInfo } from './l2_block_info.js';
20
22
 
21
- // TODO(palla/mbps): Delete the existing `L2Block` class and rename this to `L2Block`.
22
- // TODO(palla/mbps): Consider moving the checkpointNumber and indexWithinCheckpoint to the header:
23
- // if the blockNumber is there, why not these as well? Consider whether they should be part of the
24
- // circuits structs though.
25
-
26
23
  /**
27
24
  * An L2 block with a header and a body.
28
25
  */
29
- export class L2BlockNew {
26
+ export class L2Block {
30
27
  constructor(
31
28
  /** Snapshot of archive tree after the block is applied. */
32
29
  public archive: AppendOnlyTreeSnapshot,
@@ -63,7 +60,7 @@ export class L2BlockNew {
63
60
  })
64
61
  .transform(
65
62
  ({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
66
- new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint),
63
+ new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
67
64
  );
68
65
  }
69
66
 
@@ -79,7 +76,7 @@ export class L2BlockNew {
79
76
  const checkpointNumber = CheckpointNumber(reader.readNumber());
80
77
  const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
81
78
 
82
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
79
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
83
80
  }
84
81
 
85
82
  /**
@@ -94,7 +91,7 @@ export class L2BlockNew {
94
91
  * Returns the block's hash (hash of block header).
95
92
  * @returns The block's hash.
96
93
  */
97
- public hash(): Promise<Fr> {
94
+ public hash(): Promise<BlockHash> {
98
95
  return this.header.hash();
99
96
  }
100
97
 
@@ -143,7 +140,7 @@ export class L2BlockNew {
143
140
  }
144
141
 
145
142
  static empty(header?: BlockHeader) {
146
- return new L2BlockNew(
143
+ return new L2Block(
147
144
  AppendOnlyTreeSnapshot.empty(),
148
145
  header ?? BlockHeader.empty(),
149
146
  Body.empty(),
@@ -177,11 +174,11 @@ export class L2BlockNew {
177
174
  txOptions?: Partial<Parameters<typeof Body.random>[0]>;
178
175
  makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
179
176
  } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
180
- ): Promise<L2BlockNew> {
177
+ ): Promise<L2Block> {
181
178
  const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
182
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
183
180
  const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
184
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
181
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
185
182
  }
186
183
 
187
184
  /**
@@ -225,4 +222,15 @@ export class L2BlockNew {
225
222
  timestamp: this.header.globalVariables.timestamp,
226
223
  };
227
224
  }
225
+
226
+ /**
227
+ * Compute how much DA gas this block uses.
228
+ *
229
+ * @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
230
+ * This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
231
+ * in the L2BlockHeader, so we have to rely on recomputing it.
232
+ */
233
+ computeDAGasUsed(): number {
234
+ return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
235
+ }
228
236
  }
@@ -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,8 +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';
24
+ import type { BlockData } from './block_data.js';
25
+ import type { BlockHash } from './block_hash.js';
23
26
  import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
24
- import type { L2BlockNew } from './l2_block_new.js';
27
+ import type { L2Block } from './l2_block.js';
25
28
  import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
26
29
 
27
30
  /**
@@ -46,12 +49,32 @@ export interface L2BlockSource {
46
49
  */
47
50
  getBlockNumber(): Promise<BlockNumber>;
48
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
+
49
58
  /**
50
59
  * Gets the number of the latest L2 block proven seen by the block source implementation.
51
60
  * @returns The number of the latest L2 block proven seen by the block source implementation.
52
61
  */
53
62
  getProvenBlockNumber(): Promise<BlockNumber>;
54
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
+
55
78
  /**
56
79
  * Gets an l2 block header.
57
80
  * @param number - The block number to return or 'latest' for the most recent one.
@@ -67,15 +90,15 @@ export interface L2BlockSource {
67
90
  */
68
91
  getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
69
92
 
70
- getCheckpointedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<CheckpointedL2Block[]>;
93
+ getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
71
94
 
72
95
  /**
73
- * Retrieves a collection of published checkpoints
74
- * @param checkpointNumber The first checkpoint to be retrieved
75
- * @param limit The number of checkpoints to be retrieved
76
- * @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.
77
100
  */
78
- getPublishedCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
101
+ getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
79
102
 
80
103
  /**
81
104
  * Gets the checkpoints for a given epoch
@@ -83,12 +106,18 @@ export interface L2BlockSource {
83
106
  */
84
107
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
85
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
+
86
115
  /**
87
116
  * Gets a block header by its hash.
88
117
  * @param blockHash - The block hash to retrieve.
89
118
  * @returns The requested block header (or undefined if not found).
90
119
  */
91
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
120
+ getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
92
121
 
93
122
  /**
94
123
  * Gets a block header by its archive root.
@@ -97,26 +126,40 @@ export interface L2BlockSource {
97
126
  */
98
127
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
99
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
+
100
143
  /**
101
144
  * Gets an L2 block by block number.
102
145
  * @param number - The block number to return.
103
146
  * @returns The requested L2 block (or undefined if not found).
104
147
  */
105
- getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
148
+ getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
106
149
 
107
150
  /**
108
151
  * Gets an L2 block by its hash.
109
152
  * @param blockHash - The block hash to retrieve.
110
153
  * @returns The requested L2 block (or undefined if not found).
111
154
  */
112
- getL2BlockNewByHash(blockHash: Fr): Promise<L2BlockNew | undefined>;
155
+ getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
113
156
 
114
157
  /**
115
158
  * Gets an L2 block by its archive root.
116
159
  * @param archive - The archive root to retrieve.
117
160
  * @returns The requested L2 block (or undefined if not found).
118
161
  */
119
- getL2BlockNewByArchive(archive: Fr): Promise<L2BlockNew | undefined>;
162
+ getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
120
163
 
121
164
  /**
122
165
  * Gets a tx effect.
@@ -143,11 +186,11 @@ export interface L2BlockSource {
143
186
  getL2EpochNumber(): Promise<EpochNumber | undefined>;
144
187
 
145
188
  /**
146
- * Returns all block headers for a given epoch.
189
+ * Returns all checkpointed block headers for a given epoch.
147
190
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
148
191
  * @param epochNumber - The epoch number to return headers for.
149
192
  */
150
- getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
193
+ getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
151
194
 
152
195
  /**
153
196
  * Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
@@ -193,49 +236,43 @@ export interface L2BlockSource {
193
236
  * @param number - The block number to return (inclusive).
194
237
  * @returns The requested L2 block.
195
238
  */
196
- getBlock(number: BlockNumber): Promise<L2BlockNew | undefined>;
197
-
198
- getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
239
+ getBlock(number: BlockNumber): Promise<L2Block | undefined>;
199
240
 
200
241
  /**
201
- * Returns all blocks for a given epoch.
242
+ * Returns all checkpointed blocks for a given epoch.
202
243
  * @dev Use this method only with recent epochs, since it walks the block list backwards.
203
244
  * @param epochNumber - The epoch number to return blocks for.
204
245
  */
205
- getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2BlockNew[]>;
246
+ getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
206
247
 
207
248
  /**
208
249
  * Returns all blocks for a given slot.
209
250
  * @dev Use this method only with recent slots, since it walks the block list backwards.
210
251
  * @param slotNumber - The slot number to return blocks for.
211
252
  */
212
- getBlocksForSlot(slotNumber: SlotNumber): Promise<L2BlockNew[]>;
253
+ getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
213
254
 
214
255
  /**
215
- * Gets a published block by its block hash.
256
+ * Gets a checkpointed block by its block hash.
216
257
  * @param blockHash - The block hash to retrieve.
217
258
  * @returns The requested block (or undefined if not found).
218
259
  */
219
- getPublishedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
260
+ getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
220
261
 
221
262
  /**
222
- * Gets a published block by its archive root.
263
+ * Gets a checkpointed block by its archive root.
223
264
  * @param archive - The archive root to retrieve.
224
265
  * @returns The requested block (or undefined if not found).
225
266
  */
226
- getPublishedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
267
+ getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
227
268
 
228
269
  /**
229
270
  * Gets up to `limit` amount of L2 blocks starting from `from`.
230
271
  * @param from - Number of the first block to return (inclusive).
231
272
  * @param limit - The maximum number of blocks to return.
232
- * @param proven - If true, only return blocks that have been proven.
233
273
  * @returns The requested L2 blocks.
234
274
  */
235
- getBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
236
-
237
- /** Equivalent to getBlocks but includes publish data. */
238
- getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<CheckpointedL2Block[]>;
275
+ getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
239
276
  }
240
277
 
241
278
  /**
@@ -247,7 +284,7 @@ export interface L2BlockSink {
247
284
  * @param block - The L2 block to add.
248
285
  * @throws If block number is not incremental (i.e., not exactly one more than the last stored block).
249
286
  */
250
- addBlock(block: L2BlockNew): Promise<void>;
287
+ addBlock(block: L2Block): Promise<void>;
251
288
  }
252
289
 
253
290
  /**
@@ -344,13 +381,13 @@ export type L2BlockProvenEvent = {
344
381
  export type L2PruneUnprovenEvent = {
345
382
  type: 'l2PruneUnproven';
346
383
  epochNumber: EpochNumber;
347
- blocks: L2BlockNew[];
384
+ blocks: L2Block[];
348
385
  };
349
386
 
350
387
  export type L2PruneUncheckpointedEvent = {
351
388
  type: 'l2PruneUncheckpointed';
352
389
  slotNumber: SlotNumber;
353
- blocks: L2BlockNew[];
390
+ blocks: L2Block[];
354
391
  };
355
392
 
356
393
  export type L2CheckpointEvent = {
@@ -1,5 +1,5 @@
1
1
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
2
- import type { L2BlockNew } from '../l2_block_new.js';
2
+ import type { L2Block } from '../l2_block.js';
3
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. */
@@ -16,7 +16,7 @@ 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';
@@ -19,13 +19,12 @@ export class L2BlockStream {
19
19
  constructor(
20
20
  private l2BlockSource: Pick<
21
21
  L2BlockSource,
22
- 'getL2BlocksNew' | 'getBlockHeader' | 'getL2Tips' | 'getPublishedCheckpoints' | 'getCheckpointedBlocks'
22
+ 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
23
23
  >,
24
24
  private localData: L2BlockStreamLocalDataProvider,
25
25
  private handler: L2BlockStreamEventHandler,
26
26
  private readonly log = createLogger('types:block_stream'),
27
27
  private opts: {
28
- proven?: boolean;
29
28
  pollIntervalMS?: number;
30
29
  batchSize?: number;
31
30
  startingBlock?: number;
@@ -110,6 +109,27 @@ export class L2BlockStream {
110
109
 
111
110
  let nextBlockNumber = latestBlockNumber + 1;
112
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
+
113
133
  if (this.opts.skipFinalized) {
114
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
115
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
@@ -129,7 +149,7 @@ export class L2BlockStream {
129
149
  if (!this.opts.ignoreCheckpoints) {
130
150
  let loop1Iterations = 0;
131
151
  while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
132
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointToEmit, 1);
152
+ const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
133
153
  if (checkpoints.length === 0) {
134
154
  break;
135
155
  }
@@ -174,7 +194,7 @@ export class L2BlockStream {
174
194
  // Refill the prefetch buffer when exhausted
175
195
  if (prefetchIdx >= prefetchedCheckpoints.length) {
176
196
  const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
177
- prefetchedCheckpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointNumber, prefetchLimit);
197
+ prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
178
198
  prefetchIdx = 0;
179
199
  if (prefetchedCheckpoints.length === 0) {
180
200
  break;
@@ -213,8 +233,8 @@ export class L2BlockStream {
213
233
  // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
214
234
  while (nextBlockNumber <= sourceTips.proposed.number) {
215
235
  const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
216
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit} proven=${this.opts.proven}`);
217
- 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));
218
238
  if (blocks.length === 0) {
219
239
  break;
220
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