@aztec/stdlib 0.0.1-commit.7d4e6cd → 0.0.1-commit.87a0206

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 (518) hide show
  1. package/dest/abi/function_call.d.ts +47 -9
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/function_call.js +20 -3
  4. package/dest/abi/utils.d.ts +7 -1
  5. package/dest/abi/utils.d.ts.map +1 -1
  6. package/dest/abi/utils.js +7 -0
  7. package/dest/auth_witness/auth_witness.d.ts +2 -1
  8. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  9. package/dest/avm/avm.d.ts +62 -62
  10. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  11. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  12. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  13. package/dest/avm/avm_proving_request.d.ts +299 -299
  14. package/dest/avm/contract_storage_read.d.ts +13 -1
  15. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  16. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  17. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  19. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  20. package/dest/avm/public_data_read.d.ts +10 -1
  21. package/dest/avm/public_data_read.d.ts.map +1 -1
  22. package/dest/avm/public_data_update_request.d.ts +10 -1
  23. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  24. package/dest/avm/public_data_write.d.ts +7 -1
  25. package/dest/avm/public_data_write.d.ts.map +1 -1
  26. package/dest/avm/public_inner_call_request.d.ts +4 -1
  27. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  28. package/dest/avm/revert_code.d.ts +4 -4
  29. package/dest/avm/revert_code.d.ts.map +1 -1
  30. package/dest/block/block_hash.d.ts +18 -14
  31. package/dest/block/block_hash.d.ts.map +1 -1
  32. package/dest/block/block_hash.js +22 -20
  33. package/dest/block/block_parameter.d.ts +4 -3
  34. package/dest/block/block_parameter.d.ts.map +1 -1
  35. package/dest/block/block_parameter.js +2 -0
  36. package/dest/block/body.d.ts +1 -1
  37. package/dest/block/body.d.ts.map +1 -1
  38. package/dest/block/body.js +2 -1
  39. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  40. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  41. package/dest/block/checkpointed_l2_block.js +7 -45
  42. package/dest/block/in_block.d.ts +9 -9
  43. package/dest/block/in_block.d.ts.map +1 -1
  44. package/dest/block/in_block.js +5 -5
  45. package/dest/block/index.d.ts +1 -3
  46. package/dest/block/index.d.ts.map +1 -1
  47. package/dest/block/index.js +0 -2
  48. package/dest/block/l2_block.d.ts +56 -59
  49. package/dest/block/l2_block.d.ts.map +1 -1
  50. package/dest/block/l2_block.js +64 -110
  51. package/dest/block/l2_block_source.d.ts +65 -39
  52. package/dest/block/l2_block_source.d.ts.map +1 -1
  53. package/dest/block/l2_block_source.js +2 -1
  54. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  55. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  57. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  58. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  60. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  63. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  64. package/dest/block/validate_block_result.d.ts +1 -1
  65. package/dest/block/validate_block_result.d.ts.map +1 -1
  66. package/dest/block/validate_block_result.js +5 -4
  67. package/dest/checkpoint/checkpoint.d.ts +30 -20
  68. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  69. package/dest/checkpoint/checkpoint.js +18 -6
  70. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  71. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  72. package/dest/checkpoint/published_checkpoint.js +4 -3
  73. package/dest/config/node-rpc-config.js +1 -1
  74. package/dest/contract/complete_address.d.ts +4 -1
  75. package/dest/contract/complete_address.d.ts.map +1 -1
  76. package/dest/contract/contract_address.js +1 -1
  77. package/dest/contract/contract_class_id.d.ts +1 -1
  78. package/dest/contract/contract_class_id.js +1 -1
  79. package/dest/contract/contract_deployment_data.d.ts +5 -5
  80. package/dest/contract/index.d.ts +1 -3
  81. package/dest/contract/index.d.ts.map +1 -1
  82. package/dest/contract/index.js +0 -2
  83. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  84. package/dest/contract/private_function.d.ts +1 -1
  85. package/dest/contract/private_function.d.ts.map +1 -1
  86. package/dest/contract/private_function.js +2 -3
  87. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  88. package/dest/contract/private_function_membership_proof.js +1 -1
  89. package/dest/database-version/database_version.d.ts +58 -0
  90. package/dest/database-version/database_version.d.ts.map +1 -0
  91. package/dest/database-version/database_version.js +69 -0
  92. package/dest/database-version/version_manager.d.ts +3 -49
  93. package/dest/database-version/version_manager.d.ts.map +1 -1
  94. package/dest/database-version/version_manager.js +1 -66
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  97. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  98. package/dest/deserialization/index.d.ts +11 -0
  99. package/dest/deserialization/index.d.ts.map +1 -0
  100. package/dest/deserialization/index.js +10 -0
  101. package/dest/epoch-helpers/index.d.ts +3 -1
  102. package/dest/epoch-helpers/index.d.ts.map +1 -1
  103. package/dest/epoch-helpers/index.js +5 -1
  104. package/dest/errors/proving_error.d.ts +2 -2
  105. package/dest/errors/proving_error.d.ts.map +1 -1
  106. package/dest/hash/hash.js +2 -2
  107. package/dest/hash/map_slot.d.ts +1 -1
  108. package/dest/hash/map_slot.d.ts.map +1 -1
  109. package/dest/hash/map_slot.js +4 -3
  110. package/dest/interfaces/api_limit.d.ts +2 -1
  111. package/dest/interfaces/api_limit.d.ts.map +1 -1
  112. package/dest/interfaces/api_limit.js +1 -0
  113. package/dest/interfaces/archiver.d.ts +1 -1
  114. package/dest/interfaces/archiver.d.ts.map +1 -1
  115. package/dest/interfaces/archiver.js +18 -15
  116. package/dest/interfaces/aztec-node-admin.d.ts +66 -27
  117. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  118. package/dest/interfaces/aztec-node-admin.js +3 -1
  119. package/dest/interfaces/aztec-node.d.ts +65 -68
  120. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  121. package/dest/interfaces/aztec-node.js +10 -16
  122. package/dest/interfaces/block-builder.d.ts +22 -14
  123. package/dest/interfaces/block-builder.d.ts.map +1 -1
  124. package/dest/interfaces/block-builder.js +7 -0
  125. package/dest/interfaces/configs.d.ts +8 -8
  126. package/dest/interfaces/configs.d.ts.map +1 -1
  127. package/dest/interfaces/get_logs_response.d.ts +16 -9
  128. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  129. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  130. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  131. package/dest/interfaces/p2p.d.ts +2 -2
  132. package/dest/interfaces/p2p.d.ts.map +1 -1
  133. package/dest/interfaces/prover-broker.d.ts +16 -1
  134. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  135. package/dest/interfaces/prover-broker.js +4 -1
  136. package/dest/interfaces/prover-client.d.ts +15 -1
  137. package/dest/interfaces/prover-client.d.ts.map +1 -1
  138. package/dest/interfaces/prover-client.js +12 -1
  139. package/dest/interfaces/proving-job.d.ts +48 -48
  140. package/dest/interfaces/slasher.d.ts +5 -1
  141. package/dest/interfaces/slasher.d.ts.map +1 -1
  142. package/dest/interfaces/slasher.js +1 -0
  143. package/dest/interfaces/tx_provider.d.ts +3 -3
  144. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  145. package/dest/interfaces/validator.d.ts +106 -15
  146. package/dest/interfaces/validator.d.ts.map +1 -1
  147. package/dest/interfaces/validator.js +3 -2
  148. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  149. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  150. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  151. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  152. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  153. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  154. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  155. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  156. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  157. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  158. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  159. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  160. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  161. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/read_request.d.ts +7 -1
  163. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  164. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  165. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  166. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  167. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  168. package/dest/kernel/private_call_data.d.ts +25 -1
  169. package/dest/kernel/private_call_data.d.ts.map +1 -1
  170. package/dest/kernel/private_call_request.d.ts +16 -1
  171. package/dest/kernel/private_call_request.d.ts.map +1 -1
  172. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  173. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  175. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  176. package/dest/kernel/private_kernel_data.d.ts +7 -1
  177. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  178. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  179. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  180. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  181. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  182. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  183. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  184. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  185. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  187. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  188. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  189. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  190. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  191. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  192. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  193. package/dest/kernel/private_validation_requests.d.ts +10 -1
  194. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  195. package/dest/kernel/public_call_request.d.ts +22 -1
  196. package/dest/kernel/public_call_request.d.ts.map +1 -1
  197. package/dest/kernel/utils/optional_number.d.ts +7 -1
  198. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  199. package/dest/keys/derivation.d.ts +3 -3
  200. package/dest/keys/derivation.js +8 -8
  201. package/dest/keys/key_types.d.ts +1 -1
  202. package/dest/keys/public_keys.d.ts +5 -1
  203. package/dest/keys/public_keys.d.ts.map +1 -1
  204. package/dest/keys/utils.d.ts +1 -1
  205. package/dest/keys/utils.d.ts.map +1 -1
  206. package/dest/keys/utils.js +7 -3
  207. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  208. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  209. package/dest/l1-contracts/slash_factory.js +1 -0
  210. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  211. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  212. package/dest/logs/extended_public_log.d.ts +17 -9
  213. package/dest/logs/extended_public_log.d.ts.map +1 -1
  214. package/dest/logs/log_id.d.ts +21 -14
  215. package/dest/logs/log_id.d.ts.map +1 -1
  216. package/dest/logs/log_id.js +20 -17
  217. package/dest/logs/siloed_tag.d.ts +1 -1
  218. package/dest/logs/siloed_tag.d.ts.map +1 -1
  219. package/dest/logs/siloed_tag.js +4 -3
  220. package/dest/messaging/inbox_leaf.d.ts +3 -1
  221. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  222. package/dest/messaging/l1_actor.d.ts +7 -1
  223. package/dest/messaging/l1_actor.d.ts.map +1 -1
  224. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  225. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  226. package/dest/messaging/l2_actor.d.ts +7 -1
  227. package/dest/messaging/l2_actor.d.ts.map +1 -1
  228. package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
  229. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  230. package/dest/messaging/l2_to_l1_membership.js +8 -6
  231. package/dest/messaging/out_hash.d.ts +41 -4
  232. package/dest/messaging/out_hash.d.ts.map +1 -1
  233. package/dest/messaging/out_hash.js +52 -26
  234. package/dest/note/note_dao.d.ts +36 -5
  235. package/dest/note/note_dao.d.ts.map +1 -1
  236. package/dest/note/note_dao.js +15 -12
  237. package/dest/p2p/block_proposal.d.ts +23 -8
  238. package/dest/p2p/block_proposal.d.ts.map +1 -1
  239. package/dest/p2p/block_proposal.js +25 -7
  240. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  241. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  242. package/dest/p2p/checkpoint_proposal.d.ts +27 -7
  243. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  244. package/dest/p2p/checkpoint_proposal.js +26 -5
  245. package/dest/p2p/consensus_payload.d.ts +4 -3
  246. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  247. package/dest/p2p/consensus_payload.js +0 -3
  248. package/dest/p2p/constants.d.ts +3 -0
  249. package/dest/p2p/constants.d.ts.map +1 -0
  250. package/dest/p2p/constants.js +2 -0
  251. package/dest/p2p/index.d.ts +2 -1
  252. package/dest/p2p/index.d.ts.map +1 -1
  253. package/dest/p2p/index.js +1 -0
  254. package/dest/p2p/message_validator.d.ts +18 -3
  255. package/dest/p2p/message_validator.d.ts.map +1 -1
  256. package/dest/p2p/message_validator.js +2 -1
  257. package/dest/p2p/signed_txs.d.ts +3 -1
  258. package/dest/p2p/signed_txs.d.ts.map +1 -1
  259. package/dest/p2p/signed_txs.js +6 -1
  260. package/dest/p2p/topic_type.js +2 -1
  261. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  262. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  263. package/dest/parity/parity_public_inputs.d.ts +4 -1
  264. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  265. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  266. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  267. package/dest/proofs/chonk_proof.d.ts +1 -1
  268. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  269. package/dest/proofs/chonk_proof.js +9 -4
  270. package/dest/proofs/proof.d.ts +4 -1
  271. package/dest/proofs/proof.d.ts.map +1 -1
  272. package/dest/proofs/recursive_proof.d.ts +10 -1
  273. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  274. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  275. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  276. package/dest/rollup/block_constant_data.d.ts +12 -1
  277. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  278. package/dest/rollup/block_headers_hash.js +1 -1
  279. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  280. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  281. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  282. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  283. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  284. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  285. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  286. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  287. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  288. package/dest/rollup/checkpoint_header.d.ts +29 -2
  289. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  290. package/dest/rollup/checkpoint_header.js +21 -5
  291. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  292. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  293. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  294. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  295. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  296. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  297. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  298. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  299. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  300. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  301. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  302. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  303. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  304. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  305. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  306. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  307. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  308. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  309. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  310. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  311. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  312. package/dest/schemas/schemas.d.ts +1 -1
  313. package/dest/slashing/empire.d.ts +1 -1
  314. package/dest/slashing/empire.d.ts.map +1 -1
  315. package/dest/slashing/empire.js +1 -0
  316. package/dest/slashing/helpers.d.ts +2 -2
  317. package/dest/slashing/helpers.d.ts.map +1 -1
  318. package/dest/slashing/helpers.js +3 -0
  319. package/dest/slashing/tally.d.ts +2 -1
  320. package/dest/slashing/tally.d.ts.map +1 -1
  321. package/dest/slashing/tally.js +6 -2
  322. package/dest/slashing/types.d.ts +5 -3
  323. package/dest/slashing/types.d.ts.map +1 -1
  324. package/dest/slashing/types.js +7 -1
  325. package/dest/stats/stats.d.ts +1 -3
  326. package/dest/stats/stats.d.ts.map +1 -1
  327. package/dest/tests/factories.d.ts +2 -4
  328. package/dest/tests/factories.d.ts.map +1 -1
  329. package/dest/tests/factories.js +8 -17
  330. package/dest/tests/jest.js +1 -1
  331. package/dest/tests/mocks.d.ts +20 -14
  332. package/dest/tests/mocks.d.ts.map +1 -1
  333. package/dest/tests/mocks.js +45 -27
  334. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  335. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  336. package/dest/trees/nullifier_leaf.d.ts +13 -1
  337. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  338. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  339. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  340. package/dest/trees/public_data_leaf.d.ts +16 -1
  341. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  342. package/dest/trees/public_data_witness.d.ts +11 -1
  343. package/dest/trees/public_data_witness.d.ts.map +1 -1
  344. package/dest/tx/block_header.d.ts +14 -2
  345. package/dest/tx/block_header.d.ts.map +1 -1
  346. package/dest/tx/block_header.js +5 -1
  347. package/dest/tx/call_context.d.ts +13 -1
  348. package/dest/tx/call_context.d.ts.map +1 -1
  349. package/dest/tx/capsule.d.ts +4 -1
  350. package/dest/tx/capsule.d.ts.map +1 -1
  351. package/dest/tx/execution_payload.d.ts +9 -1
  352. package/dest/tx/execution_payload.d.ts.map +1 -1
  353. package/dest/tx/function_data.d.ts +4 -2
  354. package/dest/tx/function_data.d.ts.map +1 -1
  355. package/dest/tx/global_variables.d.ts +9 -1
  356. package/dest/tx/global_variables.d.ts.map +1 -1
  357. package/dest/tx/hashed_values.d.ts +7 -1
  358. package/dest/tx/hashed_values.d.ts.map +1 -1
  359. package/dest/tx/in_tx.d.ts +4 -4
  360. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  361. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  362. package/dest/tx/indexed_tx_effect.js +3 -2
  363. package/dest/tx/partial_state_reference.d.ts +4 -1
  364. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  365. package/dest/tx/private_execution_result.d.ts +23 -2
  366. package/dest/tx/private_execution_result.d.ts.map +1 -1
  367. package/dest/tx/private_execution_result.js +1 -1
  368. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  369. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  370. package/dest/tx/profiling.d.ts +149 -26
  371. package/dest/tx/profiling.d.ts.map +1 -1
  372. package/dest/tx/profiling.js +44 -7
  373. package/dest/tx/protocol_contracts.d.ts +1 -1
  374. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  375. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  376. package/dest/tx/state_reference.d.ts +3 -1
  377. package/dest/tx/state_reference.d.ts.map +1 -1
  378. package/dest/tx/tx.d.ts +24 -1
  379. package/dest/tx/tx.d.ts.map +1 -1
  380. package/dest/tx/tx.js +6 -3
  381. package/dest/tx/tx_context.d.ts +2 -1
  382. package/dest/tx/tx_context.d.ts.map +1 -1
  383. package/dest/tx/tx_effect.d.ts +32 -6
  384. package/dest/tx/tx_effect.d.ts.map +1 -1
  385. package/dest/tx/tx_effect.js +0 -7
  386. package/dest/tx/tx_execution_request.d.ts +30 -1
  387. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  388. package/dest/tx/tx_hash.d.ts +2 -1
  389. package/dest/tx/tx_hash.d.ts.map +1 -1
  390. package/dest/tx/tx_receipt.d.ts +47 -13
  391. package/dest/tx/tx_receipt.d.ts.map +1 -1
  392. package/dest/tx/tx_receipt.js +46 -15
  393. package/dest/tx/tx_request.d.ts +6 -1
  394. package/dest/tx/tx_request.d.ts.map +1 -1
  395. package/dest/tx/validator/error_texts.d.ts +2 -1
  396. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  397. package/dest/tx/validator/error_texts.js +2 -0
  398. package/dest/types/shared.d.ts +4 -1
  399. package/dest/types/shared.d.ts.map +1 -1
  400. package/dest/validators/schemas.d.ts +8 -8
  401. package/dest/vks/verification_key.d.ts +22 -1
  402. package/dest/vks/verification_key.d.ts.map +1 -1
  403. package/dest/vks/vk_data.d.ts +7 -1
  404. package/dest/vks/vk_data.d.ts.map +1 -1
  405. package/dest/zkpassport/index.d.ts +3 -4
  406. package/dest/zkpassport/index.d.ts.map +1 -1
  407. package/dest/zkpassport/index.js +9 -9
  408. package/package.json +25 -12
  409. package/src/abi/function_call.ts +25 -3
  410. package/src/abi/utils.ts +17 -0
  411. package/src/block/block_hash.ts +26 -25
  412. package/src/block/block_parameter.ts +4 -2
  413. package/src/block/body.ts +2 -1
  414. package/src/block/checkpointed_l2_block.ts +8 -58
  415. package/src/block/in_block.ts +6 -6
  416. package/src/block/index.ts +0 -2
  417. package/src/block/l2_block.ts +102 -150
  418. package/src/block/l2_block_source.ts +71 -42
  419. package/src/block/l2_block_stream/interfaces.ts +8 -5
  420. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  421. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  422. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  423. package/src/block/validate_block_result.ts +5 -4
  424. package/src/checkpoint/checkpoint.ts +33 -11
  425. package/src/checkpoint/published_checkpoint.ts +4 -3
  426. package/src/config/node-rpc-config.ts +1 -1
  427. package/src/contract/contract_address.ts +1 -1
  428. package/src/contract/contract_class_id.ts +1 -1
  429. package/src/contract/index.ts +0 -2
  430. package/src/contract/private_function.ts +2 -3
  431. package/src/contract/private_function_membership_proof.ts +1 -1
  432. package/src/database-version/database_version.ts +87 -0
  433. package/src/database-version/version_manager.ts +1 -77
  434. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  435. package/src/deserialization/index.ts +21 -0
  436. package/src/epoch-helpers/index.ts +10 -1
  437. package/src/hash/hash.ts +2 -2
  438. package/src/hash/map_slot.ts +3 -2
  439. package/src/interfaces/api_limit.ts +1 -0
  440. package/src/interfaces/archiver.ts +18 -24
  441. package/src/interfaces/aztec-node-admin.ts +3 -2
  442. package/src/interfaces/aztec-node.ts +85 -134
  443. package/src/interfaces/block-builder.ts +40 -23
  444. package/src/interfaces/configs.ts +1 -3
  445. package/src/interfaces/l2_logs_source.ts +17 -4
  446. package/src/interfaces/p2p.ts +1 -1
  447. package/src/interfaces/prover-broker.ts +22 -0
  448. package/src/interfaces/prover-client.ts +22 -0
  449. package/src/interfaces/slasher.ts +2 -0
  450. package/src/interfaces/tx_provider.ts +2 -2
  451. package/src/interfaces/validator.ts +11 -12
  452. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  453. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  454. package/src/keys/derivation.ts +8 -8
  455. package/src/keys/key_types.ts +1 -1
  456. package/src/keys/utils.ts +7 -3
  457. package/src/l1-contracts/slash_factory.ts +1 -0
  458. package/src/logs/log_id.ts +22 -18
  459. package/src/logs/siloed_tag.ts +3 -2
  460. package/src/messaging/l2_to_l1_membership.ts +8 -6
  461. package/src/messaging/out_hash.ts +60 -29
  462. package/src/note/note_dao.ts +18 -13
  463. package/src/p2p/block_proposal.ts +36 -13
  464. package/src/p2p/checkpoint_proposal.ts +39 -11
  465. package/src/p2p/consensus_payload.ts +0 -5
  466. package/src/p2p/constants.ts +3 -0
  467. package/src/p2p/index.ts +1 -0
  468. package/src/p2p/message_validator.ts +14 -2
  469. package/src/p2p/signed_txs.ts +6 -1
  470. package/src/p2p/topic_type.ts +1 -1
  471. package/src/proofs/chonk_proof.ts +9 -5
  472. package/src/rollup/block_headers_hash.ts +1 -1
  473. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  474. package/src/rollup/checkpoint_header.ts +20 -0
  475. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  476. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  477. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  478. package/src/slashing/empire.ts +2 -1
  479. package/src/slashing/helpers.ts +4 -0
  480. package/src/slashing/tally.ts +8 -2
  481. package/src/slashing/types.ts +7 -0
  482. package/src/stats/stats.ts +0 -2
  483. package/src/tests/factories.ts +11 -31
  484. package/src/tests/jest.ts +1 -1
  485. package/src/tests/mocks.ts +62 -42
  486. package/src/tx/block_header.ts +11 -3
  487. package/src/tx/indexed_tx_effect.ts +3 -2
  488. package/src/tx/private_execution_result.ts +1 -1
  489. package/src/tx/profiling.ts +46 -4
  490. package/src/tx/tx.ts +8 -9
  491. package/src/tx/tx_effect.ts +0 -9
  492. package/src/tx/tx_receipt.ts +75 -18
  493. package/src/tx/validator/error_texts.ts +3 -0
  494. package/src/zkpassport/index.ts +11 -12
  495. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  496. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  497. package/dest/block/l2_block_code_to_purge.js +0 -55
  498. package/dest/block/l2_block_header.d.ts +0 -94
  499. package/dest/block/l2_block_header.d.ts.map +0 -1
  500. package/dest/block/l2_block_header.js +0 -160
  501. package/dest/block/l2_block_new.d.ts +0 -134
  502. package/dest/block/l2_block_new.d.ts.map +0 -1
  503. package/dest/block/l2_block_new.js +0 -155
  504. package/dest/contract/contract_class_metadata.d.ts +0 -8
  505. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  506. package/dest/contract/contract_class_metadata.js +0 -1
  507. package/dest/contract/contract_metadata.d.ts +0 -7
  508. package/dest/contract/contract_metadata.d.ts.map +0 -1
  509. package/dest/contract/contract_metadata.js +0 -1
  510. package/dest/database-version/index.d.ts +0 -2
  511. package/dest/database-version/index.d.ts.map +0 -1
  512. package/dest/database-version/index.js +0 -1
  513. package/src/block/l2_block_code_to_purge.ts +0 -80
  514. package/src/block/l2_block_header.ts +0 -255
  515. package/src/block/l2_block_new.ts +0 -211
  516. package/src/contract/contract_class_metadata.ts +0 -8
  517. package/src/contract/contract_metadata.ts +0 -7
  518. package/src/database-version/index.ts +0 -1
