@aztec/stdlib 0.0.1-commit.6d3c34e → 0.0.1-commit.7035c9bd6

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 (779) hide show
  1. package/dest/abi/decoder.d.ts +2 -2
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +7 -5
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +37 -6
  7. package/dest/abi/event_metadata_definition.d.ts +3 -1
  8. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  9. package/dest/abi/event_metadata_definition.js +1 -1
  10. package/dest/abi/function_call.d.ts +47 -9
  11. package/dest/abi/function_call.d.ts.map +1 -1
  12. package/dest/abi/function_call.js +20 -3
  13. package/dest/abi/utils.d.ts +20 -1
  14. package/dest/abi/utils.d.ts.map +1 -1
  15. package/dest/abi/utils.js +22 -0
  16. package/dest/auth_witness/auth_witness.d.ts +2 -1
  17. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  18. package/dest/auth_witness/auth_witness.js +3 -3
  19. package/dest/avm/avm.d.ts +362 -362
  20. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  21. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  22. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  23. package/dest/avm/avm_proving_request.d.ts +465 -465
  24. package/dest/avm/contract_storage_read.d.ts +13 -1
  25. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  26. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  27. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  28. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  29. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  30. package/dest/avm/public_data_read.d.ts +10 -1
  31. package/dest/avm/public_data_read.d.ts.map +1 -1
  32. package/dest/avm/public_data_update_request.d.ts +10 -1
  33. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  34. package/dest/avm/public_data_write.d.ts +7 -1
  35. package/dest/avm/public_data_write.d.ts.map +1 -1
  36. package/dest/avm/public_inner_call_request.d.ts +4 -1
  37. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  38. package/dest/avm/revert_code.d.ts +19 -4
  39. package/dest/avm/revert_code.d.ts.map +1 -1
  40. package/dest/avm/revert_code.js +15 -5
  41. package/dest/block/block_data.d.ts +52 -0
  42. package/dest/block/block_data.d.ts.map +1 -0
  43. package/dest/block/block_data.js +12 -0
  44. package/dest/block/block_hash.d.ts +18 -14
  45. package/dest/block/block_hash.d.ts.map +1 -1
  46. package/dest/block/block_hash.js +22 -20
  47. package/dest/block/block_parameter.d.ts +4 -3
  48. package/dest/block/block_parameter.d.ts.map +1 -1
  49. package/dest/block/block_parameter.js +2 -0
  50. package/dest/block/body.d.ts +1 -1
  51. package/dest/block/body.d.ts.map +1 -1
  52. package/dest/block/body.js +2 -1
  53. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  54. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  55. package/dest/block/checkpointed_l2_block.js +7 -45
  56. package/dest/block/in_block.d.ts +9 -9
  57. package/dest/block/in_block.d.ts.map +1 -1
  58. package/dest/block/in_block.js +5 -5
  59. package/dest/block/index.d.ts +2 -3
  60. package/dest/block/index.d.ts.map +1 -1
  61. package/dest/block/index.js +1 -2
  62. package/dest/block/l2_block.d.ts +64 -59
  63. package/dest/block/l2_block.d.ts.map +1 -1
  64. package/dest/block/l2_block.js +73 -109
  65. package/dest/block/l2_block_source.d.ts +94 -43
  66. package/dest/block/l2_block_source.d.ts.map +1 -1
  67. package/dest/block/l2_block_source.js +2 -1
  68. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  69. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  70. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  71. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  72. package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
  73. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  74. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  75. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  76. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  77. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  78. package/dest/block/validate_block_result.d.ts +1 -1
  79. package/dest/block/validate_block_result.d.ts.map +1 -1
  80. package/dest/block/validate_block_result.js +5 -4
  81. package/dest/checkpoint/checkpoint.d.ts +44 -19
  82. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  83. package/dest/checkpoint/checkpoint.js +45 -17
  84. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  85. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  86. package/dest/checkpoint/checkpoint_data.js +26 -0
  87. package/dest/checkpoint/index.d.ts +3 -1
  88. package/dest/checkpoint/index.d.ts.map +1 -1
  89. package/dest/checkpoint/index.js +2 -0
  90. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  91. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  92. package/dest/checkpoint/published_checkpoint.js +5 -5
  93. package/dest/checkpoint/validate.d.ts +36 -0
  94. package/dest/checkpoint/validate.d.ts.map +1 -0
  95. package/dest/checkpoint/validate.js +120 -0
  96. package/dest/config/index.d.ts +3 -1
  97. package/dest/config/index.d.ts.map +1 -1
  98. package/dest/config/index.js +2 -0
  99. package/dest/config/node-rpc-config.js +1 -1
  100. package/dest/config/pipelining-config.d.ts +19 -0
  101. package/dest/config/pipelining-config.d.ts.map +1 -0
  102. package/dest/config/pipelining-config.js +18 -0
  103. package/dest/config/sequencer-config.d.ts +12 -0
  104. package/dest/config/sequencer-config.d.ts.map +1 -0
  105. package/dest/config/sequencer-config.js +24 -0
  106. package/dest/contract/complete_address.d.ts +4 -1
  107. package/dest/contract/complete_address.d.ts.map +1 -1
  108. package/dest/contract/contract_address.d.ts +3 -3
  109. package/dest/contract/contract_address.js +7 -7
  110. package/dest/contract/contract_class.d.ts +2 -3
  111. package/dest/contract/contract_class.d.ts.map +1 -1
  112. package/dest/contract/contract_class_id.d.ts +3 -3
  113. package/dest/contract/contract_class_id.d.ts.map +1 -1
  114. package/dest/contract/contract_class_id.js +7 -6
  115. package/dest/contract/contract_deployment_data.d.ts +5 -5
  116. package/dest/contract/index.d.ts +1 -3
  117. package/dest/contract/index.d.ts.map +1 -1
  118. package/dest/contract/index.js +0 -2
  119. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  120. package/dest/contract/interfaces/node-info.d.ts +3 -1
  121. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  122. package/dest/contract/interfaces/node-info.js +2 -1
  123. package/dest/contract/private_function.d.ts +1 -1
  124. package/dest/contract/private_function.d.ts.map +1 -1
  125. package/dest/contract/private_function.js +3 -4
  126. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  127. package/dest/contract/private_function_membership_proof.js +1 -1
  128. package/dest/database-version/database_version.d.ts +58 -0
  129. package/dest/database-version/database_version.d.ts.map +1 -0
  130. package/dest/database-version/database_version.js +69 -0
  131. package/dest/database-version/version_manager.d.ts +3 -49
  132. package/dest/database-version/version_manager.d.ts.map +1 -1
  133. package/dest/database-version/version_manager.js +1 -66
  134. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  135. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  136. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  137. package/dest/deserialization/index.d.ts +11 -0
  138. package/dest/deserialization/index.d.ts.map +1 -0
  139. package/dest/deserialization/index.js +10 -0
  140. package/dest/epoch-helpers/index.d.ts +11 -1
  141. package/dest/epoch-helpers/index.d.ts.map +1 -1
  142. package/dest/epoch-helpers/index.js +11 -3
  143. package/dest/errors/proving_error.d.ts +2 -2
  144. package/dest/errors/proving_error.d.ts.map +1 -1
  145. package/dest/file-store/local.d.ts +3 -3
  146. package/dest/file-store/local.d.ts.map +1 -1
  147. package/dest/file-store/local.js +13 -4
  148. package/dest/file-store/s3.d.ts +1 -1
  149. package/dest/file-store/s3.d.ts.map +1 -1
  150. package/dest/file-store/s3.js +11 -3
  151. package/dest/gas/gas_fees.d.ts +1 -1
  152. package/dest/gas/gas_fees.d.ts.map +1 -1
  153. package/dest/gas/gas_fees.js +4 -1
  154. package/dest/ha-signing/config.d.ts +136 -0
  155. package/dest/ha-signing/config.d.ts.map +1 -0
  156. package/dest/ha-signing/config.js +97 -0
  157. package/dest/ha-signing/index.d.ts +4 -0
  158. package/dest/ha-signing/index.d.ts.map +1 -0
  159. package/dest/ha-signing/index.js +3 -0
  160. package/dest/ha-signing/local_config.d.ts +63 -0
  161. package/dest/ha-signing/local_config.d.ts.map +1 -0
  162. package/dest/ha-signing/local_config.js +24 -0
  163. package/dest/ha-signing/types.d.ts +85 -0
  164. package/dest/ha-signing/types.d.ts.map +1 -0
  165. package/dest/ha-signing/types.js +32 -0
  166. package/dest/hash/hash.d.ts +17 -1
  167. package/dest/hash/hash.d.ts.map +1 -1
  168. package/dest/hash/hash.js +40 -10
  169. package/dest/hash/map_slot.d.ts +1 -1
  170. package/dest/hash/map_slot.d.ts.map +1 -1
  171. package/dest/hash/map_slot.js +4 -3
  172. package/dest/interfaces/allowed_element.d.ts +26 -20
  173. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  174. package/dest/interfaces/allowed_element.js +8 -8
  175. package/dest/interfaces/api_limit.d.ts +2 -1
  176. package/dest/interfaces/api_limit.d.ts.map +1 -1
  177. package/dest/interfaces/api_limit.js +1 -0
  178. package/dest/interfaces/archiver.d.ts +1 -1
  179. package/dest/interfaces/archiver.d.ts.map +1 -1
  180. package/dest/interfaces/archiver.js +26 -17
  181. package/dest/interfaces/aztec-node-admin.d.ts +170 -51
  182. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  183. package/dest/interfaces/aztec-node-admin.js +12 -4
  184. package/dest/interfaces/aztec-node.d.ts +76 -73
  185. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  186. package/dest/interfaces/aztec-node.js +15 -18
  187. package/dest/interfaces/block-builder.d.ts +53 -18
  188. package/dest/interfaces/block-builder.d.ts.map +1 -1
  189. package/dest/interfaces/block-builder.js +16 -2
  190. package/dest/interfaces/configs.d.ts +81 -36
  191. package/dest/interfaces/configs.d.ts.map +1 -1
  192. package/dest/interfaces/configs.js +10 -3
  193. package/dest/interfaces/get_logs_response.d.ts +16 -9
  194. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  195. package/dest/interfaces/l2_logs_source.d.ts +16 -5
  196. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  197. package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
  198. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  199. package/dest/interfaces/p2p.d.ts +4 -9
  200. package/dest/interfaces/p2p.d.ts.map +1 -1
  201. package/dest/interfaces/prover-broker.d.ts +16 -1
  202. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  203. package/dest/interfaces/prover-broker.js +4 -1
  204. package/dest/interfaces/prover-client.d.ts +20 -1
  205. package/dest/interfaces/prover-client.d.ts.map +1 -1
  206. package/dest/interfaces/prover-client.js +18 -1
  207. package/dest/interfaces/proving-job.d.ts +50 -50
  208. package/dest/interfaces/slasher.d.ts +9 -1
  209. package/dest/interfaces/slasher.d.ts.map +1 -1
  210. package/dest/interfaces/slasher.js +2 -0
  211. package/dest/interfaces/tx_provider.d.ts +3 -3
  212. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  213. package/dest/interfaces/validator.d.ts +203 -39
  214. package/dest/interfaces/validator.d.ts.map +1 -1
  215. package/dest/interfaces/validator.js +11 -4
  216. package/dest/interfaces/world_state.d.ts +5 -4
  217. package/dest/interfaces/world_state.d.ts.map +1 -1
  218. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  219. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  220. package/dest/kernel/hints/build_note_hash_read_request_hints.js +29 -16
  221. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  222. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  223. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  224. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  225. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  226. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  227. package/dest/kernel/hints/index.d.ts +2 -2
  228. package/dest/kernel/hints/index.js +2 -2
  229. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  230. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  231. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  232. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  233. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  234. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  235. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  236. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  237. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  238. package/dest/kernel/hints/read_request.d.ts +7 -1
  239. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  240. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  241. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  242. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  243. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  244. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  245. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  246. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  247. package/dest/kernel/private_call_data.d.ts +25 -1
  248. package/dest/kernel/private_call_data.d.ts.map +1 -1
  249. package/dest/kernel/private_call_request.d.ts +16 -1
  250. package/dest/kernel/private_call_request.d.ts.map +1 -1
  251. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  252. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  253. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  254. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  255. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  256. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  257. package/dest/kernel/private_kernel_data.d.ts +7 -1
  258. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  259. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  260. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  261. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  262. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  263. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  264. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  265. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  266. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  267. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  268. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
  269. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  270. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  271. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  272. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  273. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  274. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  275. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  276. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  277. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  278. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  279. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  280. package/dest/kernel/private_validation_requests.d.ts +13 -4
  281. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  282. package/dest/kernel/private_validation_requests.js +9 -9
  283. package/dest/kernel/public_call_request.d.ts +22 -1
  284. package/dest/kernel/public_call_request.d.ts.map +1 -1
  285. package/dest/kernel/utils/optional_number.d.ts +7 -1
  286. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  287. package/dest/keys/derivation.d.ts +3 -3
  288. package/dest/keys/derivation.js +15 -15
  289. package/dest/keys/key_types.d.ts +3 -3
  290. package/dest/keys/key_types.d.ts.map +1 -1
  291. package/dest/keys/public_keys.d.ts +5 -1
  292. package/dest/keys/public_keys.d.ts.map +1 -1
  293. package/dest/keys/public_keys.js +2 -2
  294. package/dest/keys/utils.d.ts +1 -1
  295. package/dest/keys/utils.d.ts.map +1 -1
  296. package/dest/keys/utils.js +8 -4
  297. package/dest/kv-store/config.d.ts +17 -0
  298. package/dest/kv-store/config.d.ts.map +1 -0
  299. package/dest/kv-store/config.js +26 -0
  300. package/dest/kv-store/index.d.ts +2 -0
  301. package/dest/kv-store/index.d.ts.map +1 -0
  302. package/dest/kv-store/index.js +1 -0
  303. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  304. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  305. package/dest/l1-contracts/slash_factory.js +1 -0
  306. package/dest/logs/debug_log_store.d.ts +30 -0
  307. package/dest/logs/debug_log_store.d.ts.map +1 -0
  308. package/dest/logs/debug_log_store.js +30 -0
  309. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  310. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  311. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  312. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  313. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  314. package/dest/logs/extended_public_log.d.ts +17 -9
  315. package/dest/logs/extended_public_log.d.ts.map +1 -1
  316. package/dest/logs/index.d.ts +4 -2
  317. package/dest/logs/index.d.ts.map +1 -1
  318. package/dest/logs/index.js +3 -1
  319. package/dest/logs/log_filter.d.ts +4 -1
  320. package/dest/logs/log_filter.d.ts.map +1 -1
  321. package/dest/logs/log_filter.js +2 -1
  322. package/dest/logs/log_id.d.ts +21 -14
  323. package/dest/logs/log_id.d.ts.map +1 -1
  324. package/dest/logs/log_id.js +20 -17
  325. package/dest/logs/pre_tag.d.ts +16 -11
  326. package/dest/logs/pre_tag.d.ts.map +1 -1
  327. package/dest/logs/pre_tag.js +2 -2
  328. package/dest/logs/private_log.d.ts +2 -2
  329. package/dest/logs/private_log.d.ts.map +1 -1
  330. package/dest/logs/public_log.d.ts +4 -3
  331. package/dest/logs/public_log.d.ts.map +1 -1
  332. package/dest/logs/public_log.js +2 -1
  333. package/dest/logs/siloed_tag.d.ts +5 -3
  334. package/dest/logs/siloed_tag.d.ts.map +1 -1
  335. package/dest/logs/siloed_tag.js +8 -6
  336. package/dest/logs/tag.js +1 -1
  337. package/dest/logs/tagging_index_range.d.ts +40 -0
  338. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  339. package/dest/logs/tagging_index_range.js +8 -0
  340. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  341. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  342. package/dest/logs/tx_scoped_l2_log.js +7 -0
  343. package/dest/messaging/inbox_leaf.d.ts +3 -1
  344. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  345. package/dest/messaging/l1_actor.d.ts +7 -1
  346. package/dest/messaging/l1_actor.d.ts.map +1 -1
  347. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  348. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  349. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  350. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  351. package/dest/messaging/l2_actor.d.ts +7 -1
  352. package/dest/messaging/l2_actor.d.ts.map +1 -1
  353. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  354. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  355. package/dest/messaging/l2_to_l1_membership.js +77 -32
  356. package/dest/messaging/out_hash.d.ts +41 -4
  357. package/dest/messaging/out_hash.d.ts.map +1 -1
  358. package/dest/messaging/out_hash.js +52 -26
  359. package/dest/noir/index.d.ts +3 -3
  360. package/dest/noir/index.d.ts.map +1 -1
  361. package/dest/note/index.d.ts +1 -2
  362. package/dest/note/index.d.ts.map +1 -1
  363. package/dest/note/index.js +0 -1
  364. package/dest/note/note_dao.d.ts +36 -5
  365. package/dest/note/note_dao.d.ts.map +1 -1
  366. package/dest/note/note_dao.js +15 -12
  367. package/dest/p2p/attestation_utils.d.ts +11 -1
  368. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  369. package/dest/p2p/attestation_utils.js +45 -0
  370. package/dest/p2p/block_proposal.d.ts +23 -8
  371. package/dest/p2p/block_proposal.d.ts.map +1 -1
  372. package/dest/p2p/block_proposal.js +26 -10
  373. package/dest/p2p/checkpoint_attestation.d.ts +6 -1
  374. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  375. package/dest/p2p/checkpoint_attestation.js +1 -1
  376. package/dest/p2p/checkpoint_proposal.d.ts +34 -14
  377. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  378. package/dest/p2p/checkpoint_proposal.js +56 -40
  379. package/dest/p2p/client_type.d.ts +2 -5
  380. package/dest/p2p/client_type.d.ts.map +1 -1
  381. package/dest/p2p/client_type.js +0 -7
  382. package/dest/p2p/consensus_payload.d.ts +15 -5
  383. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  384. package/dest/p2p/consensus_payload.js +22 -18
  385. package/dest/p2p/constants.d.ts +5 -0
  386. package/dest/p2p/constants.d.ts.map +1 -0
  387. package/dest/p2p/constants.js +3 -0
  388. package/dest/p2p/index.d.ts +2 -2
  389. package/dest/p2p/index.d.ts.map +1 -1
  390. package/dest/p2p/index.js +1 -1
  391. package/dest/p2p/message_validator.d.ts +18 -3
  392. package/dest/p2p/message_validator.d.ts.map +1 -1
  393. package/dest/p2p/message_validator.js +2 -1
  394. package/dest/p2p/peer_error.d.ts +3 -1
  395. package/dest/p2p/peer_error.d.ts.map +1 -1
  396. package/dest/p2p/peer_error.js +5 -0
  397. package/dest/p2p/signed_txs.d.ts +3 -1
  398. package/dest/p2p/signed_txs.d.ts.map +1 -1
  399. package/dest/p2p/signed_txs.js +6 -1
  400. package/dest/p2p/topic_type.d.ts +3 -4
  401. package/dest/p2p/topic_type.d.ts.map +1 -1
  402. package/dest/p2p/topic_type.js +7 -23
  403. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  404. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  405. package/dest/parity/parity_public_inputs.d.ts +4 -1
  406. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  407. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  408. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  409. package/dest/proofs/chonk_proof.d.ts +1 -1
  410. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  411. package/dest/proofs/chonk_proof.js +9 -4
  412. package/dest/proofs/proof.d.ts +4 -1
  413. package/dest/proofs/proof.d.ts.map +1 -1
  414. package/dest/proofs/recursive_proof.d.ts +10 -1
  415. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  416. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  417. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  418. package/dest/rollup/block_constant_data.d.ts +12 -1
  419. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  420. package/dest/rollup/block_headers_hash.js +1 -1
  421. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  422. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  423. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  424. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  425. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  426. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  427. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  428. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  429. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  430. package/dest/rollup/checkpoint_header.d.ts +31 -4
  431. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  432. package/dest/rollup/checkpoint_header.js +23 -7
  433. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  434. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  435. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  436. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  437. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  438. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  439. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  440. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  441. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  442. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  443. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  444. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  445. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  446. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  447. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  448. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  449. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  450. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  451. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  452. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  453. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  454. package/dest/schemas/schemas.d.ts +1 -1
  455. package/dest/slashing/empire.d.ts +1 -1
  456. package/dest/slashing/empire.d.ts.map +1 -1
  457. package/dest/slashing/empire.js +2 -0
  458. package/dest/slashing/helpers.d.ts +2 -2
  459. package/dest/slashing/helpers.d.ts.map +1 -1
  460. package/dest/slashing/helpers.js +6 -0
  461. package/dest/slashing/tally.d.ts +8 -2
  462. package/dest/slashing/tally.d.ts.map +1 -1
  463. package/dest/slashing/tally.js +35 -3
  464. package/dest/slashing/types.d.ts +7 -3
  465. package/dest/slashing/types.d.ts.map +1 -1
  466. package/dest/slashing/types.js +13 -1
  467. package/dest/stats/stats.d.ts +1 -3
  468. package/dest/stats/stats.d.ts.map +1 -1
  469. package/dest/tests/factories.d.ts +4 -4
  470. package/dest/tests/factories.d.ts.map +1 -1
  471. package/dest/tests/factories.js +26 -27
  472. package/dest/tests/jest.js +1 -1
  473. package/dest/tests/mocks.d.ts +26 -15
  474. package/dest/tests/mocks.d.ts.map +1 -1
  475. package/dest/tests/mocks.js +75 -47
  476. package/dest/timetable/index.d.ts +37 -0
  477. package/dest/timetable/index.d.ts.map +1 -0
  478. package/dest/timetable/index.js +39 -0
  479. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  480. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  481. package/dest/trees/nullifier_leaf.d.ts +13 -1
  482. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  483. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  484. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  485. package/dest/trees/public_data_leaf.d.ts +17 -1
  486. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  487. package/dest/trees/public_data_leaf.js +7 -6
  488. package/dest/trees/public_data_witness.d.ts +11 -1
  489. package/dest/trees/public_data_witness.d.ts.map +1 -1
  490. package/dest/tx/block_header.d.ts +16 -2
  491. package/dest/tx/block_header.d.ts.map +1 -1
  492. package/dest/tx/block_header.js +10 -2
  493. package/dest/tx/call_context.d.ts +13 -1
  494. package/dest/tx/call_context.d.ts.map +1 -1
  495. package/dest/tx/capsule.d.ts +4 -1
  496. package/dest/tx/capsule.d.ts.map +1 -1
  497. package/dest/tx/execution_payload.d.ts +9 -1
  498. package/dest/tx/execution_payload.d.ts.map +1 -1
  499. package/dest/tx/function_data.d.ts +4 -2
  500. package/dest/tx/function_data.d.ts.map +1 -1
  501. package/dest/tx/global_variables.d.ts +12 -4
  502. package/dest/tx/global_variables.d.ts.map +1 -1
  503. package/dest/tx/hashed_values.d.ts +7 -1
  504. package/dest/tx/hashed_values.d.ts.map +1 -1
  505. package/dest/tx/in_tx.d.ts +4 -4
  506. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  507. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  508. package/dest/tx/indexed_tx_effect.js +3 -2
  509. package/dest/tx/partial_state_reference.d.ts +4 -1
  510. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  511. package/dest/tx/private_execution_result.d.ts +27 -6
  512. package/dest/tx/private_execution_result.d.ts.map +1 -1
  513. package/dest/tx/private_execution_result.js +7 -7
  514. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  515. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  516. package/dest/tx/profiling.d.ts +165 -30
  517. package/dest/tx/profiling.d.ts.map +1 -1
  518. package/dest/tx/profiling.js +59 -12
  519. package/dest/tx/protocol_contracts.d.ts +2 -2
  520. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  521. package/dest/tx/protocol_contracts.js +2 -2
  522. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  523. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  524. package/dest/tx/public_simulation_output.d.ts +4 -2
  525. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  526. package/dest/tx/public_simulation_output.js +7 -3
  527. package/dest/tx/simulated_tx.d.ts +5 -2
  528. package/dest/tx/simulated_tx.d.ts.map +1 -1
  529. package/dest/tx/simulated_tx.js +4 -1
  530. package/dest/tx/state_reference.d.ts +3 -1
  531. package/dest/tx/state_reference.d.ts.map +1 -1
  532. package/dest/tx/tx.d.ts +29 -5
  533. package/dest/tx/tx.d.ts.map +1 -1
  534. package/dest/tx/tx.js +24 -9
  535. package/dest/tx/tx_context.d.ts +2 -1
  536. package/dest/tx/tx_context.d.ts.map +1 -1
  537. package/dest/tx/tx_effect.d.ts +32 -6
  538. package/dest/tx/tx_effect.d.ts.map +1 -1
  539. package/dest/tx/tx_effect.js +0 -7
  540. package/dest/tx/tx_execution_request.d.ts +30 -1
  541. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  542. package/dest/tx/tx_hash.d.ts +2 -1
  543. package/dest/tx/tx_hash.d.ts.map +1 -1
  544. package/dest/tx/tx_receipt.d.ts +68 -15
  545. package/dest/tx/tx_receipt.d.ts.map +1 -1
  546. package/dest/tx/tx_receipt.js +59 -17
  547. package/dest/tx/tx_request.d.ts +6 -1
  548. package/dest/tx/tx_request.d.ts.map +1 -1
  549. package/dest/tx/tx_request.js +2 -2
  550. package/dest/tx/validator/empty_validator.d.ts +2 -2
  551. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  552. package/dest/tx/validator/error_texts.d.ts +7 -2
  553. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  554. package/dest/tx/validator/error_texts.js +7 -1
  555. package/dest/tx/validator/tx_validator.d.ts +2 -2
  556. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  557. package/dest/types/shared.d.ts +4 -1
  558. package/dest/types/shared.d.ts.map +1 -1
  559. package/dest/update-checker/index.d.ts +3 -2
  560. package/dest/update-checker/index.d.ts.map +1 -1
  561. package/dest/update-checker/index.js +2 -1
  562. package/dest/update-checker/package_version.d.ts +3 -0
  563. package/dest/update-checker/package_version.d.ts.map +1 -0
  564. package/dest/update-checker/package_version.js +24 -0
  565. package/dest/update-checker/version_checker.d.ts +25 -0
  566. package/dest/update-checker/version_checker.d.ts.map +1 -0
  567. package/dest/update-checker/version_checker.js +50 -0
  568. package/dest/validators/errors.d.ts +6 -1
  569. package/dest/validators/errors.d.ts.map +1 -1
  570. package/dest/validators/errors.js +7 -0
  571. package/dest/validators/schemas.d.ts +38 -38
  572. package/dest/validators/schemas.d.ts.map +1 -1
  573. package/dest/validators/schemas.js +4 -3
  574. package/dest/validators/types.d.ts +3 -3
  575. package/dest/validators/types.d.ts.map +1 -1
  576. package/dest/versioning/versioning.d.ts +4 -2
  577. package/dest/versioning/versioning.d.ts.map +1 -1
  578. package/dest/versioning/versioning.js +4 -1
  579. package/dest/vks/verification_key.d.ts +22 -1
  580. package/dest/vks/verification_key.d.ts.map +1 -1
  581. package/dest/vks/vk_data.d.ts +7 -1
  582. package/dest/vks/vk_data.d.ts.map +1 -1
  583. package/dest/zkpassport/index.d.ts +3 -4
  584. package/dest/zkpassport/index.d.ts.map +1 -1
  585. package/dest/zkpassport/index.js +9 -9
  586. package/package.json +29 -14
  587. package/src/abi/decoder.ts +15 -6
  588. package/src/abi/encoder.ts +49 -6
  589. package/src/abi/event_metadata_definition.ts +2 -0
  590. package/src/abi/function_call.ts +25 -3
  591. package/src/abi/utils.ts +42 -0
  592. package/src/auth_witness/auth_witness.ts +3 -3
  593. package/src/avm/revert_code.ts +15 -0
  594. package/src/block/block_data.ts +26 -0
  595. package/src/block/block_hash.ts +26 -25
  596. package/src/block/block_parameter.ts +4 -2
  597. package/src/block/body.ts +2 -1
  598. package/src/block/checkpointed_l2_block.ts +8 -58
  599. package/src/block/in_block.ts +6 -6
  600. package/src/block/index.ts +1 -2
  601. package/src/block/l2_block.ts +112 -148
  602. package/src/block/l2_block_source.ts +104 -46
  603. package/src/block/l2_block_stream/interfaces.ts +8 -5
  604. package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
  605. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  606. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  607. package/src/block/validate_block_result.ts +5 -4
  608. package/src/checkpoint/checkpoint.ts +72 -23
  609. package/src/checkpoint/checkpoint_data.ts +51 -0
  610. package/src/checkpoint/index.ts +2 -0
  611. package/src/checkpoint/published_checkpoint.ts +7 -4
  612. package/src/checkpoint/validate.ts +230 -0
  613. package/src/config/index.ts +2 -0
  614. package/src/config/node-rpc-config.ts +1 -1
  615. package/src/config/pipelining-config.ts +31 -0
  616. package/src/config/sequencer-config.ts +37 -0
  617. package/src/contract/contract_address.ts +7 -7
  618. package/src/contract/contract_class.ts +3 -3
  619. package/src/contract/contract_class_id.ts +7 -6
  620. package/src/contract/index.ts +0 -2
  621. package/src/contract/interfaces/node-info.ts +3 -0
  622. package/src/contract/private_function.ts +3 -4
  623. package/src/contract/private_function_membership_proof.ts +1 -1
  624. package/src/database-version/database_version.ts +87 -0
  625. package/src/database-version/version_manager.ts +1 -77
  626. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  627. package/src/deserialization/index.ts +21 -0
  628. package/src/epoch-helpers/index.ts +16 -1
  629. package/src/file-store/local.ts +15 -5
  630. package/src/file-store/s3.ts +12 -3
  631. package/src/gas/README.md +123 -0
  632. package/src/gas/gas_fees.ts +7 -1
  633. package/src/ha-signing/config.ts +156 -0
  634. package/src/ha-signing/index.ts +27 -0
  635. package/src/ha-signing/local_config.ts +46 -0
  636. package/src/ha-signing/types.ts +112 -0
  637. package/src/hash/hash.ts +43 -10
  638. package/src/hash/map_slot.ts +3 -2
  639. package/src/interfaces/allowed_element.ts +29 -9
  640. package/src/interfaces/api_limit.ts +1 -0
  641. package/src/interfaces/archiver.ts +26 -26
  642. package/src/interfaces/aztec-node-admin.ts +26 -2
  643. package/src/interfaces/aztec-node.ts +105 -135
  644. package/src/interfaces/block-builder.ts +93 -29
  645. package/src/interfaces/configs.ts +37 -11
  646. package/src/interfaces/l2_logs_source.ts +20 -4
  647. package/src/interfaces/merkle_tree_operations.ts +9 -19
  648. package/src/interfaces/p2p.ts +3 -14
  649. package/src/interfaces/prover-broker.ts +22 -0
  650. package/src/interfaces/prover-client.ts +30 -0
  651. package/src/interfaces/slasher.ts +4 -0
  652. package/src/interfaces/tx_provider.ts +2 -2
  653. package/src/interfaces/validator.ts +61 -31
  654. package/src/interfaces/world_state.ts +4 -3
  655. package/src/kernel/hints/build_note_hash_read_request_hints.ts +31 -24
  656. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
  657. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  658. package/src/kernel/hints/index.ts +2 -2
  659. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  660. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  661. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  662. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  663. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  664. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  665. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  666. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  667. package/src/kernel/private_validation_requests.ts +8 -8
  668. package/src/keys/derivation.ts +15 -15
  669. package/src/keys/key_types.ts +6 -2
  670. package/src/keys/public_keys.ts +2 -2
  671. package/src/keys/utils.ts +8 -4
  672. package/src/kv-store/config.ts +36 -0
  673. package/src/kv-store/index.ts +1 -0
  674. package/src/l1-contracts/slash_factory.ts +1 -0
  675. package/src/logs/debug_log_store.ts +54 -0
  676. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  677. package/src/logs/index.ts +3 -1
  678. package/src/logs/log_filter.ts +5 -0
  679. package/src/logs/log_id.ts +22 -18
  680. package/src/logs/pre_tag.ts +5 -5
  681. package/src/logs/public_log.ts +4 -2
  682. package/src/logs/siloed_tag.ts +10 -4
  683. package/src/logs/tag.ts +1 -1
  684. package/src/logs/tagging_index_range.ts +24 -0
  685. package/src/logs/tx_scoped_l2_log.ts +16 -0
  686. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  687. package/src/messaging/l2_to_l1_membership.ts +106 -39
  688. package/src/messaging/out_hash.ts +60 -29
  689. package/src/noir/index.ts +2 -2
  690. package/src/note/index.ts +0 -1
  691. package/src/note/note_dao.ts +18 -13
  692. package/src/p2p/attestation_utils.ts +56 -0
  693. package/src/p2p/block_proposal.ts +36 -15
  694. package/src/p2p/checkpoint_attestation.ts +6 -1
  695. package/src/p2p/checkpoint_proposal.ts +94 -58
  696. package/src/p2p/client_type.ts +0 -6
  697. package/src/p2p/consensus_payload.ts +25 -17
  698. package/src/p2p/constants.ts +6 -0
  699. package/src/p2p/index.ts +1 -1
  700. package/src/p2p/message_validator.ts +14 -2
  701. package/src/p2p/peer_error.ts +7 -0
  702. package/src/p2p/signed_txs.ts +6 -1
  703. package/src/p2p/topic_type.ts +8 -15
  704. package/src/proofs/chonk_proof.ts +9 -5
  705. package/src/rollup/block_headers_hash.ts +1 -1
  706. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  707. package/src/rollup/checkpoint_header.ts +22 -2
  708. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  709. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  710. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  711. package/src/slashing/empire.ts +3 -1
  712. package/src/slashing/helpers.ts +8 -0
  713. package/src/slashing/tally.ts +41 -2
  714. package/src/slashing/types.ts +14 -0
  715. package/src/stats/stats.ts +0 -2
  716. package/src/tests/factories.ts +32 -43
  717. package/src/tests/jest.ts +1 -1
  718. package/src/tests/mocks.ts +106 -60
  719. package/src/timetable/index.ts +66 -0
  720. package/src/trees/public_data_leaf.ts +11 -5
  721. package/src/tx/block_header.ts +18 -4
  722. package/src/tx/global_variables.ts +3 -3
  723. package/src/tx/indexed_tx_effect.ts +3 -2
  724. package/src/tx/private_execution_result.ts +6 -6
  725. package/src/tx/profiling.ts +60 -9
  726. package/src/tx/protocol_contracts.ts +2 -2
  727. package/src/tx/public_simulation_output.ts +4 -0
  728. package/src/tx/simulated_tx.ts +8 -1
  729. package/src/tx/tx.ts +28 -20
  730. package/src/tx/tx_effect.ts +0 -9
  731. package/src/tx/tx_receipt.ts +91 -19
  732. package/src/tx/tx_request.ts +2 -2
  733. package/src/tx/validator/empty_validator.ts +1 -1
  734. package/src/tx/validator/error_texts.ts +8 -1
  735. package/src/tx/validator/tx_validator.ts +1 -1
  736. package/src/update-checker/index.ts +2 -1
  737. package/src/update-checker/package_version.ts +30 -0
  738. package/src/update-checker/version_checker.ts +65 -0
  739. package/src/validators/errors.ts +9 -0
  740. package/src/validators/schemas.ts +8 -1
  741. package/src/validators/types.ts +5 -4
  742. package/src/versioning/versioning.ts +4 -1
  743. package/src/zkpassport/index.ts +11 -12
  744. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  745. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  746. package/dest/block/l2_block_code_to_purge.js +0 -55
  747. package/dest/block/l2_block_header.d.ts +0 -94
  748. package/dest/block/l2_block_header.d.ts.map +0 -1
  749. package/dest/block/l2_block_header.js +0 -160
  750. package/dest/block/l2_block_new.d.ts +0 -134
  751. package/dest/block/l2_block_new.d.ts.map +0 -1
  752. package/dest/block/l2_block_new.js +0 -155
  753. package/dest/contract/contract_class_metadata.d.ts +0 -8
  754. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  755. package/dest/contract/contract_class_metadata.js +0 -1
  756. package/dest/contract/contract_metadata.d.ts +0 -7
  757. package/dest/contract/contract_metadata.d.ts.map +0 -1
  758. package/dest/contract/contract_metadata.js +0 -1
  759. package/dest/database-version/index.d.ts +0 -2
  760. package/dest/database-version/index.d.ts.map +0 -1
  761. package/dest/database-version/index.js +0 -1
  762. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  763. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  764. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  765. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  766. package/dest/note/notes_filter.d.ts +0 -27
  767. package/dest/note/notes_filter.d.ts.map +0 -1
  768. package/dest/note/notes_filter.js +0 -11
  769. package/dest/update-checker/update-checker.d.ts +0 -49
  770. package/dest/update-checker/update-checker.d.ts.map +0 -1
  771. package/dest/update-checker/update-checker.js +0 -130
  772. package/src/block/l2_block_code_to_purge.ts +0 -80
  773. package/src/block/l2_block_header.ts +0 -255
  774. package/src/block/l2_block_new.ts +0 -211
  775. package/src/contract/contract_class_metadata.ts +0 -8
  776. package/src/contract/contract_metadata.ts +0 -7
  777. package/src/database-version/index.ts +0 -1
  778. package/src/note/notes_filter.ts +0 -38
  779. package/src/update-checker/update-checker.ts +0 -166
