@aztec/stdlib 3.0.3 → 3.9.9-nightly.20260312

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 (859) hide show
  1. package/dest/abi/abi.d.ts +602 -4
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +7 -7
  4. package/dest/abi/contract_artifact.d.ts +2 -2
  5. package/dest/abi/contract_artifact.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.js +1 -1
  7. package/dest/abi/decoder.d.ts +2 -2
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +7 -5
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_call.d.ts +47 -9
  17. package/dest/abi/function_call.d.ts.map +1 -1
  18. package/dest/abi/function_call.js +20 -3
  19. package/dest/abi/function_selector.d.ts +2 -1
  20. package/dest/abi/function_selector.d.ts.map +1 -1
  21. package/dest/abi/function_selector.js +7 -0
  22. package/dest/abi/selector.js +3 -1
  23. package/dest/abi/utils.d.ts +20 -1
  24. package/dest/abi/utils.d.ts.map +1 -1
  25. package/dest/abi/utils.js +22 -0
  26. package/dest/auth_witness/auth_witness.d.ts +2 -1
  27. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  28. package/dest/auth_witness/auth_witness.js +3 -3
  29. package/dest/avm/avm.d.ts +362 -362
  30. package/dest/avm/avm.js +1 -1
  31. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  32. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  33. package/dest/avm/avm_accumulated_data.js +5 -2
  34. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  35. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  36. package/dest/avm/avm_proving_request.d.ts +465 -465
  37. package/dest/avm/contract_storage_read.d.ts +13 -1
  38. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  39. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  40. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  41. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  42. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  43. package/dest/avm/public_data_read.d.ts +10 -1
  44. package/dest/avm/public_data_read.d.ts.map +1 -1
  45. package/dest/avm/public_data_update_request.d.ts +10 -1
  46. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  47. package/dest/avm/public_data_update_request.js +3 -1
  48. package/dest/avm/public_data_write.d.ts +7 -1
  49. package/dest/avm/public_data_write.d.ts.map +1 -1
  50. package/dest/avm/public_inner_call_request.d.ts +4 -1
  51. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  52. package/dest/avm/public_inner_call_request.js +3 -1
  53. package/dest/avm/revert_code.d.ts +19 -4
  54. package/dest/avm/revert_code.d.ts.map +1 -1
  55. package/dest/avm/revert_code.js +18 -6
  56. package/dest/aztec-address/index.js +4 -2
  57. package/dest/block/attestation_info.d.ts +5 -5
  58. package/dest/block/attestation_info.d.ts.map +1 -1
  59. package/dest/block/attestation_info.js +4 -4
  60. package/dest/block/block_data.d.ts +52 -0
  61. package/dest/block/block_data.d.ts.map +1 -0
  62. package/dest/block/block_data.js +12 -0
  63. package/dest/block/block_hash.d.ts +18 -14
  64. package/dest/block/block_hash.d.ts.map +1 -1
  65. package/dest/block/block_hash.js +22 -20
  66. package/dest/block/block_parameter.d.ts +4 -3
  67. package/dest/block/block_parameter.d.ts.map +1 -1
  68. package/dest/block/block_parameter.js +2 -0
  69. package/dest/block/body.d.ts +1 -1
  70. package/dest/block/body.d.ts.map +1 -1
  71. package/dest/block/body.js +5 -2
  72. package/dest/block/checkpointed_l2_block.d.ts +150 -0
  73. package/dest/block/checkpointed_l2_block.d.ts.map +1 -0
  74. package/dest/block/checkpointed_l2_block.js +46 -0
  75. package/dest/block/in_block.d.ts +9 -9
  76. package/dest/block/in_block.d.ts.map +1 -1
  77. package/dest/block/in_block.js +5 -5
  78. package/dest/block/index.d.ts +3 -4
  79. package/dest/block/index.d.ts.map +1 -1
  80. package/dest/block/index.js +2 -3
  81. package/dest/block/l2_block.d.ts +65 -57
  82. package/dest/block/l2_block.d.ts.map +1 -1
  83. package/dest/block/l2_block.js +73 -107
  84. package/dest/block/l2_block_source.d.ts +372 -92
  85. package/dest/block/l2_block_source.d.ts.map +1 -1
  86. package/dest/block/l2_block_source.js +25 -6
  87. package/dest/block/l2_block_stream/index.d.ts +2 -1
  88. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/index.js +1 -0
  90. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  91. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_block_stream.d.ts +13 -3
  93. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  94. package/dest/block/l2_block_stream/l2_block_stream.js +125 -32
  95. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  96. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  97. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  98. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  99. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  100. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +478 -41
  104. package/dest/block/validate_block_result.d.ts +24 -24
  105. package/dest/block/validate_block_result.d.ts.map +1 -1
  106. package/dest/block/validate_block_result.js +18 -17
  107. package/dest/checkpoint/checkpoint.d.ts +58 -18
  108. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint.js +83 -16
  110. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  111. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  112. package/dest/checkpoint/checkpoint_data.js +26 -0
  113. package/dest/checkpoint/checkpoint_info.d.ts +38 -0
  114. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -0
  115. package/dest/checkpoint/checkpoint_info.js +34 -0
  116. package/dest/checkpoint/index.d.ts +4 -1
  117. package/dest/checkpoint/index.d.ts.map +1 -1
  118. package/dest/checkpoint/index.js +3 -0
  119. package/dest/checkpoint/published_checkpoint.d.ts +46 -23
  120. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  121. package/dest/checkpoint/published_checkpoint.js +15 -5
  122. package/dest/checkpoint/validate.d.ts +36 -0
  123. package/dest/checkpoint/validate.d.ts.map +1 -0
  124. package/dest/checkpoint/validate.js +120 -0
  125. package/dest/config/index.d.ts +2 -1
  126. package/dest/config/index.d.ts.map +1 -1
  127. package/dest/config/index.js +1 -0
  128. package/dest/config/node-rpc-config.js +1 -1
  129. package/dest/config/sequencer-config.d.ts +10 -0
  130. package/dest/config/sequencer-config.d.ts.map +1 -0
  131. package/dest/config/sequencer-config.js +23 -0
  132. package/dest/contract/complete_address.d.ts +4 -1
  133. package/dest/contract/complete_address.d.ts.map +1 -1
  134. package/dest/contract/contract_address.js +4 -4
  135. package/dest/contract/contract_class.d.ts +2 -3
  136. package/dest/contract/contract_class.d.ts.map +1 -1
  137. package/dest/contract/contract_class_id.d.ts +2 -2
  138. package/dest/contract/contract_class_id.d.ts.map +1 -1
  139. package/dest/contract/contract_class_id.js +6 -5
  140. package/dest/contract/contract_deployment_data.d.ts +5 -5
  141. package/dest/contract/index.d.ts +1 -3
  142. package/dest/contract/index.d.ts.map +1 -1
  143. package/dest/contract/index.js +0 -2
  144. package/dest/contract/interfaces/contract_class.d.ts +11 -13
  145. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  146. package/dest/contract/interfaces/contract_class.js +18 -18
  147. package/dest/contract/interfaces/contract_instance.d.ts +28 -29
  148. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  149. package/dest/contract/interfaces/contract_instance.js +5 -5
  150. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -7
  151. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  152. package/dest/contract/interfaces/contract_instance_update.js +5 -5
  153. package/dest/contract/interfaces/node-info.d.ts +3 -1
  154. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  155. package/dest/contract/interfaces/node-info.js +2 -1
  156. package/dest/contract/private_function.d.ts +1 -1
  157. package/dest/contract/private_function.d.ts.map +1 -1
  158. package/dest/contract/private_function.js +3 -4
  159. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  160. package/dest/contract/private_function_membership_proof.js +1 -1
  161. package/dest/database-version/database_version.d.ts +58 -0
  162. package/dest/database-version/database_version.d.ts.map +1 -0
  163. package/dest/database-version/database_version.js +69 -0
  164. package/dest/database-version/version_manager.d.ts +3 -49
  165. package/dest/database-version/version_manager.d.ts.map +1 -1
  166. package/dest/database-version/version_manager.js +1 -64
  167. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  168. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  169. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  170. package/dest/deserialization/index.d.ts +11 -0
  171. package/dest/deserialization/index.d.ts.map +1 -0
  172. package/dest/deserialization/index.js +10 -0
  173. package/dest/epoch-helpers/index.d.ts +11 -1
  174. package/dest/epoch-helpers/index.d.ts.map +1 -1
  175. package/dest/epoch-helpers/index.js +14 -6
  176. package/dest/errors/proving_error.d.ts +2 -2
  177. package/dest/errors/proving_error.d.ts.map +1 -1
  178. package/dest/file-store/local.d.ts +3 -3
  179. package/dest/file-store/local.d.ts.map +1 -1
  180. package/dest/file-store/local.js +13 -4
  181. package/dest/file-store/s3.d.ts +1 -1
  182. package/dest/file-store/s3.d.ts.map +1 -1
  183. package/dest/file-store/s3.js +11 -3
  184. package/dest/gas/gas.js +3 -1
  185. package/dest/gas/gas_fees.js +3 -1
  186. package/dest/hash/hash.d.ts +2 -9
  187. package/dest/hash/hash.d.ts.map +1 -1
  188. package/dest/hash/hash.js +14 -20
  189. package/dest/hash/map_slot.d.ts +1 -1
  190. package/dest/hash/map_slot.d.ts.map +1 -1
  191. package/dest/hash/map_slot.js +4 -3
  192. package/dest/interfaces/allowed_element.d.ts +30 -25
  193. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  194. package/dest/interfaces/allowed_element.js +11 -11
  195. package/dest/interfaces/api_limit.d.ts +3 -1
  196. package/dest/interfaces/api_limit.d.ts.map +1 -1
  197. package/dest/interfaces/api_limit.js +2 -0
  198. package/dest/interfaces/archiver.d.ts +6 -6
  199. package/dest/interfaces/archiver.d.ts.map +1 -1
  200. package/dest/interfaces/archiver.js +33 -17
  201. package/dest/interfaces/aztec-node-admin.d.ts +202 -65
  202. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  203. package/dest/interfaces/aztec-node-admin.js +15 -7
  204. package/dest/interfaces/aztec-node.d.ts +86 -83
  205. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  206. package/dest/interfaces/aztec-node.js +18 -18
  207. package/dest/interfaces/block-builder.d.ts +27 -15
  208. package/dest/interfaces/block-builder.d.ts.map +1 -1
  209. package/dest/interfaces/block-builder.js +24 -1
  210. package/dest/interfaces/configs.d.ts +132 -53
  211. package/dest/interfaces/configs.d.ts.map +1 -1
  212. package/dest/interfaces/configs.js +22 -8
  213. package/dest/interfaces/get_logs_response.d.ts +27 -5
  214. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  215. package/dest/interfaces/get_logs_response.js +5 -4
  216. package/dest/interfaces/l2_logs_source.d.ts +21 -8
  217. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  218. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  219. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  220. package/dest/interfaces/p2p.d.ts +9 -16
  221. package/dest/interfaces/p2p.d.ts.map +1 -1
  222. package/dest/interfaces/p2p.js +3 -4
  223. package/dest/interfaces/prover-broker.d.ts +16 -1
  224. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  225. package/dest/interfaces/prover-broker.js +4 -1
  226. package/dest/interfaces/prover-client.d.ts +24 -3
  227. package/dest/interfaces/prover-client.d.ts.map +1 -1
  228. package/dest/interfaces/prover-client.js +22 -4
  229. package/dest/interfaces/proving-job.d.ts +218 -218
  230. package/dest/interfaces/proving-job.d.ts.map +1 -1
  231. package/dest/interfaces/proving-job.js +1 -7
  232. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  233. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  234. package/dest/interfaces/slasher.d.ts +9 -1
  235. package/dest/interfaces/slasher.d.ts.map +1 -1
  236. package/dest/interfaces/slasher.js +5 -3
  237. package/dest/interfaces/tx_provider.d.ts +3 -3
  238. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  239. package/dest/interfaces/validator.d.ts +224 -47
  240. package/dest/interfaces/validator.d.ts.map +1 -1
  241. package/dest/interfaces/validator.js +17 -8
  242. package/dest/interfaces/world_state.d.ts +17 -8
  243. package/dest/interfaces/world_state.d.ts.map +1 -1
  244. package/dest/kernel/claimed_length_array.js +3 -1
  245. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +7 -6
  246. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  247. package/dest/kernel/hints/build_note_hash_read_request_hints.js +31 -19
  248. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  249. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  250. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  251. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  252. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  253. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  254. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
  255. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  256. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -3
  257. package/dest/kernel/hints/index.d.ts +2 -2
  258. package/dest/kernel/hints/index.js +2 -2
  259. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  260. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  261. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  262. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  263. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  264. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  265. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  266. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  267. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  268. package/dest/kernel/hints/read_request.d.ts +7 -1
  269. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  270. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  271. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  272. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  273. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  274. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  275. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  276. package/dest/kernel/log_hash.js +3 -1
  277. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  278. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  279. package/dest/kernel/private_call_data.d.ts +25 -1
  280. package/dest/kernel/private_call_data.d.ts.map +1 -1
  281. package/dest/kernel/private_call_request.d.ts +16 -1
  282. package/dest/kernel/private_call_request.d.ts.map +1 -1
  283. package/dest/kernel/private_circuit_public_inputs.d.ts +126 -53
  284. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  285. package/dest/kernel/private_circuit_public_inputs.js +71 -71
  286. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  287. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  288. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  289. package/dest/kernel/private_kernel_data.d.ts +7 -1
  290. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  291. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  292. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  293. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  294. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  295. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  296. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  297. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  298. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  299. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  300. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
  301. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  302. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  303. package/dest/kernel/private_log_data.js +5 -2
  304. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  305. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  306. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  307. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  308. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  309. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  310. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  311. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  312. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  313. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  314. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  315. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  316. package/dest/kernel/private_validation_requests.d.ts +13 -4
  317. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  318. package/dest/kernel/private_validation_requests.js +12 -10
  319. package/dest/kernel/public_call_request.d.ts +22 -1
  320. package/dest/kernel/public_call_request.d.ts.map +1 -1
  321. package/dest/kernel/public_call_request.js +5 -2
  322. package/dest/kernel/utils/optional_number.d.ts +7 -1
  323. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  324. package/dest/keys/derivation.d.ts +3 -3
  325. package/dest/keys/derivation.js +15 -15
  326. package/dest/keys/key_types.d.ts +3 -3
  327. package/dest/keys/key_types.d.ts.map +1 -1
  328. package/dest/keys/public_keys.d.ts +5 -1
  329. package/dest/keys/public_keys.d.ts.map +1 -1
  330. package/dest/keys/public_keys.js +2 -2
  331. package/dest/keys/utils.d.ts +1 -1
  332. package/dest/keys/utils.d.ts.map +1 -1
  333. package/dest/keys/utils.js +8 -4
  334. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  335. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  336. package/dest/l1-contracts/slash_factory.js +1 -0
  337. package/dest/logs/contract_class_log.js +3 -1
  338. package/dest/logs/debug_log_store.d.ts +30 -0
  339. package/dest/logs/debug_log_store.d.ts.map +1 -0
  340. package/dest/logs/debug_log_store.js +30 -0
  341. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  342. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  343. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  344. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  345. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  346. package/dest/logs/extended_public_log.d.ts +17 -3
  347. package/dest/logs/extended_public_log.d.ts.map +1 -1
  348. package/dest/logs/index.d.ts +5 -3
  349. package/dest/logs/index.d.ts.map +1 -1
  350. package/dest/logs/index.js +4 -2
  351. package/dest/logs/log_id.d.ts +22 -7
  352. package/dest/logs/log_id.d.ts.map +1 -1
  353. package/dest/logs/log_id.js +23 -13
  354. package/dest/logs/pre_tag.d.ts +16 -11
  355. package/dest/logs/pre_tag.d.ts.map +1 -1
  356. package/dest/logs/pre_tag.js +2 -2
  357. package/dest/logs/private_log.d.ts +2 -2
  358. package/dest/logs/private_log.d.ts.map +1 -1
  359. package/dest/logs/private_log.js +5 -2
  360. package/dest/logs/public_log.d.ts +4 -3
  361. package/dest/logs/public_log.d.ts.map +1 -1
  362. package/dest/logs/public_log.js +5 -2
  363. package/dest/logs/siloed_tag.d.ts +25 -0
  364. package/dest/logs/siloed_tag.d.ts.map +1 -0
  365. package/dest/logs/siloed_tag.js +32 -0
  366. package/dest/logs/tag.d.ts +21 -0
  367. package/dest/logs/tag.d.ts.map +1 -0
  368. package/dest/logs/tag.js +30 -0
  369. package/dest/logs/tx_scoped_l2_log.d.ts +24 -33
  370. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  371. package/dest/logs/tx_scoped_l2_log.js +37 -43
  372. package/dest/messaging/in_hash.d.ts +4 -2
  373. package/dest/messaging/in_hash.d.ts.map +1 -1
  374. package/dest/messaging/in_hash.js +3 -1
  375. package/dest/messaging/inbox_leaf.d.ts +3 -1
  376. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  377. package/dest/messaging/l1_actor.d.ts +7 -1
  378. package/dest/messaging/l1_actor.d.ts.map +1 -1
  379. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  380. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  381. package/dest/messaging/l2_actor.d.ts +7 -1
  382. package/dest/messaging/l2_actor.d.ts.map +1 -1
  383. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  384. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  385. package/dest/messaging/l2_to_l1_membership.js +160 -42
  386. package/dest/messaging/out_hash.d.ts +41 -3
  387. package/dest/messaging/out_hash.d.ts.map +1 -1
  388. package/dest/messaging/out_hash.js +54 -19
  389. package/dest/note/index.d.ts +1 -2
  390. package/dest/note/index.d.ts.map +1 -1
  391. package/dest/note/index.js +0 -1
  392. package/dest/note/note_dao.d.ts +36 -5
  393. package/dest/note/note_dao.d.ts.map +1 -1
  394. package/dest/note/note_dao.js +15 -12
  395. package/dest/p2p/attestation_utils.d.ts +13 -3
  396. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  397. package/dest/p2p/attestation_utils.js +46 -1
  398. package/dest/p2p/block_proposal.d.ts +102 -23
  399. package/dest/p2p/block_proposal.d.ts.map +1 -1
  400. package/dest/p2p/block_proposal.js +138 -39
  401. package/dest/p2p/checkpoint_attestation.d.ts +82 -0
  402. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  403. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  404. package/dest/p2p/checkpoint_proposal.d.ts +174 -0
  405. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  406. package/dest/p2p/checkpoint_proposal.js +231 -0
  407. package/dest/p2p/client_type.d.ts +2 -5
  408. package/dest/p2p/client_type.d.ts.map +1 -1
  409. package/dest/p2p/client_type.js +0 -7
  410. package/dest/p2p/consensus_payload.d.ts +20 -11
  411. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  412. package/dest/p2p/consensus_payload.js +24 -19
  413. package/dest/p2p/constants.d.ts +5 -0
  414. package/dest/p2p/constants.d.ts.map +1 -0
  415. package/dest/p2p/constants.js +3 -0
  416. package/dest/p2p/gossipable.d.ts +4 -3
  417. package/dest/p2p/gossipable.d.ts.map +1 -1
  418. package/dest/p2p/gossipable.js +16 -5
  419. package/dest/p2p/index.d.ts +5 -3
  420. package/dest/p2p/index.d.ts.map +1 -1
  421. package/dest/p2p/index.js +4 -2
  422. package/dest/p2p/message_validator.d.ts +18 -3
  423. package/dest/p2p/message_validator.d.ts.map +1 -1
  424. package/dest/p2p/message_validator.js +2 -1
  425. package/dest/p2p/peer_error.d.ts +3 -1
  426. package/dest/p2p/peer_error.d.ts.map +1 -1
  427. package/dest/p2p/peer_error.js +5 -0
  428. package/dest/p2p/signature_utils.d.ts +5 -3
  429. package/dest/p2p/signature_utils.d.ts.map +1 -1
  430. package/dest/p2p/signature_utils.js +3 -1
  431. package/dest/p2p/signed_txs.d.ts +42 -0
  432. package/dest/p2p/signed_txs.d.ts.map +1 -0
  433. package/dest/p2p/signed_txs.js +75 -0
  434. package/dest/p2p/topic_type.d.ts +5 -5
  435. package/dest/p2p/topic_type.d.ts.map +1 -1
  436. package/dest/p2p/topic_type.js +9 -19
  437. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  438. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  439. package/dest/parity/parity_public_inputs.d.ts +4 -1
  440. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  441. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  442. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  443. package/dest/proofs/chonk_proof.d.ts +1 -1
  444. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  445. package/dest/proofs/chonk_proof.js +9 -4
  446. package/dest/proofs/proof.d.ts +4 -1
  447. package/dest/proofs/proof.d.ts.map +1 -1
  448. package/dest/proofs/recursive_proof.d.ts +10 -1
  449. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  450. package/dest/rollup/avm_proof_data.d.ts +1 -3
  451. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  452. package/dest/rollup/avm_proof_data.js +1 -9
  453. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  454. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  455. package/dest/rollup/block_constant_data.d.ts +12 -1
  456. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  457. package/dest/rollup/block_headers_hash.js +1 -1
  458. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  459. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  460. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  461. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  462. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  463. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  464. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  465. package/dest/rollup/checkpoint_constant_data.d.ts +11 -1
  466. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  467. package/dest/rollup/checkpoint_constant_data.js +4 -1
  468. package/dest/rollup/checkpoint_header.d.ts +46 -12
  469. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  470. package/dest/rollup/checkpoint_header.js +53 -20
  471. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  472. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  473. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +46 -6
  474. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  475. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
  476. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  477. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  478. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  479. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  480. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  481. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  482. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  483. package/dest/rollup/root_rollup_public_inputs.d.ts +21 -6
  484. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  485. package/dest/rollup/root_rollup_public_inputs.js +10 -4
  486. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  487. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  488. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  489. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  490. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  491. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  492. package/dest/schemas/schemas.d.ts +5 -3
  493. package/dest/schemas/schemas.d.ts.map +1 -1
  494. package/dest/schemas/schemas.js +2 -1
  495. package/dest/slashing/empire.d.ts +1 -1
  496. package/dest/slashing/empire.d.ts.map +1 -1
  497. package/dest/slashing/empire.js +2 -0
  498. package/dest/slashing/helpers.d.ts +2 -2
  499. package/dest/slashing/helpers.d.ts.map +1 -1
  500. package/dest/slashing/helpers.js +6 -0
  501. package/dest/slashing/tally.d.ts +8 -2
  502. package/dest/slashing/tally.d.ts.map +1 -1
  503. package/dest/slashing/tally.js +35 -3
  504. package/dest/slashing/types.d.ts +10 -7
  505. package/dest/slashing/types.d.ts.map +1 -1
  506. package/dest/slashing/types.js +18 -6
  507. package/dest/snapshots/types.d.ts +1 -1
  508. package/dest/snapshots/types.d.ts.map +1 -1
  509. package/dest/snapshots/types.js +5 -5
  510. package/dest/stats/stats.d.ts +10 -8
  511. package/dest/stats/stats.d.ts.map +1 -1
  512. package/dest/tests/factories.d.ts +41 -10
  513. package/dest/tests/factories.d.ts.map +1 -1
  514. package/dest/tests/factories.js +99 -36
  515. package/dest/tests/jest.js +1 -1
  516. package/dest/tests/mocks.d.ts +81 -20
  517. package/dest/tests/mocks.d.ts.map +1 -1
  518. package/dest/tests/mocks.js +160 -71
  519. package/dest/timetable/index.d.ts +37 -0
  520. package/dest/timetable/index.d.ts.map +1 -0
  521. package/dest/timetable/index.js +39 -0
  522. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  523. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  524. package/dest/trees/append_only_tree_snapshot.js +3 -1
  525. package/dest/trees/nullifier_leaf.d.ts +13 -1
  526. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  527. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  528. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  529. package/dest/trees/public_data_leaf.d.ts +17 -1
  530. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  531. package/dest/trees/public_data_leaf.js +7 -6
  532. package/dest/trees/public_data_witness.d.ts +11 -1
  533. package/dest/trees/public_data_witness.d.ts.map +1 -1
  534. package/dest/tx/block_header.d.ts +23 -8
  535. package/dest/tx/block_header.d.ts.map +1 -1
  536. package/dest/tx/block_header.js +17 -3
  537. package/dest/tx/call_context.d.ts +13 -1
  538. package/dest/tx/call_context.d.ts.map +1 -1
  539. package/dest/tx/call_context.js +3 -1
  540. package/dest/tx/capsule.d.ts +4 -1
  541. package/dest/tx/capsule.d.ts.map +1 -1
  542. package/dest/tx/execution_payload.d.ts +9 -1
  543. package/dest/tx/execution_payload.d.ts.map +1 -1
  544. package/dest/tx/function_data.d.ts +4 -2
  545. package/dest/tx/function_data.d.ts.map +1 -1
  546. package/dest/tx/global_variable_builder.d.ts +5 -3
  547. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  548. package/dest/tx/global_variables.d.ts +14 -1
  549. package/dest/tx/global_variables.d.ts.map +1 -1
  550. package/dest/tx/global_variables.js +3 -1
  551. package/dest/tx/hashed_values.d.ts +7 -1
  552. package/dest/tx/hashed_values.d.ts.map +1 -1
  553. package/dest/tx/in_tx.d.ts +4 -4
  554. package/dest/tx/index.d.ts +1 -2
  555. package/dest/tx/index.d.ts.map +1 -1
  556. package/dest/tx/index.js +0 -1
  557. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  558. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  559. package/dest/tx/indexed_tx_effect.js +3 -2
  560. package/dest/tx/partial_state_reference.d.ts +4 -1
  561. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  562. package/dest/tx/private_execution_result.d.ts +24 -7
  563. package/dest/tx/private_execution_result.d.ts.map +1 -1
  564. package/dest/tx/private_execution_result.js +4 -21
  565. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  566. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  567. package/dest/tx/profiling.d.ts +152 -29
  568. package/dest/tx/profiling.d.ts.map +1 -1
  569. package/dest/tx/profiling.js +47 -10
  570. package/dest/tx/protocol_contracts.d.ts +2 -2
  571. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  572. package/dest/tx/protocol_contracts.js +2 -2
  573. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  574. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  575. package/dest/tx/public_call_request_with_calldata.js +3 -1
  576. package/dest/tx/public_simulation_output.d.ts +4 -2
  577. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  578. package/dest/tx/public_simulation_output.js +7 -3
  579. package/dest/tx/simulated_tx.d.ts +1035 -8
  580. package/dest/tx/simulated_tx.d.ts.map +1 -1
  581. package/dest/tx/simulated_tx.js +4 -1
  582. package/dest/tx/state_reference.d.ts +3 -1
  583. package/dest/tx/state_reference.d.ts.map +1 -1
  584. package/dest/tx/state_reference.js +3 -1
  585. package/dest/tx/tree_snapshots.js +3 -1
  586. package/dest/tx/tx.d.ts +38 -7
  587. package/dest/tx/tx.d.ts.map +1 -1
  588. package/dest/tx/tx.js +36 -12
  589. package/dest/tx/tx_context.d.ts +2 -1
  590. package/dest/tx/tx_context.d.ts.map +1 -1
  591. package/dest/tx/tx_effect.d.ts +32 -6
  592. package/dest/tx/tx_effect.d.ts.map +1 -1
  593. package/dest/tx/tx_effect.js +6 -9
  594. package/dest/tx/tx_execution_request.d.ts +30 -1
  595. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  596. package/dest/tx/tx_execution_request.js +6 -2
  597. package/dest/tx/tx_hash.d.ts +2 -1
  598. package/dest/tx/tx_hash.d.ts.map +1 -1
  599. package/dest/tx/tx_receipt.d.ts +62 -14
  600. package/dest/tx/tx_receipt.d.ts.map +1 -1
  601. package/dest/tx/tx_receipt.js +55 -16
  602. package/dest/tx/tx_request.d.ts +6 -1
  603. package/dest/tx/tx_request.d.ts.map +1 -1
  604. package/dest/tx/tx_request.js +2 -2
  605. package/dest/tx/validator/empty_validator.d.ts +2 -2
  606. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  607. package/dest/tx/validator/error_texts.d.ts +7 -2
  608. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  609. package/dest/tx/validator/error_texts.js +7 -1
  610. package/dest/tx/validator/tx_validator.d.ts +2 -5
  611. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  612. package/dest/tx/validator/tx_validator.js +4 -4
  613. package/dest/types/shared.d.ts +4 -1
  614. package/dest/types/shared.d.ts.map +1 -1
  615. package/dest/update-checker/index.d.ts +3 -2
  616. package/dest/update-checker/index.d.ts.map +1 -1
  617. package/dest/update-checker/index.js +2 -1
  618. package/dest/update-checker/package_version.d.ts +3 -0
  619. package/dest/update-checker/package_version.d.ts.map +1 -0
  620. package/dest/update-checker/package_version.js +24 -0
  621. package/dest/update-checker/version_checker.d.ts +25 -0
  622. package/dest/update-checker/version_checker.d.ts.map +1 -0
  623. package/dest/update-checker/version_checker.js +50 -0
  624. package/dest/validators/errors.d.ts +6 -1
  625. package/dest/validators/errors.d.ts.map +1 -1
  626. package/dest/validators/errors.js +7 -0
  627. package/dest/validators/schemas.d.ts +38 -38
  628. package/dest/validators/schemas.d.ts.map +1 -1
  629. package/dest/validators/schemas.js +17 -16
  630. package/dest/validators/types.d.ts +3 -3
  631. package/dest/validators/types.d.ts.map +1 -1
  632. package/dest/vks/verification_key.d.ts +22 -1
  633. package/dest/vks/verification_key.d.ts.map +1 -1
  634. package/dest/vks/vk_data.d.ts +7 -1
  635. package/dest/vks/vk_data.d.ts.map +1 -1
  636. package/dest/zkpassport/index.d.ts +3 -4
  637. package/dest/zkpassport/index.d.ts.map +1 -1
  638. package/dest/zkpassport/index.js +9 -9
  639. package/package.json +28 -14
  640. package/src/abi/abi.ts +39 -33
  641. package/src/abi/contract_artifact.ts +10 -10
  642. package/src/abi/decoder.ts +15 -6
  643. package/src/abi/encoder.ts +49 -6
  644. package/src/abi/event_metadata_definition.ts +2 -0
  645. package/src/abi/function_call.ts +25 -3
  646. package/src/abi/function_selector.ts +8 -0
  647. package/src/abi/utils.ts +42 -0
  648. package/src/auth_witness/auth_witness.ts +3 -3
  649. package/src/avm/avm.ts +1 -1
  650. package/src/avm/revert_code.ts +15 -0
  651. package/src/block/attestation_info.ts +9 -6
  652. package/src/block/block_data.ts +26 -0
  653. package/src/block/block_hash.ts +26 -25
  654. package/src/block/block_parameter.ts +4 -2
  655. package/src/block/body.ts +2 -1
  656. package/src/block/checkpointed_l2_block.ts +70 -0
  657. package/src/block/in_block.ts +6 -6
  658. package/src/block/index.ts +2 -3
  659. package/src/block/l2_block.ts +112 -147
  660. package/src/block/l2_block_source.ts +207 -70
  661. package/src/block/l2_block_stream/index.ts +1 -0
  662. package/src/block/l2_block_stream/interfaces.ts +15 -4
  663. package/src/block/l2_block_stream/l2_block_stream.ts +160 -39
  664. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  665. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  666. package/src/block/test/l2_tips_store_test_suite.ts +480 -35
  667. package/src/block/validate_block_result.ts +40 -35
  668. package/src/checkpoint/checkpoint.ts +120 -23
  669. package/src/checkpoint/checkpoint_data.ts +51 -0
  670. package/src/checkpoint/checkpoint_info.ts +52 -0
  671. package/src/checkpoint/index.ts +3 -0
  672. package/src/checkpoint/published_checkpoint.ts +25 -8
  673. package/src/checkpoint/validate.ts +230 -0
  674. package/src/config/index.ts +1 -0
  675. package/src/config/node-rpc-config.ts +1 -1
  676. package/src/config/sequencer-config.ts +34 -0
  677. package/src/contract/contract_address.ts +4 -4
  678. package/src/contract/contract_class.ts +3 -3
  679. package/src/contract/contract_class_id.ts +6 -5
  680. package/src/contract/index.ts +0 -2
  681. package/src/contract/interfaces/contract_class.ts +59 -46
  682. package/src/contract/interfaces/contract_instance.ts +15 -13
  683. package/src/contract/interfaces/contract_instance_update.ts +11 -9
  684. package/src/contract/interfaces/node-info.ts +3 -0
  685. package/src/contract/private_function.ts +3 -4
  686. package/src/contract/private_function_membership_proof.ts +1 -1
  687. package/src/database-version/database_version.ts +87 -0
  688. package/src/database-version/version_manager.ts +1 -77
  689. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  690. package/src/deserialization/index.ts +21 -0
  691. package/src/epoch-helpers/index.ts +27 -10
  692. package/src/file-store/local.ts +15 -5
  693. package/src/file-store/s3.ts +12 -3
  694. package/src/hash/hash.ts +12 -19
  695. package/src/hash/map_slot.ts +3 -2
  696. package/src/interfaces/allowed_element.ts +34 -12
  697. package/src/interfaces/api_limit.ts +2 -0
  698. package/src/interfaces/archiver.ts +41 -25
  699. package/src/interfaces/aztec-node-admin.ts +33 -6
  700. package/src/interfaces/aztec-node.ts +133 -139
  701. package/src/interfaces/block-builder.ts +76 -25
  702. package/src/interfaces/configs.ts +104 -37
  703. package/src/interfaces/get_logs_response.ts +13 -9
  704. package/src/interfaces/l2_logs_source.ts +25 -7
  705. package/src/interfaces/merkle_tree_operations.ts +4 -1
  706. package/src/interfaces/p2p.ts +10 -25
  707. package/src/interfaces/prover-broker.ts +22 -0
  708. package/src/interfaces/prover-client.ts +43 -10
  709. package/src/interfaces/proving-job.ts +2 -11
  710. package/src/interfaces/server_circuit_prover.ts +3 -3
  711. package/src/interfaces/slasher.ts +28 -22
  712. package/src/interfaces/tx_provider.ts +2 -2
  713. package/src/interfaces/validator.ts +110 -32
  714. package/src/interfaces/world_state.ts +16 -9
  715. package/src/kernel/hints/build_note_hash_read_request_hints.ts +34 -30
  716. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
  717. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  718. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +2 -4
  719. package/src/kernel/hints/index.ts +2 -2
  720. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  721. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  722. package/src/kernel/private_circuit_public_inputs.ts +99 -99
  723. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  724. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  725. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  726. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  727. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  728. package/src/kernel/private_validation_requests.ts +8 -8
  729. package/src/keys/derivation.ts +15 -15
  730. package/src/keys/key_types.ts +6 -2
  731. package/src/keys/public_keys.ts +2 -2
  732. package/src/keys/utils.ts +8 -4
  733. package/src/l1-contracts/slash_factory.ts +1 -0
  734. package/src/logs/debug_log_store.ts +54 -0
  735. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  736. package/src/logs/index.ts +4 -2
  737. package/src/logs/log_id.ts +26 -12
  738. package/src/logs/pre_tag.ts +5 -5
  739. package/src/logs/private_log.ts +2 -1
  740. package/src/logs/public_log.ts +4 -2
  741. package/src/logs/siloed_tag.ts +50 -0
  742. package/src/logs/tag.ts +42 -0
  743. package/src/logs/tx_scoped_l2_log.ts +45 -43
  744. package/src/messaging/in_hash.ts +3 -1
  745. package/src/messaging/l1_to_l2_message.ts +1 -0
  746. package/src/messaging/l2_to_l1_membership.ts +178 -52
  747. package/src/messaging/out_hash.ts +62 -21
  748. package/src/note/index.ts +0 -1
  749. package/src/note/note_dao.ts +18 -13
  750. package/src/p2p/attestation_utils.ts +59 -3
  751. package/src/p2p/block_proposal.ts +211 -46
  752. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
  753. package/src/p2p/checkpoint_proposal.ts +370 -0
  754. package/src/p2p/client_type.ts +0 -6
  755. package/src/p2p/consensus_payload.ts +29 -18
  756. package/src/p2p/constants.ts +6 -0
  757. package/src/p2p/gossipable.ts +14 -4
  758. package/src/p2p/index.ts +4 -2
  759. package/src/p2p/message_validator.ts +14 -2
  760. package/src/p2p/peer_error.ts +7 -0
  761. package/src/p2p/signature_utils.ts +3 -1
  762. package/src/p2p/signed_txs.ts +88 -0
  763. package/src/p2p/topic_type.ts +10 -16
  764. package/src/proofs/chonk_proof.ts +9 -5
  765. package/src/rollup/avm_proof_data.ts +0 -7
  766. package/src/rollup/block_headers_hash.ts +1 -1
  767. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  768. package/src/rollup/checkpoint_constant_data.ts +1 -0
  769. package/src/rollup/checkpoint_header.ts +67 -20
  770. package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
  771. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  772. package/src/rollup/root_rollup_public_inputs.ts +16 -7
  773. package/src/schemas/schemas.ts +4 -0
  774. package/src/slashing/empire.ts +3 -1
  775. package/src/slashing/helpers.ts +8 -0
  776. package/src/slashing/tally.ts +41 -2
  777. package/src/slashing/types.ts +38 -20
  778. package/src/snapshots/types.ts +33 -29
  779. package/src/stats/stats.ts +10 -7
  780. package/src/tests/factories.ts +124 -54
  781. package/src/tests/jest.ts +1 -1
  782. package/src/tests/mocks.ts +260 -100
  783. package/src/timetable/index.ts +66 -0
  784. package/src/trees/public_data_leaf.ts +11 -5
  785. package/src/tx/block_header.ts +28 -9
  786. package/src/tx/global_variable_builder.ts +9 -2
  787. package/src/tx/global_variables.ts +6 -0
  788. package/src/tx/index.ts +0 -1
  789. package/src/tx/indexed_tx_effect.ts +3 -2
  790. package/src/tx/private_execution_result.ts +2 -17
  791. package/src/tx/profiling.ts +51 -9
  792. package/src/tx/protocol_contracts.ts +2 -2
  793. package/src/tx/public_simulation_output.ts +4 -0
  794. package/src/tx/simulated_tx.ts +8 -1
  795. package/src/tx/tx.ts +39 -22
  796. package/src/tx/tx_effect.ts +3 -10
  797. package/src/tx/tx_execution_request.ts +2 -0
  798. package/src/tx/tx_receipt.ts +85 -18
  799. package/src/tx/tx_request.ts +2 -2
  800. package/src/tx/validator/empty_validator.ts +1 -1
  801. package/src/tx/validator/error_texts.ts +8 -1
  802. package/src/tx/validator/tx_validator.ts +9 -7
  803. package/src/update-checker/index.ts +2 -1
  804. package/src/update-checker/package_version.ts +30 -0
  805. package/src/update-checker/version_checker.ts +65 -0
  806. package/src/validators/errors.ts +9 -0
  807. package/src/validators/schemas.ts +61 -48
  808. package/src/validators/types.ts +5 -4
  809. package/src/zkpassport/index.ts +11 -12
  810. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  811. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  812. package/dest/block/l2_block_code_to_purge.js +0 -61
  813. package/dest/block/l2_block_header.d.ts +0 -98
  814. package/dest/block/l2_block_header.d.ts.map +0 -1
  815. package/dest/block/l2_block_header.js +0 -153
  816. package/dest/block/l2_block_new.d.ts +0 -130
  817. package/dest/block/l2_block_new.d.ts.map +0 -1
  818. package/dest/block/l2_block_new.js +0 -151
  819. package/dest/block/published_l2_block.d.ts +0 -130
  820. package/dest/block/published_l2_block.d.ts.map +0 -1
  821. package/dest/block/published_l2_block.js +0 -48
  822. package/dest/contract/contract_class_metadata.d.ts +0 -8
  823. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  824. package/dest/contract/contract_class_metadata.js +0 -1
  825. package/dest/contract/contract_metadata.d.ts +0 -7
  826. package/dest/contract/contract_metadata.d.ts.map +0 -1
  827. package/dest/contract/contract_metadata.js +0 -1
  828. package/dest/database-version/index.d.ts +0 -2
  829. package/dest/database-version/index.d.ts.map +0 -1
  830. package/dest/database-version/index.js +0 -1
  831. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  832. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  833. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  834. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  835. package/dest/logs/log_with_tx_data.d.ts +0 -19
  836. package/dest/logs/log_with_tx_data.d.ts.map +0 -1
  837. package/dest/logs/log_with_tx_data.js +0 -49
  838. package/dest/note/notes_filter.d.ts +0 -27
  839. package/dest/note/notes_filter.d.ts.map +0 -1
  840. package/dest/note/notes_filter.js +0 -11
  841. package/dest/p2p/block_attestation.d.ts +0 -80
  842. package/dest/p2p/block_attestation.d.ts.map +0 -1
  843. package/dest/tx/content_commitment.d.ts +0 -49
  844. package/dest/tx/content_commitment.d.ts.map +0 -1
  845. package/dest/tx/content_commitment.js +0 -90
  846. package/dest/update-checker/update-checker.d.ts +0 -49
  847. package/dest/update-checker/update-checker.d.ts.map +0 -1
  848. package/dest/update-checker/update-checker.js +0 -130
  849. package/src/block/l2_block_code_to_purge.ts +0 -88
  850. package/src/block/l2_block_header.ts +0 -246
  851. package/src/block/l2_block_new.ts +0 -197
  852. package/src/block/published_l2_block.ts +0 -65
  853. package/src/contract/contract_class_metadata.ts +0 -8
  854. package/src/contract/contract_metadata.ts +0 -7
  855. package/src/database-version/index.ts +0 -1
  856. package/src/logs/log_with_tx_data.ts +0 -46
  857. package/src/note/notes_filter.ts +0 -38
  858. package/src/tx/content_commitment.ts +0 -113
  859. package/src/update-checker/update-checker.ts +0 -166