@@ -5,9 +5,9 @@ import type { FieldsOf } from '@aztec/foundation/types';
5
5
 
6
6
  import { z } from 'zod';
7
7
 
8
- import { L1PublishedData, PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
8
+ import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
9
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
9
10
  import { L2Block } from './l2_block.js';
10
- import { L2BlockNew } from './l2_block_new.js';
11
11
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
12
12
 
13
13
  /**
@@ -16,7 +16,7 @@ import { CommitteeAttestation } from './proposal/committee_attestation.js';
16
16
  export class CheckpointedL2Block {
17
17
  constructor(
18
18
  public checkpointNumber: CheckpointNumber,
19
- public block: L2BlockNew,
19
+ public block: L2Block,
20
20
  public l1: L1PublishedData,
21
21
  public attestations: CommitteeAttestation[],
22
22
  ) {}
@@ -24,7 +24,7 @@ export class CheckpointedL2Block {
24
24
  return z
25
25
  .object({
26
26
  checkpointNumber: CheckpointNumberSchema,
27
- block: L2BlockNew.schema,
27
+ block: L2Block.schema,
28
28
  l1: L1PublishedData.schema,
29
29
  attestations: z.array(CommitteeAttestation.schema),
30
30
  })
@@ -34,11 +34,11 @@ export class CheckpointedL2Block {
34
34
  static fromBuffer(bufferOrReader: Buffer | BufferReader): CheckpointedL2Block {
35
35
  const reader = BufferReader.asReader(bufferOrReader);
36
36
  const checkpointNumber = reader.readNumber();
37
- const block = reader.readObject(L2BlockNew);
37
+ const block = reader.readObject(L2Block);
38
38
  const l1BlockNumber = reader.readBigInt();
39
- const l1BlockHash = reader.readString();
39
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
40
40
  const l1Timestamp = reader.readBigInt();
41
- const attestations = reader.readVector(CommitteeAttestation);
41
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
42
42
  return new CheckpointedL2Block(
43
43
  CheckpointNumber(checkpointNumber),
44
44
  block,
@@ -58,6 +58,7 @@ export class CheckpointedL2Block {
58
58
 
59
59
  public toBuffer(): Buffer {
60
60
  return serializeToBuffer(
61
+ this.checkpointNumber,
61
62
  this.block,
62
63
  this.l1.blockNumber,
63
64
  this.l1.blockHash,
@@ -67,54 +68,3 @@ export class CheckpointedL2Block {
67
68
  );
68
69
  }
69
70
  }
70
-
71
- export class PublishedL2Block {
72
- constructor(
73
- public block: L2Block,
74
- public l1: L1PublishedData,
75
- public attestations: CommitteeAttestation[],
76
- ) {}
77
-
78
- static get schema() {
79
- return z
80
- .object({
81
- block: L2Block.schema,
82
- l1: L1PublishedData.schema,
83
- attestations: z.array(CommitteeAttestation.schema),
84
- })
85
- .transform(obj => PublishedL2Block.fromFields(obj));
86
- }
87
-
88
- static fromBuffer(bufferOrReader: Buffer | BufferReader): PublishedL2Block {
89
- const reader = BufferReader.asReader(bufferOrReader);
90
- const block = reader.readObject(L2Block);
91
- const l1BlockNumber = reader.readBigInt();
92
- const l1BlockHash = reader.readString();
93
- const l1Timestamp = reader.readBigInt();
94
- const attestations = reader.readVector(CommitteeAttestation);
95
- return new PublishedL2Block(block, new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash), attestations);
96
- }
97
-
98
- static fromFields(fields: FieldsOf<PublishedL2Block>) {
99
- return new PublishedL2Block(fields.block, fields.l1, fields.attestations);
100
- }
101
-
102
- public toBuffer(): Buffer {
103
- return serializeToBuffer(
104
- this.block,
105
- this.l1.blockNumber,
106
- this.l1.blockHash,
107
- this.l1.timestamp,
108
- this.attestations.length,
109
- this.attestations,
110
- );
111
- }
112
-
113
- public toPublishedCheckpoint() {
114
- return new PublishedCheckpoint(this.block.toCheckpoint(), this.l1, this.attestations);
115
- }
116
-
117
- static fromPublishedCheckpoint(checkpoint: PublishedCheckpoint) {
118
- return new PublishedL2Block(L2Block.fromCheckpoint(checkpoint.checkpoint), checkpoint.l1, checkpoint.attestations);
119
- }
120
- }
@@ -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,6 +1,4 @@
1
1
  export * from './l2_block.js';
2
- export * from './l2_block_new.js';
3
- export * from './l2_block_header.js';
4
2
  export * from './l2_block_stream/index.js';
5
3
  export * from './in_block.js';
6
4
  export * from './body.js';
@@ -1,44 +1,66 @@
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 {
3
+ BlockNumber,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ IndexWithinCheckpoint,
7
+ IndexWithinCheckpointSchema,
8
+ SlotNumber,
9
+ } from '@aztec/foundation/branded-types';
3
10
  import { Fr } from '@aztec/foundation/curves/bn254';
4
11
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
- import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
12
 
7
13
  import { z } from 'zod';
8
14
 
9
- import { Checkpoint } from '../checkpoint/checkpoint.js';
15
+ import type { PrivateLog } from '../logs/private_log.js';
10
16
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
- import type { BlockHeader } from '../tx/block_header.js';
17
+ import { BlockHeader } from '../tx/block_header.js';
18
+ import type { BlockHash } from './block_hash.js';
12
19
  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
20
  import type { L2BlockInfo } from './l2_block_info.js';
16
- import { L2BlockNew } from './l2_block_new.js';
17
21
 
18
22
  /**
19
- * The data that makes up the rollup proof, with encoder decoder functions.
20
- *
21
- * @deprecated Use `L2BlockNew` instead.
23
+ * An L2 block with a header and a body.
22
24
  */
23
25
  export class L2Block {
24
26
  constructor(
25
27
  /** Snapshot of archive tree after the block is applied. */
26
28
  public archive: AppendOnlyTreeSnapshot,
27
- /** L2 block header. */
28
- public header: L2BlockHeader,
29
+ /** Header of the block. */
30
+ public header: BlockHeader,
29
31
  /** L2 block body. */
30
32
  public body: Body,
31
- private blockHash: Fr | undefined = undefined,
33
+ /** Number of the checkpoint that the block belongs to. */
34
+ public checkpointNumber: CheckpointNumber,
35
+ /** Index of the block within the checkpoint. */
36
+ public indexWithinCheckpoint: IndexWithinCheckpoint,
32
37
  ) {}
33
38
 
39
+ get number(): BlockNumber {
40
+ return this.header.globalVariables.blockNumber;
41
+ }
42
+
43
+ get slot(): SlotNumber {
44
+ return this.header.globalVariables.slotNumber;
45
+ }
46
+
47
+ get timestamp(): bigint {
48
+ return this.header.globalVariables.timestamp;
49
+ }
50
+
34
51
  static get schema() {
35
52
  return z
36
53
  .object({
37
54
  archive: AppendOnlyTreeSnapshot.schema,
38
- header: L2BlockHeader.schema,
55
+ header: BlockHeader.schema,
39
56
  body: Body.schema,
57
+ checkpointNumber: CheckpointNumberSchema,
58
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
40
59
  })
41
- .transform(({ archive, header, body }) => new L2Block(archive, header, body));
60
+ .transform(
61
+ ({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
62
+ new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
63
+ );
42
64
  }
43
65
 
44
66
  /**
@@ -47,11 +69,13 @@ export class L2Block {
47
69
  */
48
70
  static fromBuffer(buf: Buffer | BufferReader) {
49
71
  const reader = BufferReader.asReader(buf);
50
- const header = reader.readObject(L2BlockHeader);
72
+ const header = reader.readObject(BlockHeader);
51
73
  const archive = reader.readObject(AppendOnlyTreeSnapshot);
52
74
  const body = reader.readObject(Body);
75
+ const checkpointNumber = CheckpointNumber(reader.readNumber());
76
+ const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
53
77
 
54
- return new L2Block(archive, header, body);
78
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
55
79
  }
56
80
 
57
81
  /**
@@ -59,152 +83,39 @@ export class L2Block {
59
83
  * @returns A serialized L2 block as a Buffer.
60
84
  */
61
85
  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;
86
+ return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
127
87
  }
128
88
 
129
89
  /**
130
90
  * Returns the block's hash (hash of block header).
131
91
  * @returns The block's hash.
132
92
  */
133
- public async hash(): Promise<Fr> {
134
- if (this.blockHash === undefined) {
135
- this.blockHash = await this.getBlockHeader().hash();
136
- }
137
- return this.blockHash;
93
+ public hash(): Promise<BlockHash> {
94
+ return this.header.hash();
138
95
  }
139
96
 
140
97
  /**
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.
98
+ * Checks if this block equals another block.
99
+ * @param other - The other block to compare with.
100
+ * @returns True if both blocks are equal.
144
101
  */
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(args: { checkpointNumber?: CheckpointNumber; indexWithinCheckpoint?: number } = {}): L2BlockNew {
155
- return new L2BlockNew(
156
- this.archive,
157
- this.getBlockHeader(),
158
- this.body,
159
- args?.checkpointNumber ?? CheckpointNumber.fromBlockNumber(this.number),
160
- args?.indexWithinCheckpoint ?? 0,
102
+ public equals(other: this): boolean {
103
+ return (
104
+ this.archive.equals(other.archive) &&
105
+ this.header.equals(other.header) &&
106
+ this.body.equals(other.body) &&
107
+ this.checkpointNumber === other.checkpointNumber &&
108
+ this.indexWithinCheckpoint === other.indexWithinCheckpoint
161
109
  );
162
110
  }
163
111
 
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.blobsHash,
179
- checkpointHeader.inHash,
180
- block.header.state,
181
- block.header.globalVariables,
182
- block.header.totalFees,
183
- checkpointHeader.totalManaUsed,
184
- block.header.spongeBlobHash,
185
- checkpointHeader.blockHeadersHash,
186
- );
187
- return new L2Block(checkpoint.archive, header, block.body);
188
- }
189
-
190
- /**
191
- * @deprecated
192
- * This only works when there's one block per checkpoint.
193
- * TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
194
- */
195
- public getCheckpointBlobFields() {
196
- const blockBlobData = this.toBlockBlobData();
197
- return encodeCheckpointBlobDataFromBlocks([blockBlobData]);
198
- }
199
-
200
112
  public toBlobFields(): Fr[] {
201
113
  const blockBlobData = this.toBlockBlobData();
202
114
  return encodeBlockBlobData(blockBlobData);
203
115
  }
204
116
 
205
117
  public toBlockBlobData(): BlockBlobData {
206
- // There's only one L2Block per checkpoint, so it's always the first block in the checkpoint.
207
- const isFirstBlock = true;
118
+ const isFirstBlock = this.indexWithinCheckpoint === 0;
208
119
  return {
209
120
  blockEndMarker: {
210
121
  numTxs: this.body.txEffects.length,
@@ -227,6 +138,48 @@ export class L2Block {
227
138
  };
228
139
  }
229
140
 
141
+ static empty(header?: BlockHeader) {
142
+ return new L2Block(
143
+ AppendOnlyTreeSnapshot.empty(),
144
+ header ?? BlockHeader.empty(),
145
+ Body.empty(),
146
+ CheckpointNumber(0),
147
+ IndexWithinCheckpoint(0),
148
+ );
149
+ }
150
+
151
+ /**
152
+ * Creates an L2 block containing random data.
153
+ * @param l2BlockNum - The number of the L2 block.
154
+ * @param txsPerBlock - The number of transactions to include in the block.
155
+ * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
156
+ * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
157
+ * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
158
+ * @returns The L2 block.
159
+ */
160
+ static async random(
161
+ blockNumber: BlockNumber,
162
+ {
163
+ checkpointNumber = CheckpointNumber(Number(blockNumber)),
164
+ indexWithinCheckpoint = IndexWithinCheckpoint(0),
165
+ txsPerBlock = 1,
166
+ txOptions = {},
167
+ makeTxOptions,
168
+ ...blockHeaderOverrides
169
+ }: {
170
+ checkpointNumber?: CheckpointNumber;
171
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
172
+ txsPerBlock?: number;
173
+ txOptions?: Partial<Parameters<typeof Body.random>[0]>;
174
+ makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
175
+ } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
176
+ ): Promise<L2Block> {
177
+ const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
178
+ const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
180
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
181
+ }
182
+
230
183
  /**
231
184
  * Returns stats used for logging.
232
185
  * @returns Stats on tx count, number, and log size and count.
@@ -254,9 +207,12 @@ export class L2Block {
254
207
  };
255
208
  }
256
209
 
210
+ getPrivateLogs(): PrivateLog[] {
211
+ return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
212
+ }
213
+
257
214
  toBlockInfo(): L2BlockInfo {
258
215
  return {
259
- blockHash: this.blockHash,
260
216
  archive: this.archive.root,
261
217
  lastArchive: this.header.lastArchive.root,
262
218
  blockNumber: this.number,
@@ -265,8 +221,4 @@ export class L2Block {
265
221
  timestamp: this.header.globalVariables.timestamp,
266
222
  };
267
223
  }
268
-
269
- equals(other: L2Block) {
270
- return this.archive.equals(other.archive) && this.header.equals(other.header) && this.body.equals(other.body);
271
- }
272
224
  }