@aztec/stdlib 0.0.1-commit.0c875d939 → 0.0.1-commit.0dc957cde

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 (632) 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_selector.d.ts +3 -6
  21. package/dest/abi/function_selector.d.ts.map +1 -1
  22. package/dest/abi/function_selector.js +2 -4
  23. package/dest/abi/function_signature_decoder.d.ts +43 -0
  24. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  25. package/dest/abi/function_signature_decoder.js +66 -0
  26. package/dest/abi/index.d.ts +2 -1
  27. package/dest/abi/index.d.ts.map +1 -1
  28. package/dest/abi/index.js +1 -0
  29. package/dest/abi/note_selector.d.ts +3 -6
  30. package/dest/abi/note_selector.d.ts.map +1 -1
  31. package/dest/abi/note_selector.js +1 -3
  32. package/dest/abi/selector.d.ts +2 -2
  33. package/dest/abi/selector.d.ts.map +1 -1
  34. package/dest/abi/selector.js +1 -1
  35. package/dest/abi/utils.d.ts +14 -1
  36. package/dest/abi/utils.d.ts.map +1 -1
  37. package/dest/abi/utils.js +15 -0
  38. package/dest/auth_witness/auth_witness.js +3 -3
  39. package/dest/avm/avm.d.ts +300 -300
  40. package/dest/avm/avm_proving_request.d.ts +166 -166
  41. package/dest/avm/revert_code.d.ts +9 -4
  42. package/dest/avm/revert_code.d.ts.map +1 -1
  43. package/dest/avm/revert_code.js +16 -21
  44. package/dest/aztec-address/index.d.ts +3 -6
  45. package/dest/aztec-address/index.d.ts.map +1 -1
  46. package/dest/aztec-address/index.js +2 -4
  47. package/dest/block/block_data.d.ts +52 -0
  48. package/dest/block/block_data.d.ts.map +1 -0
  49. package/dest/block/block_data.js +12 -0
  50. package/dest/block/block_hash.d.ts +11 -10
  51. package/dest/block/block_hash.d.ts.map +1 -1
  52. package/dest/block/block_hash.js +10 -9
  53. package/dest/block/index.d.ts +2 -1
  54. package/dest/block/index.d.ts.map +1 -1
  55. package/dest/block/index.js +1 -0
  56. package/dest/block/l2_block.d.ts +9 -1
  57. package/dest/block/l2_block.d.ts.map +1 -1
  58. package/dest/block/l2_block.js +12 -2
  59. package/dest/block/l2_block_info.d.ts +6 -5
  60. package/dest/block/l2_block_info.d.ts.map +1 -1
  61. package/dest/block/l2_block_info.js +6 -5
  62. package/dest/block/l2_block_source.d.ts +113 -9
  63. package/dest/block/l2_block_source.d.ts.map +1 -1
  64. package/dest/block/l2_block_source.js +1 -0
  65. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  66. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  67. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  68. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  69. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  70. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  71. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  72. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  73. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  74. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  75. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  76. package/dest/checkpoint/checkpoint.d.ts +13 -1
  77. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  78. package/dest/checkpoint/checkpoint.js +23 -9
  79. package/dest/checkpoint/checkpoint_data.d.ts +186 -0
  80. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  81. package/dest/checkpoint/checkpoint_data.js +36 -0
  82. package/dest/checkpoint/index.d.ts +3 -1
  83. package/dest/checkpoint/index.d.ts.map +1 -1
  84. package/dest/checkpoint/index.js +2 -0
  85. package/dest/checkpoint/published_checkpoint.d.ts +11 -2
  86. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  87. package/dest/checkpoint/published_checkpoint.js +1 -2
  88. package/dest/checkpoint/validate.d.ts +36 -0
  89. package/dest/checkpoint/validate.d.ts.map +1 -0
  90. package/dest/checkpoint/validate.js +120 -0
  91. package/dest/config/chain-config.d.ts +1 -1
  92. package/dest/config/chain-config.d.ts.map +1 -1
  93. package/dest/config/chain-config.js +7 -1
  94. package/dest/config/index.d.ts +2 -1
  95. package/dest/config/index.d.ts.map +1 -1
  96. package/dest/config/index.js +1 -0
  97. package/dest/config/pipelining-config.d.ts +19 -0
  98. package/dest/config/pipelining-config.d.ts.map +1 -0
  99. package/dest/config/pipelining-config.js +18 -0
  100. package/dest/config/sequencer-config.d.ts +4 -2
  101. package/dest/config/sequencer-config.d.ts.map +1 -1
  102. package/dest/config/sequencer-config.js +20 -1
  103. package/dest/contract/contract_address.d.ts +3 -3
  104. package/dest/contract/contract_address.js +7 -7
  105. package/dest/contract/contract_class.d.ts +2 -3
  106. package/dest/contract/contract_class.d.ts.map +1 -1
  107. package/dest/contract/contract_class_id.d.ts +2 -2
  108. package/dest/contract/contract_class_id.js +5 -5
  109. package/dest/contract/index.d.ts +1 -3
  110. package/dest/contract/index.d.ts.map +1 -1
  111. package/dest/contract/index.js +0 -2
  112. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  113. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  114. package/dest/contract/interfaces/contract_class.js +1 -28
  115. package/dest/contract/private_function.d.ts +1 -1
  116. package/dest/contract/private_function.d.ts.map +1 -1
  117. package/dest/contract/private_function.js +4 -6
  118. package/dest/epoch-helpers/index.d.ts +11 -1
  119. package/dest/epoch-helpers/index.d.ts.map +1 -1
  120. package/dest/epoch-helpers/index.js +16 -2
  121. package/dest/file-store/factory.d.ts +4 -3
  122. package/dest/file-store/factory.d.ts.map +1 -1
  123. package/dest/file-store/factory.js +2 -2
  124. package/dest/file-store/http.d.ts +9 -2
  125. package/dest/file-store/http.d.ts.map +1 -1
  126. package/dest/file-store/http.js +20 -9
  127. package/dest/file-store/index.d.ts +2 -1
  128. package/dest/file-store/index.d.ts.map +1 -1
  129. package/dest/file-store/local.d.ts +3 -3
  130. package/dest/file-store/local.d.ts.map +1 -1
  131. package/dest/file-store/local.js +13 -4
  132. package/dest/file-store/s3.d.ts +1 -1
  133. package/dest/file-store/s3.d.ts.map +1 -1
  134. package/dest/file-store/s3.js +11 -3
  135. package/dest/gas/fee_math.d.ts +49 -0
  136. package/dest/gas/fee_math.d.ts.map +1 -0
  137. package/dest/gas/fee_math.js +80 -0
  138. package/dest/gas/gas_fees.d.ts +5 -1
  139. package/dest/gas/gas_fees.d.ts.map +1 -1
  140. package/dest/gas/gas_fees.js +13 -1
  141. package/dest/gas/gas_settings.d.ts +40 -3
  142. package/dest/gas/gas_settings.d.ts.map +1 -1
  143. package/dest/gas/gas_settings.js +50 -6
  144. package/dest/gas/index.d.ts +2 -1
  145. package/dest/gas/index.d.ts.map +1 -1
  146. package/dest/gas/index.js +1 -0
  147. package/dest/ha-signing/config.d.ts +136 -0
  148. package/dest/ha-signing/config.d.ts.map +1 -0
  149. package/dest/ha-signing/config.js +98 -0
  150. package/dest/ha-signing/index.d.ts +4 -0
  151. package/dest/ha-signing/index.d.ts.map +1 -0
  152. package/dest/ha-signing/index.js +3 -0
  153. package/dest/ha-signing/local_config.d.ts +63 -0
  154. package/dest/ha-signing/local_config.d.ts.map +1 -0
  155. package/dest/ha-signing/local_config.js +24 -0
  156. package/dest/ha-signing/types.d.ts +90 -0
  157. package/dest/ha-signing/types.d.ts.map +1 -0
  158. package/dest/ha-signing/types.js +39 -0
  159. package/dest/hash/hash.d.ts +34 -1
  160. package/dest/hash/hash.d.ts.map +1 -1
  161. package/dest/hash/hash.js +72 -11
  162. package/dest/hash/map_slot.js +2 -2
  163. package/dest/interfaces/allowed_element.d.ts +26 -20
  164. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  165. package/dest/interfaces/allowed_element.js +8 -8
  166. package/dest/interfaces/archiver.d.ts +11 -1
  167. package/dest/interfaces/archiver.d.ts.map +1 -1
  168. package/dest/interfaces/archiver.js +13 -3
  169. package/dest/interfaces/aztec-node-admin.d.ts +113 -47
  170. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  171. package/dest/interfaces/aztec-node-admin.js +12 -6
  172. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  173. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  174. package/dest/interfaces/aztec-node-debug.js +18 -0
  175. package/dest/interfaces/aztec-node.d.ts +22 -7
  176. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  177. package/dest/interfaces/aztec-node.js +7 -2
  178. package/dest/interfaces/block-builder.d.ts +38 -11
  179. package/dest/interfaces/block-builder.d.ts.map +1 -1
  180. package/dest/interfaces/block-builder.js +13 -6
  181. package/dest/interfaces/client.d.ts +2 -1
  182. package/dest/interfaces/client.d.ts.map +1 -1
  183. package/dest/interfaces/client.js +1 -0
  184. package/dest/interfaces/configs.d.ts +77 -32
  185. package/dest/interfaces/configs.d.ts.map +1 -1
  186. package/dest/interfaces/configs.js +10 -3
  187. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  188. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  189. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  190. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  191. package/dest/interfaces/p2p.d.ts +3 -8
  192. package/dest/interfaces/p2p.d.ts.map +1 -1
  193. package/dest/interfaces/prover-client.d.ts +6 -1
  194. package/dest/interfaces/prover-client.d.ts.map +1 -1
  195. package/dest/interfaces/prover-client.js +7 -4
  196. package/dest/interfaces/proving-job.d.ts +200 -200
  197. package/dest/interfaces/slasher.d.ts +1 -10
  198. package/dest/interfaces/slasher.d.ts.map +1 -1
  199. package/dest/interfaces/slasher.js +0 -2
  200. package/dest/interfaces/validator.d.ts +115 -64
  201. package/dest/interfaces/validator.d.ts.map +1 -1
  202. package/dest/interfaces/validator.js +8 -5
  203. package/dest/interfaces/world_state.d.ts +5 -4
  204. package/dest/interfaces/world_state.d.ts.map +1 -1
  205. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  206. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  207. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  208. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  209. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  210. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  211. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  212. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  213. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  214. package/dest/kernel/hints/index.d.ts +2 -2
  215. package/dest/kernel/hints/index.js +2 -2
  216. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  217. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  218. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  219. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  220. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  221. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  222. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  223. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  224. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  225. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  226. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  227. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  228. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  229. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  230. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  231. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  232. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  233. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  234. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  235. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  236. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  237. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  238. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  239. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  240. package/dest/kernel/private_validation_requests.d.ts +3 -3
  241. package/dest/kernel/private_validation_requests.js +9 -9
  242. package/dest/keys/derivation.js +8 -8
  243. package/dest/keys/key_types.d.ts +3 -3
  244. package/dest/keys/key_types.d.ts.map +1 -1
  245. package/dest/keys/public_keys.js +2 -2
  246. package/dest/keys/utils.js +5 -5
  247. package/dest/kv-store/config.d.ts +17 -0
  248. package/dest/kv-store/config.d.ts.map +1 -0
  249. package/dest/kv-store/config.js +26 -0
  250. package/dest/kv-store/index.d.ts +2 -0
  251. package/dest/kv-store/index.d.ts.map +1 -0
  252. package/dest/kv-store/index.js +1 -0
  253. package/dest/l1-contracts/index.d.ts +2 -2
  254. package/dest/l1-contracts/index.d.ts.map +1 -1
  255. package/dest/l1-contracts/index.js +1 -1
  256. package/dest/logs/debug_log_store.d.ts +30 -0
  257. package/dest/logs/debug_log_store.d.ts.map +1 -0
  258. package/dest/logs/debug_log_store.js +30 -0
  259. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  260. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  261. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  262. package/dest/logs/index.d.ts +4 -2
  263. package/dest/logs/index.d.ts.map +1 -1
  264. package/dest/logs/index.js +3 -1
  265. package/dest/logs/log_filter.d.ts +4 -1
  266. package/dest/logs/log_filter.d.ts.map +1 -1
  267. package/dest/logs/log_filter.js +2 -1
  268. package/dest/logs/log_id.d.ts +1 -1
  269. package/dest/logs/log_id.d.ts.map +1 -1
  270. package/dest/logs/log_id.js +1 -2
  271. package/dest/logs/message_context.d.ts +4 -7
  272. package/dest/logs/message_context.d.ts.map +1 -1
  273. package/dest/logs/message_context.js +23 -9
  274. package/dest/logs/pending_tagged_log.d.ts +2 -3
  275. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  276. package/dest/logs/pending_tagged_log.js +2 -2
  277. package/dest/logs/pre_tag.d.ts +16 -11
  278. package/dest/logs/pre_tag.d.ts.map +1 -1
  279. package/dest/logs/pre_tag.js +2 -2
  280. package/dest/logs/private_log.d.ts +2 -2
  281. package/dest/logs/private_log.d.ts.map +1 -1
  282. package/dest/logs/public_log.d.ts +4 -3
  283. package/dest/logs/public_log.d.ts.map +1 -1
  284. package/dest/logs/public_log.js +2 -1
  285. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  286. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  287. package/dest/logs/shared_secret_derivation.js +15 -9
  288. package/dest/logs/siloed_tag.d.ts +12 -9
  289. package/dest/logs/siloed_tag.d.ts.map +1 -1
  290. package/dest/logs/siloed_tag.js +15 -2
  291. package/dest/logs/tag.d.ts +5 -6
  292. package/dest/logs/tag.d.ts.map +1 -1
  293. package/dest/logs/tag.js +5 -1
  294. package/dest/logs/tagging_index_range.d.ts +40 -0
  295. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  296. package/dest/logs/tagging_index_range.js +8 -0
  297. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  298. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  299. package/dest/logs/tx_scoped_l2_log.js +7 -0
  300. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  301. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  302. package/dest/messaging/l1_to_l2_message.js +11 -13
  303. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  304. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  305. package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
  306. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  307. package/dest/messaging/l2_to_l1_membership.js +69 -26
  308. package/dest/noir/index.d.ts +3 -3
  309. package/dest/noir/index.d.ts.map +1 -1
  310. package/dest/note/note_dao.d.ts +1 -1
  311. package/dest/note/note_dao.d.ts.map +1 -1
  312. package/dest/note/note_dao.js +1 -4
  313. package/dest/p2p/attestation_utils.d.ts +11 -1
  314. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  315. package/dest/p2p/attestation_utils.js +45 -0
  316. package/dest/p2p/block_proposal.d.ts +7 -9
  317. package/dest/p2p/block_proposal.d.ts.map +1 -1
  318. package/dest/p2p/block_proposal.js +6 -13
  319. package/dest/p2p/checkpoint_attestation.d.ts +4 -6
  320. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  321. package/dest/p2p/checkpoint_attestation.js +2 -7
  322. package/dest/p2p/checkpoint_proposal.d.ts +9 -16
  323. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  324. package/dest/p2p/checkpoint_proposal.js +6 -35
  325. package/dest/p2p/client_type.d.ts +2 -5
  326. package/dest/p2p/client_type.d.ts.map +1 -1
  327. package/dest/p2p/client_type.js +0 -7
  328. package/dest/p2p/gossipable.d.ts +4 -4
  329. package/dest/p2p/gossipable.d.ts.map +1 -1
  330. package/dest/p2p/index.d.ts +1 -2
  331. package/dest/p2p/index.d.ts.map +1 -1
  332. package/dest/p2p/index.js +0 -1
  333. package/dest/p2p/peer_error.d.ts +3 -1
  334. package/dest/p2p/peer_error.d.ts.map +1 -1
  335. package/dest/p2p/peer_error.js +5 -0
  336. package/dest/p2p/topic_type.d.ts +3 -4
  337. package/dest/p2p/topic_type.d.ts.map +1 -1
  338. package/dest/p2p/topic_type.js +7 -24
  339. package/dest/proofs/chonk_proof.d.ts +46 -2
  340. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  341. package/dest/proofs/chonk_proof.js +85 -10
  342. package/dest/rollup/block_headers_hash.d.ts +1 -1
  343. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  344. package/dest/rollup/block_headers_hash.js +8 -2
  345. package/dest/rollup/checkpoint_header.d.ts +2 -2
  346. package/dest/rollup/checkpoint_header.js +2 -2
  347. package/dest/slashing/index.d.ts +2 -3
  348. package/dest/slashing/index.d.ts.map +1 -1
  349. package/dest/slashing/index.js +1 -2
  350. package/dest/slashing/serialization.d.ts +2 -6
  351. package/dest/slashing/serialization.d.ts.map +1 -1
  352. package/dest/slashing/serialization.js +0 -60
  353. package/dest/slashing/types.d.ts +4 -90
  354. package/dest/slashing/types.d.ts.map +1 -1
  355. package/dest/slashing/types.js +0 -14
  356. package/dest/slashing/{tally.d.ts → votes.d.ts} +7 -2
  357. package/dest/slashing/votes.d.ts.map +1 -0
  358. package/dest/slashing/{tally.js → votes.js} +30 -2
  359. package/dest/tests/factories.d.ts +5 -10
  360. package/dest/tests/factories.d.ts.map +1 -1
  361. package/dest/tests/factories.js +33 -52
  362. package/dest/tests/mocks.d.ts +5 -3
  363. package/dest/tests/mocks.d.ts.map +1 -1
  364. package/dest/tests/mocks.js +34 -34
  365. package/dest/timetable/index.d.ts +51 -1
  366. package/dest/timetable/index.d.ts.map +1 -1
  367. package/dest/timetable/index.js +204 -14
  368. package/dest/trees/nullifier_leaf.d.ts +2 -1
  369. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  370. package/dest/trees/nullifier_leaf.js +3 -0
  371. package/dest/tx/block_header.d.ts +4 -2
  372. package/dest/tx/block_header.d.ts.map +1 -1
  373. package/dest/tx/block_header.js +7 -3
  374. package/dest/tx/capsule.d.ts +6 -2
  375. package/dest/tx/capsule.d.ts.map +1 -1
  376. package/dest/tx/capsule.js +9 -3
  377. package/dest/tx/fee_provider.d.ts +10 -0
  378. package/dest/tx/fee_provider.d.ts.map +1 -0
  379. package/dest/tx/fee_provider.js +1 -0
  380. package/dest/tx/global_variable_builder.d.ts +3 -4
  381. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  382. package/dest/tx/global_variables.d.ts +4 -4
  383. package/dest/tx/global_variables.d.ts.map +1 -1
  384. package/dest/tx/index.d.ts +2 -1
  385. package/dest/tx/index.d.ts.map +1 -1
  386. package/dest/tx/index.js +1 -0
  387. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  388. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  389. package/dest/tx/indexed_tx_effect.js +1 -2
  390. package/dest/tx/private_execution_result.d.ts +6 -6
  391. package/dest/tx/private_execution_result.d.ts.map +1 -1
  392. package/dest/tx/private_execution_result.js +6 -6
  393. package/dest/tx/profiling.d.ts +17 -5
  394. package/dest/tx/profiling.d.ts.map +1 -1
  395. package/dest/tx/profiling.js +15 -5
  396. package/dest/tx/protocol_contracts.d.ts +1 -1
  397. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  398. package/dest/tx/protocol_contracts.js +2 -2
  399. package/dest/tx/public_simulation_output.d.ts +4 -2
  400. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  401. package/dest/tx/public_simulation_output.js +7 -3
  402. package/dest/tx/simulated_tx.d.ts +116 -5
  403. package/dest/tx/simulated_tx.d.ts.map +1 -1
  404. package/dest/tx/simulated_tx.js +7 -4
  405. package/dest/tx/tx.d.ts +8 -7
  406. package/dest/tx/tx.d.ts.map +1 -1
  407. package/dest/tx/tx.js +18 -6
  408. package/dest/tx/tx_receipt.d.ts +29 -6
  409. package/dest/tx/tx_receipt.d.ts.map +1 -1
  410. package/dest/tx/tx_receipt.js +23 -19
  411. package/dest/tx/tx_request.js +2 -2
  412. package/dest/tx/validator/error_texts.d.ts +10 -2
  413. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  414. package/dest/tx/validator/error_texts.js +11 -1
  415. package/dest/types/shared.d.ts +1 -10
  416. package/dest/types/shared.d.ts.map +1 -1
  417. package/dest/types/shared.js +0 -9
  418. package/dest/update-checker/index.d.ts +3 -2
  419. package/dest/update-checker/index.d.ts.map +1 -1
  420. package/dest/update-checker/index.js +2 -1
  421. package/dest/update-checker/package_version.d.ts +3 -0
  422. package/dest/update-checker/package_version.d.ts.map +1 -0
  423. package/dest/update-checker/package_version.js +24 -0
  424. package/dest/update-checker/version_checker.d.ts +25 -0
  425. package/dest/update-checker/version_checker.d.ts.map +1 -0
  426. package/dest/update-checker/version_checker.js +50 -0
  427. package/dest/validators/errors.d.ts +6 -1
  428. package/dest/validators/errors.d.ts.map +1 -1
  429. package/dest/validators/errors.js +7 -0
  430. package/dest/versioning/versioning.d.ts +4 -2
  431. package/dest/versioning/versioning.d.ts.map +1 -1
  432. package/dest/versioning/versioning.js +4 -1
  433. package/dest/vks/verification_key.d.ts +2 -137
  434. package/dest/vks/verification_key.d.ts.map +1 -1
  435. package/dest/vks/verification_key.js +5 -126
  436. package/dest/world-state/genesis_data.d.ts +11 -0
  437. package/dest/world-state/genesis_data.d.ts.map +1 -0
  438. package/dest/world-state/genesis_data.js +4 -0
  439. package/dest/world-state/index.d.ts +2 -1
  440. package/dest/world-state/index.d.ts.map +1 -1
  441. package/dest/world-state/index.js +1 -0
  442. package/dest/world-state/world_state_revision.d.ts +8 -1
  443. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  444. package/dest/world-state/world_state_revision.js +7 -1
  445. package/package.json +12 -11
  446. package/src/abi/abi.ts +25 -2
  447. package/src/abi/authorization_selector.ts +2 -8
  448. package/src/abi/buffer.ts +25 -4
  449. package/src/abi/decoder.ts +36 -82
  450. package/src/abi/encoder.ts +85 -6
  451. package/src/abi/event_metadata_definition.ts +2 -0
  452. package/src/abi/event_selector.ts +2 -8
  453. package/src/abi/function_selector.ts +4 -13
  454. package/src/abi/function_signature_decoder.ts +77 -0
  455. package/src/abi/index.ts +1 -0
  456. package/src/abi/note_selector.ts +3 -12
  457. package/src/abi/selector.ts +1 -1
  458. package/src/abi/utils.ts +25 -0
  459. package/src/auth_witness/auth_witness.ts +3 -3
  460. package/src/avm/revert_code.ts +26 -25
  461. package/src/aztec-address/index.ts +4 -10
  462. package/src/block/block_data.ts +25 -0
  463. package/src/block/block_hash.ts +21 -14
  464. package/src/block/index.ts +1 -0
  465. package/src/block/l2_block.ts +13 -1
  466. package/src/block/l2_block_info.ts +8 -6
  467. package/src/block/l2_block_source.ts +47 -8
  468. package/src/block/l2_block_stream/interfaces.ts +6 -2
  469. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  470. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  471. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  472. package/src/checkpoint/checkpoint.ts +28 -7
  473. package/src/checkpoint/checkpoint_data.ts +87 -0
  474. package/src/checkpoint/index.ts +2 -0
  475. package/src/checkpoint/published_checkpoint.ts +3 -1
  476. package/src/checkpoint/validate.ts +230 -0
  477. package/src/config/chain-config.ts +7 -1
  478. package/src/config/index.ts +1 -0
  479. package/src/config/pipelining-config.ts +31 -0
  480. package/src/config/sequencer-config.ts +30 -2
  481. package/src/contract/contract_address.ts +7 -7
  482. package/src/contract/contract_class.ts +3 -3
  483. package/src/contract/contract_class_id.ts +5 -5
  484. package/src/contract/index.ts +0 -2
  485. package/src/contract/interfaces/contract_class.ts +2 -82
  486. package/src/contract/private_function.ts +5 -3
  487. package/src/epoch-helpers/index.ts +27 -0
  488. package/src/file-store/factory.ts +13 -4
  489. package/src/file-store/http.ts +29 -10
  490. package/src/file-store/index.ts +1 -0
  491. package/src/file-store/local.ts +15 -5
  492. package/src/file-store/s3.ts +12 -3
  493. package/src/gas/README.md +154 -0
  494. package/src/gas/fee_math.ts +120 -0
  495. package/src/gas/gas_fees.ts +20 -1
  496. package/src/gas/gas_settings.ts +65 -12
  497. package/src/gas/index.ts +1 -0
  498. package/src/ha-signing/config.ts +159 -0
  499. package/src/ha-signing/index.ts +29 -0
  500. package/src/ha-signing/local_config.ts +46 -0
  501. package/src/ha-signing/types.ts +126 -0
  502. package/src/hash/hash.ts +72 -11
  503. package/src/hash/map_slot.ts +2 -2
  504. package/src/interfaces/allowed_element.ts +29 -9
  505. package/src/interfaces/archiver.ts +18 -2
  506. package/src/interfaces/aztec-node-admin.ts +28 -7
  507. package/src/interfaces/aztec-node-debug.ts +40 -0
  508. package/src/interfaces/aztec-node.ts +40 -6
  509. package/src/interfaces/block-builder.ts +60 -14
  510. package/src/interfaces/client.ts +1 -0
  511. package/src/interfaces/configs.ts +36 -8
  512. package/src/interfaces/l2_logs_source.ts +4 -1
  513. package/src/interfaces/merkle_tree_operations.ts +12 -21
  514. package/src/interfaces/p2p.ts +2 -13
  515. package/src/interfaces/prover-client.ts +10 -5
  516. package/src/interfaces/slasher.ts +0 -6
  517. package/src/interfaces/validator.ts +62 -37
  518. package/src/interfaces/world_state.ts +4 -3
  519. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  520. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  521. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  522. package/src/kernel/hints/index.ts +2 -2
  523. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  524. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  525. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  526. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  527. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  528. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  529. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  530. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  531. package/src/kernel/private_validation_requests.ts +8 -8
  532. package/src/keys/derivation.ts +8 -8
  533. package/src/keys/key_types.ts +6 -2
  534. package/src/keys/public_keys.ts +2 -2
  535. package/src/keys/utils.ts +5 -5
  536. package/src/kv-store/config.ts +36 -0
  537. package/src/kv-store/index.ts +1 -0
  538. package/src/l1-contracts/index.ts +1 -1
  539. package/src/logs/debug_log_store.ts +54 -0
  540. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  541. package/src/logs/index.ts +3 -1
  542. package/src/logs/log_filter.ts +5 -0
  543. package/src/logs/log_id.ts +1 -2
  544. package/src/logs/message_context.ts +17 -7
  545. package/src/logs/pending_tagged_log.ts +1 -3
  546. package/src/logs/pre_tag.ts +5 -5
  547. package/src/logs/public_log.ts +4 -2
  548. package/src/logs/shared_secret_derivation.ts +21 -10
  549. package/src/logs/siloed_tag.ts +22 -12
  550. package/src/logs/tag.ts +9 -9
  551. package/src/logs/tagging_index_range.ts +24 -0
  552. package/src/logs/tx_scoped_l2_log.ts +16 -0
  553. package/src/messaging/l1_to_l2_message.ts +12 -9
  554. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  555. package/src/messaging/l2_to_l1_membership.ts +98 -33
  556. package/src/noir/index.ts +2 -2
  557. package/src/note/note_dao.ts +1 -4
  558. package/src/p2p/attestation_utils.ts +56 -0
  559. package/src/p2p/block_proposal.ts +14 -12
  560. package/src/p2p/checkpoint_attestation.ts +5 -9
  561. package/src/p2p/checkpoint_proposal.ts +20 -49
  562. package/src/p2p/client_type.ts +0 -6
  563. package/src/p2p/gossipable.ts +4 -4
  564. package/src/p2p/index.ts +0 -1
  565. package/src/p2p/peer_error.ts +7 -0
  566. package/src/p2p/topic_type.ts +8 -15
  567. package/src/proofs/chonk_proof.ts +91 -5
  568. package/src/rollup/block_headers_hash.ts +11 -2
  569. package/src/rollup/checkpoint_header.ts +2 -2
  570. package/src/slashing/index.ts +1 -2
  571. package/src/slashing/serialization.ts +1 -81
  572. package/src/slashing/types.ts +3 -35
  573. package/src/slashing/{tally.ts → votes.ts} +34 -1
  574. package/src/tests/factories.ts +31 -62
  575. package/src/tests/mocks.ts +43 -24
  576. package/src/timetable/index.ts +293 -13
  577. package/src/trees/nullifier_leaf.ts +4 -0
  578. package/src/tx/block_header.ts +10 -4
  579. package/src/tx/capsule.ts +10 -2
  580. package/src/tx/fee_provider.ts +10 -0
  581. package/src/tx/global_variable_builder.ts +2 -3
  582. package/src/tx/global_variables.ts +3 -3
  583. package/src/tx/index.ts +1 -0
  584. package/src/tx/indexed_tx_effect.ts +1 -2
  585. package/src/tx/private_execution_result.ts +5 -5
  586. package/src/tx/profiling.ts +14 -5
  587. package/src/tx/protocol_contracts.ts +2 -2
  588. package/src/tx/public_simulation_output.ts +4 -0
  589. package/src/tx/simulated_tx.ts +14 -3
  590. package/src/tx/tx.ts +22 -13
  591. package/src/tx/tx_receipt.ts +28 -16
  592. package/src/tx/tx_request.ts +2 -2
  593. package/src/tx/validator/error_texts.ts +13 -1
  594. package/src/types/shared.ts +0 -10
  595. package/src/update-checker/index.ts +2 -1
  596. package/src/update-checker/package_version.ts +30 -0
  597. package/src/update-checker/version_checker.ts +65 -0
  598. package/src/validators/errors.ts +9 -0
  599. package/src/versioning/versioning.ts +4 -1
  600. package/src/vks/verification_key.ts +5 -184
  601. package/src/world-state/genesis_data.ts +15 -0
  602. package/src/world-state/index.ts +1 -0
  603. package/src/world-state/world_state_revision.ts +9 -1
  604. package/dest/abi/mocked_keys.d.ts +0 -2
  605. package/dest/abi/mocked_keys.d.ts.map +0 -1
  606. package/dest/abi/mocked_keys.js +0 -1
  607. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  608. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  609. package/dest/contract/private_function_membership_proof.js +0 -124
  610. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  611. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  612. package/dest/contract/utility_function_membership_proof.js +0 -87
  613. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  614. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  615. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  616. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  617. package/dest/l1-contracts/slash_factory.js +0 -158
  618. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  619. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  620. package/dest/slashing/empire.d.ts +0 -31
  621. package/dest/slashing/empire.d.ts.map +0 -1
  622. package/dest/slashing/empire.js +0 -87
  623. package/dest/slashing/tally.d.ts.map +0 -1
  624. package/dest/update-checker/update-checker.d.ts +0 -49
  625. package/dest/update-checker/update-checker.d.ts.map +0 -1
  626. package/dest/update-checker/update-checker.js +0 -130
  627. package/src/abi/mocked_keys.ts +0 -2
  628. package/src/contract/private_function_membership_proof.ts +0 -167
  629. package/src/contract/utility_function_membership_proof.ts +0 -118
  630. package/src/l1-contracts/slash_factory.ts +0 -180
  631. package/src/slashing/empire.ts +0 -104
  632. package/src/update-checker/update-checker.ts +0 -166