@@ -1,44 +1,45 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
1
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import type { ZodFor } from '@aztec/foundation/schemas';
4
3
 
5
- import { schemas } from '../schemas/schemas.js';
4
+ import { inspect } from 'util';
5
+
6
+ import { hexSchemaFor } from '../schemas/schemas.js';
7
+
8
+ const BLOCK_HASH_BRAND = Symbol.for('aztec.BlockHash');
6
9
 
7
10
  /** Hash of an L2 block. */
8
- export class L2BlockHash extends Buffer32 {
9
- constructor(
10
- /** The buffer containing the hash. */
11
- hash: Buffer,
12
- ) {
13
- super(hash);
14
- }
11
+ export class BlockHash extends Fr {
12
+ readonly [BLOCK_HASH_BRAND] = true as const;
15
13
 
16
- static override random() {
17
- return new L2BlockHash(Fr.random().toBuffer());
14
+ constructor(hash: Fr) {
15
+ super(hash);
18
16
  }
19
17
 
20
- static override fromNumber(num: number): L2BlockHash {
21
- return new L2BlockHash(super.fromNumber(num).toBuffer());
18
+ override [inspect.custom]() {
19
+ return `BlockHash<${this.toString()}>`;
22
20
  }
23
21
 
24
- static override fromBuffer(buffer: Buffer | BufferReader) {
25
- const reader = BufferReader.asReader(buffer);
26
- return new L2BlockHash(reader.readBytes(L2BlockHash.SIZE));
22
+ toFr(): Fr {
23
+ return new Fr(this.toBigInt());
27
24
  }
28
25
 
29
- static override fromString(str: string): Buffer32 {
30
- return new L2BlockHash(super.fromString(str).toBuffer());
26
+ /**
27
+ * Type guard that checks if a value is a BlockHash instance.
28
+ * Uses Symbol.for to ensure cross-module compatibility.
29
+ */
30
+ static isBlockHash(value: unknown): value is BlockHash {
31
+ return typeof value === 'object' && value !== null && BLOCK_HASH_BRAND in value;
31
32
  }
32
33
 
33
- static get schema() {
34
- return schemas.BufferHex.transform(value => new L2BlockHash(value));
34
+ static override random() {
35
+ return new BlockHash(Fr.random());
35
36
  }
36
37
 
37
- static zero() {
38
- return new L2BlockHash(Buffer32.ZERO.toBuffer());
38
+ static override fromString(str: string): BlockHash {
39
+ return new BlockHash(Fr.fromString(str));
39
40
  }
40
41
 
41
- static override fromField(hash: Fr) {
42
- return new L2BlockHash(hash.toBuffer());
42
+ static override get schema() {
43
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
43
44
  }
44
45
  }
@@ -2,7 +2,9 @@ import { BlockNumberSchema } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import { z } from 'zod';
4
4
 
5
- export const BlockParameterSchema = z.union([BlockNumberSchema, z.literal('latest')]);
5
+ import { BlockHash } from './block_hash.js';
6
6
 
7
- /** Block parameter - either a specific BlockNumber or 'latest' */
7
+ export const BlockParameterSchema = z.union([BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
8
+
9
+ /** Block parameter - either a specific BlockNumber, block hash (BlockHash), or 'latest' */
8
10
  export type BlockParameter = z.infer<typeof BlockParameterSchema>;
package/src/block/body.ts CHANGED
@@ -5,6 +5,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { inspect } from 'util';
6
6
  import { z } from 'zod';
7
7
 
8
+ import { MAX_TX_EFFECTS_PER_BODY } from '../deserialization/index.js';
8
9
  import type { ZodFor } from '../schemas/index.js';
9
10
  import { TxEffect } from '../tx/tx_effect.js';
10
11
 
@@ -40,7 +41,7 @@ export class Body {
40
41
  static fromBuffer(buf: Buffer | BufferReader) {
41
42
  const reader = BufferReader.asReader(buf);
42
43
 
43
- return new this(reader.readVector(TxEffect));
44
+ return new this(reader.readVector(TxEffect, MAX_TX_EFFECTS_PER_BODY));
44
45
  }
45
46
 
46
47
  /**
@@ -0,0 +1,70 @@
1
+ // Ignoring import issue to fix portable inferred type issue in zod schema
2
+ import { CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
3
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
+ import type { FieldsOf } from '@aztec/foundation/types';
5
+
6
+ import { z } from 'zod';
7
+
8
+ import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
9
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
10
+ import { L2Block } from './l2_block.js';
11
+ import { CommitteeAttestation } from './proposal/committee_attestation.js';
12
+
13
+ /**
14
+ * Encapsulates an L2 Block along with the checkpoint data associated with it.
15
+ */
16
+ export class CheckpointedL2Block {
17
+ constructor(
18
+ public checkpointNumber: CheckpointNumber,
19
+ public block: L2Block,
20
+ public l1: L1PublishedData,
21
+ public attestations: CommitteeAttestation[],
22
+ ) {}
23
+ static get schema() {
24
+ return z
25
+ .object({
26
+ checkpointNumber: CheckpointNumberSchema,
27
+ block: L2Block.schema,
28
+ l1: L1PublishedData.schema,
29
+ attestations: z.array(CommitteeAttestation.schema),
30
+ })
31
+ .transform(obj => CheckpointedL2Block.fromFields(obj));
32
+ }
33
+
34
+ static fromBuffer(bufferOrReader: Buffer | BufferReader): CheckpointedL2Block {
35
+ const reader = BufferReader.asReader(bufferOrReader);
36
+ const checkpointNumber = reader.readNumber();
37
+ const block = reader.readObject(L2Block);
38
+ const l1BlockNumber = reader.readBigInt();
39
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
40
+ const l1Timestamp = reader.readBigInt();
41
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
42
+ return new CheckpointedL2Block(
43
+ CheckpointNumber(checkpointNumber),
44
+ block,
45
+ new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),
46
+ attestations,
47
+ );
48
+ }
49
+
50
+ static fromFields(fields: FieldsOf<CheckpointedL2Block>) {
51
+ return new CheckpointedL2Block(
52
+ CheckpointNumber(fields.checkpointNumber),
53
+ fields.block,
54
+ fields.l1,
55
+ fields.attestations,
56
+ );
57
+ }
58
+
59
+ public toBuffer(): Buffer {
60
+ return serializeToBuffer(
61
+ this.checkpointNumber,
62
+ this.block,
63
+ this.l1.blockNumber,
64
+ this.l1.blockHash,
65
+ this.l1.timestamp,
66
+ this.attestations.length,
67
+ this.attestations,
68
+ );
69
+ }
70
+ }
@@ -2,12 +2,12 @@ import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types'
2
2
 
3
3
  import { type ZodTypeAny, z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
5
+ import { BlockHash } from './block_hash.js';
6
6
  import type { L2Block } from './l2_block.js';
7
7
 
8
8
  export type InBlock = {
9
9
  l2BlockNumber: BlockNumber;
10
- l2BlockHash: L2BlockHash;
10
+ l2BlockHash: BlockHash;
11
11
  };
12
12
 
13
13
  // Note: If you expand this type with indexInBlock, then delete `IndexedTxEffect` and use this type instead.
@@ -17,8 +17,8 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
21
- l2BlockHash: L2BlockHash.random(),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
+ l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
24
24
 
@@ -33,14 +33,14 @@ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataI
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: L2BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
40
40
  export function inBlockSchema() {
41
41
  return z.object({
42
42
  l2BlockNumber: BlockNumberSchema,
43
- l2BlockHash: L2BlockHash.schema,
43
+ l2BlockHash: BlockHash.schema,
44
44
  });
45
45
  }
46
46
 
@@ -1,13 +1,12 @@
1
+ export * from './block_data.js';
1
2
  export * from './l2_block.js';
2
- export * from './l2_block_new.js';
3
- export * from './l2_block_header.js';
4
3
  export * from './l2_block_stream/index.js';
5
4
  export * from './in_block.js';
6
5
  export * from './body.js';
7
6
  export * from './block_parameter.js';
8
7
  export * from './l2_block_source.js';
9
8
  export * from './block_hash.js';
10
- export * from './published_l2_block.js';
9
+ export * from './checkpointed_l2_block.js';
11
10
  export * from './proposal/index.js';
12
11
  export * from './validate_block_result.js';
13
12
  export * from './l2_block_info.js';
@@ -1,44 +1,67 @@
1
- import { type BlockBlobData, encodeBlockBlobData, encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
1
+ import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
+ import { DA_GAS_PER_FIELD } from '@aztec/constants';
3
+ import {
4
+ BlockNumber,
5
+ CheckpointNumber,
6
+ CheckpointNumberSchema,
7
+ IndexWithinCheckpoint,
8
+ IndexWithinCheckpointSchema,
9
+ SlotNumber,
10
+ } from '@aztec/foundation/branded-types';
3
11
  import { Fr } from '@aztec/foundation/curves/bn254';
4
12
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
- import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
13
 
7
14
  import { z } from 'zod';
8
15
 
9
- import { Checkpoint } from '../checkpoint/checkpoint.js';
16
+ import type { PrivateLog } from '../logs/private_log.js';
10
17
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
- import type { BlockHeader } from '../tx/block_header.js';
18
+ import { BlockHeader } from '../tx/block_header.js';
19
+ import type { BlockHash } from './block_hash.js';
12
20
  import { Body } from './body.js';
13
- import { makeAppendOnlyTreeSnapshot, makeL2BlockHeader } from './l2_block_code_to_purge.js';
14
- import { L2BlockHeader } from './l2_block_header.js';
15
21
  import type { L2BlockInfo } from './l2_block_info.js';
16
- import { L2BlockNew } from './l2_block_new.js';
17
22
 
18
23
  /**
19
- * The data that makes up the rollup proof, with encoder decoder functions.
20
- *
21
- * @deprecated Use `L2BlockNew` instead.
24
+ * An L2 block with a header and a body.
22
25
  */
23
26
  export class L2Block {
24
27
  constructor(
25
28
  /** Snapshot of archive tree after the block is applied. */
26
29
  public archive: AppendOnlyTreeSnapshot,
27
- /** L2 block header. */
28
- public header: L2BlockHeader,
30
+ /** Header of the block. */
31
+ public header: BlockHeader,
29
32
  /** L2 block body. */
30
33
  public body: Body,
31
- private blockHash: Fr | undefined = undefined,
34
+ /** Number of the checkpoint that the block belongs to. */
35
+ public checkpointNumber: CheckpointNumber,
36
+ /** Index of the block within the checkpoint. */
37
+ public indexWithinCheckpoint: IndexWithinCheckpoint,
32
38
  ) {}
33
39
 
40
+ get number(): BlockNumber {
41
+ return this.header.globalVariables.blockNumber;
42
+ }
43
+
44
+ get slot(): SlotNumber {
45
+ return this.header.globalVariables.slotNumber;
46
+ }
47
+
48
+ get timestamp(): bigint {
49
+ return this.header.globalVariables.timestamp;
50
+ }
51
+
34
52
  static get schema() {
35
53
  return z
36
54
  .object({
37
55
  archive: AppendOnlyTreeSnapshot.schema,
38
- header: L2BlockHeader.schema,
56
+ header: BlockHeader.schema,
39
57
  body: Body.schema,
58
+ checkpointNumber: CheckpointNumberSchema,
59
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
40
60
  })
41
- .transform(({ archive, header, body }) => new L2Block(archive, header, body));
61
+ .transform(
62
+ ({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
63
+ new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
64
+ );
42
65
  }
43
66
 
44
67
  /**
@@ -47,11 +70,13 @@ export class L2Block {
47
70
  */
48
71
  static fromBuffer(buf: Buffer | BufferReader) {
49
72
  const reader = BufferReader.asReader(buf);
50
- const header = reader.readObject(L2BlockHeader);
73
+ const header = reader.readObject(BlockHeader);
51
74
  const archive = reader.readObject(AppendOnlyTreeSnapshot);
52
75
  const body = reader.readObject(Body);
76
+ const checkpointNumber = CheckpointNumber(reader.readNumber());
77
+ const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
53
78
 
54
- return new L2Block(archive, header, body);
79
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
55
80
  }
56
81
 
57
82
  /**
@@ -59,151 +84,39 @@ export class L2Block {
59
84
  * @returns A serialized L2 block as a Buffer.
60
85
  */
61
86
  toBuffer() {
62
- return serializeToBuffer(this.header, this.archive, this.body);
63
- }
64
-
65
- /**
66
- * Deserializes L2 block from a buffer.
67
- * @param str - A serialized L2 block.
68
- * @returns Deserialized L2 block.
69
- */
70
- static fromString(str: string): L2Block {
71
- return L2Block.fromBuffer(hexToBuffer(str));
72
- }
73
-
74
- /**
75
- * Serializes a block to a string.
76
- * @returns A serialized L2 block as a string.
77
- */
78
- toString(): string {
79
- return bufferToHex(this.toBuffer());
80
- }
81
-
82
- /**
83
- * Creates an L2 block containing random data.
84
- * @param l2BlockNum - The number of the L2 block.
85
- * @param txsPerBlock - The number of transactions to include in the block.
86
- * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
87
- * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
88
- * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
89
- * @returns The L2 block.
90
- */
91
- static async random(
92
- l2BlockNum: BlockNumber,
93
- txsPerBlock = 4,
94
- numPublicCallsPerTx = 3,
95
- numPublicLogsPerCall = 1,
96
- inHash: Fr | undefined = undefined,
97
- slotNumber: number | undefined = undefined,
98
- maxEffects: number | undefined = undefined,
99
- ): Promise<L2Block> {
100
- const body = await Body.random({ txsPerBlock, numPublicCallsPerTx, numPublicLogsPerCall, maxEffects });
101
-
102
- return new L2Block(
103
- makeAppendOnlyTreeSnapshot(l2BlockNum + 1),
104
- makeL2BlockHeader(0, l2BlockNum, slotNumber ?? l2BlockNum, {}, inHash),
105
- body,
106
- );
107
- }
108
-
109
- /**
110
- * Creates an L2 block containing empty data.
111
- * @returns The L2 block.
112
- */
113
- static empty(): L2Block {
114
- return new L2Block(AppendOnlyTreeSnapshot.empty(), L2BlockHeader.empty(), Body.empty());
115
- }
116
-
117
- get number(): BlockNumber {
118
- return this.header.getBlockNumber();
119
- }
120
-
121
- get slot(): SlotNumber {
122
- return this.header.getSlot();
123
- }
124
-
125
- get timestamp(): bigint {
126
- return this.header.globalVariables.timestamp;
87
+ return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
127
88
  }
128
89
 
129
90
  /**
130
91
  * Returns the block's hash (hash of block header).
131
92
  * @returns The block's hash.
132
93
  */
133
- public async hash(): Promise<Fr> {
134
- if (this.blockHash === undefined) {
135
- this.blockHash = await this.getBlockHeader().hash();
136
- }
137
- return this.blockHash;
94
+ public hash(): Promise<BlockHash> {
95
+ return this.header.hash();
138
96
  }
139
97
 
140
98
  /**
141
- * @deprecated
142
- * This only works when there's one block per checkpoint.
143
- * TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
99
+ * Checks if this block equals another block.
100
+ * @param other - The other block to compare with.
101
+ * @returns True if both blocks are equal.
144
102
  */
145
- public getCheckpointHeader() {
146
- return this.header.toCheckpointHeader();
147
- }
148
-
149
- // Temporary helper to get the actual block header.
150
- public getBlockHeader(): BlockHeader {
151
- return this.header.toBlockHeader();
152
- }
153
-
154
- public toL2Block() {
155
- return new L2BlockNew(
156
- this.archive,
157
- this.getBlockHeader(),
158
- this.body,
159
- CheckpointNumber.fromBlockNumber(this.number),
160
- 0, // indexWithinCheckpoint
103
+ public equals(other: this): boolean {
104
+ return (
105
+ this.archive.equals(other.archive) &&
106
+ this.header.equals(other.header) &&
107
+ this.body.equals(other.body) &&
108
+ this.checkpointNumber === other.checkpointNumber &&
109
+ this.indexWithinCheckpoint === other.indexWithinCheckpoint
161
110
  );
162
111
  }
163
112
 
164
- public toCheckpoint() {
165
- return new Checkpoint(
166
- this.archive,
167
- this.getCheckpointHeader(),
168
- [this.toL2Block()],
169
- CheckpointNumber.fromBlockNumber(this.number),
170
- );
171
- }
172
-
173
- static fromCheckpoint(checkpoint: Checkpoint) {
174
- const checkpointHeader = checkpoint.header;
175
- const block = checkpoint.blocks.at(-1)!;
176
- const header = new L2BlockHeader(
177
- new AppendOnlyTreeSnapshot(checkpointHeader.lastArchiveRoot, block.number),
178
- checkpointHeader.contentCommitment,
179
- block.header.state,
180
- block.header.globalVariables,
181
- block.header.totalFees,
182
- checkpointHeader.totalManaUsed,
183
- block.header.spongeBlobHash,
184
- checkpointHeader.blockHeadersHash,
185
- );
186
- return new L2Block(checkpoint.archive, header, block.body);
187
- }
188
-
189
- /**
190
- * @deprecated
191
- * This only works when there's one block per checkpoint.
192
- * TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
193
- */
194
- public getCheckpointBlobFields() {
195
- const blockBlobData = this.toBlockBlobData();
196
- return encodeCheckpointBlobDataFromBlocks([blockBlobData]);
197
- }
198
-
199
113
  public toBlobFields(): Fr[] {
200
114
  const blockBlobData = this.toBlockBlobData();
201
115
  return encodeBlockBlobData(blockBlobData);
202
116
  }
203
117
 
204
118
  public toBlockBlobData(): BlockBlobData {
205
- // There's only one L2Block per checkpoint, so it's always the first block in the checkpoint.
206
- const isFirstBlock = true;
119
+ const isFirstBlock = this.indexWithinCheckpoint === 0;
207
120
  return {
208
121
  blockEndMarker: {
209
122
  numTxs: this.body.txEffects.length,
@@ -226,6 +139,48 @@ export class L2Block {
226
139
  };
227
140
  }
228
141
 
142
+ static empty(header?: BlockHeader) {
143
+ return new L2Block(
144
+ AppendOnlyTreeSnapshot.empty(),
145
+ header ?? BlockHeader.empty(),
146
+ Body.empty(),
147
+ CheckpointNumber(0),
148
+ IndexWithinCheckpoint(0),
149
+ );
150
+ }
151
+
152
+ /**
153
+ * Creates an L2 block containing random data.
154
+ * @param l2BlockNum - The number of the L2 block.
155
+ * @param txsPerBlock - The number of transactions to include in the block.
156
+ * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
157
+ * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
158
+ * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
159
+ * @returns The L2 block.
160
+ */
161
+ static async random(
162
+ blockNumber: BlockNumber,
163
+ {
164
+ checkpointNumber = CheckpointNumber(Number(blockNumber)),
165
+ indexWithinCheckpoint = IndexWithinCheckpoint(0),
166
+ txsPerBlock = 1,
167
+ txOptions = {},
168
+ makeTxOptions,
169
+ ...blockHeaderOverrides
170
+ }: {
171
+ checkpointNumber?: CheckpointNumber;
172
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
173
+ txsPerBlock?: number;
174
+ txOptions?: Partial<Parameters<typeof Body.random>[0]>;
175
+ makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
176
+ } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
177
+ ): Promise<L2Block> {
178
+ const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
180
+ const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
181
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
182
+ }
183
+
229
184
  /**
230
185
  * Returns stats used for logging.
231
186
  * @returns Stats on tx count, number, and log size and count.
@@ -253,9 +208,12 @@ export class L2Block {
253
208
  };
254
209
  }
255
210
 
211
+ getPrivateLogs(): PrivateLog[] {
212
+ return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
213
+ }
214
+
256
215
  toBlockInfo(): L2BlockInfo {
257
216
  return {
258
- blockHash: this.blockHash,
259
217
  archive: this.archive.root,
260
218
  lastArchive: this.header.lastArchive.root,
261
219
  blockNumber: this.number,
@@ -265,7 +223,14 @@ export class L2Block {
265
223
  };
266
224
  }
267
225
 
268
- equals(other: L2Block) {
269
- return this.archive.equals(other.archive) && this.header.equals(other.header) && this.body.equals(other.body);
226
+ /**
227
+ * Compute how much DA gas this block uses.
228
+ *
229
+ * @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
230
+ * This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
231
+ * in the L2BlockHeader, so we have to rely on recomputing it.
232
+ */
233
+ computeDAGasUsed(): number {
234
+ return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
270
235
  }
271
236
  }