@aztec/stdlib 0.0.1-commit.29c6b1a3 → 0.0.1-commit.2c0ee1788

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 (770) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/authorization_selector.d.ts +3 -6
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/decoder.d.ts +6 -45
  10. package/dest/abi/decoder.d.ts.map +1 -1
  11. package/dest/abi/decoder.js +17 -70
  12. package/dest/abi/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +64 -7
  15. package/dest/abi/event_metadata_definition.d.ts +3 -1
  16. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  17. package/dest/abi/event_metadata_definition.js +1 -1
  18. package/dest/abi/event_selector.d.ts +3 -6
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +39 -9
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_call.js +20 -3
  23. package/dest/abi/function_selector.d.ts +3 -6
  24. package/dest/abi/function_selector.d.ts.map +1 -1
  25. package/dest/abi/function_selector.js +2 -4
  26. package/dest/abi/function_signature_decoder.d.ts +43 -0
  27. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  28. package/dest/abi/function_signature_decoder.js +66 -0
  29. package/dest/abi/index.d.ts +2 -1
  30. package/dest/abi/index.d.ts.map +1 -1
  31. package/dest/abi/index.js +1 -0
  32. package/dest/abi/note_selector.d.ts +3 -6
  33. package/dest/abi/note_selector.d.ts.map +1 -1
  34. package/dest/abi/note_selector.js +1 -3
  35. package/dest/abi/selector.d.ts +2 -2
  36. package/dest/abi/selector.d.ts.map +1 -1
  37. package/dest/abi/selector.js +1 -1
  38. package/dest/abi/utils.d.ts +14 -1
  39. package/dest/abi/utils.d.ts.map +1 -1
  40. package/dest/abi/utils.js +15 -0
  41. package/dest/auth_witness/auth_witness.js +3 -3
  42. package/dest/avm/avm_proving_request.d.ts +166 -166
  43. package/dest/avm/revert_code.d.ts +9 -4
  44. package/dest/avm/revert_code.d.ts.map +1 -1
  45. package/dest/avm/revert_code.js +16 -21
  46. package/dest/aztec-address/index.d.ts +3 -6
  47. package/dest/aztec-address/index.d.ts.map +1 -1
  48. package/dest/aztec-address/index.js +2 -4
  49. package/dest/block/attestation_info.d.ts +3 -2
  50. package/dest/block/attestation_info.d.ts.map +1 -1
  51. package/dest/block/attestation_info.js +7 -5
  52. package/dest/block/block_data.d.ts +341 -0
  53. package/dest/block/block_data.d.ts.map +1 -0
  54. package/dest/block/block_data.js +26 -0
  55. package/dest/block/block_hash.d.ts +17 -19
  56. package/dest/block/block_hash.d.ts.map +1 -1
  57. package/dest/block/block_hash.js +22 -34
  58. package/dest/block/block_parameter.d.ts +30 -3
  59. package/dest/block/block_parameter.d.ts.map +1 -1
  60. package/dest/block/block_parameter.js +36 -2
  61. package/dest/block/in_block.d.ts +5 -5
  62. package/dest/block/in_block.js +2 -2
  63. package/dest/block/index.d.ts +2 -1
  64. package/dest/block/index.d.ts.map +1 -1
  65. package/dest/block/index.js +1 -0
  66. package/dest/block/l2_block.d.ts +11 -2
  67. package/dest/block/l2_block.d.ts.map +1 -1
  68. package/dest/block/l2_block.js +14 -5
  69. package/dest/block/l2_block_info.d.ts +6 -5
  70. package/dest/block/l2_block_info.d.ts.map +1 -1
  71. package/dest/block/l2_block_info.js +6 -5
  72. package/dest/block/l2_block_source.d.ts +153 -13
  73. package/dest/block/l2_block_source.d.ts.map +1 -1
  74. package/dest/block/l2_block_source.js +1 -0
  75. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  76. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  77. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  78. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  79. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  80. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  82. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  83. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  84. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  85. package/dest/block/proposal/attestations_and_signers.js +26 -18
  86. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  87. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  88. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  89. package/dest/checkpoint/checkpoint.d.ts +28 -7
  90. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  91. package/dest/checkpoint/checkpoint.js +41 -17
  92. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  93. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  94. package/dest/checkpoint/checkpoint_data.js +38 -0
  95. package/dest/checkpoint/index.d.ts +3 -1
  96. package/dest/checkpoint/index.d.ts.map +1 -1
  97. package/dest/checkpoint/index.js +2 -0
  98. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  99. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  100. package/dest/checkpoint/published_checkpoint.js +1 -2
  101. package/dest/checkpoint/validate.d.ts +36 -0
  102. package/dest/checkpoint/validate.d.ts.map +1 -0
  103. package/dest/checkpoint/validate.js +120 -0
  104. package/dest/config/chain-config.d.ts +2 -2
  105. package/dest/config/chain-config.d.ts.map +1 -1
  106. package/dest/config/chain-config.js +9 -3
  107. package/dest/config/index.d.ts +3 -1
  108. package/dest/config/index.d.ts.map +1 -1
  109. package/dest/config/index.js +2 -0
  110. package/dest/config/pipelining-config.d.ts +19 -0
  111. package/dest/config/pipelining-config.d.ts.map +1 -0
  112. package/dest/config/pipelining-config.js +18 -0
  113. package/dest/config/sequencer-config.d.ts +14 -0
  114. package/dest/config/sequencer-config.d.ts.map +1 -0
  115. package/dest/config/sequencer-config.js +38 -0
  116. package/dest/contract/contract_address.d.ts +3 -3
  117. package/dest/contract/contract_address.js +7 -7
  118. package/dest/contract/contract_class.d.ts +2 -3
  119. package/dest/contract/contract_class.d.ts.map +1 -1
  120. package/dest/contract/contract_class_id.d.ts +3 -3
  121. package/dest/contract/contract_class_id.d.ts.map +1 -1
  122. package/dest/contract/contract_class_id.js +7 -6
  123. package/dest/contract/index.d.ts +1 -3
  124. package/dest/contract/index.d.ts.map +1 -1
  125. package/dest/contract/index.js +0 -2
  126. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  127. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  128. package/dest/contract/interfaces/contract_class.js +1 -28
  129. package/dest/contract/interfaces/node-info.d.ts +3 -1
  130. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  131. package/dest/contract/interfaces/node-info.js +2 -1
  132. package/dest/contract/private_function.d.ts +1 -1
  133. package/dest/contract/private_function.d.ts.map +1 -1
  134. package/dest/contract/private_function.js +4 -6
  135. package/dest/database-version/database_version.d.ts +58 -0
  136. package/dest/database-version/database_version.d.ts.map +1 -0
  137. package/dest/database-version/database_version.js +69 -0
  138. package/dest/database-version/version_manager.d.ts +2 -50
  139. package/dest/database-version/version_manager.d.ts.map +1 -1
  140. package/dest/database-version/version_manager.js +1 -66
  141. package/dest/epoch-helpers/index.d.ts +17 -1
  142. package/dest/epoch-helpers/index.d.ts.map +1 -1
  143. package/dest/epoch-helpers/index.js +22 -2
  144. package/dest/file-store/factory.d.ts +4 -3
  145. package/dest/file-store/factory.d.ts.map +1 -1
  146. package/dest/file-store/factory.js +2 -2
  147. package/dest/file-store/http.d.ts +9 -2
  148. package/dest/file-store/http.d.ts.map +1 -1
  149. package/dest/file-store/http.js +20 -9
  150. package/dest/file-store/index.d.ts +2 -1
  151. package/dest/file-store/index.d.ts.map +1 -1
  152. package/dest/file-store/local.d.ts +3 -3
  153. package/dest/file-store/local.d.ts.map +1 -1
  154. package/dest/file-store/local.js +13 -4
  155. package/dest/file-store/s3.d.ts +1 -1
  156. package/dest/file-store/s3.d.ts.map +1 -1
  157. package/dest/file-store/s3.js +11 -3
  158. package/dest/gas/fee_math.d.ts +49 -0
  159. package/dest/gas/fee_math.d.ts.map +1 -0
  160. package/dest/gas/fee_math.js +80 -0
  161. package/dest/gas/gas_fees.d.ts +5 -1
  162. package/dest/gas/gas_fees.d.ts.map +1 -1
  163. package/dest/gas/gas_fees.js +13 -1
  164. package/dest/gas/gas_settings.d.ts +40 -3
  165. package/dest/gas/gas_settings.d.ts.map +1 -1
  166. package/dest/gas/gas_settings.js +50 -6
  167. package/dest/gas/index.d.ts +2 -1
  168. package/dest/gas/index.d.ts.map +1 -1
  169. package/dest/gas/index.js +1 -0
  170. package/dest/ha-signing/config.d.ts +136 -0
  171. package/dest/ha-signing/config.d.ts.map +1 -0
  172. package/dest/ha-signing/config.js +98 -0
  173. package/dest/ha-signing/index.d.ts +4 -0
  174. package/dest/ha-signing/index.d.ts.map +1 -0
  175. package/dest/ha-signing/index.js +3 -0
  176. package/dest/ha-signing/local_config.d.ts +63 -0
  177. package/dest/ha-signing/local_config.d.ts.map +1 -0
  178. package/dest/ha-signing/local_config.js +24 -0
  179. package/dest/ha-signing/types.d.ts +90 -0
  180. package/dest/ha-signing/types.d.ts.map +1 -0
  181. package/dest/ha-signing/types.js +39 -0
  182. package/dest/hash/hash.d.ts +35 -1
  183. package/dest/hash/hash.d.ts.map +1 -1
  184. package/dest/hash/hash.js +77 -10
  185. package/dest/hash/map_slot.d.ts +1 -1
  186. package/dest/hash/map_slot.d.ts.map +1 -1
  187. package/dest/hash/map_slot.js +4 -3
  188. package/dest/interfaces/allowed_element.d.ts +26 -20
  189. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  190. package/dest/interfaces/allowed_element.js +8 -8
  191. package/dest/interfaces/archiver.d.ts +11 -1
  192. package/dest/interfaces/archiver.d.ts.map +1 -1
  193. package/dest/interfaces/archiver.js +21 -6
  194. package/dest/interfaces/aztec-node-admin.d.ts +142 -48
  195. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  196. package/dest/interfaces/aztec-node-admin.js +17 -8
  197. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  198. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  199. package/dest/interfaces/aztec-node-debug.js +18 -0
  200. package/dest/interfaces/aztec-node.d.ts +85 -101
  201. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  202. package/dest/interfaces/aztec-node.js +25 -22
  203. package/dest/interfaces/block-builder.d.ts +44 -11
  204. package/dest/interfaces/block-builder.d.ts.map +1 -1
  205. package/dest/interfaces/block-builder.js +16 -2
  206. package/dest/interfaces/block_response.d.ts +156 -0
  207. package/dest/interfaces/block_response.d.ts.map +1 -0
  208. package/dest/interfaces/block_response.js +24 -0
  209. package/dest/interfaces/chain_tips.d.ts +304 -0
  210. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  211. package/dest/interfaces/chain_tips.js +11 -0
  212. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  213. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  214. package/dest/interfaces/checkpoint_parameter.js +20 -0
  215. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  216. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  217. package/dest/interfaces/checkpoint_response.js +26 -0
  218. package/dest/interfaces/client.d.ts +7 -1
  219. package/dest/interfaces/client.d.ts.map +1 -1
  220. package/dest/interfaces/client.js +6 -0
  221. package/dest/interfaces/configs.d.ts +87 -32
  222. package/dest/interfaces/configs.d.ts.map +1 -1
  223. package/dest/interfaces/configs.js +12 -3
  224. package/dest/interfaces/get_logs_response.d.ts +14 -7
  225. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  226. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  227. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  228. package/dest/interfaces/l1_publish_info.js +26 -0
  229. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  230. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  231. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  232. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  233. package/dest/interfaces/p2p.d.ts +4 -9
  234. package/dest/interfaces/p2p.d.ts.map +1 -1
  235. package/dest/interfaces/prover-broker.d.ts +16 -1
  236. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  237. package/dest/interfaces/prover-broker.js +4 -1
  238. package/dest/interfaces/prover-client.d.ts +11 -1
  239. package/dest/interfaces/prover-client.d.ts.map +1 -1
  240. package/dest/interfaces/prover-client.js +12 -4
  241. package/dest/interfaces/proving-job.d.ts +202 -202
  242. package/dest/interfaces/server.d.ts +6 -1
  243. package/dest/interfaces/server.d.ts.map +1 -1
  244. package/dest/interfaces/server.js +5 -0
  245. package/dest/interfaces/slasher.d.ts +9 -10
  246. package/dest/interfaces/slasher.d.ts.map +1 -1
  247. package/dest/interfaces/slasher.js +2 -2
  248. package/dest/interfaces/validator.d.ts +173 -64
  249. package/dest/interfaces/validator.d.ts.map +1 -1
  250. package/dest/interfaces/validator.js +13 -5
  251. package/dest/interfaces/world_state.d.ts +5 -4
  252. package/dest/interfaces/world_state.d.ts.map +1 -1
  253. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  254. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  255. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  256. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  257. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  258. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  259. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  260. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  261. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  262. package/dest/kernel/hints/index.d.ts +2 -2
  263. package/dest/kernel/hints/index.js +2 -2
  264. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  265. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  266. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  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/private_circuit_public_inputs.d.ts +9 -9
  271. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  273. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  274. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  275. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  276. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  277. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  278. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  279. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  280. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  281. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  282. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  283. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  284. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  285. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  286. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  287. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  288. package/dest/kernel/private_validation_requests.d.ts +3 -3
  289. package/dest/kernel/private_validation_requests.js +9 -9
  290. package/dest/keys/derivation.d.ts +3 -3
  291. package/dest/keys/derivation.js +15 -15
  292. package/dest/keys/key_types.d.ts +3 -3
  293. package/dest/keys/key_types.d.ts.map +1 -1
  294. package/dest/keys/public_keys.js +2 -2
  295. package/dest/keys/utils.d.ts +1 -1
  296. package/dest/keys/utils.d.ts.map +1 -1
  297. package/dest/keys/utils.js +8 -4
  298. package/dest/kv-store/config.d.ts +17 -0
  299. package/dest/kv-store/config.d.ts.map +1 -0
  300. package/dest/kv-store/config.js +26 -0
  301. package/dest/kv-store/index.d.ts +2 -0
  302. package/dest/kv-store/index.d.ts.map +1 -0
  303. package/dest/kv-store/index.js +1 -0
  304. package/dest/l1-contracts/index.d.ts +2 -2
  305. package/dest/l1-contracts/index.d.ts.map +1 -1
  306. package/dest/l1-contracts/index.js +1 -1
  307. package/dest/logs/debug_log_store.d.ts +30 -0
  308. package/dest/logs/debug_log_store.d.ts.map +1 -0
  309. package/dest/logs/debug_log_store.js +30 -0
  310. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  311. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  312. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  313. package/dest/logs/extended_public_log.d.ts +12 -6
  314. package/dest/logs/extended_public_log.d.ts.map +1 -1
  315. package/dest/logs/index.d.ts +4 -2
  316. package/dest/logs/index.d.ts.map +1 -1
  317. package/dest/logs/index.js +3 -1
  318. package/dest/logs/log_filter.d.ts +4 -1
  319. package/dest/logs/log_filter.d.ts.map +1 -1
  320. package/dest/logs/log_filter.js +2 -1
  321. package/dest/logs/log_id.d.ts +13 -10
  322. package/dest/logs/log_id.d.ts.map +1 -1
  323. package/dest/logs/log_id.js +16 -14
  324. package/dest/logs/message_context.d.ts +4 -7
  325. package/dest/logs/message_context.d.ts.map +1 -1
  326. package/dest/logs/message_context.js +23 -9
  327. package/dest/logs/pending_tagged_log.d.ts +2 -3
  328. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  329. package/dest/logs/pending_tagged_log.js +2 -2
  330. package/dest/logs/pre_tag.d.ts +16 -11
  331. package/dest/logs/pre_tag.d.ts.map +1 -1
  332. package/dest/logs/pre_tag.js +2 -2
  333. package/dest/logs/private_log.d.ts +2 -2
  334. package/dest/logs/private_log.d.ts.map +1 -1
  335. package/dest/logs/public_log.d.ts +4 -3
  336. package/dest/logs/public_log.d.ts.map +1 -1
  337. package/dest/logs/public_log.js +2 -1
  338. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  339. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  340. package/dest/logs/shared_secret_derivation.js +15 -9
  341. package/dest/logs/siloed_tag.d.ts +12 -9
  342. package/dest/logs/siloed_tag.d.ts.map +1 -1
  343. package/dest/logs/siloed_tag.js +16 -6
  344. package/dest/logs/tag.d.ts +5 -6
  345. package/dest/logs/tag.d.ts.map +1 -1
  346. package/dest/logs/tag.js +5 -1
  347. package/dest/logs/tagging_index_range.d.ts +40 -0
  348. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  349. package/dest/logs/tagging_index_range.js +8 -0
  350. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  351. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  352. package/dest/logs/tx_scoped_l2_log.js +7 -0
  353. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  354. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  355. package/dest/messaging/l1_to_l2_message.js +11 -13
  356. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  357. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  358. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  359. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  360. package/dest/messaging/l2_to_l1_membership.js +72 -29
  361. package/dest/noir/index.d.ts +3 -3
  362. package/dest/noir/index.d.ts.map +1 -1
  363. package/dest/note/index.d.ts +1 -2
  364. package/dest/note/index.d.ts.map +1 -1
  365. package/dest/note/index.js +0 -1
  366. package/dest/note/note_dao.d.ts +1 -1
  367. package/dest/note/note_dao.d.ts.map +1 -1
  368. package/dest/note/note_dao.js +1 -4
  369. package/dest/p2p/attestation_utils.d.ts +11 -1
  370. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  371. package/dest/p2p/attestation_utils.js +45 -0
  372. package/dest/p2p/block_proposal.d.ts +23 -15
  373. package/dest/p2p/block_proposal.d.ts.map +1 -1
  374. package/dest/p2p/block_proposal.js +46 -43
  375. package/dest/p2p/checkpoint_attestation.d.ts +11 -8
  376. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  377. package/dest/p2p/checkpoint_attestation.js +17 -24
  378. package/dest/p2p/checkpoint_proposal.d.ts +35 -22
  379. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  380. package/dest/p2p/checkpoint_proposal.js +52 -65
  381. package/dest/p2p/client_type.d.ts +2 -5
  382. package/dest/p2p/client_type.d.ts.map +1 -1
  383. package/dest/p2p/client_type.js +0 -7
  384. package/dest/p2p/consensus_payload.d.ts +27 -7
  385. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  386. package/dest/p2p/consensus_payload.js +40 -21
  387. package/dest/p2p/constants.d.ts +3 -1
  388. package/dest/p2p/constants.d.ts.map +1 -1
  389. package/dest/p2p/constants.js +1 -0
  390. package/dest/p2p/gossipable.d.ts +4 -4
  391. package/dest/p2p/gossipable.d.ts.map +1 -1
  392. package/dest/p2p/index.d.ts +1 -2
  393. package/dest/p2p/index.d.ts.map +1 -1
  394. package/dest/p2p/index.js +0 -1
  395. package/dest/p2p/peer_error.d.ts +3 -1
  396. package/dest/p2p/peer_error.d.ts.map +1 -1
  397. package/dest/p2p/peer_error.js +5 -0
  398. package/dest/p2p/signature_utils.d.ts +28 -19
  399. package/dest/p2p/signature_utils.d.ts.map +1 -1
  400. package/dest/p2p/signature_utils.js +118 -21
  401. package/dest/p2p/signed_txs.d.ts +15 -13
  402. package/dest/p2p/signed_txs.d.ts.map +1 -1
  403. package/dest/p2p/signed_txs.js +26 -24
  404. package/dest/p2p/topic_type.d.ts +3 -4
  405. package/dest/p2p/topic_type.d.ts.map +1 -1
  406. package/dest/p2p/topic_type.js +7 -24
  407. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  408. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  409. package/dest/parity/parity_base_private_inputs.js +7 -5
  410. package/dest/parity/parity_public_inputs.d.ts +7 -3
  411. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  412. package/dest/parity/parity_public_inputs.js +6 -3
  413. package/dest/proofs/chonk_proof.d.ts +46 -2
  414. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  415. package/dest/proofs/chonk_proof.js +85 -10
  416. package/dest/rollup/block_headers_hash.d.ts +1 -1
  417. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  418. package/dest/rollup/block_headers_hash.js +8 -2
  419. package/dest/rollup/checkpoint_header.d.ts +2 -2
  420. package/dest/rollup/checkpoint_header.js +2 -2
  421. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  422. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  423. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  424. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  425. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  426. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  427. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  428. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  429. package/dest/slashing/helpers.d.ts +2 -2
  430. package/dest/slashing/helpers.d.ts.map +1 -1
  431. package/dest/slashing/helpers.js +6 -0
  432. package/dest/slashing/index.d.ts +2 -3
  433. package/dest/slashing/index.d.ts.map +1 -1
  434. package/dest/slashing/index.js +1 -2
  435. package/dest/slashing/serialization.d.ts +2 -6
  436. package/dest/slashing/serialization.d.ts.map +1 -1
  437. package/dest/slashing/serialization.js +0 -60
  438. package/dest/slashing/types.d.ts +10 -92
  439. package/dest/slashing/types.d.ts.map +1 -1
  440. package/dest/slashing/types.js +13 -15
  441. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  442. package/dest/slashing/votes.d.ts.map +1 -0
  443. package/dest/slashing/{tally.js → votes.js} +35 -3
  444. package/dest/stats/stats.d.ts +1 -3
  445. package/dest/stats/stats.d.ts.map +1 -1
  446. package/dest/tests/factories.d.ts +5 -10
  447. package/dest/tests/factories.d.ts.map +1 -1
  448. package/dest/tests/factories.js +37 -56
  449. package/dest/tests/mocks.d.ts +14 -3
  450. package/dest/tests/mocks.d.ts.map +1 -1
  451. package/dest/tests/mocks.js +65 -46
  452. package/dest/timetable/index.d.ts +87 -0
  453. package/dest/timetable/index.d.ts.map +1 -0
  454. package/dest/timetable/index.js +243 -0
  455. package/dest/trees/nullifier_leaf.d.ts +2 -1
  456. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  457. package/dest/trees/nullifier_leaf.js +3 -0
  458. package/dest/trees/public_data_leaf.d.ts +2 -1
  459. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  460. package/dest/trees/public_data_leaf.js +7 -6
  461. package/dest/tx/block_header.d.ts +4 -2
  462. package/dest/tx/block_header.d.ts.map +1 -1
  463. package/dest/tx/block_header.js +7 -3
  464. package/dest/tx/capsule.d.ts +6 -2
  465. package/dest/tx/capsule.d.ts.map +1 -1
  466. package/dest/tx/capsule.js +9 -3
  467. package/dest/tx/fee_provider.d.ts +10 -0
  468. package/dest/tx/fee_provider.d.ts.map +1 -0
  469. package/dest/tx/fee_provider.js +1 -0
  470. package/dest/tx/global_variable_builder.d.ts +3 -4
  471. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  472. package/dest/tx/global_variables.d.ts +4 -4
  473. package/dest/tx/global_variables.d.ts.map +1 -1
  474. package/dest/tx/in_tx.d.ts +2 -2
  475. package/dest/tx/index.d.ts +2 -1
  476. package/dest/tx/index.d.ts.map +1 -1
  477. package/dest/tx/index.js +1 -0
  478. package/dest/tx/indexed_tx_effect.d.ts +2 -2
  479. package/dest/tx/indexed_tx_effect.js +1 -1
  480. package/dest/tx/private_execution_result.d.ts +6 -6
  481. package/dest/tx/private_execution_result.d.ts.map +1 -1
  482. package/dest/tx/private_execution_result.js +6 -6
  483. package/dest/tx/profiling.d.ts +17 -5
  484. package/dest/tx/profiling.d.ts.map +1 -1
  485. package/dest/tx/profiling.js +19 -9
  486. package/dest/tx/protocol_contracts.d.ts +1 -1
  487. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  488. package/dest/tx/protocol_contracts.js +2 -2
  489. package/dest/tx/public_simulation_output.d.ts +4 -2
  490. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  491. package/dest/tx/public_simulation_output.js +7 -3
  492. package/dest/tx/simulated_tx.d.ts +116 -5
  493. package/dest/tx/simulated_tx.d.ts.map +1 -1
  494. package/dest/tx/simulated_tx.js +7 -4
  495. package/dest/tx/tx.d.ts +8 -7
  496. package/dest/tx/tx.d.ts.map +1 -1
  497. package/dest/tx/tx.js +18 -6
  498. package/dest/tx/tx_receipt.d.ts +29 -6
  499. package/dest/tx/tx_receipt.d.ts.map +1 -1
  500. package/dest/tx/tx_receipt.js +23 -19
  501. package/dest/tx/tx_request.js +2 -2
  502. package/dest/tx/validator/empty_validator.d.ts +2 -2
  503. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  504. package/dest/tx/validator/error_texts.d.ts +10 -2
  505. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  506. package/dest/tx/validator/error_texts.js +11 -1
  507. package/dest/tx/validator/tx_validator.d.ts +2 -2
  508. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  509. package/dest/types/shared.d.ts +1 -10
  510. package/dest/types/shared.d.ts.map +1 -1
  511. package/dest/types/shared.js +0 -9
  512. package/dest/update-checker/index.d.ts +3 -2
  513. package/dest/update-checker/index.d.ts.map +1 -1
  514. package/dest/update-checker/index.js +2 -1
  515. package/dest/update-checker/package_version.d.ts +3 -0
  516. package/dest/update-checker/package_version.d.ts.map +1 -0
  517. package/dest/update-checker/package_version.js +24 -0
  518. package/dest/update-checker/version_checker.d.ts +25 -0
  519. package/dest/update-checker/version_checker.d.ts.map +1 -0
  520. package/dest/update-checker/version_checker.js +50 -0
  521. package/dest/validators/errors.d.ts +6 -1
  522. package/dest/validators/errors.d.ts.map +1 -1
  523. package/dest/validators/errors.js +7 -0
  524. package/dest/validators/schemas.d.ts +30 -30
  525. package/dest/validators/schemas.d.ts.map +1 -1
  526. package/dest/validators/schemas.js +4 -3
  527. package/dest/validators/types.d.ts +3 -3
  528. package/dest/validators/types.d.ts.map +1 -1
  529. package/dest/versioning/versioning.d.ts +4 -2
  530. package/dest/versioning/versioning.d.ts.map +1 -1
  531. package/dest/versioning/versioning.js +4 -1
  532. package/dest/vks/verification_key.d.ts +2 -137
  533. package/dest/vks/verification_key.d.ts.map +1 -1
  534. package/dest/vks/verification_key.js +5 -126
  535. package/dest/world-state/genesis_data.d.ts +11 -0
  536. package/dest/world-state/genesis_data.d.ts.map +1 -0
  537. package/dest/world-state/genesis_data.js +4 -0
  538. package/dest/world-state/index.d.ts +2 -1
  539. package/dest/world-state/index.d.ts.map +1 -1
  540. package/dest/world-state/index.js +1 -0
  541. package/dest/world-state/world_state_revision.d.ts +8 -1
  542. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  543. package/dest/world-state/world_state_revision.js +7 -1
  544. package/package.json +26 -13
  545. package/src/abi/abi.ts +25 -2
  546. package/src/abi/authorization_selector.ts +2 -8
  547. package/src/abi/buffer.ts +25 -4
  548. package/src/abi/decoder.ts +36 -82
  549. package/src/abi/encoder.ts +85 -6
  550. package/src/abi/event_metadata_definition.ts +2 -0
  551. package/src/abi/event_selector.ts +2 -8
  552. package/src/abi/function_call.ts +25 -3
  553. package/src/abi/function_selector.ts +4 -13
  554. package/src/abi/function_signature_decoder.ts +77 -0
  555. package/src/abi/index.ts +1 -0
  556. package/src/abi/note_selector.ts +3 -12
  557. package/src/abi/selector.ts +1 -1
  558. package/src/abi/utils.ts +25 -0
  559. package/src/auth_witness/auth_witness.ts +3 -3
  560. package/src/avm/revert_code.ts +26 -25
  561. package/src/aztec-address/index.ts +4 -10
  562. package/src/block/attestation_info.ts +11 -11
  563. package/src/block/block_data.ts +42 -0
  564. package/src/block/block_hash.ts +31 -49
  565. package/src/block/block_parameter.ts +35 -2
  566. package/src/block/in_block.ts +2 -2
  567. package/src/block/index.ts +1 -0
  568. package/src/block/l2_block.ts +16 -4
  569. package/src/block/l2_block_info.ts +8 -6
  570. package/src/block/l2_block_source.ts +92 -12
  571. package/src/block/l2_block_stream/interfaces.ts +6 -2
  572. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  573. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  574. package/src/block/proposal/attestations_and_signers.ts +32 -17
  575. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  576. package/src/checkpoint/checkpoint.ts +54 -17
  577. package/src/checkpoint/checkpoint_data.ts +91 -0
  578. package/src/checkpoint/index.ts +2 -0
  579. package/src/checkpoint/published_checkpoint.ts +3 -1
  580. package/src/checkpoint/validate.ts +230 -0
  581. package/src/config/chain-config.ts +9 -4
  582. package/src/config/index.ts +2 -0
  583. package/src/config/pipelining-config.ts +31 -0
  584. package/src/config/sequencer-config.ts +65 -0
  585. package/src/contract/contract_address.ts +7 -7
  586. package/src/contract/contract_class.ts +3 -3
  587. package/src/contract/contract_class_id.ts +7 -6
  588. package/src/contract/index.ts +0 -2
  589. package/src/contract/interfaces/contract_class.ts +2 -82
  590. package/src/contract/interfaces/node-info.ts +3 -0
  591. package/src/contract/private_function.ts +5 -3
  592. package/src/database-version/database_version.ts +87 -0
  593. package/src/database-version/version_manager.ts +1 -77
  594. package/src/epoch-helpers/index.ts +39 -0
  595. package/src/file-store/factory.ts +13 -4
  596. package/src/file-store/http.ts +29 -10
  597. package/src/file-store/index.ts +1 -0
  598. package/src/file-store/local.ts +15 -5
  599. package/src/file-store/s3.ts +12 -3
  600. package/src/gas/README.md +154 -0
  601. package/src/gas/fee_math.ts +120 -0
  602. package/src/gas/gas_fees.ts +20 -1
  603. package/src/gas/gas_settings.ts +65 -12
  604. package/src/gas/index.ts +1 -0
  605. package/src/ha-signing/config.ts +159 -0
  606. package/src/ha-signing/index.ts +29 -0
  607. package/src/ha-signing/local_config.ts +46 -0
  608. package/src/ha-signing/types.ts +126 -0
  609. package/src/hash/hash.ts +75 -10
  610. package/src/hash/map_slot.ts +3 -2
  611. package/src/interfaces/allowed_element.ts +29 -9
  612. package/src/interfaces/archiver.ts +32 -5
  613. package/src/interfaces/aztec-node-admin.ts +34 -10
  614. package/src/interfaces/aztec-node-debug.ts +40 -0
  615. package/src/interfaces/aztec-node.ts +162 -169
  616. package/src/interfaces/block-builder.ts +68 -11
  617. package/src/interfaces/block_response.ts +79 -0
  618. package/src/interfaces/chain_tips.ts +24 -0
  619. package/src/interfaces/checkpoint_parameter.ts +22 -0
  620. package/src/interfaces/checkpoint_response.ts +84 -0
  621. package/src/interfaces/client.ts +6 -0
  622. package/src/interfaces/configs.ts +43 -8
  623. package/src/interfaces/l1_publish_info.ts +40 -0
  624. package/src/interfaces/l2_logs_source.ts +4 -1
  625. package/src/interfaces/merkle_tree_operations.ts +12 -21
  626. package/src/interfaces/p2p.ts +3 -14
  627. package/src/interfaces/prover-broker.ts +22 -0
  628. package/src/interfaces/prover-client.ts +17 -5
  629. package/src/interfaces/server.ts +5 -0
  630. package/src/interfaces/slasher.ts +4 -6
  631. package/src/interfaces/validator.ts +77 -36
  632. package/src/interfaces/world_state.ts +4 -3
  633. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  634. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  635. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  636. package/src/kernel/hints/index.ts +2 -2
  637. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  638. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  639. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  640. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  641. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  642. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  643. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  644. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  645. package/src/kernel/private_validation_requests.ts +8 -8
  646. package/src/keys/derivation.ts +15 -15
  647. package/src/keys/key_types.ts +6 -2
  648. package/src/keys/public_keys.ts +2 -2
  649. package/src/keys/utils.ts +8 -4
  650. package/src/kv-store/config.ts +36 -0
  651. package/src/kv-store/index.ts +1 -0
  652. package/src/l1-contracts/index.ts +1 -1
  653. package/src/logs/debug_log_store.ts +54 -0
  654. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  655. package/src/logs/index.ts +3 -1
  656. package/src/logs/log_filter.ts +5 -0
  657. package/src/logs/log_id.ts +16 -13
  658. package/src/logs/message_context.ts +17 -7
  659. package/src/logs/pending_tagged_log.ts +1 -3
  660. package/src/logs/pre_tag.ts +5 -5
  661. package/src/logs/public_log.ts +4 -2
  662. package/src/logs/shared_secret_derivation.ts +21 -10
  663. package/src/logs/siloed_tag.ts +23 -13
  664. package/src/logs/tag.ts +9 -9
  665. package/src/logs/tagging_index_range.ts +24 -0
  666. package/src/logs/tx_scoped_l2_log.ts +16 -0
  667. package/src/messaging/l1_to_l2_message.ts +12 -9
  668. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  669. package/src/messaging/l2_to_l1_membership.ts +101 -36
  670. package/src/noir/index.ts +2 -2
  671. package/src/note/index.ts +0 -1
  672. package/src/note/note_dao.ts +1 -4
  673. package/src/p2p/attestation_utils.ts +56 -0
  674. package/src/p2p/block_proposal.ts +97 -39
  675. package/src/p2p/checkpoint_attestation.ts +26 -30
  676. package/src/p2p/checkpoint_proposal.ts +119 -84
  677. package/src/p2p/client_type.ts +0 -6
  678. package/src/p2p/consensus_payload.ts +59 -24
  679. package/src/p2p/constants.ts +3 -0
  680. package/src/p2p/gossipable.ts +4 -4
  681. package/src/p2p/index.ts +0 -1
  682. package/src/p2p/peer_error.ts +7 -0
  683. package/src/p2p/signature_utils.ts +110 -25
  684. package/src/p2p/signed_txs.ts +46 -28
  685. package/src/p2p/topic_type.ts +8 -15
  686. package/src/parity/parity_base_private_inputs.ts +10 -4
  687. package/src/parity/parity_public_inputs.ts +9 -2
  688. package/src/proofs/chonk_proof.ts +91 -5
  689. package/src/rollup/block_headers_hash.ts +11 -2
  690. package/src/rollup/checkpoint_header.ts +2 -2
  691. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  692. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  693. package/src/slashing/helpers.ts +8 -0
  694. package/src/slashing/index.ts +1 -2
  695. package/src/slashing/serialization.ts +1 -81
  696. package/src/slashing/types.ts +17 -35
  697. package/src/slashing/{tally.ts → votes.ts} +41 -2
  698. package/src/stats/stats.ts +0 -2
  699. package/src/tests/factories.ts +42 -68
  700. package/src/tests/mocks.ts +103 -53
  701. package/src/timetable/index.ts +361 -0
  702. package/src/trees/nullifier_leaf.ts +4 -0
  703. package/src/trees/public_data_leaf.ts +11 -5
  704. package/src/tx/block_header.ts +11 -5
  705. package/src/tx/capsule.ts +10 -2
  706. package/src/tx/fee_provider.ts +10 -0
  707. package/src/tx/global_variable_builder.ts +2 -3
  708. package/src/tx/global_variables.ts +3 -3
  709. package/src/tx/index.ts +1 -0
  710. package/src/tx/indexed_tx_effect.ts +1 -1
  711. package/src/tx/private_execution_result.ts +5 -5
  712. package/src/tx/profiling.ts +18 -9
  713. package/src/tx/protocol_contracts.ts +2 -2
  714. package/src/tx/public_simulation_output.ts +4 -0
  715. package/src/tx/simulated_tx.ts +14 -3
  716. package/src/tx/tx.ts +22 -13
  717. package/src/tx/tx_receipt.ts +28 -16
  718. package/src/tx/tx_request.ts +2 -2
  719. package/src/tx/validator/empty_validator.ts +1 -1
  720. package/src/tx/validator/error_texts.ts +13 -1
  721. package/src/tx/validator/tx_validator.ts +1 -1
  722. package/src/types/shared.ts +0 -10
  723. package/src/update-checker/index.ts +2 -1
  724. package/src/update-checker/package_version.ts +30 -0
  725. package/src/update-checker/version_checker.ts +65 -0
  726. package/src/validators/errors.ts +9 -0
  727. package/src/validators/schemas.ts +8 -1
  728. package/src/validators/types.ts +5 -4
  729. package/src/versioning/versioning.ts +4 -1
  730. package/src/vks/verification_key.ts +5 -184
  731. package/src/world-state/genesis_data.ts +15 -0
  732. package/src/world-state/index.ts +1 -0
  733. package/src/world-state/world_state_revision.ts +9 -1
  734. package/dest/abi/mocked_keys.d.ts +0 -2
  735. package/dest/abi/mocked_keys.d.ts.map +0 -1
  736. package/dest/abi/mocked_keys.js +0 -1
  737. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  738. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  739. package/dest/contract/private_function_membership_proof.js +0 -124
  740. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  741. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  742. package/dest/contract/utility_function_membership_proof.js +0 -87
  743. package/dest/database-version/index.d.ts +0 -2
  744. package/dest/database-version/index.d.ts.map +0 -1
  745. package/dest/database-version/index.js +0 -1
  746. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  747. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  748. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  749. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  750. package/dest/l1-contracts/slash_factory.js +0 -157
  751. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  752. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  753. package/dest/note/notes_filter.d.ts +0 -27
  754. package/dest/note/notes_filter.d.ts.map +0 -1
  755. package/dest/note/notes_filter.js +0 -11
  756. package/dest/slashing/empire.d.ts +0 -31
  757. package/dest/slashing/empire.d.ts.map +0 -1
  758. package/dest/slashing/empire.js +0 -85
  759. package/dest/slashing/tally.d.ts.map +0 -1
  760. package/dest/update-checker/update-checker.d.ts +0 -49
  761. package/dest/update-checker/update-checker.d.ts.map +0 -1
  762. package/dest/update-checker/update-checker.js +0 -130
  763. package/src/abi/mocked_keys.ts +0 -2
  764. package/src/contract/private_function_membership_proof.ts +0 -167
  765. package/src/contract/utility_function_membership_proof.ts +0 -118
  766. package/src/database-version/index.ts +0 -1
  767. package/src/l1-contracts/slash_factory.ts +0 -179
  768. package/src/note/notes_filter.ts +0 -38
  769. package/src/slashing/empire.ts +0 -102
  770. package/src/update-checker/update-checker.ts +0 -166
