@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.a072138

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 (486) hide show
  1. package/dest/abi/function_call.d.ts +9 -1
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/utils.d.ts +7 -1
  4. package/dest/abi/utils.d.ts.map +1 -1
  5. package/dest/abi/utils.js +7 -0
  6. package/dest/auth_witness/auth_witness.d.ts +2 -1
  7. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  8. package/dest/avm/avm.d.ts +62 -62
  9. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  10. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  11. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  12. package/dest/avm/avm_proving_request.d.ts +299 -299
  13. package/dest/avm/contract_storage_read.d.ts +13 -1
  14. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  15. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  16. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  17. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  19. package/dest/avm/public_data_read.d.ts +10 -1
  20. package/dest/avm/public_data_read.d.ts.map +1 -1
  21. package/dest/avm/public_data_update_request.d.ts +10 -1
  22. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_data_write.d.ts +7 -1
  24. package/dest/avm/public_data_write.d.ts.map +1 -1
  25. package/dest/avm/public_inner_call_request.d.ts +4 -1
  26. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  27. package/dest/avm/revert_code.d.ts +4 -4
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/block/block_hash.d.ts +18 -14
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +22 -20
  32. package/dest/block/block_parameter.d.ts +4 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +2 -0
  35. package/dest/block/body.d.ts +1 -1
  36. package/dest/block/body.d.ts.map +1 -1
  37. package/dest/block/body.js +2 -1
  38. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  39. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  40. package/dest/block/checkpointed_l2_block.js +7 -45
  41. package/dest/block/in_block.d.ts +9 -9
  42. package/dest/block/in_block.d.ts.map +1 -1
  43. package/dest/block/in_block.js +4 -4
  44. package/dest/block/index.d.ts +1 -3
  45. package/dest/block/index.d.ts.map +1 -1
  46. package/dest/block/index.js +0 -2
  47. package/dest/block/l2_block.d.ts +56 -59
  48. package/dest/block/l2_block.d.ts.map +1 -1
  49. package/dest/block/l2_block.js +64 -110
  50. package/dest/block/l2_block_source.d.ts +65 -39
  51. package/dest/block/l2_block_source.d.ts.map +1 -1
  52. package/dest/block/l2_block_source.js +2 -1
  53. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  54. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  55. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  57. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  58. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  63. package/dest/block/validate_block_result.d.ts +1 -1
  64. package/dest/block/validate_block_result.d.ts.map +1 -1
  65. package/dest/block/validate_block_result.js +5 -4
  66. package/dest/checkpoint/checkpoint.d.ts +30 -20
  67. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  68. package/dest/checkpoint/checkpoint.js +18 -6
  69. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  70. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  71. package/dest/checkpoint/published_checkpoint.js +4 -3
  72. package/dest/config/node-rpc-config.js +1 -1
  73. package/dest/contract/complete_address.d.ts +4 -1
  74. package/dest/contract/complete_address.d.ts.map +1 -1
  75. package/dest/contract/contract_address.js +1 -1
  76. package/dest/contract/contract_class_id.d.ts +1 -1
  77. package/dest/contract/contract_class_id.js +1 -1
  78. package/dest/contract/contract_deployment_data.d.ts +5 -5
  79. package/dest/contract/index.d.ts +1 -3
  80. package/dest/contract/index.d.ts.map +1 -1
  81. package/dest/contract/index.js +0 -2
  82. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  83. package/dest/contract/private_function.d.ts +1 -1
  84. package/dest/contract/private_function.d.ts.map +1 -1
  85. package/dest/contract/private_function.js +2 -3
  86. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  87. package/dest/contract/private_function_membership_proof.js +1 -1
  88. package/dest/database-version/database_version.d.ts +58 -0
  89. package/dest/database-version/database_version.d.ts.map +1 -0
  90. package/dest/database-version/database_version.js +69 -0
  91. package/dest/database-version/version_manager.d.ts +3 -49
  92. package/dest/database-version/version_manager.d.ts.map +1 -1
  93. package/dest/database-version/version_manager.js +1 -66
  94. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  97. package/dest/deserialization/index.d.ts +11 -0
  98. package/dest/deserialization/index.d.ts.map +1 -0
  99. package/dest/deserialization/index.js +10 -0
  100. package/dest/epoch-helpers/index.d.ts +3 -1
  101. package/dest/epoch-helpers/index.d.ts.map +1 -1
  102. package/dest/epoch-helpers/index.js +5 -1
  103. package/dest/errors/proving_error.d.ts +2 -2
  104. package/dest/errors/proving_error.d.ts.map +1 -1
  105. package/dest/hash/hash.js +2 -2
  106. package/dest/hash/map_slot.d.ts +1 -1
  107. package/dest/hash/map_slot.d.ts.map +1 -1
  108. package/dest/hash/map_slot.js +4 -3
  109. package/dest/interfaces/api_limit.d.ts +2 -1
  110. package/dest/interfaces/api_limit.d.ts.map +1 -1
  111. package/dest/interfaces/api_limit.js +1 -0
  112. package/dest/interfaces/archiver.d.ts +1 -1
  113. package/dest/interfaces/archiver.d.ts.map +1 -1
  114. package/dest/interfaces/archiver.js +18 -15
  115. package/dest/interfaces/aztec-node-admin.d.ts +56 -26
  116. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  117. package/dest/interfaces/aztec-node.d.ts +65 -68
  118. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  119. package/dest/interfaces/aztec-node.js +10 -16
  120. package/dest/interfaces/block-builder.d.ts +22 -14
  121. package/dest/interfaces/block-builder.d.ts.map +1 -1
  122. package/dest/interfaces/block-builder.js +7 -0
  123. package/dest/interfaces/configs.d.ts +8 -8
  124. package/dest/interfaces/configs.d.ts.map +1 -1
  125. package/dest/interfaces/get_logs_response.d.ts +8 -8
  126. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  127. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  128. package/dest/interfaces/prover-client.d.ts +10 -1
  129. package/dest/interfaces/prover-client.d.ts.map +1 -1
  130. package/dest/interfaces/prover-client.js +7 -1
  131. package/dest/interfaces/proving-job.d.ts +14 -14
  132. package/dest/interfaces/tx_provider.d.ts +3 -3
  133. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  134. package/dest/interfaces/validator.d.ts +70 -14
  135. package/dest/interfaces/validator.d.ts.map +1 -1
  136. package/dest/interfaces/validator.js +2 -2
  137. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  138. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  139. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  140. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  141. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  142. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  143. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  144. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  145. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  146. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  147. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  148. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  149. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  150. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  151. package/dest/kernel/hints/read_request.d.ts +7 -1
  152. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  153. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  154. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  155. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  156. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  157. package/dest/kernel/private_call_data.d.ts +25 -1
  158. package/dest/kernel/private_call_data.d.ts.map +1 -1
  159. package/dest/kernel/private_call_request.d.ts +16 -1
  160. package/dest/kernel/private_call_request.d.ts.map +1 -1
  161. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  162. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  163. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  164. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  165. package/dest/kernel/private_kernel_data.d.ts +7 -1
  166. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  167. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  168. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  169. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  170. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  171. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  172. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  173. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  174. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  175. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  176. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  178. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  179. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  180. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  181. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  182. package/dest/kernel/private_validation_requests.d.ts +10 -1
  183. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  184. package/dest/kernel/public_call_request.d.ts +22 -1
  185. package/dest/kernel/public_call_request.d.ts.map +1 -1
  186. package/dest/kernel/utils/optional_number.d.ts +7 -1
  187. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  188. package/dest/keys/derivation.d.ts +3 -3
  189. package/dest/keys/derivation.js +8 -8
  190. package/dest/keys/key_types.d.ts +1 -1
  191. package/dest/keys/public_keys.d.ts +5 -1
  192. package/dest/keys/public_keys.d.ts.map +1 -1
  193. package/dest/keys/utils.d.ts +1 -1
  194. package/dest/keys/utils.d.ts.map +1 -1
  195. package/dest/keys/utils.js +7 -3
  196. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  197. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  198. package/dest/l1-contracts/slash_factory.js +1 -0
  199. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  200. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  201. package/dest/logs/extended_public_log.d.ts +11 -9
  202. package/dest/logs/extended_public_log.d.ts.map +1 -1
  203. package/dest/logs/log_id.d.ts +12 -8
  204. package/dest/logs/log_id.d.ts.map +1 -1
  205. package/dest/logs/log_id.js +6 -5
  206. package/dest/logs/siloed_tag.d.ts +1 -1
  207. package/dest/logs/siloed_tag.d.ts.map +1 -1
  208. package/dest/logs/siloed_tag.js +4 -3
  209. package/dest/messaging/inbox_leaf.d.ts +3 -1
  210. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  211. package/dest/messaging/l1_actor.d.ts +7 -1
  212. package/dest/messaging/l1_actor.d.ts.map +1 -1
  213. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  214. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  215. package/dest/messaging/l2_actor.d.ts +7 -1
  216. package/dest/messaging/l2_actor.d.ts.map +1 -1
  217. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  218. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  219. package/dest/messaging/l2_to_l1_membership.js +5 -3
  220. package/dest/messaging/out_hash.d.ts +41 -4
  221. package/dest/messaging/out_hash.d.ts.map +1 -1
  222. package/dest/messaging/out_hash.js +52 -26
  223. package/dest/note/note_dao.d.ts +36 -5
  224. package/dest/note/note_dao.d.ts.map +1 -1
  225. package/dest/note/note_dao.js +15 -12
  226. package/dest/p2p/block_proposal.d.ts +23 -8
  227. package/dest/p2p/block_proposal.d.ts.map +1 -1
  228. package/dest/p2p/block_proposal.js +25 -7
  229. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  230. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  231. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  232. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  233. package/dest/p2p/checkpoint_proposal.js +17 -5
  234. package/dest/p2p/consensus_payload.d.ts +4 -3
  235. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  236. package/dest/p2p/consensus_payload.js +0 -3
  237. package/dest/p2p/constants.d.ts +3 -0
  238. package/dest/p2p/constants.d.ts.map +1 -0
  239. package/dest/p2p/constants.js +2 -0
  240. package/dest/p2p/index.d.ts +2 -1
  241. package/dest/p2p/index.d.ts.map +1 -1
  242. package/dest/p2p/index.js +1 -0
  243. package/dest/p2p/message_validator.d.ts +18 -3
  244. package/dest/p2p/message_validator.d.ts.map +1 -1
  245. package/dest/p2p/message_validator.js +2 -1
  246. package/dest/p2p/signed_txs.d.ts +3 -1
  247. package/dest/p2p/signed_txs.d.ts.map +1 -1
  248. package/dest/p2p/signed_txs.js +6 -1
  249. package/dest/p2p/topic_type.js +2 -1
  250. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  251. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  252. package/dest/parity/parity_public_inputs.d.ts +4 -1
  253. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  254. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  255. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  256. package/dest/proofs/chonk_proof.d.ts +1 -1
  257. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  258. package/dest/proofs/chonk_proof.js +9 -4
  259. package/dest/proofs/proof.d.ts +4 -1
  260. package/dest/proofs/proof.d.ts.map +1 -1
  261. package/dest/proofs/recursive_proof.d.ts +10 -1
  262. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  263. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  264. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  265. package/dest/rollup/block_constant_data.d.ts +12 -1
  266. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  267. package/dest/rollup/block_headers_hash.js +1 -1
  268. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  269. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  270. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  271. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  272. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  273. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  274. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  275. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  276. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  277. package/dest/rollup/checkpoint_header.d.ts +29 -2
  278. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  279. package/dest/rollup/checkpoint_header.js +21 -5
  280. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  281. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  282. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  283. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  284. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  285. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  286. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  287. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  288. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  289. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  290. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  291. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  292. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  293. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  294. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  295. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  296. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  297. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  298. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  299. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  300. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  301. package/dest/schemas/schemas.d.ts +1 -1
  302. package/dest/stats/stats.d.ts +1 -3
  303. package/dest/stats/stats.d.ts.map +1 -1
  304. package/dest/tests/factories.d.ts +2 -4
  305. package/dest/tests/factories.d.ts.map +1 -1
  306. package/dest/tests/factories.js +6 -15
  307. package/dest/tests/jest.js +1 -1
  308. package/dest/tests/mocks.d.ts +20 -14
  309. package/dest/tests/mocks.d.ts.map +1 -1
  310. package/dest/tests/mocks.js +45 -27
  311. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  312. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  313. package/dest/trees/nullifier_leaf.d.ts +13 -1
  314. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  315. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  316. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  317. package/dest/trees/public_data_leaf.d.ts +16 -1
  318. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  319. package/dest/trees/public_data_witness.d.ts +11 -1
  320. package/dest/trees/public_data_witness.d.ts.map +1 -1
  321. package/dest/tx/block_header.d.ts +14 -2
  322. package/dest/tx/block_header.d.ts.map +1 -1
  323. package/dest/tx/block_header.js +5 -1
  324. package/dest/tx/call_context.d.ts +13 -1
  325. package/dest/tx/call_context.d.ts.map +1 -1
  326. package/dest/tx/capsule.d.ts +4 -1
  327. package/dest/tx/capsule.d.ts.map +1 -1
  328. package/dest/tx/execution_payload.d.ts +9 -1
  329. package/dest/tx/execution_payload.d.ts.map +1 -1
  330. package/dest/tx/function_data.d.ts +4 -2
  331. package/dest/tx/function_data.d.ts.map +1 -1
  332. package/dest/tx/global_variables.d.ts +9 -1
  333. package/dest/tx/global_variables.d.ts.map +1 -1
  334. package/dest/tx/hashed_values.d.ts +7 -1
  335. package/dest/tx/hashed_values.d.ts.map +1 -1
  336. package/dest/tx/in_tx.d.ts +4 -4
  337. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  338. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  339. package/dest/tx/indexed_tx_effect.js +3 -2
  340. package/dest/tx/partial_state_reference.d.ts +4 -1
  341. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  342. package/dest/tx/private_execution_result.d.ts +23 -2
  343. package/dest/tx/private_execution_result.d.ts.map +1 -1
  344. package/dest/tx/private_execution_result.js +1 -1
  345. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  346. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  347. package/dest/tx/profiling.d.ts +149 -26
  348. package/dest/tx/profiling.d.ts.map +1 -1
  349. package/dest/tx/profiling.js +44 -7
  350. package/dest/tx/protocol_contracts.d.ts +1 -1
  351. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  352. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  353. package/dest/tx/state_reference.d.ts +3 -1
  354. package/dest/tx/state_reference.d.ts.map +1 -1
  355. package/dest/tx/tx.d.ts +24 -1
  356. package/dest/tx/tx.d.ts.map +1 -1
  357. package/dest/tx/tx.js +6 -3
  358. package/dest/tx/tx_context.d.ts +2 -1
  359. package/dest/tx/tx_context.d.ts.map +1 -1
  360. package/dest/tx/tx_effect.d.ts +32 -6
  361. package/dest/tx/tx_effect.d.ts.map +1 -1
  362. package/dest/tx/tx_effect.js +0 -7
  363. package/dest/tx/tx_execution_request.d.ts +30 -1
  364. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  365. package/dest/tx/tx_hash.d.ts +2 -1
  366. package/dest/tx/tx_hash.d.ts.map +1 -1
  367. package/dest/tx/tx_receipt.d.ts +47 -13
  368. package/dest/tx/tx_receipt.d.ts.map +1 -1
  369. package/dest/tx/tx_receipt.js +46 -15
  370. package/dest/tx/tx_request.d.ts +6 -1
  371. package/dest/tx/tx_request.d.ts.map +1 -1
  372. package/dest/tx/validator/error_texts.d.ts +2 -1
  373. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  374. package/dest/tx/validator/error_texts.js +2 -0
  375. package/dest/types/shared.d.ts +4 -1
  376. package/dest/types/shared.d.ts.map +1 -1
  377. package/dest/validators/schemas.d.ts +8 -8
  378. package/dest/vks/verification_key.d.ts +22 -1
  379. package/dest/vks/verification_key.d.ts.map +1 -1
  380. package/dest/vks/vk_data.d.ts +7 -1
  381. package/dest/vks/vk_data.d.ts.map +1 -1
  382. package/dest/zkpassport/index.d.ts +3 -4
  383. package/dest/zkpassport/index.d.ts.map +1 -1
  384. package/dest/zkpassport/index.js +9 -9
  385. package/package.json +14 -11
  386. package/src/abi/utils.ts +17 -0
  387. package/src/block/block_hash.ts +26 -25
  388. package/src/block/block_parameter.ts +4 -2
  389. package/src/block/body.ts +2 -1
  390. package/src/block/checkpointed_l2_block.ts +8 -58
  391. package/src/block/in_block.ts +5 -5
  392. package/src/block/index.ts +0 -2
  393. package/src/block/l2_block.ts +102 -150
  394. package/src/block/l2_block_source.ts +71 -42
  395. package/src/block/l2_block_stream/interfaces.ts +8 -5
  396. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  397. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  398. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  399. package/src/block/validate_block_result.ts +5 -4
  400. package/src/checkpoint/checkpoint.ts +33 -11
  401. package/src/checkpoint/published_checkpoint.ts +4 -3
  402. package/src/config/node-rpc-config.ts +1 -1
  403. package/src/contract/contract_address.ts +1 -1
  404. package/src/contract/contract_class_id.ts +1 -1
  405. package/src/contract/index.ts +0 -2
  406. package/src/contract/private_function.ts +2 -3
  407. package/src/contract/private_function_membership_proof.ts +1 -1
  408. package/src/database-version/database_version.ts +87 -0
  409. package/src/database-version/version_manager.ts +1 -77
  410. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  411. package/src/deserialization/index.ts +21 -0
  412. package/src/epoch-helpers/index.ts +10 -1
  413. package/src/hash/hash.ts +2 -2
  414. package/src/hash/map_slot.ts +3 -2
  415. package/src/interfaces/api_limit.ts +1 -0
  416. package/src/interfaces/archiver.ts +18 -24
  417. package/src/interfaces/aztec-node.ts +85 -134
  418. package/src/interfaces/block-builder.ts +40 -23
  419. package/src/interfaces/configs.ts +1 -3
  420. package/src/interfaces/l2_logs_source.ts +17 -4
  421. package/src/interfaces/prover-client.ts +15 -0
  422. package/src/interfaces/tx_provider.ts +2 -2
  423. package/src/interfaces/validator.ts +9 -11
  424. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  425. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  426. package/src/keys/derivation.ts +8 -8
  427. package/src/keys/key_types.ts +1 -1
  428. package/src/keys/utils.ts +7 -3
  429. package/src/l1-contracts/slash_factory.ts +1 -0
  430. package/src/logs/log_id.ts +7 -6
  431. package/src/logs/siloed_tag.ts +3 -2
  432. package/src/messaging/l2_to_l1_membership.ts +5 -3
  433. package/src/messaging/out_hash.ts +60 -29
  434. package/src/note/note_dao.ts +18 -13
  435. package/src/p2p/block_proposal.ts +36 -13
  436. package/src/p2p/checkpoint_proposal.ts +29 -11
  437. package/src/p2p/consensus_payload.ts +0 -5
  438. package/src/p2p/constants.ts +3 -0
  439. package/src/p2p/index.ts +1 -0
  440. package/src/p2p/message_validator.ts +14 -2
  441. package/src/p2p/signed_txs.ts +6 -1
  442. package/src/p2p/topic_type.ts +1 -1
  443. package/src/proofs/chonk_proof.ts +9 -5
  444. package/src/rollup/block_headers_hash.ts +1 -1
  445. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  446. package/src/rollup/checkpoint_header.ts +20 -0
  447. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  448. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  449. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  450. package/src/stats/stats.ts +0 -2
  451. package/src/tests/factories.ts +6 -26
  452. package/src/tests/jest.ts +1 -1
  453. package/src/tests/mocks.ts +62 -42
  454. package/src/tx/block_header.ts +11 -3
  455. package/src/tx/indexed_tx_effect.ts +3 -2
  456. package/src/tx/private_execution_result.ts +1 -1
  457. package/src/tx/profiling.ts +46 -4
  458. package/src/tx/tx.ts +8 -9
  459. package/src/tx/tx_effect.ts +0 -9
  460. package/src/tx/tx_receipt.ts +75 -18
  461. package/src/tx/validator/error_texts.ts +3 -0
  462. package/src/zkpassport/index.ts +11 -12
  463. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  464. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  465. package/dest/block/l2_block_code_to_purge.js +0 -55
  466. package/dest/block/l2_block_header.d.ts +0 -94
  467. package/dest/block/l2_block_header.d.ts.map +0 -1
  468. package/dest/block/l2_block_header.js +0 -160
  469. package/dest/block/l2_block_new.d.ts +0 -134
  470. package/dest/block/l2_block_new.d.ts.map +0 -1
  471. package/dest/block/l2_block_new.js +0 -155
  472. package/dest/contract/contract_class_metadata.d.ts +0 -8
  473. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  474. package/dest/contract/contract_class_metadata.js +0 -1
  475. package/dest/contract/contract_metadata.d.ts +0 -7
  476. package/dest/contract/contract_metadata.d.ts.map +0 -1
  477. package/dest/contract/contract_metadata.js +0 -1
  478. package/dest/database-version/index.d.ts +0 -2
  479. package/dest/database-version/index.d.ts.map +0 -1
  480. package/dest/database-version/index.js +0 -1
  481. package/src/block/l2_block_code_to_purge.ts +0 -80
  482. package/src/block/l2_block_header.ts +0 -255
  483. package/src/block/l2_block_new.ts +0 -211
  484. package/src/contract/contract_class_metadata.ts +0 -8
  485. package/src/contract/contract_metadata.ts +0 -7
  486. package/src/database-version/index.ts +0 -1
