@aztec/stdlib 0.0.1-commit.1142ef1 → 0.0.1-commit.11bf3dd6e

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