@@ -0,0 +1,42 @@
1
+ import { CheckpointNumberSchema, IndexWithinCheckpointSchema } from '@aztec/foundation/branded-types';
2
+ import type { CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
+
4
+ import { z } from 'zod';
5
+
6
+ import { CheckpointDataSchema } from '../checkpoint/checkpoint_data.js';
7
+ import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
+ import { BlockHeader } from '../tx/block_header.js';
10
+ import { BlockHash } from './block_hash.js';
11
+ import { CommitteeAttestation } from './proposal/committee_attestation.js';
12
+
13
+ /** L2Block metadata. Equivalent to L2Block but without block body containing tx data. */
14
+ export type BlockData = {
15
+ header: BlockHeader;
16
+ archive: AppendOnlyTreeSnapshot;
17
+ blockHash: BlockHash;
18
+ checkpointNumber: CheckpointNumber;
19
+ indexWithinCheckpoint: IndexWithinCheckpoint;
20
+ };
21
+
22
+ export const BlockDataSchema = z.object({
23
+ header: BlockHeader.schema,
24
+ archive: AppendOnlyTreeSnapshot.schema,
25
+ blockHash: BlockHash.schema,
26
+ checkpointNumber: CheckpointNumberSchema,
27
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
28
+ });
29
+
30
+ export const BlockDataWithCheckpointContextSchema = z
31
+ .object({
32
+ data: BlockDataSchema,
33
+ checkpoint: CheckpointDataSchema.optional(),
34
+ l1: L1PublishedData.schema.optional(),
35
+ attestations: z.array(CommitteeAttestation.schema),
36
+ })
37
+ .transform(obj => ({
38
+ data: obj.data,
39
+ checkpoint: obj.checkpoint,
40
+ l1: obj.l1,
41
+ attestations: obj.attestations,
42
+ }));
@@ -1,70 +1,52 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader } from '@aztec/foundation/serialize';
1
+ import { GENESIS_BLOCK_HEADER_HASH as GENESIS_BLOCK_HEADER_HASH_FR } from '@aztec/constants';
2
+ import { BaseFr, Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { ZodFor } from '@aztec/foundation/schemas';
4
+ import type { BufferReader } from '@aztec/foundation/serialize';
4
5
 
5
- import { schemas } from '../schemas/schemas.js';
6
+ import { inspect } from 'util';
7
+
8
+ import { hexSchemaFor } from '../schemas/schemas.js';
6
9
 
7
10
  /** Hash of an L2 block. */
8
- export class BlockHash extends Buffer32 {
9
- constructor(
10
- /** The buffer containing the hash. */
11
- hash: Buffer,
12
- ) {
13
- super(hash);
14
- }
11
+ export class BlockHash extends BaseFr {
12
+ /** Branding for nominal typing. */
13
+ declare private readonly _branding: 'BlockHash';
15
14
 
16
- /**
17
- * Type guard that checks if a value is an BlockHash 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 BlockHash {
22
- if (value instanceof BlockHash) {
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
- }
15
+ static ZERO = new BlockHash(Fr.ZERO);
37
16
 
38
- static override random() {
39
- return new BlockHash(Fr.random().toBuffer());
17
+ constructor(hash: Fr) {
18
+ super(hash);
40
19
  }
41
20
 
42
- static override fromNumber(num: number): BlockHash {
43
- return new BlockHash(super.fromNumber(num).toBuffer());
21
+ [inspect.custom]() {
22
+ return `BlockHash<${this.toString()}>`;
44
23
  }
45
24
 
46
- static override fromBuffer(buffer: Buffer | BufferReader) {
47
- const reader = BufferReader.asReader(buffer);
48
- return new BlockHash(reader.readBytes(BlockHash.SIZE));
25
+ toFr(): Fr {
26
+ return new Fr(this.toBigInt());
49
27
  }
50
28
 
51
- static override fromString(str: string): BlockHash {
52
- return new BlockHash(super.fromString(str).toBuffer());
29
+ /** Type guard that checks if a value is a BlockHash instance. */
30
+ static isBlockHash(value: unknown): value is BlockHash {
31
+ return value instanceof BlockHash;
53
32
  }
54
33
 
55
- static get schema() {
56
- return schemas.BufferHex.transform(value => new BlockHash(value));
34
+ static random() {
35
+ return new BlockHash(Fr.random());
57
36
  }
58
37
 
59
- static zero() {
60
- return new BlockHash(Buffer32.ZERO.toBuffer());
38
+ static fromBuffer(buffer: Buffer | BufferReader): BlockHash {
39
+ return new BlockHash(Fr.fromBuffer(buffer));
61
40
  }
62
41
 
63
- static override fromField(hash: Fr) {
64
- return new BlockHash(hash.toBuffer());
42
+ static fromString(str: string): BlockHash {
43
+ return new BlockHash(Fr.fromString(str));
65
44
  }
66
45
 
67
- toField(): Fr {
68
- return Fr.fromBuffer(this.toBuffer());
46
+ static get schema() {
47
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
69
48
  }
70
49
  }
50
+
51
+ /** The block header hash for the genesis block (block 0). */
52
+ export const GENESIS_BLOCK_HEADER_HASH: BlockHash = new BlockHash(GENESIS_BLOCK_HEADER_HASH_FR);
@@ -1,10 +1,43 @@
1
1
  import { BlockNumberSchema } from '@aztec/foundation/branded-types';
2
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
3
+ import { schemas } from '@aztec/foundation/schemas';
2
4
 
3
5
  import { z } from 'zod';
4
6
 
7
+ import { ChainTipSchema } from '../interfaces/chain_tips.js';
5
8
  import { BlockHash } from './block_hash.js';
6
9
 
7
- export const BlockParameterSchema = z.union([BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
10
+ /**
11
+ * Selector for a block in RPC calls.
12
+ *
13
+ * Accepts a block number, a {@link BlockHash}, a chain-tip name (e.g. `'proven'`, `'checkpointed'`),
14
+ * `'latest'` (alias for `'proposed'`), or the explicit object variants `{ number }`, `{ hash }`,
15
+ * and `{ archive }`.
16
+ */
17
+ export const BlockParameterSchema = z.union([
18
+ BlockHash.schema,
19
+ BlockNumberSchema,
20
+ ChainTipSchema,
21
+ z.literal('latest'),
22
+ z.object({ number: BlockNumberSchema }),
23
+ z.object({ hash: BlockHash.schema }),
24
+ z.object({ archive: schemas.Fr }),
25
+ ]);
8
26
 
9
- /** Block parameter - either a specific BlockNumber, block hash (BlockHash), or 'latest' */
10
27
  export type BlockParameter = z.infer<typeof BlockParameterSchema>;
28
+
29
+ export function inspectBlockParameter(param: BlockParameter) {
30
+ if (typeof param === 'number') {
31
+ return param.toString();
32
+ } else if (typeof param === 'string') {
33
+ return param;
34
+ } else if ('number' in param) {
35
+ return `number=${param.number.toString()}`;
36
+ } else if ('hash' in param) {
37
+ return `hash=${param.hash.toString()}`;
38
+ } else if ('archive' in param) {
39
+ return `archive=${param.archive.toString()}`;
40
+ } else {
41
+ return jsonStringify(param);
42
+ }
43
+ }
@@ -17,7 +17,7 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
21
  l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
@@ -33,7 +33,7 @@ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataI
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
@@ -1,3 +1,4 @@
1
+ export * from './block_data.js';
1
2
  export * from './l2_block.js';
2
3
  export * from './l2_block_stream/index.js';
3
4
  export * from './in_block.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,6 +16,7 @@ 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
 
@@ -89,9 +91,8 @@ export class L2Block {
89
91
  * Returns the block's hash (hash of block header).
90
92
  * @returns The block's hash.
91
93
  */
92
- public async hash(): Promise<Fr> {
93
- const blockHash = await this.header.hash();
94
- return blockHash.toField();
94
+ public hash(): Promise<BlockHash> {
95
+ return this.header.hash();
95
96
  }
96
97
 
97
98
  /**
@@ -175,7 +176,7 @@ export class L2Block {
175
176
  } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
176
177
  ): Promise<L2Block> {
177
178
  const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
178
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
179
180
  const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
180
181
  return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
181
182
  }
@@ -221,4 +222,15 @@ export class L2Block {
221
222
  timestamp: this.header.globalVariables.timestamp,
222
223
  };
223
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
+ }
224
236
  }
@@ -5,8 +5,10 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
 
6
6
  import { z } from 'zod';
7
7
 
8
+ import { BlockHash } from './block_hash.js';
9
+
8
10
  export type L2BlockInfo = {
9
- blockHash?: Fr;
11
+ blockHash?: BlockHash;
10
12
  archive: Fr;
11
13
  lastArchive: Fr;
12
14
  blockNumber: BlockNumber;
@@ -17,7 +19,7 @@ export type L2BlockInfo = {
17
19
 
18
20
  export function randomBlockInfo(blockNumber?: BlockNumber | number): L2BlockInfo {
19
21
  return {
20
- blockHash: Fr.random(),
22
+ blockHash: BlockHash.random(),
21
23
  archive: Fr.random(),
22
24
  lastArchive: Fr.random(),
23
25
  blockNumber: BlockNumber(blockNumber ?? Math.floor(Math.random() * 100000) + 1),
@@ -28,7 +30,7 @@ export function randomBlockInfo(blockNumber?: BlockNumber | number): L2BlockInfo
28
30
  }
29
31
 
30
32
  export const BlockInfoSchema = z.object({
31
- blockHash: schemas.Fr.optional(),
33
+ blockHash: BlockHash.schema.optional(),
32
34
  archive: schemas.Fr,
33
35
  lastArchive: schemas.Fr,
34
36
  blockNumber: BlockNumberSchema,
@@ -39,7 +41,7 @@ export const BlockInfoSchema = z.object({
39
41
 
40
42
  export function serializeBlockInfo(blockInfo: L2BlockInfo): Buffer {
41
43
  return serializeToBuffer(
42
- blockInfo.blockHash ?? Fr.ZERO,
44
+ blockInfo.blockHash ?? BlockHash.ZERO,
43
45
  blockInfo.archive,
44
46
  blockInfo.lastArchive,
45
47
  blockInfo.blockNumber,
@@ -51,9 +53,9 @@ export function serializeBlockInfo(blockInfo: L2BlockInfo): Buffer {
51
53
 
52
54
  export function deserializeBlockInfo(buffer: Buffer | BufferReader): L2BlockInfo {
53
55
  const reader = BufferReader.asReader(buffer);
54
- const blockHash = reader.readObject(Fr);
56
+ const blockHash = BlockHash.fromBuffer(reader);
55
57
  return {
56
- blockHash: blockHash.equals(Fr.ZERO) ? undefined : blockHash,
58
+ blockHash: blockHash.equals(BlockHash.ZERO) ? undefined : blockHash,
57
59
  archive: reader.readObject(Fr),
58
60
  lastArchive: reader.readObject(Fr),
59
61
  blockNumber: BlockNumber(reader.readNumber()),
@@ -13,17 +13,29 @@ 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 { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
16
+ import type { CheckpointData, CommonCheckpointData, ProposedCheckpointData } from '../checkpoint/checkpoint_data.js';
17
+ import type { L1PublishedData, 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';
19
20
  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
27
  import type { L2Block } from './l2_block.js';
28
+ import type { CommitteeAttestation } from './proposal/committee_attestation.js';
25
29
  import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
26
30
 
31
+ /** Block metadata plus checkpoint-derived context (L1 publish info, attestations). */
32
+ export type BlockDataWithCheckpointContext = {
33
+ data: BlockData;
34
+ checkpoint?: CheckpointData;
35
+ l1?: L1PublishedData;
36
+ attestations: CommitteeAttestation[];
37
+ };
38
+
27
39
  /**
28
40
  * Interface of classes allowing for the retrieval of L2 blocks.
29
41
  */
@@ -46,6 +58,12 @@ export interface L2BlockSource {
46
58
  */
47
59
  getBlockNumber(): Promise<BlockNumber>;
48
60
 
61
+ /**
62
+ * Gets the number of the latest L2 checkpoint processed by the block source implementation.
63
+ * @returns The number of the latest L2 checkpoint processed by the block source implementation.
64
+ */
65
+ getCheckpointNumber(): Promise<CheckpointNumber>;
66
+
49
67
  /**
50
68
  * Gets the number of the latest L2 block proven seen by the block source implementation.
51
69
  * @returns The number of the latest L2 block proven seen by the block source implementation.
@@ -59,9 +77,8 @@ export interface L2BlockSource {
59
77
  getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
60
78
 
61
79
  /**
62
- * Computes the finalized block number based on the proven block number.
63
- * A block is considered finalized when it's 2 epochs behind the proven block.
64
- * TODO(#13569): Compute proper finalized block number based on L1 finalized block.
80
+ * Returns the finalized L2 block number. A block is finalized when it was proven
81
+ * in an L1 block that has itself been finalized on Ethereum.
65
82
  * @returns The finalized block number.
66
83
  */
67
84
  getFinalizedL2BlockNumber(): Promise<BlockNumber>;
@@ -97,12 +114,49 @@ export interface L2BlockSource {
97
114
  */
98
115
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
99
116
 
117
+ /**
118
+ * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
119
+ * @param epochNumber - Epoch for which we want checkpoint data
120
+ */
121
+ getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
122
+
123
+ /**
124
+ * Gets lightweight checkpoint metadata for a single checkpoint.
125
+ * Cheap passthrough for metadata-only queries (no block body reads).
126
+ * @param checkpointNumber - The checkpoint number to retrieve.
127
+ * @returns The requested checkpoint data (or undefined if not found).
128
+ */
129
+ getCheckpointData(checkpointNumber: CheckpointNumber): Promise<CheckpointData | undefined>;
130
+
131
+ /**
132
+ * Gets up to `limit` amount of checkpoint metadata entries starting from `from`.
133
+ * Cheap passthrough for metadata-only queries (no block body reads).
134
+ * @param from - The first checkpoint number to return (inclusive).
135
+ * @param limit - The maximum number of checkpoints to return.
136
+ */
137
+ getCheckpointDataRange(from: CheckpointNumber, limit: number): Promise<CheckpointData[]>;
138
+
139
+ /**
140
+ * Looks up the checkpoint number that contains the given slot.
141
+ * @param slot - The slot number to look up.
142
+ * @returns The checkpoint number (or undefined if not found).
143
+ */
144
+ getCheckpointNumberBySlot(slot: SlotNumber): Promise<CheckpointNumber | undefined>;
145
+
146
+ /**
147
+ * Gets block metadata plus checkpoint-derived context (L1 publish info, attestations)
148
+ * without deserializing tx bodies. Uses checkpoint-level values when the block is
149
+ * checkpointed; otherwise returns `l1: undefined` and empty attestations.
150
+ * @param number - The block number to retrieve.
151
+ */
152
+ getBlockDataWithCheckpointContext(number: BlockNumber): Promise<BlockDataWithCheckpointContext | undefined>;
153
+
100
154
  /**
101
155
  * Gets a block header by its hash.
102
156
  * @param blockHash - The block hash to retrieve.
103
157
  * @returns The requested block header (or undefined if not found).
104
158
  */
105
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
159
+ getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
106
160
 
107
161
  /**
108
162
  * Gets a block header by its archive root.
@@ -111,6 +165,20 @@ export interface L2BlockSource {
111
165
  */
112
166
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
113
167
 
168
+ /**
169
+ * Gets block metadata (without tx data) by block number.
170
+ * @param number - The block number to retrieve.
171
+ * @returns The requested block data (or undefined if not found).
172
+ */
173
+ getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
174
+
175
+ /**
176
+ * Gets block metadata (without tx data) by archive root.
177
+ * @param archive - The archive root to retrieve.
178
+ * @returns The requested block data (or undefined if not found).
179
+ */
180
+ getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
181
+
114
182
  /**
115
183
  * Gets an L2 block by block number.
116
184
  * @param number - The block number to return.
@@ -123,7 +191,7 @@ export interface L2BlockSource {
123
191
  * @param blockHash - The block hash to retrieve.
124
192
  * @returns The requested L2 block (or undefined if not found).
125
193
  */
126
- getL2BlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
194
+ getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
127
195
 
128
196
  /**
129
197
  * Gets an L2 block by its archive root.
@@ -147,14 +215,18 @@ export interface L2BlockSource {
147
215
  getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
148
216
 
149
217
  /**
150
- * Returns the current L2 slot number based on the currently synced L1 timestamp.
218
+ * Returns the last L2 slot number for which we have all L1 data needed to build the next checkpoint.
219
+ * Determined by the max of two signals: L1 block sync progress and latest synced checkpoint slot.
220
+ * The checkpoint signal handles missed L1 blocks, since a published checkpoint seals the message tree
221
+ * for the next checkpoint via the inbox LAG mechanism.
151
222
  */
152
- getL2SlotNumber(): Promise<SlotNumber | undefined>;
223
+ getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
153
224
 
154
225
  /**
155
- * Returns the current L2 epoch number based on the currently synced L1 timestamp.
226
+ * Returns the last L2 epoch number that has been fully synchronized from L1.
227
+ * An epoch is fully synced when all its L2 slots have been fully synced.
156
228
  */
157
- getL2EpochNumber(): Promise<EpochNumber | undefined>;
229
+ getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
158
230
 
159
231
  /**
160
232
  * Returns all checkpointed block headers for a given epoch.
@@ -197,6 +269,12 @@ export interface L2BlockSource {
197
269
  */
198
270
  getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
199
271
 
272
+ /** Returns the checkpoint at the proposed chain tip. */
273
+ getLastCheckpoint(): Promise<CommonCheckpointData | undefined>;
274
+
275
+ /** Returns proposed checkpoint, if set, undefined if not*/
276
+ getLastProposedCheckpoint(): Promise<ProposedCheckpointData | undefined>;
277
+
200
278
  /** Force a sync. */
201
279
  syncImmediate(): Promise<void>;
202
280
 
@@ -228,7 +306,7 @@ export interface L2BlockSource {
228
306
  * @param blockHash - The block hash to retrieve.
229
307
  * @returns The requested block (or undefined if not found).
230
308
  */
231
- getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
309
+ getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
232
310
 
233
311
  /**
234
312
  * Gets a checkpointed block by its archive root.
@@ -280,12 +358,13 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource {
280
358
  * - proven: Proven block on L1.
281
359
  * - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
282
360
  */
283
- export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
361
+ export type L2BlockTag = 'proposed' | 'proposedCheckpoint' | 'checkpointed' | 'proven' | 'finalized';
284
362
 
285
363
  /** Tips of the L2 chain. */
286
364
  export type L2Tips = {
287
365
  proposed: L2BlockId;
288
366
  checkpointed: L2TipId;
367
+ proposedCheckpoint: L2TipId;
289
368
  proven: L2TipId;
290
369
  finalized: L2TipId;
291
370
  };
@@ -330,6 +409,7 @@ const L2TipIdSchema = z.object({
330
409
  export const L2TipsSchema = z.object({
331
410
  proposed: L2BlockIdSchema,
332
411
  checkpointed: L2TipIdSchema,
412
+ proposedCheckpoint: L2TipIdSchema,
333
413
  proven: L2TipIdSchema,
334
414
  finalized: L2TipIdSchema,
335
415
  });
@@ -2,10 +2,14 @@ import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.
2
2
  import type { L2Block } from '../l2_block.js';
3
3
  import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
4
4
 
5
+ /** Provides the current chain tips. Implemented by world-state, l2-tips-store, and AztecNode. */
6
+ export interface L2TipsProvider {
7
+ getL2Tips(): Promise<L2Tips>;
8
+ }
9
+
5
10
  /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
6
- export interface L2BlockStreamLocalDataProvider {
11
+ export interface L2BlockStreamLocalDataProvider extends L2TipsProvider {
7
12
  getL2BlockHash(number: number): Promise<string | undefined>;
8
- getL2Tips(): Promise<L2Tips>;
9
13
  }
10
14
 
11
15
  /** Interface to a handler of events emitted. */
@@ -109,6 +109,27 @@ export class L2BlockStream {
109
109
 
110
110
  let nextBlockNumber = latestBlockNumber + 1;
111
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
+
112
133
  if (this.opts.skipFinalized) {
113
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
114
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
@@ -1,7 +1,7 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
 
4
3
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
4
+ import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
5
5
  import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
@@ -66,24 +66,29 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
66
66
 
67
67
  public getL2Tips(): Promise<L2Tips> {
68
68
  return this.runInTransaction(async () => {
69
- const [proposedBlockId, finalizedBlockId, provenBlockId, checkpointedBlockId] = await Promise.all([
70
- this.getBlockId('proposed'),
71
- this.getBlockId('finalized'),
72
- this.getBlockId('proven'),
73
- this.getBlockId('checkpointed'),
74
- ]);
75
-
76
- const [finalizedCheckpointId, provenCheckpointId, checkpointedCheckpointId] = await Promise.all([
77
- this.getCheckpointId('finalized'),
78
- this.getCheckpointId('proven'),
79
- this.getCheckpointId('checkpointed'),
80
- ]);
69
+ const [proposedBlockId, finalizedBlockId, provenBlockId, checkpointedBlockId, proposedCheckpointBlockId] =
70
+ await Promise.all([
71
+ this.getBlockId('proposed'),
72
+ this.getBlockId('finalized'),
73
+ this.getBlockId('proven'),
74
+ this.getBlockId('checkpointed'),
75
+ this.getBlockId('proposedCheckpoint'),
76
+ ]);
77
+
78
+ const [finalizedCheckpointId, provenCheckpointId, checkpointedCheckpointId, proposedCheckpointId] =
79
+ await Promise.all([
80
+ this.getCheckpointId('finalized'),
81
+ this.getCheckpointId('proven'),
82
+ this.getCheckpointId('checkpointed'),
83
+ this.getCheckpointId('proposedCheckpoint'),
84
+ ]);
81
85
 
82
86
  return {
83
87
  proposed: proposedBlockId,
84
88
  finalized: { block: finalizedBlockId, checkpoint: finalizedCheckpointId },
85
89
  proven: { block: provenBlockId, checkpoint: provenCheckpointId },
86
90
  checkpointed: { block: checkpointedBlockId, checkpoint: checkpointedCheckpointId },
91
+ proposedCheckpoint: { block: proposedCheckpointBlockId, checkpoint: proposedCheckpointId },
87
92
  };
88
93
  });
89
94
  }
@@ -164,6 +169,12 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
164
169
  await this.runInTransaction(async () => {
165
170
  await this.saveTag('checkpointed', event.block);
166
171
  await this.saveCheckpoint(event.checkpoint);
172
+ // proposedCheckpoint is always >= checkpointed. If checkpointed has caught up
173
+ // or surpassed it, advance proposedCheckpoint to match.
174
+ const proposedCheckpointBlock = await this.getBlockId('proposedCheckpoint');
175
+ if (event.block.number > proposedCheckpointBlock.number) {
176
+ await this.saveTag('proposedCheckpoint', event.block);
177
+ }
167
178
  });
168
179
  }
169
180
 
@@ -174,6 +185,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
174
185
  await this.runInTransaction(async () => {
175
186
  await this.saveTag('proposed', event.block);
176
187
  await this.saveTag('checkpointed', event.block);
188
+ await this.saveTag('proposedCheckpoint', event.block);
177
189
  const storeProven = await this.getBlockId('proven');
178
190
  if (storeProven.number > event.block.number) {
179
191
  await this.saveTag('proven', event.block);