@@ -32,6 +32,14 @@ export class CheckpointHeader {
32
32
  public blobsHash: Fr,
33
33
  /** Root of the l1 to l2 messages subtree. */
34
34
  public inHash: Fr,
35
+ /**
36
+ * The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
37
+ * index 0, the second at index 1, and so on.
38
+ * Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and
39
+ * including the current checkpoint. Any subsequent checkpoints added to the same epoch are not reflected in this
40
+ * value.
41
+ */
42
+ public epochOutHash: Fr,
35
43
  /** Slot number of the L2 block */
36
44
  public slotNumber: SlotNumber,
37
45
  /** Timestamp of the L2 block. */
@@ -53,6 +61,7 @@ export class CheckpointHeader {
53
61
  blockHeadersHash: schemas.Fr,
54
62
  blobsHash: schemas.Fr,
55
63
  inHash: schemas.Fr,
64
+ epochOutHash: schemas.Fr,
56
65
  slotNumber: schemas.SlotNumber,
57
66
  timestamp: schemas.BigInt,
58
67
  coinbase: schemas.EthAddress,
@@ -69,6 +78,7 @@ export class CheckpointHeader {
69
78
  fields.blockHeadersHash,
70
79
  fields.blobsHash,
71
80
  fields.inHash,
81
+ fields.epochOutHash,
72
82
  fields.slotNumber,
73
83
  fields.timestamp,
74
84
  fields.coinbase,
@@ -90,6 +100,7 @@ export class CheckpointHeader {
90
100
  reader.readObject(Fr),
91
101
  reader.readObject(Fr),
92
102
  reader.readObject(Fr),
103
+ reader.readObject(Fr),
93
104
  SlotNumber(Fr.fromBuffer(reader).toNumber()),
94
105
  reader.readUInt64(),
95
106
  reader.readObject(EthAddress),
@@ -105,6 +116,7 @@ export class CheckpointHeader {
105
116
  this.blockHeadersHash.equals(other.blockHeadersHash) &&
106
117
  this.blobsHash.equals(other.blobsHash) &&
107
118
  this.inHash.equals(other.inHash) &&
119
+ this.epochOutHash.equals(other.epochOutHash) &&
108
120
  this.slotNumber === other.slotNumber &&
109
121
  this.timestamp === other.timestamp &&
110
122
  this.coinbase.equals(other.coinbase) &&
@@ -132,6 +144,7 @@ export class CheckpointHeader {
132
144
  this.blockHeadersHash,
133
145
  this.blobsHash,
134
146
  this.inHash,
147
+ this.epochOutHash,
135
148
  new Fr(this.slotNumber),
136
149
  bigintToUInt64BE(this.timestamp),
137
150
  this.coinbase,
@@ -151,6 +164,7 @@ export class CheckpointHeader {
151
164
  blockHeadersHash: Fr.ZERO,
152
165
  blobsHash: Fr.ZERO,
153
166
  inHash: Fr.ZERO,
167
+ epochOutHash: Fr.ZERO,
154
168
  slotNumber: SlotNumber.ZERO,
155
169
  timestamp: 0n,
156
170
  coinbase: EthAddress.ZERO,
@@ -167,6 +181,7 @@ export class CheckpointHeader {
167
181
  blockHeadersHash: Fr.random(),
168
182
  blobsHash: Fr.random(),
169
183
  inHash: Fr.random(),
184
+ epochOutHash: Fr.random(),
170
185
  slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
171
186
  timestamp: BigInt(Math.floor(Date.now() / 1000)),
172
187
  coinbase: EthAddress.random(),
@@ -183,6 +198,7 @@ export class CheckpointHeader {
183
198
  this.blockHeadersHash.isZero() &&
184
199
  this.blobsHash.isZero() &&
185
200
  this.inHash.isZero() &&
201
+ this.epochOutHash.isZero() &&
186
202
  this.slotNumber === 0 &&
187
203
  this.timestamp === 0n &&
188
204
  this.coinbase.isZero() &&
@@ -210,6 +226,7 @@ export class CheckpointHeader {
210
226
  Fr.fromString(header.blockHeadersHash),
211
227
  Fr.fromString(header.blobsHash),
212
228
  Fr.fromString(header.inHash),
229
+ Fr.fromString(header.outHash),
213
230
  SlotNumber.fromBigInt(header.slotNumber),
214
231
  header.timestamp,
215
232
  new EthAddress(hexToBuffer(header.coinbase)),
@@ -233,6 +250,7 @@ export class CheckpointHeader {
233
250
  blockHeadersHash: this.blockHeadersHash.toString(),
234
251
  blobsHash: this.blobsHash.toString(),
235
252
  inHash: this.inHash.toString(),
253
+ outHash: this.epochOutHash.toString(),
236
254
  slotNumber: BigInt(this.slotNumber),
237
255
  timestamp: this.timestamp,
238
256
  coinbase: this.coinbase.toString(),
@@ -251,6 +269,7 @@ export class CheckpointHeader {
251
269
  blockHeadersHash: this.blockHeadersHash.toString(),
252
270
  blobsHash: this.blobsHash.toString(),
253
271
  inHash: this.inHash.toString(),
272
+ epochOutHash: this.epochOutHash.toString(),
254
273
  slotNumber: this.slotNumber,
255
274
  timestamp: this.timestamp,
256
275
  coinbase: this.coinbase.toString(),
@@ -266,6 +285,7 @@ export class CheckpointHeader {
266
285
  blockHeadersHash: ${this.blockHeadersHash.toString()},
267
286
  blobsHash: ${inspect(this.blobsHash)},
268
287
  inHash: ${inspect(this.inHash)},
288
+ epochOutHash: ${inspect(this.epochOutHash)},
269
289
  slotNumber: ${this.slotNumber},
270
290
  timestamp: ${this.timestamp},
271
291
  coinbase: ${this.coinbase.toString()},
@@ -28,13 +28,17 @@ export class CheckpointRollupPublicInputs {
28
28
  */
29
29
  public newArchive: AppendOnlyTreeSnapshot,
30
30
  /**
31
- * The hashes of the headers of the constituent checkpoints.
31
+ * The out hash tree snapshot immediately before this checkpoint range.
32
32
  */
33
- public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
33
+ public previousOutHash: AppendOnlyTreeSnapshot,
34
34
  /**
35
- * The `out_hash` values from all checkpoints in this checkpoint range.
35
+ * The out hash tree snapshot after applying this checkpoint range.
36
36
  */
37
- public outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
37
+ public newOutHash: AppendOnlyTreeSnapshot,
38
+ /**
39
+ * The hashes of the headers of the constituent checkpoints.
40
+ */
41
+ public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
38
42
  /**
39
43
  * The summed transaction fees and recipients of the constituent checkpoints.
40
44
  */
@@ -59,7 +63,8 @@ export class CheckpointRollupPublicInputs {
59
63
  reader.readObject(EpochConstantData),
60
64
  reader.readObject(AppendOnlyTreeSnapshot),
61
65
  reader.readObject(AppendOnlyTreeSnapshot),
62
- reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
66
+ reader.readObject(AppendOnlyTreeSnapshot),
67
+ reader.readObject(AppendOnlyTreeSnapshot),
63
68
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
64
69
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
65
70
  reader.readObject(BlobAccumulator),
@@ -73,8 +78,9 @@ export class CheckpointRollupPublicInputs {
73
78
  this.constants,
74
79
  this.previousArchive,
75
80
  this.newArchive,
81
+ this.previousOutHash,
82
+ this.newOutHash,
76
83
  this.checkpointHeaderHashes,
77
- this.outHashes,
78
84
  this.fees,
79
85
  this.startBlobAccumulator,
80
86
  this.endBlobAccumulator,
@@ -1,5 +1,5 @@
1
1
  import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
- import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, OUT_HASH_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { BLS12Point } from '@aztec/foundation/curves/bls12';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
@@ -8,6 +8,7 @@ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
8
8
  import type { FieldsOf } from '@aztec/foundation/types';
9
9
 
10
10
  import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
11
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
12
  import { BlockHeader } from '../tx/block_header.js';
12
13
  import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
13
14
 
@@ -21,6 +22,14 @@ export class CheckpointRootRollupHints {
21
22
  * Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
22
23
  */
23
24
  public previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
25
+ /**
26
+ * The out hash tree snapshot immediately before this checkpoint.
27
+ */
28
+ public previousOutHash: AppendOnlyTreeSnapshot,
29
+ /**
30
+ * Hint for inserting the new out hash into the out hash tree.
31
+ */
32
+ public newOutHashSiblingPath: Tuple<Fr, typeof OUT_HASH_TREE_HEIGHT>,
24
33
  /**
25
34
  * The current blob accumulation state across the epoch.
26
35
  */
@@ -54,6 +63,8 @@ export class CheckpointRootRollupHints {
54
63
  return [
55
64
  fields.previousBlockHeader,
56
65
  fields.previousArchiveSiblingPath,
66
+ fields.previousOutHash,
67
+ fields.newOutHashSiblingPath,
57
68
  fields.startBlobAccumulator,
58
69
  fields.finalBlobChallenges,
59
70
  fields.blobFields,
@@ -71,6 +82,8 @@ export class CheckpointRootRollupHints {
71
82
  return new CheckpointRootRollupHints(
72
83
  BlockHeader.fromBuffer(reader),
73
84
  reader.readArray(ARCHIVE_HEIGHT, Fr),
85
+ reader.readObject(AppendOnlyTreeSnapshot),
86
+ reader.readArray(OUT_HASH_TREE_HEIGHT, Fr),
74
87
  reader.readObject(BlobAccumulator),
75
88
  reader.readObject(FinalBlobBatchingChallenges),
76
89
  // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
@@ -21,7 +21,10 @@ export class RootRollupPublicInputs {
21
21
  public previousArchiveRoot: Fr,
22
22
  /** Root of the archive tree after this rollup is processed */
23
23
  public endArchiveRoot: Fr,
24
- /** Root of the unbalanced merkle tree consisting of the `out_hash` values from all checkpoints in this rollup. */
24
+ /**
25
+ * Root of the balanced merkle tree consisting of the out hashes of all checkpoints in this epoch.
26
+ * The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on.
27
+ */
25
28
  public outHash: Fr,
26
29
  /** Hashes of checkpoint headers for this rollup. */
27
30
  public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
@@ -202,8 +202,6 @@ export type L2BlockBuiltStats = {
202
202
  duration: number;
203
203
  /** Time for processing public txs in ms. */
204
204
  publicProcessDuration: number;
205
- /** Time for running rollup circuits in ms. */
206
- rollupCircuitsDuration: number;
207
205
  } & L2BlockStats;
208
206
 
209
207
  /** Stats for an L2 block processed by the world state synchronizer. */
@@ -87,7 +87,6 @@ import {
87
87
  import { PublicDataRead } from '../avm/public_data_read.js';
88
88
  import { PublicDataWrite } from '../avm/public_data_write.js';
89
89
  import { AztecAddress } from '../aztec-address/index.js';
90
- import { L2BlockHeader } from '../block/l2_block_header.js';
91
90
  import type { L2Tips } from '../block/l2_block_source.js';
92
91
  import {
93
92
  type ContractClassPublic,
@@ -850,7 +849,8 @@ export function makeCheckpointRollupPublicInputs(seed = 0) {
850
849
  makeEpochConstantData(seed),
851
850
  makeAppendOnlyTreeSnapshot(seed + 0x100),
852
851
  makeAppendOnlyTreeSnapshot(seed + 0x200),
853
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
852
+ makeAppendOnlyTreeSnapshot(seed + 0x300),
853
+ makeAppendOnlyTreeSnapshot(seed + 0x350),
854
854
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
855
855
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
856
856
  makeBlobAccumulator(seed + 0x600),
@@ -910,40 +910,20 @@ export function makeBlockHeader(
910
910
  });
911
911
  }
912
912
 
913
- export function makeL2BlockHeader(
914
- seed = 0,
915
- blockNumber?: number,
916
- slotNumber?: number,
917
- overrides: Partial<FieldsOf<L2BlockHeader>> = {},
918
- ) {
919
- return new L2BlockHeader(
920
- makeAppendOnlyTreeSnapshot(seed + 0x100),
921
- overrides?.blobsHash ?? fr(seed + 0x200),
922
- overrides?.inHash ?? fr(seed + 0x300),
923
- overrides?.state ?? makeStateReference(seed + 0x600),
924
- makeGlobalVariables((seed += 0x700), {
925
- ...(blockNumber !== undefined ? { blockNumber: BlockNumber(blockNumber) } : {}),
926
- ...(slotNumber !== undefined ? { slotNumber: SlotNumber(slotNumber) } : {}),
927
- }),
928
- new Fr(seed + 0x800),
929
- new Fr(seed + 0x900),
930
- new Fr(seed + 0xa00),
931
- new Fr(seed + 0xb00),
932
- );
933
- }
934
-
935
- export function makeCheckpointHeader(seed = 0) {
913
+ export function makeCheckpointHeader(seed = 0, overrides: Partial<FieldsOf<CheckpointHeader>> = {}) {
936
914
  return CheckpointHeader.from({
937
915
  lastArchiveRoot: fr(seed + 0x100),
938
916
  blockHeadersHash: fr(seed + 0x150),
939
917
  blobsHash: fr(seed + 0x200),
940
918
  inHash: fr(seed + 0x210),
919
+ epochOutHash: fr(seed + 0x220),
941
920
  slotNumber: SlotNumber(seed + 0x300),
942
921
  timestamp: BigInt(seed + 0x400),
943
922
  coinbase: makeEthAddress(seed + 0x500),
944
923
  feeRecipient: makeAztecAddress(seed + 0x600),
945
924
  gasFees: makeGasFees(seed + 0x700),
946
925
  totalManaUsed: fr(seed + 0x800),
926
+ ...overrides,
947
927
  });
948
928
  }
949
929
 
@@ -1759,7 +1739,7 @@ export function makeL2Tips(
1759
1739
  ? typeof checkpointNumber === 'number'
1760
1740
  ? CheckpointNumber(checkpointNumber)
1761
1741
  : checkpointNumber
1762
- : CheckpointNumber(bn);
1742
+ : CheckpointNumber.fromBlockNumber(bn);
1763
1743
  const cph = checkpointHash ?? hash;
1764
1744
  return {
1765
1745
  proposed: { number: bn, hash },
package/src/tests/jest.ts CHANGED
@@ -20,7 +20,7 @@ export function equalL2Blocks(a: any, b: any) {
20
20
  // use a custom comparator because the blockHash property is lazily computed and one instance might not have it
21
21
  return aAsL2Block.toBuffer().equals(bAsL2Block.toBuffer());
22
22
  } else if (aAsL2Block || bAsL2Block) {
23
- // one value is an L2block and the other isn't. Definitely not equal.
23
+ // one value is an L2Block and the other isn't. Definitely not equal.
24
24
  return false;
25
25
  } else {
26
26
  // we don't know what they are, tell Jest to keep looking
@@ -7,7 +7,7 @@ import {
7
7
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
8
8
  } from '@aztec/constants';
9
9
  import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
10
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
10
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
11
11
  import { Buffer32 } from '@aztec/foundation/buffer';
12
12
  import { padArrayEnd, times } from '@aztec/foundation/collection';
13
13
  import { randomBytes } from '@aztec/foundation/crypto/random';
@@ -22,8 +22,7 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
22
22
  import { PublicDataWrite } from '../avm/public_data_write.js';
23
23
  import { RevertCode } from '../avm/revert_code.js';
24
24
  import { AztecAddress } from '../aztec-address/index.js';
25
- import { CommitteeAttestation, L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
26
- import { L2Block } from '../block/l2_block.js';
25
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
27
26
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
28
27
  import { Checkpoint } from '../checkpoint/checkpoint.js';
29
28
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
@@ -76,9 +75,9 @@ import {
76
75
  makeAvmCircuitInputs,
77
76
  makeAztecAddress,
78
77
  makeBlockHeader,
78
+ makeCheckpointHeader,
79
79
  makeGas,
80
80
  makeGlobalVariables,
81
- makeL2BlockHeader,
82
81
  makePrivateToPublicAccumulatedData,
83
82
  makePrivateToRollupAccumulatedData,
84
83
  makeProtocolContracts,
@@ -98,12 +97,14 @@ export const mockTx = async (
98
97
  publicCalldataSize = 2,
99
98
  feePayer,
100
99
  chonkProof = ChonkProof.random(),
100
+ maxFeesPerGas = new GasFees(10, 10),
101
101
  maxPriorityFeesPerGas,
102
102
  gasUsed = Gas.empty(),
103
103
  chainId = Fr.ZERO,
104
104
  version = Fr.ZERO,
105
105
  vkTreeRoot = Fr.ZERO,
106
106
  protocolContractsHash = Fr.ZERO,
107
+ anchorBlockHeader = BlockHeader.empty(),
107
108
  }: {
108
109
  numberOfNonRevertiblePublicCallRequests?: number;
109
110
  numberOfRevertiblePublicCallRequests?: number;
@@ -112,12 +113,14 @@ export const mockTx = async (
112
113
  publicCalldataSize?: number;
113
114
  feePayer?: AztecAddress;
114
115
  chonkProof?: ChonkProof;
116
+ maxFeesPerGas?: GasFees;
115
117
  maxPriorityFeesPerGas?: GasFees;
116
118
  gasUsed?: Gas;
117
119
  chainId?: Fr;
118
120
  version?: Fr;
119
121
  vkTreeRoot?: Fr;
120
122
  protocolContractsHash?: Fr;
123
+ anchorBlockHeader?: BlockHeader;
121
124
  } = {},
122
125
  ) => {
123
126
  const totalPublicCallRequests =
@@ -127,10 +130,8 @@ export const mockTx = async (
127
130
  const isForPublic = totalPublicCallRequests > 0;
128
131
  const data = PrivateKernelTailCircuitPublicInputs.empty();
129
132
  const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
130
- data.constants.txContext.gasSettings = GasSettings.default({
131
- maxFeesPerGas: new GasFees(10, 10),
132
- maxPriorityFeesPerGas,
133
- });
133
+ data.constants.anchorBlockHeader = anchorBlockHeader;
134
+ data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
134
135
  data.feePayer = feePayer ?? (await AztecAddress.random());
135
136
  data.gasUsed = gasUsed;
136
137
  data.constants.txContext.chainId = chainId;
@@ -400,38 +401,47 @@ export async function mockCheckpointAndMessages(
400
401
  {
401
402
  startBlockNumber = BlockNumber(1),
402
403
  numBlocks = 1,
404
+ blocks,
403
405
  numTxsPerBlock = 1,
404
406
  numL1ToL2Messages = 1,
405
407
  makeBlockOptions = () => ({}),
406
408
  previousArchive,
409
+ maxEffects,
407
410
  ...options
408
411
  }: {
409
412
  startBlockNumber?: BlockNumber;
410
413
  numBlocks?: number;
411
414
  numTxsPerBlock?: number;
412
415
  numL1ToL2Messages?: number;
413
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
416
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
414
417
  previousArchive?: AppendOnlyTreeSnapshot;
418
+ blocks?: L2Block[];
419
+ maxEffects?: number;
415
420
  } & Partial<Parameters<typeof Checkpoint.random>[1]> &
416
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
421
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
417
422
  ) {
418
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
423
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
419
424
  const blocksAndMessages = [];
420
425
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
421
426
  // The current block's header.lastArchive must equal the previous block's archive.
422
427
  let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
423
- for (let i = 0; i < numBlocks; i++) {
428
+ // Pass maxEffects via txOptions so it reaches TxEffect.random
429
+ const txOptions = maxEffects !== undefined ? { maxEffects } : {};
430
+ for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
424
431
  const blockNumber = BlockNumber(startBlockNumber + i);
425
432
  const { block, messages } = {
426
- block: await L2BlockNew.random(blockNumber, {
427
- checkpointNumber,
428
- indexWithinCheckpoint: i,
429
- txsPerBlock: numTxsPerBlock,
430
- slotNumber,
431
- ...options,
432
- ...makeBlockOptions(blockNumber),
433
- ...(lastArchive ? { lastArchive } : {}),
434
- }),
433
+ block:
434
+ blocks?.[i] ??
435
+ (await L2Block.random(blockNumber, {
436
+ checkpointNumber,
437
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
438
+ txsPerBlock: numTxsPerBlock,
439
+ txOptions,
440
+ slotNumber,
441
+ ...options,
442
+ ...makeBlockOptions(blockNumber),
443
+ ...(lastArchive ? { lastArchive } : {}),
444
+ })),
435
445
  messages: mockL1ToL2Messages(numL1ToL2Messages),
436
446
  };
437
447
  // Update lastArchive for the next block
@@ -489,7 +499,7 @@ export interface MakeConsensusPayloadOptions {
489
499
  signer?: Secp256k1Signer;
490
500
  attesterSigner?: Secp256k1Signer;
491
501
  proposerSigner?: Secp256k1Signer;
492
- header?: L2BlockHeader;
502
+ header?: CheckpointHeader;
493
503
  archive?: Fr;
494
504
  txHashes?: TxHash[];
495
505
  txs?: Tx[];
@@ -497,8 +507,8 @@ export interface MakeConsensusPayloadOptions {
497
507
 
498
508
  export interface MakeBlockProposalOptions {
499
509
  signer?: Secp256k1Signer;
500
- blockHeader?: L2BlockHeader;
501
- indexWithinCheckpoint?: number;
510
+ blockHeader?: BlockHeader;
511
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
502
512
  inHash?: Fr;
503
513
  archiveRoot?: Fr;
504
514
  txHashes?: TxHash[];
@@ -511,8 +521,8 @@ export interface MakeCheckpointProposalOptions {
511
521
  archiveRoot?: Fr;
512
522
  /** Options for the lastBlock - if undefined, no lastBlock is included */
513
523
  lastBlock?: {
514
- blockHeader?: L2BlockHeader;
515
- indexWithinCheckpoint?: number;
524
+ blockHeader?: BlockHeader;
525
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
516
526
  txHashes?: TxHash[];
517
527
  txs?: Tx[];
518
528
  };
@@ -523,18 +533,18 @@ const makeAndSignConsensusPayload = (
523
533
  domainSeparator: SignatureDomainSeparator,
524
534
  options?: MakeConsensusPayloadOptions,
525
535
  ) => {
526
- const header = options?.header ?? makeL2BlockHeader(1);
536
+ const header = options?.header ?? makeCheckpointHeader(1);
527
537
  const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
528
538
 
529
539
  const payload = ConsensusPayload.fromFields({
530
- header: header.toCheckpointHeader(),
540
+ header,
531
541
  archive,
532
542
  });
533
543
 
534
544
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
535
545
  const signature = signer.sign(hash);
536
546
 
537
- return { blockNumber: header.globalVariables.blockNumber, payload, signature };
547
+ return { blockNumber: header.slotNumber, payload, signature };
538
548
  };
539
549
 
540
550
  export const makeAndSignCommitteeAttestationsAndSigners = (
@@ -549,9 +559,8 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
549
559
  };
550
560
 
551
561
  export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
552
- const l2BlockHeader = options?.blockHeader ?? makeL2BlockHeader(1);
553
- const blockHeader = l2BlockHeader.toBlockHeader();
554
- const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
562
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
563
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
555
564
  const inHash = options?.inHash ?? Fr.random();
556
565
  const archiveRoot = options?.archiveRoot ?? Fr.random();
557
566
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
@@ -565,21 +574,21 @@ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<B
565
574
  archiveRoot,
566
575
  txHashes,
567
576
  txs,
568
- payload => Promise.resolve(signer.signMessage(payload)),
577
+ (_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
569
578
  );
570
579
  };
571
580
 
572
581
  export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
573
- const l2BlockHeader = options?.lastBlock?.blockHeader ?? makeL2BlockHeader(1);
574
- const checkpointHeader = options?.checkpointHeader ?? l2BlockHeader.toCheckpointHeader();
582
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
583
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
575
584
  const archiveRoot = options?.archiveRoot ?? Fr.random();
576
585
  const signer = options?.signer ?? Secp256k1Signer.random();
577
586
 
578
587
  // Build lastBlock info if provided
579
588
  const lastBlockInfo = options?.lastBlock
580
589
  ? {
581
- blockHeader: l2BlockHeader.toBlockHeader(),
582
- indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4, // Last block in a 5-block checkpoint
590
+ blockHeader,
591
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
583
592
  txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
584
593
  txs: options.lastBlock.txs,
585
594
  }
@@ -605,7 +614,7 @@ export type MakeCheckpointAttestationOptions = {
605
614
  * Create a checkpoint attestation for testing
606
615
  */
607
616
  export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
608
- const header = options.header ?? makeL2BlockHeader(1).toCheckpointHeader();
617
+ const header = options.header ?? makeCheckpointHeader(1);
609
618
  const archive = options.archive ?? Fr.random();
610
619
  const { signer, attesterSigner = signer, proposerSigner = signer } = options;
611
620
 
@@ -669,13 +678,20 @@ export const makeCheckpointAttestationFromCheckpoint = (
669
678
 
670
679
  /**
671
680
  * Create a checkpoint attestation from an L2Block
681
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
672
682
  */
673
683
  export const makeCheckpointAttestationFromBlock = (
674
684
  block: L2Block,
675
685
  attesterSigner?: Secp256k1Signer,
676
686
  proposerSigner?: Secp256k1Signer,
677
687
  ): CheckpointAttestation => {
678
- const header = block.header.toCheckpointHeader();
688
+ // For L2Block, we create a minimal checkpoint header for testing purposes
689
+ const header = CheckpointHeader.empty({
690
+ lastArchiveRoot: block.header.lastArchive.root,
691
+ slotNumber: block.slot,
692
+ timestamp: block.timestamp,
693
+ blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
694
+ });
679
695
  const archive = block.archive.root;
680
696
 
681
697
  return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
@@ -684,7 +700,7 @@ export const makeCheckpointAttestationFromBlock = (
684
700
  export async function randomPublishedL2Block(
685
701
  l2BlockNumber: number,
686
702
  opts: { signers?: Secp256k1Signer[] } = {},
687
- ): Promise<PublishedL2Block> {
703
+ ): Promise<CheckpointedL2Block> {
688
704
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
689
705
  const l1 = L1PublishedData.fromFields({
690
706
  blockNumber: BigInt(block.number),
@@ -693,15 +709,19 @@ export async function randomPublishedL2Block(
693
709
  });
694
710
 
695
711
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
712
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
713
+ numBlocks: 0,
714
+ });
715
+ checkpoint.blocks = [block];
696
716
  const atts = signers.map(signer =>
697
717
  makeCheckpointAttestation({
698
718
  signer,
699
719
  archive: block.archive.root,
700
- header: block.header.toCheckpointHeader(),
720
+ header: checkpoint.header,
701
721
  }),
702
722
  );
703
723
  const attestations = atts.map(
704
724
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
705
725
  );
706
- return new PublishedL2Block(block, l1, attestations);
726
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
707
727
  }
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
11
11
  import { inspect } from 'util';
12
12
  import { z } from 'zod';
13
13
 
14
+ import { BlockHash } from '../block/block_hash.js';
14
15
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
16
  import { GlobalVariables } from './global_variables.js';
16
17
  import { StateReference } from './state_reference.js';
17
18
 
18
19
  /** A header of an L2 block. */
19
20
  export class BlockHeader {
20
- private _cachedHash?: Promise<Fr>;
21
+ private _cachedHash?: Promise<BlockHash>;
21
22
 
22
23
  constructor(
23
24
  /** Snapshot of archive before the block is applied. */
@@ -161,13 +162,20 @@ export class BlockHeader {
161
162
  return BlockHeader.fromBuffer(hexToBuffer(str));
162
163
  }
163
164
 
164
- hash(): Promise<Fr> {
165
+ hash(): Promise<BlockHash> {
165
166
  if (!this._cachedHash) {
166
- this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
167
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HEADER_HASH).then(
168
+ fr => new BlockHash(fr),
169
+ );
167
170
  }
168
171
  return this._cachedHash;
169
172
  }
170
173
 
174
+ /** Manually set the hash for this block header if already computed */
175
+ setHash(hashed: Fr) {
176
+ this._cachedHash = Promise.resolve(new BlockHash(hashed));
177
+ }
178
+
171
179
  static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
172
180
  return BlockHeader.from({
173
181
  lastArchive: AppendOnlyTreeSnapshot.random(),
@@ -1,8 +1,9 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { schemas } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
5
 
5
- import { L2BlockHash } from '../block/block_hash.js';
6
+ import { BlockHash } from '../block/block_hash.js';
6
7
  import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
7
8
  import { TxEffect } from './tx_effect.js';
8
9
 
@@ -26,7 +27,7 @@ export function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer {
26
27
  export function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect {
27
28
  const reader = BufferReader.asReader(buffer);
28
29
 
29
- const l2BlockHash = reader.readObject(L2BlockHash);
30
+ const l2BlockHash = new BlockHash(reader.readObject(Fr));
30
31
  const l2BlockNumber = BlockNumber(reader.readNumber());
31
32
  const txIndexInBlock = reader.readNumber();
32
33
  const data = reader.readObject(TxEffect);
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
79
79
  export class PrivateExecutionResult {
80
80
  constructor(
81
81
  public entrypoint: PrivateCallExecutionResult,
82
- /** The first non revertible nullifier, or zero if there was none. */
82
+ /** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
83
83
  public firstNullifier: Fr,
84
84
  /** An array of calldata for the enqueued public function calls and the teardown function call. */
85
85
  public publicFunctionCalldata: HashedValues[],