@@ -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
  }
@@ -2,7 +2,7 @@ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
2
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
3
 
4
4
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
5
- import type { L2BlockNew } from '../l2_block_new.js';
5
+ import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
8
8
  GENESIS_CHECKPOINT_HEADER_HASH,
@@ -109,7 +109,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
109
109
  }
110
110
 
111
111
  // Protected helper that subclasses can override for block hash computation
112
- protected computeBlockHash(block: L2BlockNew): Promise<string> {
112
+ protected computeBlockHash(block: L2Block): Promise<string> {
113
113
  return block.hash().then(hash => hash.toString());
114
114
  }
115
115
 
@@ -5,8 +5,8 @@ import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import {
6
6
  type CheckpointId,
7
7
  GENESIS_CHECKPOINT_HEADER_HASH,
8
+ L2Block,
8
9
  type L2BlockId,
9
- L2BlockNew,
10
10
  type L2TipId,
11
11
  } from '@aztec/stdlib/block';
12
12
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
@@ -31,8 +31,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
31
31
  blockToCheckpoint.clear();
32
32
  });
33
33
 
34
- const makeBlock = async (number: number): Promise<L2BlockNew> => {
35
- const block = await L2BlockNew.random(BlockNumber(number));
34
+ const makeBlock = async (number: number): Promise<L2Block> => {
35
+ const block = await L2Block.random(BlockNumber(number));
36
36
  blockHashes.set(number, (await block.hash()).toString());
37
37
  return block;
38
38
  };
@@ -74,7 +74,7 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
74
74
  checkpointed: makeTipId(checkpointed),
75
75
  });