@@ -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,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, CommonCheckpointData, ProposedCheckpointData } 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,6 +21,7 @@ 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';
23
25
  import type { BlockHash } from './block_hash.js';
24
26
  import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
25
27
  import type { L2Block } from './l2_block.js';
@@ -47,6 +49,12 @@ export interface L2BlockSource {
47
49
  */
48
50
  getBlockNumber(): Promise<BlockNumber>;
49
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
+
50
58
  /**
51
59
  * Gets the number of the latest L2 block proven seen by the block source implementation.
52
60
  * @returns The number of the latest L2 block proven seen by the block source implementation.
@@ -60,9 +68,8 @@ export interface L2BlockSource {
60
68
  getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
61
69
 
62
70
  /**
63
- * Computes the finalized block number based on the proven block number.
64
- * A block is considered finalized when it's 2 epochs behind the proven block.
65
- * TODO(#13569): Compute proper finalized block number based on L1 finalized block.
71
+ * Returns the finalized L2 block number. A block is finalized when it was proven
72
+ * in an L1 block that has itself been finalized on Ethereum.
66
73
  * @returns The finalized block number.
67
74
  */
68
75
  getFinalizedL2BlockNumber(): Promise<BlockNumber>;
@@ -98,6 +105,12 @@ export interface L2BlockSource {
98
105
  */
99
106
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
100
107
 
108
+ /**
109
+ * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
110
+ * @param epochNumber - Epoch for which we want checkpoint data
111
+ */
112
+ getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
113
+
101
114
  /**
102
115
  * Gets a block header by its hash.
103
116
  * @param blockHash - The block hash to retrieve.
@@ -112,6 +125,20 @@ export interface L2BlockSource {
112
125
  */
113
126
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
114
127
 
128
+ /**
129
+ * Gets block metadata (without tx data) by block number.
130
+ * @param number - The block number to retrieve.
131
+ * @returns The requested block data (or undefined if not found).
132
+ */
133
+ getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
134
+
135
+ /**
136
+ * Gets block metadata (without tx data) by archive root.
137
+ * @param archive - The archive root to retrieve.
138
+ * @returns The requested block data (or undefined if not found).
139
+ */
140
+ getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
141
+
115
142
  /**
116
143
  * Gets an L2 block by block number.
117
144
  * @param number - The block number to return.
@@ -148,14 +175,18 @@ export interface L2BlockSource {
148
175
  getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
149
176
 
150
177
  /**
151
- * Returns the current L2 slot number based on the currently synced L1 timestamp.
178
+ * Returns the last L2 slot number for which we have all L1 data needed to build the next checkpoint.
179
+ * Determined by the max of two signals: L1 block sync progress and latest synced checkpoint slot.
180
+ * The checkpoint signal handles missed L1 blocks, since a published checkpoint seals the message tree
181
+ * for the next checkpoint via the inbox LAG mechanism.
152
182
  */
153
- getL2SlotNumber(): Promise<SlotNumber | undefined>;
183
+ getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
154
184
 
155
185
  /**
156
- * Returns the current L2 epoch number based on the currently synced L1 timestamp.
186
+ * Returns the last L2 epoch number that has been fully synchronized from L1.
187
+ * An epoch is fully synced when all its L2 slots have been fully synced.
157
188
  */
158
- getL2EpochNumber(): Promise<EpochNumber | undefined>;
189
+ getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
159
190
 
160
191
  /**
161
192
  * Returns all checkpointed block headers for a given epoch.
@@ -198,6 +229,12 @@ export interface L2BlockSource {
198
229
  */
199
230
  getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
200
231
 
232
+ /** Returns the checkpoint at the proposed chain tip. */
233
+ getProposedCheckpoint(): Promise<CommonCheckpointData | undefined>;
234
+
235
+ /** Returns proposed checkpoint, if set, undefined if not*/
236
+ getProposedCheckpointOnly(): Promise<ProposedCheckpointData | undefined>;
237
+
201
238
  /** Force a sync. */
202
239
  syncImmediate(): Promise<void>;
203
240
 
@@ -281,12 +318,13 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource {
281
318
  * - proven: Proven block on L1.
282
319
  * - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
283
320
  */
284
- export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
321
+ export type L2BlockTag = 'proposed' | 'proposedCheckpoint' | 'checkpointed' | 'proven' | 'finalized';
285
322
 
286
323
  /** Tips of the L2 chain. */
287
324
  export type L2Tips = {
288
325
  proposed: L2BlockId;
289
326
  checkpointed: L2TipId;
327
+ proposedCheckpoint: L2TipId;
290
328
  proven: L2TipId;
291
329
  finalized: L2TipId;
292
330
  };
@@ -331,6 +369,7 @@ const L2TipIdSchema = z.object({
331
369
  export const L2TipsSchema = z.object({
332
370
  proposed: L2BlockIdSchema,
333
371
  checkpointed: L2TipIdSchema,
372
+ proposedCheckpoint: L2TipIdSchema,
334
373
  proven: L2TipIdSchema,
335
374
  finalized: L2TipIdSchema,
336
375
  });
@@ -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);
@@ -1,4 +1,3 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
  import { times } from '@aztec/foundation/collection';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -13,6 +12,7 @@ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/
13
12
 
14
13
  import { jestExpect as expect } from '@jest/expect';
15
14
 
15
+ import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
16
16
  import type { L2TipsStore } from '../l2_block_stream/index.js';
17
17
 
18
18
  export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
@@ -67,11 +67,18 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
67
67
  checkpoint: makeCheckpointIdForBlock(blockNumber),
68
68
  });
69
69
 
70
- const makeTips = (proposed: number, proven: number, finalized: number, checkpointed: number = 0) => ({
70
+ const makeTips = (
71
+ proposed: number,
72
+ proven: number,
73
+ finalized: number,
74
+ checkpointed: number = 0,
75
+ proposedCheckpoint: number = 0,
76
+ ) => ({
71
77
  proposed: makeTip(proposed),
72
78
  proven: makeTipId(proven),
73
79
  finalized: makeTipId(finalized),
74
80
  checkpointed: makeTipId(checkpointed),
81
+ proposedCheckpoint: makeTipId(proposedCheckpoint),
75
82
  });
76
83
 
77
84
  const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
@@ -6,7 +6,7 @@ import {
6
6
  IndexWithinCheckpoint,
7
7
  SlotNumber,
8
8
  } from '@aztec/foundation/branded-types';
9
- import { sum } from '@aztec/foundation/collection';
9
+ import { pick, sum } from '@aztec/foundation/collection';
10
10
  import { Fr } from '@aztec/foundation/curves/bn254';
11
11
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
12
12
  import type { FieldsOf } from '@aztec/foundation/types';
@@ -94,11 +94,22 @@ export class Checkpoint {
94
94
  return this.header.hash();
95
95
  }
96
96
 
97
- // Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
98
- // Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
99
- // checkpoints up to and including this one in the epoch.
97
+ /**
98
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
99
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
100
+ * checkpoints up to and including this one in the epoch.
101
+ */
100
102
  public getCheckpointOutHash(): Fr {
101
- const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
103
+ return Checkpoint.getCheckpointOutHash(this.blocks);
104
+ }
105
+
106
+ /**
107
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
108
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
109
+ * checkpoints up to and including this one in the epoch.
110
+ */
111
+ static getCheckpointOutHash(blocks: L2Block[]): Fr {
112
+ const msgs = blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
102
113
  return computeCheckpointOutHash(msgs);
103
114
  }
104
115
 
@@ -150,10 +161,12 @@ export class Checkpoint {
150
161
  startBlockNumber?: number;
151
162
  previousArchive?: AppendOnlyTreeSnapshot;
152
163
  feeAssetPriceModifier?: bigint;
164
+ archive?: AppendOnlyTreeSnapshot;
153
165
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
154
166
  Partial<Parameters<typeof L2Block.random>[1]> = {},
155
167
  ) {
156
- const header = CheckpointHeader.random(options);
168
+ const headerOptions = previousArchive ? { lastArchiveRoot: previousArchive.root, ...options } : options;
169
+ const header = CheckpointHeader.random(headerOptions);
157
170
 
158
171
  // Create blocks sequentially to chain archive roots properly.
159
172
  // Each block's header.lastArchive must equal the previous block's archive.
@@ -161,14 +174,22 @@ export class Checkpoint {
161
174
  let lastArchive = previousArchive;
162
175
  for (let i = 0; i < numBlocks; i++) {
163
176
  const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
177
+ checkpointNumber,
164
178
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
165
179
  ...options,
166
180
  ...(lastArchive ? { lastArchive } : {}),
181
+ ...pick(header, 'slotNumber', 'timestamp', 'coinbase', 'feeRecipient', 'gasFees'),
167
182
  });
168
183
  lastArchive = block.archive;
169
184
  blocks.push(block);
170
185
  }
171
186
 
172
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber, feeAssetPriceModifier);
187
+ return new Checkpoint(
188
+ options.archive ?? AppendOnlyTreeSnapshot.random(),
189
+ header,
190
+ blocks,
191
+ checkpointNumber,
192
+ feeAssetPriceModifier,
193
+ );
173
194
  }
174
195
  }
@@ -0,0 +1,87 @@
1
+ import {
2
+ BlockNumber,
3
+ BlockNumberSchema,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ } from '@aztec/foundation/branded-types';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { schemas } from '@aztec/foundation/schemas';
9
+
10
+ import { z } from 'zod';
11
+
12
+ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
13
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
+ import { L1PublishedData } from './published_checkpoint.js';
16
+
17
+ /** Base type for checkpoint data */
18
+ export type CommonCheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ startBlock: BlockNumber;
22
+ blockCount: number;
23
+ };
24
+
25
+ /** Data stored with checkpoint data after publishing on l1 */
26
+ export type L1EnrichedCheckpointData = {
27
+ attestations: CommitteeAttestation[];
28
+ l1: L1PublishedData;
29
+ };
30
+
31
+ /** Data stored alongside checkpoint data in storage */
32
+ export type StorageEnrichedCheckpointData = {
33
+ archive: AppendOnlyTreeSnapshot;
34
+ checkpointOutHash: Fr;
35
+ };
36
+
37
+ /** Data stored only with proposed checkpoint data */
38
+ export type ProposedOnlyCheckpointData = {
39
+ totalManaUsed: bigint;
40
+ feeAssetPriceModifier: bigint;
41
+ };
42
+
43
+ /** Lightweight checkpoint metadata without full block data. */
44
+ export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
45
+
46
+ /** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
47
+ * internally by the block store from the stored blocks. */
48
+ export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
49
+
50
+ /** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
51
+ * Includes fee-relevant fields used during pipelining to compute the fee header override. */
52
+ export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
53
+
54
+ export const ProposedCheckpointDataSchema = z.object({
55
+ checkpointNumber: CheckpointNumberSchema,
56
+ header: CheckpointHeader.schema,
57
+ archive: AppendOnlyTreeSnapshot.schema,
58
+ checkpointOutHash: schemas.Fr,
59
+ startBlock: BlockNumberSchema,
60
+ blockCount: z.number(),
61
+ totalManaUsed: schemas.BigInt,
62
+ feeAssetPriceModifier: schemas.BigInt,
63
+ });
64
+
65
+ export const CheckpointDataSchema = z
66
+ .object({
67
+ checkpointNumber: CheckpointNumberSchema,
68
+ header: CheckpointHeader.schema,
69
+ archive: AppendOnlyTreeSnapshot.schema,
70
+ checkpointOutHash: schemas.Fr,
71
+ startBlock: BlockNumberSchema,
72
+ blockCount: schemas.Integer,
73
+ attestations: z.array(CommitteeAttestation.schema),
74
+ l1: L1PublishedData.schema,
75
+ })
76
+ .transform(
77
+ (obj): CheckpointData => ({
78
+ checkpointNumber: obj.checkpointNumber,
79
+ header: obj.header,
80
+ archive: obj.archive,
81
+ checkpointOutHash: obj.checkpointOutHash,
82
+ startBlock: obj.startBlock,
83
+ blockCount: obj.blockCount,
84
+ attestations: obj.attestations,
85
+ l1: obj.l1,
86
+ }),
87
+ );
@@ -1,3 +1,5 @@
1
1
  export * from './checkpoint.js';
2
+ export * from './checkpoint_data.js';
2
3
  export * from './checkpoint_info.js';
3
4
  export * from './published_checkpoint.js';
5
+ export * from './validate.js';
@@ -55,9 +55,11 @@ export class L1PublishedData {
55
55
 
56
56
  export class PublishedCheckpoint {
57
57
  constructor(
58
+ /** The checkpoint itself. */
58
59
  public checkpoint: Checkpoint,
60
+ /** Info on when this checkpoint was published on L1. */
59
61
  public l1: L1PublishedData,
60
- // The attestations for the last block in the checkpoint.
62
+ /** The attestations for the last block in the checkpoint. */
61
63
  public attestations: CommitteeAttestation[],
62
64
  ) {}
63
65