76
76
 
77
- const makeCheckpoint = async (checkpointNumber: number, blocks: L2BlockNew[]): Promise<PublishedCheckpoint> => {
77
+ const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
78
78
  const checkpoint = await Checkpoint.random(CheckpointNumber(checkpointNumber), {
79
79
  numBlocks: blocks.length,
80
80
  startBlockNumber: blocks[0].number,
@@ -243,7 +243,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
243
243
  await tipsStore.handleBlockStreamEvent({
244
244
  type: 'chain-pruned',
245
245
  block: makeBlockId(5),
246
- reason: 'unproven',
247
246
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
248
247
  });
249
248
 
@@ -268,7 +267,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
268
267
  await tipsStore.handleBlockStreamEvent({
269
268
  type: 'chain-pruned',
270
269
  block: makeTip(0),
271
- reason: 'unproven',
272
270
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
273
271
  });
274
272
 
@@ -334,7 +332,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
334
332
  await tipsStore.handleBlockStreamEvent({
335
333
  type: 'chain-pruned',
336
334
  block: makeBlockId(5),
337
- reason: 'unproven',
338
335
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
339
336
  });
340
337
 
@@ -399,7 +396,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
399
396
  await tipsStore.handleBlockStreamEvent({
400
397
  type: 'chain-pruned',
401
398
  block: makeBlockId(3),
402
- reason: 'unproven',
403
399
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
404
400
  });
405
401
 
@@ -478,7 +474,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
478
474
  await tipsStore.handleBlockStreamEvent({
479
475
  type: 'chain-pruned',
480
476
  block: makeBlockId(3),
481
- reason: 'unproven',
482
477
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
483
478
  });
484
479
 
@@ -11,6 +11,7 @@ import {
11
11
  deserializeCheckpointInfo,
12
12
  serializeCheckpointInfo,
13
13
  } from '../checkpoint/checkpoint_info.js';
14
+ import { MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
14
15
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
15
16
 
16
17
  /** Subtype for invalid checkpoint validation results */
@@ -109,13 +110,13 @@ export function deserializeValidateCheckpointResult(bufferOrReader: Buffer | Buf
109
110
  if (valid) {
110
111
  return { valid };
111
112
  }
112
- const reason = reader.readString() as 'insufficient-attestations' | 'invalid-attestation';
113
+ const reason = reader.readString(64) as 'insufficient-attestations' | 'invalid-attestation';
113
114
  const checkpoint = deserializeCheckpointInfo(reader.readBuffer());
114
- const committee = reader.readVector(EthAddress);
115
+ const committee = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
115
116
  const epoch = EpochNumber(reader.readNumber());
116
117
  const seed = reader.readBigInt();
117
- const attestors = reader.readVector(EthAddress);
118
- const attestations = reader.readVector(CommitteeAttestation);
118
+ const attestors = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
119
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
119
120
  const invalidIndex = reader.readNumber();
120
121
  if (reason === 'insufficient-attestations') {
121
122
  return { valid, reason, checkpoint, committee, epoch, seed, attestors, attestations };
@@ -1,17 +1,28 @@
1
1
  import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
3
- import { sum } from '@aztec/foundation/collection';
2
+ import {
3
+ BlockNumber,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ IndexWithinCheckpoint,
7
+ SlotNumber,
8
+ } from '@aztec/foundation/branded-types';
9
+ import { pick, sum } from '@aztec/foundation/collection';
4
10
  import { Fr } from '@aztec/foundation/curves/bn254';
5
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
11
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
6
12
  import type { FieldsOf } from '@aztec/foundation/types';
7
13
 
8
14
  import { z } from 'zod';
9
15
 
10
- import { L2BlockNew } from '../block/l2_block_new.js';
16
+ import { L2Block } from '../block/l2_block.js';
17
+ import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
18
+ import { computeCheckpointOutHash } from '../messaging/out_hash.js';
11
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
+ import { schemas } from '../schemas/schemas.js';
12
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
22
  import type { CheckpointInfo } from './checkpoint_info.js';
14
23
 
24
+ type FieldsOfCheckpoint = Omit<FieldsOf<Checkpoint>, 'slot'>;
25
+
15
26
  export class Checkpoint {
16
27
  constructor(
17
28
  /** Snapshot of archive tree after the checkpoint is added. */
@@ -19,42 +30,59 @@ export class Checkpoint {
19
30
  /** Header of the checkpoint. */
20
31
  public header: CheckpointHeader,
21
32
  /** L2 blocks in the checkpoint. */
22
- public blocks: L2BlockNew[],
33
+ public blocks: L2Block[],
23
34
  /** Number of the checkpoint. */
24
35
  public number: CheckpointNumber,
36
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
37
+ public feeAssetPriceModifier: bigint = 0n,
25
38
  ) {}
26
39
 
40
+ get slot(): SlotNumber {
41
+ return this.header.slotNumber;
42
+ }
43
+
27
44
  static get schema() {
28
45
  return z
29
46
  .object({
30
47
  archive: AppendOnlyTreeSnapshot.schema,
31
48
  header: CheckpointHeader.schema,
32
- blocks: z.array(L2BlockNew.schema),
49
+ blocks: z.array(L2Block.schema),
33
50
  number: CheckpointNumberSchema,
51
+ feeAssetPriceModifier: schemas.BigInt,
34
52
  })
35
- .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
53
+ .transform(
54
+ ({ archive, header, blocks, number, feeAssetPriceModifier }) =>
55
+ new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier),
56
+ );
36
57
  }
37
58
 
38
- static from(fields: FieldsOf<Checkpoint>) {
59
+ static from(fields: FieldsOfCheckpoint) {
39
60
  return new Checkpoint(...Checkpoint.getFields(fields));
40
61
  }
41
62
 
42
- static getFields(fields: FieldsOf<Checkpoint>) {
43
- return [fields.archive, fields.header, fields.blocks, fields.number] as const;
63
+ static getFields(fields: FieldsOfCheckpoint) {
64
+ return [fields.archive, fields.header, fields.blocks, fields.number, fields.feeAssetPriceModifier] as const;
44
65
  }
45
66
 
46
67
  static fromBuffer(buf: Buffer | BufferReader) {
47
68
  const reader = BufferReader.asReader(buf);
48
- return new Checkpoint(
49
- reader.readObject(AppendOnlyTreeSnapshot),
50
- reader.readObject(CheckpointHeader),
51
- reader.readVector(L2BlockNew),
52
- CheckpointNumber(reader.readNumber()),
53
- );
69
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
70
+ const header = reader.readObject(CheckpointHeader);
71
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
72
+ const number = CheckpointNumber(reader.readNumber());
73
+ const feeAssetPriceModifier = reader.readInt256();
74
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
54
75
  }
55
76
 
56
77
  public toBuffer() {
57
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
78
+ return serializeToBuffer(
79
+ this.archive,
80
+ this.header,
81
+ this.blocks.length,
82
+ this.blocks,
83
+ this.number,
84
+ serializeSignedBigInt(this.feeAssetPriceModifier),
85
+ );
58
86
  }
59
87
 
60
88
  public toBlobFields(): Fr[] {
@@ -66,6 +94,16 @@ export class Checkpoint {
66
94
  return this.header.hash();
67
95
  }
68
96
 
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
+ */
102
+ public getCheckpointOutHash(): Fr {
103
+ const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
104
+ return computeCheckpointOutHash(msgs);
105
+ }
106
+
69
107
  public getState() {
70
108
  return this.blocks.at(-1)!.header.state;
71
109
  }
@@ -107,30 +145,41 @@ export class Checkpoint {
107
145
  numBlocks = 1,
108
146
  startBlockNumber = 1,
109
147
  previousArchive,
148
+ feeAssetPriceModifier = 0n,
110
149
  ...options
111
150
  }: {
112
151
  numBlocks?: number;
113
152
  startBlockNumber?: number;
114
153
  previousArchive?: AppendOnlyTreeSnapshot;
154
+ feeAssetPriceModifier?: bigint;
155
+ archive?: AppendOnlyTreeSnapshot;
115
156
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
116
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
157
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
117
158
  ) {
118
- const header = CheckpointHeader.random(options);
159
+ const headerOptions = previousArchive ? { lastArchiveRoot: previousArchive.root, ...options } : options;
160
+ const header = CheckpointHeader.random(headerOptions);
119
161
 
120
162
  // Create blocks sequentially to chain archive roots properly.
121
163
  // Each block's header.lastArchive must equal the previous block's archive.
122
- const blocks: L2BlockNew[] = [];
164
+ const blocks: L2Block[] = [];
123
165
  let lastArchive = previousArchive;
124
166
  for (let i = 0; i < numBlocks; i++) {
125
- const block = await L2BlockNew.random(BlockNumber(startBlockNumber + i), {
126
- indexWithinCheckpoint: i,
167
+ const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
168
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
127
169
  ...options,
128
170
  ...(lastArchive ? { lastArchive } : {}),
171
+ ...pick(header, 'slotNumber', 'timestamp', 'coinbase', 'feeRecipient', 'gasFees'),
129
172
  });
130
173
  lastArchive = block.archive;
131
174
  blocks.push(block);
132
175
  }
133
176
 
134
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
177
+ return new Checkpoint(
178
+ options.archive ?? AppendOnlyTreeSnapshot.random(),
179
+ header,
180
+ blocks,
181
+ checkpointNumber,
182
+ feeAssetPriceModifier,
183
+ );
135
184
  }
136
185
  }
@@ -0,0 +1,51 @@
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
+ /** Lightweight checkpoint metadata without full block data. */
18
+ export type CheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ archive: AppendOnlyTreeSnapshot;
22
+ checkpointOutHash: Fr;
23
+ startBlock: BlockNumber;
24
+ blockCount: number;
25
+ attestations: CommitteeAttestation[];
26
+ l1: L1PublishedData;
27
+ };
28
+
29
+ export const CheckpointDataSchema = z
30
+ .object({
31
+ checkpointNumber: CheckpointNumberSchema,
32
+ header: CheckpointHeader.schema,
33
+ archive: AppendOnlyTreeSnapshot.schema,
34
+ checkpointOutHash: schemas.Fr,
35
+ startBlock: BlockNumberSchema,
36
+ blockCount: schemas.Integer,
37
+ attestations: z.array(CommitteeAttestation.schema),
38
+ l1: L1PublishedData.schema,
39
+ })
40
+ .transform(
41
+ (obj): CheckpointData => ({
42
+ checkpointNumber: obj.checkpointNumber,
43
+ header: obj.header,
44
+ archive: obj.archive,
45
+ checkpointOutHash: obj.checkpointOutHash,
46
+ startBlock: obj.startBlock,
47
+ blockCount: obj.blockCount,
48
+ attestations: obj.attestations,
49
+ l1: obj.l1,
50
+ }),
51
+ );
@@ -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';
@@ -8,6 +8,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
8
8
  import { z } from 'zod';
9
9
 
10
10
  import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
11
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
11
12
  import { Checkpoint } from './checkpoint.js';
12
13
 
13
14
  export class L1PublishedData {
@@ -42,7 +43,7 @@ export class L1PublishedData {
42
43
  static fromBuffer(bufferOrReader: Buffer | BufferReader): L1PublishedData {
43
44
  const reader = BufferReader.asReader(bufferOrReader);
44
45
  const l1BlockNumber = reader.readBigInt();
45
- const l1BlockHash = reader.readString();
46
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
46
47
  const l1Timestamp = reader.readBigInt();
47
48
  return new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash);
48
49
  }
@@ -54,9 +55,11 @@ export class L1PublishedData {
54
55
 
55
56
  export class PublishedCheckpoint {
56
57
  constructor(
58
+ /** The checkpoint itself. */
57
59
  public checkpoint: Checkpoint,
60
+ /** Info on when this checkpoint was published on L1. */
58
61
  public l1: L1PublishedData,
59
- // The attestations for the last block in the checkpoint.
62
+ /** The attestations for the last block in the checkpoint. */
60
63
  public attestations: CommitteeAttestation[],
61
64
  ) {}
62
65
 
@@ -82,9 +85,9 @@ export class PublishedCheckpoint {
82
85
  const reader = BufferReader.asReader(bufferOrReader);
83
86
  const checkpoint = reader.readObject(Checkpoint);
84
87
  const l1BlockNumber = reader.readBigInt();
85
- const l1BlockHash = reader.readString();
88
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
86
89
  const l1Timestamp = reader.readBigInt();
87
- const attestations = reader.readVector(CommitteeAttestation);
90
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
88
91
  return new PublishedCheckpoint(
89
92
  checkpoint,
90
93
  new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),