@aztec/stdlib 0.0.1-commit.c7c42ec → 0.0.1-commit.f295ac2

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 (499) hide show
  1. package/dest/abi/contract_artifact.d.ts +2 -2
  2. package/dest/abi/contract_artifact.d.ts.map +1 -1
  3. package/dest/abi/contract_artifact.js +1 -1
  4. package/dest/abi/function_call.d.ts +9 -1
  5. package/dest/abi/function_call.d.ts.map +1 -1
  6. package/dest/abi/selector.js +3 -1
  7. package/dest/abi/utils.d.ts +7 -1
  8. package/dest/abi/utils.d.ts.map +1 -1
  9. package/dest/abi/utils.js +7 -0
  10. package/dest/auth_witness/auth_witness.d.ts +2 -1
  11. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  12. package/dest/avm/avm.d.ts +62 -62
  13. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  14. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  15. package/dest/avm/avm_accumulated_data.js +5 -2
  16. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  17. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  18. package/dest/avm/avm_proving_request.d.ts +299 -299
  19. package/dest/avm/contract_storage_read.d.ts +13 -1
  20. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  21. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  22. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  24. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  25. package/dest/avm/public_data_read.d.ts +10 -1
  26. package/dest/avm/public_data_read.d.ts.map +1 -1
  27. package/dest/avm/public_data_update_request.d.ts +10 -1
  28. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  29. package/dest/avm/public_data_update_request.js +3 -1
  30. package/dest/avm/public_data_write.d.ts +7 -1
  31. package/dest/avm/public_data_write.d.ts.map +1 -1
  32. package/dest/avm/public_inner_call_request.d.ts +4 -1
  33. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  34. package/dest/avm/public_inner_call_request.js +3 -1
  35. package/dest/avm/revert_code.d.ts +4 -4
  36. package/dest/avm/revert_code.d.ts.map +1 -1
  37. package/dest/avm/revert_code.js +3 -1
  38. package/dest/aztec-address/index.js +4 -2
  39. package/dest/block/attestation_info.d.ts +5 -5
  40. package/dest/block/attestation_info.d.ts.map +1 -1
  41. package/dest/block/attestation_info.js +4 -4
  42. package/dest/block/block_hash.d.ts +7 -1
  43. package/dest/block/block_hash.d.ts.map +1 -1
  44. package/dest/block/block_hash.js +12 -0
  45. package/dest/block/block_parameter.d.ts +4 -3
  46. package/dest/block/block_parameter.d.ts.map +1 -1
  47. package/dest/block/block_parameter.js +2 -0
  48. package/dest/block/body.d.ts +1 -1
  49. package/dest/block/body.d.ts.map +1 -1
  50. package/dest/block/body.js +5 -2
  51. package/dest/block/checkpointed_l2_block.d.ts +16 -133
  52. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  53. package/dest/block/checkpointed_l2_block.js +5 -43
  54. package/dest/block/in_block.d.ts +3 -3
  55. package/dest/block/in_block.d.ts.map +1 -1
  56. package/dest/block/index.d.ts +1 -3
  57. package/dest/block/index.d.ts.map +1 -1
  58. package/dest/block/index.js +0 -2
  59. package/dest/block/l2_block_new.d.ts +20 -13
  60. package/dest/block/l2_block_new.d.ts.map +1 -1
  61. package/dest/block/l2_block_new.js +13 -7
  62. package/dest/block/l2_block_source.d.ts +276 -55
  63. package/dest/block/l2_block_source.d.ts.map +1 -1
  64. package/dest/block/l2_block_source.js +25 -6
  65. package/dest/block/l2_block_stream/index.d.ts +2 -1
  66. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  67. package/dest/block/l2_block_stream/index.js +1 -0
  68. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  69. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  70. package/dest/block/l2_block_stream/l2_block_stream.d.ts +4 -2
  71. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  72. package/dest/block/l2_block_stream/l2_block_stream.js +93 -30
  73. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  74. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  75. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  76. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  77. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  78. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  79. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  80. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  81. package/dest/block/test/l2_tips_store_test_suite.js +478 -38
  82. package/dest/block/validate_block_result.d.ts +24 -24
  83. package/dest/block/validate_block_result.d.ts.map +1 -1
  84. package/dest/block/validate_block_result.js +18 -17
  85. package/dest/checkpoint/checkpoint.d.ts +24 -14
  86. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  87. package/dest/checkpoint/checkpoint.js +16 -3
  88. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  89. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  90. package/dest/checkpoint/checkpoint_info.js +34 -1
  91. package/dest/checkpoint/index.d.ts +2 -1
  92. package/dest/checkpoint/index.d.ts.map +1 -1
  93. package/dest/checkpoint/index.js +1 -0
  94. package/dest/checkpoint/published_checkpoint.d.ts +15 -13
  95. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  96. package/dest/checkpoint/published_checkpoint.js +4 -3
  97. package/dest/contract/complete_address.d.ts +4 -1
  98. package/dest/contract/complete_address.d.ts.map +1 -1
  99. package/dest/contract/contract_deployment_data.d.ts +5 -5
  100. package/dest/contract/index.d.ts +1 -3
  101. package/dest/contract/index.d.ts.map +1 -1
  102. package/dest/contract/index.js +0 -2
  103. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  104. package/dest/database-version/version_manager.d.ts +4 -2
  105. package/dest/database-version/version_manager.d.ts.map +1 -1
  106. package/dest/database-version/version_manager.js +3 -1
  107. package/dest/deserialization/index.d.ts +11 -0
  108. package/dest/deserialization/index.d.ts.map +1 -0
  109. package/dest/deserialization/index.js +10 -0
  110. package/dest/errors/proving_error.d.ts +2 -2
  111. package/dest/errors/proving_error.d.ts.map +1 -1
  112. package/dest/gas/gas.js +3 -1
  113. package/dest/gas/gas_fees.js +3 -1
  114. package/dest/interfaces/api_limit.d.ts +2 -1
  115. package/dest/interfaces/api_limit.d.ts.map +1 -1
  116. package/dest/interfaces/api_limit.js +1 -0
  117. package/dest/interfaces/archiver.d.ts +6 -6
  118. package/dest/interfaces/archiver.d.ts.map +1 -1
  119. package/dest/interfaces/archiver.js +16 -12
  120. package/dest/interfaces/aztec-node-admin.d.ts +64 -31
  121. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node-admin.js +2 -2
  123. package/dest/interfaces/aztec-node.d.ts +45 -49
  124. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  125. package/dest/interfaces/aztec-node.js +15 -12
  126. package/dest/interfaces/block-builder.d.ts +19 -17
  127. package/dest/interfaces/block-builder.d.ts.map +1 -1
  128. package/dest/interfaces/configs.d.ts +12 -7
  129. package/dest/interfaces/configs.d.ts.map +1 -1
  130. package/dest/interfaces/configs.js +2 -1
  131. package/dest/interfaces/get_logs_response.d.ts +1 -1
  132. package/dest/interfaces/p2p.d.ts +7 -9
  133. package/dest/interfaces/p2p.d.ts.map +1 -1
  134. package/dest/interfaces/p2p.js +3 -4
  135. package/dest/interfaces/proving-job.d.ts +184 -184
  136. package/dest/interfaces/proving-job.d.ts.map +1 -1
  137. package/dest/interfaces/proving-job.js +1 -7
  138. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  139. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  140. package/dest/interfaces/validator.d.ts +108 -18
  141. package/dest/interfaces/validator.d.ts.map +1 -1
  142. package/dest/interfaces/validator.js +5 -3
  143. package/dest/kernel/claimed_length_array.js +3 -1
  144. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  145. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  146. package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
  147. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +1 -1
  148. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  149. package/dest/kernel/hints/build_nullifier_read_request_hints.js +14 -4
  150. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  151. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  152. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  153. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  154. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  155. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  156. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  157. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  158. package/dest/kernel/hints/read_request.d.ts +7 -1
  159. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  160. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  161. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  163. package/dest/kernel/log_hash.js +3 -1
  164. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  165. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  166. package/dest/kernel/private_call_data.d.ts +25 -1
  167. package/dest/kernel/private_call_data.d.ts.map +1 -1
  168. package/dest/kernel/private_call_request.d.ts +16 -1
  169. package/dest/kernel/private_call_request.d.ts.map +1 -1
  170. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  171. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  172. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  173. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_data.d.ts +7 -1
  175. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  176. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  177. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  178. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  179. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  180. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  181. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  182. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  183. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  184. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  185. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_log_data.js +5 -2
  187. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  188. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  189. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  190. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  191. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  192. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  193. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  194. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_validation_requests.d.ts +10 -1
  196. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  197. package/dest/kernel/private_validation_requests.js +3 -1
  198. package/dest/kernel/public_call_request.d.ts +22 -1
  199. package/dest/kernel/public_call_request.d.ts.map +1 -1
  200. package/dest/kernel/public_call_request.js +5 -2
  201. package/dest/kernel/utils/optional_number.d.ts +7 -1
  202. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  203. package/dest/keys/public_keys.d.ts +5 -1
  204. package/dest/keys/public_keys.d.ts.map +1 -1
  205. package/dest/logs/contract_class_log.js +3 -1
  206. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  207. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  208. package/dest/logs/extended_public_log.d.ts +5 -3
  209. package/dest/logs/extended_public_log.d.ts.map +1 -1
  210. package/dest/logs/log_id.d.ts +5 -1
  211. package/dest/logs/log_id.d.ts.map +1 -1
  212. package/dest/logs/private_log.js +3 -1
  213. package/dest/logs/public_log.js +3 -1
  214. package/dest/messaging/in_hash.d.ts +4 -2
  215. package/dest/messaging/in_hash.d.ts.map +1 -1
  216. package/dest/messaging/in_hash.js +3 -1
  217. package/dest/messaging/inbox_leaf.d.ts +3 -1
  218. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  219. package/dest/messaging/l1_actor.d.ts +7 -1
  220. package/dest/messaging/l1_actor.d.ts.map +1 -1
  221. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  222. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  223. package/dest/messaging/l2_actor.d.ts +7 -1
  224. package/dest/messaging/l2_actor.d.ts.map +1 -1
  225. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  226. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  227. package/dest/messaging/l2_to_l1_membership.js +160 -42
  228. package/dest/messaging/out_hash.d.ts +41 -3
  229. package/dest/messaging/out_hash.d.ts.map +1 -1
  230. package/dest/messaging/out_hash.js +54 -19
  231. package/dest/note/note_dao.d.ts +36 -5
  232. package/dest/note/note_dao.d.ts.map +1 -1
  233. package/dest/note/note_dao.js +15 -12
  234. package/dest/p2p/attestation_utils.d.ts +3 -3
  235. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  236. package/dest/p2p/attestation_utils.js +1 -1
  237. package/dest/p2p/block_proposal.d.ts +93 -21
  238. package/dest/p2p/block_proposal.d.ts.map +1 -1
  239. package/dest/p2p/block_proposal.js +140 -39
  240. package/dest/p2p/checkpoint_attestation.d.ts +81 -0
  241. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  242. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  243. package/dest/p2p/checkpoint_proposal.d.ts +160 -0
  244. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  245. package/dest/p2p/checkpoint_proposal.js +229 -0
  246. package/dest/p2p/consensus_payload.d.ts +9 -9
  247. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  248. package/dest/p2p/consensus_payload.js +3 -5
  249. package/dest/p2p/gossipable.d.ts +4 -3
  250. package/dest/p2p/gossipable.d.ts.map +1 -1
  251. package/dest/p2p/gossipable.js +16 -5
  252. package/dest/p2p/index.d.ts +4 -2
  253. package/dest/p2p/index.d.ts.map +1 -1
  254. package/dest/p2p/index.js +3 -1
  255. package/dest/p2p/signature_utils.d.ts +5 -3
  256. package/dest/p2p/signature_utils.d.ts.map +1 -1
  257. package/dest/p2p/signature_utils.js +3 -1
  258. package/dest/p2p/signed_txs.d.ts +42 -0
  259. package/dest/p2p/signed_txs.d.ts.map +1 -0
  260. package/dest/p2p/signed_txs.js +75 -0
  261. package/dest/p2p/topic_type.d.ts +3 -2
  262. package/dest/p2p/topic_type.d.ts.map +1 -1
  263. package/dest/p2p/topic_type.js +10 -3
  264. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  265. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  266. package/dest/parity/parity_public_inputs.d.ts +4 -1
  267. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  268. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  269. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  270. package/dest/proofs/chonk_proof.d.ts +1 -1
  271. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  272. package/dest/proofs/chonk_proof.js +9 -4
  273. package/dest/proofs/proof.d.ts +4 -1
  274. package/dest/proofs/proof.d.ts.map +1 -1
  275. package/dest/proofs/recursive_proof.d.ts +10 -1
  276. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  277. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  278. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  279. package/dest/rollup/block_constant_data.d.ts +12 -1
  280. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  281. package/dest/rollup/block_headers_hash.js +1 -1
  282. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  283. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  284. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  285. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  286. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  287. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  288. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  289. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  290. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  291. package/dest/rollup/checkpoint_constant_data.js +3 -1
  292. package/dest/rollup/checkpoint_header.d.ts +42 -12
  293. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  294. package/dest/rollup/checkpoint_header.js +49 -19
  295. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  296. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  297. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -1
  298. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  299. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -2
  300. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  301. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  302. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  303. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  304. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  305. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  306. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  307. package/dest/rollup/root_rollup_public_inputs.d.ts +18 -3
  308. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/root_rollup_public_inputs.js +9 -3
  310. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  311. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  312. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  313. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  314. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  315. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  316. package/dest/schemas/schemas.d.ts +1 -1
  317. package/dest/tests/factories.d.ts +16 -10
  318. package/dest/tests/factories.d.ts.map +1 -1
  319. package/dest/tests/factories.js +60 -25
  320. package/dest/tests/jest.d.ts +4 -4
  321. package/dest/tests/jest.js +9 -9
  322. package/dest/tests/mocks.d.ts +66 -16
  323. package/dest/tests/mocks.d.ts.map +1 -1
  324. package/dest/tests/mocks.js +114 -54
  325. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  326. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  327. package/dest/trees/append_only_tree_snapshot.js +3 -1
  328. package/dest/trees/nullifier_leaf.d.ts +13 -1
  329. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  330. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  331. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  332. package/dest/trees/public_data_leaf.d.ts +16 -1
  333. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  334. package/dest/trees/public_data_witness.d.ts +11 -1
  335. package/dest/trees/public_data_witness.d.ts.map +1 -1
  336. package/dest/tx/block_header.d.ts +12 -1
  337. package/dest/tx/block_header.d.ts.map +1 -1
  338. package/dest/tx/block_header.js +6 -1
  339. package/dest/tx/call_context.d.ts +13 -1
  340. package/dest/tx/call_context.d.ts.map +1 -1
  341. package/dest/tx/call_context.js +3 -1
  342. package/dest/tx/capsule.d.ts +4 -1
  343. package/dest/tx/capsule.d.ts.map +1 -1
  344. package/dest/tx/execution_payload.d.ts +9 -1
  345. package/dest/tx/execution_payload.d.ts.map +1 -1
  346. package/dest/tx/function_data.d.ts +4 -2
  347. package/dest/tx/function_data.d.ts.map +1 -1
  348. package/dest/tx/global_variable_builder.d.ts +2 -2
  349. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  350. package/dest/tx/global_variables.d.ts +9 -1
  351. package/dest/tx/global_variables.d.ts.map +1 -1
  352. package/dest/tx/global_variables.js +3 -1
  353. package/dest/tx/hashed_values.d.ts +7 -1
  354. package/dest/tx/hashed_values.d.ts.map +1 -1
  355. package/dest/tx/in_tx.d.ts +1 -1
  356. package/dest/tx/index.d.ts +1 -2
  357. package/dest/tx/index.d.ts.map +1 -1
  358. package/dest/tx/index.js +0 -1
  359. package/dest/tx/partial_state_reference.d.ts +4 -1
  360. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  361. package/dest/tx/private_execution_result.d.ts +23 -6
  362. package/dest/tx/private_execution_result.d.ts.map +1 -1
  363. package/dest/tx/private_execution_result.js +4 -21
  364. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  365. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  366. package/dest/tx/profiling.d.ts +149 -26
  367. package/dest/tx/profiling.d.ts.map +1 -1
  368. package/dest/tx/profiling.js +44 -7
  369. package/dest/tx/protocol_contracts.d.ts +1 -1
  370. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  371. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  372. package/dest/tx/public_call_request_with_calldata.js +3 -1
  373. package/dest/tx/state_reference.d.ts +3 -1
  374. package/dest/tx/state_reference.d.ts.map +1 -1
  375. package/dest/tx/state_reference.js +3 -1
  376. package/dest/tx/tree_snapshots.js +3 -1
  377. package/dest/tx/tx.d.ts +23 -1
  378. package/dest/tx/tx.d.ts.map +1 -1
  379. package/dest/tx/tx.js +3 -1
  380. package/dest/tx/tx_context.d.ts +2 -1
  381. package/dest/tx/tx_context.d.ts.map +1 -1
  382. package/dest/tx/tx_effect.d.ts +32 -6
  383. package/dest/tx/tx_effect.d.ts.map +1 -1
  384. package/dest/tx/tx_effect.js +3 -8
  385. package/dest/tx/tx_execution_request.d.ts +30 -1
  386. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  387. package/dest/tx/tx_execution_request.js +6 -2
  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 +7 -1
  391. package/dest/tx/tx_receipt.d.ts.map +1 -1
  392. package/dest/tx/tx_request.d.ts +6 -1
  393. package/dest/tx/tx_request.d.ts.map +1 -1
  394. package/dest/types/shared.d.ts +4 -1
  395. package/dest/types/shared.d.ts.map +1 -1
  396. package/dest/validators/schemas.d.ts +8 -8
  397. package/dest/vks/verification_key.d.ts +22 -1
  398. package/dest/vks/verification_key.d.ts.map +1 -1
  399. package/dest/vks/vk_data.d.ts +7 -1
  400. package/dest/vks/vk_data.d.ts.map +1 -1
  401. package/dest/zkpassport/index.d.ts +3 -4
  402. package/dest/zkpassport/index.d.ts.map +1 -1
  403. package/dest/zkpassport/index.js +9 -9
  404. package/package.json +12 -10
  405. package/src/abi/contract_artifact.ts +10 -10
  406. package/src/abi/utils.ts +17 -0
  407. package/src/block/attestation_info.ts +9 -6
  408. package/src/block/block_hash.ts +22 -0
  409. package/src/block/block_parameter.ts +4 -2
  410. package/src/block/body.ts +2 -1
  411. package/src/block/checkpointed_l2_block.ts +5 -55
  412. package/src/block/in_block.ts +2 -2
  413. package/src/block/index.ts +0 -2
  414. package/src/block/l2_block_new.ts +30 -9
  415. package/src/block/l2_block_source.ts +100 -30
  416. package/src/block/l2_block_stream/index.ts +1 -0
  417. package/src/block/l2_block_stream/interfaces.ts +15 -4
  418. package/src/block/l2_block_stream/l2_block_stream.ts +111 -37
  419. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  420. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  421. package/src/block/test/l2_tips_store_test_suite.ts +480 -36
  422. package/src/block/validate_block_result.ts +40 -35
  423. package/src/checkpoint/checkpoint.ts +28 -5
  424. package/src/checkpoint/checkpoint_info.ts +45 -2
  425. package/src/checkpoint/index.ts +1 -0
  426. package/src/checkpoint/published_checkpoint.ts +4 -3
  427. package/src/contract/index.ts +0 -2
  428. package/src/deserialization/index.ts +21 -0
  429. package/src/interfaces/api_limit.ts +1 -0
  430. package/src/interfaces/archiver.ts +24 -14
  431. package/src/interfaces/aztec-node-admin.ts +5 -2
  432. package/src/interfaces/aztec-node.ts +81 -69
  433. package/src/interfaces/block-builder.ts +33 -26
  434. package/src/interfaces/configs.ts +5 -0
  435. package/src/interfaces/p2p.ts +8 -12
  436. package/src/interfaces/proving-job.ts +2 -11
  437. package/src/interfaces/server_circuit_prover.ts +3 -2
  438. package/src/interfaces/validator.ts +64 -14
  439. package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
  440. package/src/kernel/hints/build_nullifier_read_request_hints.ts +22 -10
  441. package/src/messaging/in_hash.ts +3 -1
  442. package/src/messaging/l2_to_l1_membership.ts +178 -52
  443. package/src/messaging/out_hash.ts +62 -21
  444. package/src/note/note_dao.ts +18 -13
  445. package/src/p2p/attestation_utils.ts +3 -3
  446. package/src/p2p/block_proposal.ts +204 -44
  447. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
  448. package/src/p2p/checkpoint_proposal.ts +348 -0
  449. package/src/p2p/consensus_payload.ts +5 -7
  450. package/src/p2p/gossipable.ts +14 -4
  451. package/src/p2p/index.ts +3 -1
  452. package/src/p2p/signature_utils.ts +3 -1
  453. package/src/p2p/signed_txs.ts +88 -0
  454. package/src/p2p/topic_type.ts +4 -3
  455. package/src/proofs/chonk_proof.ts +9 -5
  456. package/src/rollup/block_headers_hash.ts +1 -1
  457. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  458. package/src/rollup/checkpoint_header.ts +63 -20
  459. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -0
  460. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  461. package/src/rollup/root_rollup_public_inputs.ts +9 -0
  462. package/src/tests/factories.ts +56 -40
  463. package/src/tests/jest.ts +9 -9
  464. package/src/tests/mocks.ts +198 -85
  465. package/src/tx/block_header.ts +5 -0
  466. package/src/tx/global_variable_builder.ts +1 -1
  467. package/src/tx/index.ts +0 -1
  468. package/src/tx/private_execution_result.ts +1 -16
  469. package/src/tx/profiling.ts +46 -4
  470. package/src/tx/tx.ts +2 -0
  471. package/src/tx/tx_effect.ts +0 -9
  472. package/src/tx/tx_execution_request.ts +2 -0
  473. package/src/zkpassport/index.ts +11 -12
  474. package/dest/block/l2_block.d.ts +0 -143
  475. package/dest/block/l2_block.d.ts.map +0 -1
  476. package/dest/block/l2_block.js +0 -198
  477. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  478. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  479. package/dest/block/l2_block_code_to_purge.js +0 -61
  480. package/dest/block/l2_block_header.d.ts +0 -98
  481. package/dest/block/l2_block_header.d.ts.map +0 -1
  482. package/dest/block/l2_block_header.js +0 -153
  483. package/dest/contract/contract_class_metadata.d.ts +0 -8
  484. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  485. package/dest/contract/contract_class_metadata.js +0 -1
  486. package/dest/contract/contract_metadata.d.ts +0 -7
  487. package/dest/contract/contract_metadata.d.ts.map +0 -1
  488. package/dest/contract/contract_metadata.js +0 -1
  489. package/dest/p2p/block_attestation.d.ts +0 -80
  490. package/dest/p2p/block_attestation.d.ts.map +0 -1
  491. package/dest/tx/content_commitment.d.ts +0 -49
  492. package/dest/tx/content_commitment.d.ts.map +0 -1
  493. package/dest/tx/content_commitment.js +0 -90
  494. package/src/block/l2_block.ts +0 -271
  495. package/src/block/l2_block_code_to_purge.ts +0 -88
  496. package/src/block/l2_block_header.ts +0 -246
  497. package/src/contract/contract_class_metadata.ts +0 -8
  498. package/src/contract/contract_metadata.ts +0 -7
  499. package/src/tx/content_commitment.ts +0 -113
@@ -14,12 +14,13 @@ import { z } from 'zod';
14
14
  import { AztecAddress } from '../aztec-address/index.js';
15
15
  import { GasFees } from '../gas/index.js';
16
16
  import { schemas } from '../schemas/index.js';
17
- import { ContentCommitment } from '../tx/content_commitment.js';
17
+ import type { GlobalVariables } from '../tx/global_variables.js';
18
18
  import type { UInt64 } from '../types/shared.js';
19
19
 
20
20
  /**
21
21
  * Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
22
22
  * TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
23
+ * TODO(palla/mbps): What about CheckpointNumber?
23
24
  */
24
25
  export class CheckpointHeader {
25
26
  constructor(
@@ -27,8 +28,18 @@ export class CheckpointHeader {
27
28
  public lastArchiveRoot: Fr,
28
29
  /** Hash of the headers of all blocks in this checkpoint. */
29
30
  public blockHeadersHash: Fr,
30
- /** Content commitment of the L2 block. */
31
- public contentCommitment: ContentCommitment,
31
+ /** Hash of the blobs in the checkpoint. */
32
+ public blobsHash: Fr,
33
+ /** Root of the l1 to l2 messages subtree. */
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,
32
43
  /** Slot number of the L2 block */
33
44
  public slotNumber: SlotNumber,
34
45
  /** Timestamp of the L2 block. */
@@ -48,7 +59,9 @@ export class CheckpointHeader {
48
59
  .object({
49
60
  lastArchiveRoot: schemas.Fr,
50
61
  blockHeadersHash: schemas.Fr,
51
- contentCommitment: ContentCommitment.schema,
62
+ blobsHash: schemas.Fr,
63
+ inHash: schemas.Fr,
64
+ epochOutHash: schemas.Fr,
52
65
  slotNumber: schemas.SlotNumber,
53
66
  timestamp: schemas.BigInt,
54
67
  coinbase: schemas.EthAddress,
@@ -63,7 +76,9 @@ export class CheckpointHeader {
63
76
  return [
64
77
  fields.lastArchiveRoot,
65
78
  fields.blockHeadersHash,
66
- fields.contentCommitment,
79
+ fields.blobsHash,
80
+ fields.inHash,
81
+ fields.epochOutHash,
67
82
  fields.slotNumber,
68
83
  fields.timestamp,
69
84
  fields.coinbase,
@@ -83,7 +98,9 @@ export class CheckpointHeader {
83
98
  return new CheckpointHeader(
84
99
  reader.readObject(Fr),
85
100
  reader.readObject(Fr),
86
- reader.readObject(ContentCommitment),
101
+ reader.readObject(Fr),
102
+ reader.readObject(Fr),
103
+ reader.readObject(Fr),
87
104
  SlotNumber(Fr.fromBuffer(reader).toNumber()),
88
105
  reader.readUInt64(),
89
106
  reader.readObject(EthAddress),
@@ -97,7 +114,9 @@ export class CheckpointHeader {
97
114
  return (
98
115
  this.lastArchiveRoot.equals(other.lastArchiveRoot) &&
99
116
  this.blockHeadersHash.equals(other.blockHeadersHash) &&
100
- this.contentCommitment.equals(other.contentCommitment) &&
117
+ this.blobsHash.equals(other.blobsHash) &&
118
+ this.inHash.equals(other.inHash) &&
119
+ this.epochOutHash.equals(other.epochOutHash) &&
101
120
  this.slotNumber === other.slotNumber &&
102
121
  this.timestamp === other.timestamp &&
103
122
  this.coinbase.equals(other.coinbase) &&
@@ -107,12 +126,25 @@ export class CheckpointHeader {
107
126
  );
108
127
  }
109
128
 
129
+ /** Returns true if the global variables match those in the checkpoint header. */
130
+ matchesGlobalVariables(other: GlobalVariables) {
131
+ return (
132
+ this.coinbase.equals(other.coinbase) &&
133
+ this.feeRecipient.equals(other.feeRecipient) &&
134
+ this.gasFees.equals(other.gasFees) &&
135
+ this.slotNumber === other.slotNumber &&
136
+ this.timestamp === other.timestamp
137
+ );
138
+ }
139
+
110
140
  toBuffer() {
111
141
  // Note: The order here must match the order in the ProposedHeaderLib solidity library.
112
142
  return serializeToBuffer([
113
143
  this.lastArchiveRoot,
114
144
  this.blockHeadersHash,
115
- this.contentCommitment,
145
+ this.blobsHash,
146
+ this.inHash,
147
+ this.epochOutHash,
116
148
  new Fr(this.slotNumber),
117
149
  bigintToUInt64BE(this.timestamp),
118
150
  this.coinbase,
@@ -130,7 +162,9 @@ export class CheckpointHeader {
130
162
  return CheckpointHeader.from({
131
163
  lastArchiveRoot: Fr.ZERO,
132
164
  blockHeadersHash: Fr.ZERO,
133
- contentCommitment: ContentCommitment.empty(),
165
+ blobsHash: Fr.ZERO,
166
+ inHash: Fr.ZERO,
167
+ epochOutHash: Fr.ZERO,
134
168
  slotNumber: SlotNumber.ZERO,
135
169
  timestamp: 0n,
136
170
  coinbase: EthAddress.ZERO,
@@ -141,13 +175,13 @@ export class CheckpointHeader {
141
175
  });
142
176
  }
143
177
 
144
- static random(
145
- overrides: Partial<FieldsOf<CheckpointHeader>> & Partial<FieldsOf<ContentCommitment>> = {},
146
- ): CheckpointHeader {
178
+ static random(overrides: Partial<FieldsOf<CheckpointHeader>> = {}): CheckpointHeader {
147
179
  return CheckpointHeader.from({
148
180
  lastArchiveRoot: Fr.random(),
149
181
  blockHeadersHash: Fr.random(),
150
- contentCommitment: ContentCommitment.random(overrides),
182
+ blobsHash: Fr.random(),
183
+ inHash: Fr.random(),
184
+ epochOutHash: Fr.random(),
151
185
  slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
152
186
  timestamp: BigInt(Math.floor(Date.now() / 1000)),
153
187
  coinbase: EthAddress.random(),
@@ -162,7 +196,9 @@ export class CheckpointHeader {
162
196
  return (
163
197
  this.lastArchiveRoot.isZero() &&
164
198
  this.blockHeadersHash.isZero() &&
165
- this.contentCommitment.isEmpty() &&
199
+ this.blobsHash.isZero() &&
200
+ this.inHash.isZero() &&
201
+ this.epochOutHash.isZero() &&
166
202
  this.slotNumber === 0 &&
167
203
  this.timestamp === 0n &&
168
204
  this.coinbase.isZero() &&
@@ -188,7 +224,9 @@ export class CheckpointHeader {
188
224
  return new CheckpointHeader(
189
225
  Fr.fromString(header.lastArchiveRoot),
190
226
  Fr.fromString(header.blockHeadersHash),
191
- ContentCommitment.fromViem(header.contentCommitment),
227
+ Fr.fromString(header.blobsHash),
228
+ Fr.fromString(header.inHash),
229
+ Fr.fromString(header.outHash),
192
230
  SlotNumber.fromBigInt(header.slotNumber),
193
231
  header.timestamp,
194
232
  new EthAddress(hexToBuffer(header.coinbase)),
@@ -210,7 +248,9 @@ export class CheckpointHeader {
210
248
  return {
211
249
  lastArchiveRoot: this.lastArchiveRoot.toString(),
212
250
  blockHeadersHash: this.blockHeadersHash.toString(),
213
- contentCommitment: this.contentCommitment.toViem(),
251
+ blobsHash: this.blobsHash.toString(),
252
+ inHash: this.inHash.toString(),
253
+ outHash: this.epochOutHash.toString(),
214
254
  slotNumber: BigInt(this.slotNumber),
215
255
  timestamp: this.timestamp,
216
256
  coinbase: this.coinbase.toString(),
@@ -227,7 +267,9 @@ export class CheckpointHeader {
227
267
  return {
228
268
  lastArchive: this.lastArchiveRoot.toString(),
229
269
  blockHeadersHash: this.blockHeadersHash.toString(),
230
- contentCommitment: this.contentCommitment.toInspect(),
270
+ blobsHash: this.blobsHash.toString(),
271
+ inHash: this.inHash.toString(),
272
+ epochOutHash: this.epochOutHash.toString(),
231
273
  slotNumber: this.slotNumber,
232
274
  timestamp: this.timestamp,
233
275
  coinbase: this.coinbase.toString(),
@@ -238,16 +280,17 @@ export class CheckpointHeader {
238
280
  }
239
281
 
240
282
  [inspect.custom]() {
241
- const gasfees = `da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas}`;
242
283
  return `Header {
243
284
  lastArchiveRoot: ${this.lastArchiveRoot.toString()},
244
285
  blockHeadersHash: ${this.blockHeadersHash.toString()},
245
- contentCommitment: ${inspect(this.contentCommitment)},
286
+ blobsHash: ${inspect(this.blobsHash)},
287
+ inHash: ${inspect(this.inHash)},
288
+ epochOutHash: ${inspect(this.epochOutHash)},
246
289
  slotNumber: ${this.slotNumber},
247
290
  timestamp: ${this.timestamp},
248
291
  coinbase: ${this.coinbase.toString()},
249
292
  feeRecipient: ${this.feeRecipient.toString()},
250
- gasFees: ${gasfees},
293
+ gasFees: { da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas} },
251
294
  totalManaUsed: ${this.totalManaUsed.toBigInt()},
252
295
  }`;
253
296
  }
@@ -27,6 +27,14 @@ export class CheckpointRollupPublicInputs {
27
27
  * Archive tree after adding this checkpoint range.
28
28
  */
29
29
  public newArchive: AppendOnlyTreeSnapshot,
30
+ /**
31
+ * The out hash tree snapshot immediately before this checkpoint range.
32
+ */
33
+ public previousOutHash: AppendOnlyTreeSnapshot,
34
+ /**
35
+ * The out hash tree snapshot after applying this checkpoint range.
36
+ */
37
+ public newOutHash: AppendOnlyTreeSnapshot,
30
38
  /**
31
39
  * The hashes of the headers of the constituent checkpoints.
32
40
  */
@@ -55,6 +63,8 @@ export class CheckpointRollupPublicInputs {
55
63
  reader.readObject(EpochConstantData),
56
64
  reader.readObject(AppendOnlyTreeSnapshot),
57
65
  reader.readObject(AppendOnlyTreeSnapshot),
66
+ reader.readObject(AppendOnlyTreeSnapshot),
67
+ reader.readObject(AppendOnlyTreeSnapshot),
58
68
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
59
69
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
60
70
  reader.readObject(BlobAccumulator),
@@ -68,6 +78,8 @@ export class CheckpointRollupPublicInputs {
68
78
  this.constants,
69
79
  this.previousArchive,
70
80
  this.newArchive,
81
+ this.previousOutHash,
82
+ this.newOutHash,
71
83
  this.checkpointHeaderHashes,
72
84
  this.fees,
73
85
  this.startBlobAccumulator,
@@ -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,6 +21,12 @@ 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
+ /**
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
+ */
28
+ public outHash: Fr,
29
+ /** Hashes of checkpoint headers for this rollup. */
24
30
  public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
25
31
  public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
26
32
  public constants: EpochConstantData,
@@ -31,6 +37,7 @@ export class RootRollupPublicInputs {
31
37
  return [
32
38
  fields.previousArchiveRoot,
33
39
  fields.endArchiveRoot,
40
+ fields.outHash,
34
41
  fields.checkpointHeaderHashes,
35
42
  fields.fees,
36
43
  fields.constants,
@@ -58,6 +65,7 @@ export class RootRollupPublicInputs {
58
65
  public static fromBuffer(buffer: Buffer | BufferReader): RootRollupPublicInputs {
59
66
  const reader = BufferReader.asReader(buffer);
60
67
  return new RootRollupPublicInputs(
68
+ Fr.fromBuffer(reader),
61
69
  Fr.fromBuffer(reader),
62
70
  Fr.fromBuffer(reader),
63
71
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
@@ -88,6 +96,7 @@ export class RootRollupPublicInputs {
88
96
  /** Creates a random instance. Used for testing only - will not prove/verify. */
89
97
  static random() {
90
98
  return new RootRollupPublicInputs(
99
+ Fr.random(),
91
100
  Fr.random(),
92
101
  Fr.random(),
93
102
  makeTuple(AZTEC_MAX_EPOCH_DURATION, Fr.random),
@@ -43,7 +43,7 @@ import {
43
43
  VK_TREE_HEIGHT,
44
44
  } from '@aztec/constants';
45
45
  import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
46
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
46
+ import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
47
47
  import { compact } from '@aztec/foundation/collection';
48
48
  import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
49
49
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
@@ -87,7 +87,7 @@ 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';
90
+ import type { L2Tips } from '../block/l2_block_source.js';
91
91
  import {
92
92
  type ContractClassPublic,
93
93
  ContractDeploymentData,
@@ -164,7 +164,6 @@ import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js
164
164
  import { PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
165
165
  import { BlockHeader } from '../tx/block_header.js';
166
166
  import { CallContext } from '../tx/call_context.js';
167
- import { ContentCommitment } from '../tx/content_commitment.js';
168
167
  import { FunctionData } from '../tx/function_data.js';
169
168
  import { GlobalVariables } from '../tx/global_variables.js';
170
169
  import { PartialStateReference } from '../tx/partial_state_reference.js';
@@ -837,7 +836,6 @@ export function makeBlockRollupPublicInputs(seed = 0): BlockRollupPublicInputs {
837
836
  makeSpongeBlob(seed + 0x600),
838
837
  makeSpongeBlob(seed + 0x700),
839
838
  BigInt(seed + 0x800),
840
- BigInt(seed + 0x810),
841
839
  fr(seed + 0x820),
842
840
  fr(seed + 0x830),
843
841
  fr(seed + 0x840),
@@ -851,11 +849,13 @@ export function makeCheckpointRollupPublicInputs(seed = 0) {
851
849
  makeEpochConstantData(seed),
852
850
  makeAppendOnlyTreeSnapshot(seed + 0x100),
853
851
  makeAppendOnlyTreeSnapshot(seed + 0x200),
854
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
855
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x400),
856
- makeBlobAccumulator(seed + 0x500),
852
+ makeAppendOnlyTreeSnapshot(seed + 0x300),
853
+ makeAppendOnlyTreeSnapshot(seed + 0x350),
854
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
855
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
857
856
  makeBlobAccumulator(seed + 0x600),
858
- makeFinalBlobBatchingChallenges(seed + 0x700),
857
+ makeBlobAccumulator(seed + 0x700),
858
+ makeFinalBlobBatchingChallenges(seed + 0x800),
859
859
  );
860
860
  }
861
861
 
@@ -887,20 +887,14 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
887
887
  return new RootRollupPublicInputs(
888
888
  fr(seed + 0x100),
889
889
  fr(seed + 0x200),
890
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
890
+ fr(seed + 0x300),
891
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
891
892
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
892
893
  makeEpochConstantData(seed + 0x600),
893
894
  makeFinalBlobAccumulator(seed + 0x700),
894
895
  );
895
896
  }
896
897
 
897
- /**
898
- * Makes content commitment
899
- */
900
- export function makeContentCommitment(seed = 0): ContentCommitment {
901
- return new ContentCommitment(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300));
902
- }
903
-
904
898
  export function makeBlockHeader(
905
899
  seed = 0,
906
900
  overrides: Partial<FieldsOf<Omit<BlockHeader, 'globalVariables'>>> & Partial<FieldsOf<GlobalVariables>> = {},
@@ -916,38 +910,20 @@ export function makeBlockHeader(
916
910
  });
917
911
  }
918
912
 
919
- export function makeL2BlockHeader(
920
- seed = 0,
921
- blockNumber?: number,
922
- slotNumber?: number,
923
- overrides: Partial<FieldsOf<L2BlockHeader>> = {},
924
- ) {
925
- return new L2BlockHeader(
926
- makeAppendOnlyTreeSnapshot(seed + 0x100),
927
- overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200),
928
- overrides?.state ?? makeStateReference(seed + 0x600),
929
- makeGlobalVariables((seed += 0x700), {
930
- ...(blockNumber !== undefined ? { blockNumber: BlockNumber(blockNumber) } : {}),
931
- ...(slotNumber !== undefined ? { slotNumber: SlotNumber(slotNumber) } : {}),
932
- }),
933
- new Fr(seed + 0x800),
934
- new Fr(seed + 0x900),
935
- new Fr(seed + 0xa00),
936
- new Fr(seed + 0xb00),
937
- );
938
- }
939
-
940
- export function makeCheckpointHeader(seed = 0) {
913
+ export function makeCheckpointHeader(seed = 0, overrides: Partial<FieldsOf<CheckpointHeader>> = {}) {
941
914
  return CheckpointHeader.from({
942
915
  lastArchiveRoot: fr(seed + 0x100),
943
916
  blockHeadersHash: fr(seed + 0x150),
944
- contentCommitment: makeContentCommitment(seed + 0x200),
917
+ blobsHash: fr(seed + 0x200),
918
+ inHash: fr(seed + 0x210),
919
+ epochOutHash: fr(seed + 0x220),
945
920
  slotNumber: SlotNumber(seed + 0x300),
946
921
  timestamp: BigInt(seed + 0x400),
947
922
  coinbase: makeEthAddress(seed + 0x500),
948
923
  feeRecipient: makeAztecAddress(seed + 0x600),
949
924
  gasFees: makeGasFees(seed + 0x700),
950
925
  totalManaUsed: fr(seed + 0x800),
926
+ ...overrides,
951
927
  });
952
928
  }
953
929
 
@@ -988,7 +964,7 @@ function makeCountedL2ToL1Message(seed = 0) {
988
964
  return new CountedL2ToL1Message(makeL2ToL1Message(seed), seed + 2);
989
965
  }
990
966
 
991
- function makeScopedL2ToL1Message(seed = 1) {
967
+ export function makeScopedL2ToL1Message(seed = 1) {
992
968
  return new ScopedL2ToL1Message(makeL2ToL1Message(seed), makeAztecAddress(seed + 3));
993
969
  }
994
970
 
@@ -1741,3 +1717,43 @@ export async function randomTxScopedPublicL2Log(opts?: {
1741
1717
  opts?.firstNullifier ?? Fr.random(),
1742
1718
  );
1743
1719
  }
1720
+
1721
+ /**
1722
+ * Creates L2Tips with all tips pointing to the same block number.
1723
+ * Useful for mocking aztecNode.getL2Tips() in tests.
1724
+ * @param blockNumber - The block number to use for all tips.
1725
+ * @param hash - Optional hash for the block (defaults to empty string).
1726
+ * @param checkpointNumber - Optional checkpoint number (defaults to blockNumber).
1727
+ * @param checkpointHash - Optional checkpoint hash (defaults to block hash).
1728
+ * @returns L2Tips object with all tips at the same block.
1729
+ */
1730
+ export function makeL2Tips(
1731
+ blockNumber: number | BlockNumber,
1732
+ hash = '',
1733
+ checkpointNumber?: number | CheckpointNumber,
1734
+ checkpointHash?: string,
1735
+ ): L2Tips {
1736
+ const bn = typeof blockNumber === 'number' ? BlockNumber(blockNumber) : blockNumber;
1737
+ const cpn =
1738
+ checkpointNumber !== undefined
1739
+ ? typeof checkpointNumber === 'number'
1740
+ ? CheckpointNumber(checkpointNumber)
1741
+ : checkpointNumber
1742
+ : CheckpointNumber(bn);
1743
+ const cph = checkpointHash ?? hash;
1744
+ return {
1745
+ proposed: { number: bn, hash },
1746
+ checkpointed: {
1747
+ block: { number: bn, hash },
1748
+ checkpoint: { number: cpn, hash: cph },
1749
+ },
1750
+ proven: {
1751
+ block: { number: bn, hash },
1752
+ checkpoint: { number: cpn, hash: cph },
1753
+ },
1754
+ finalized: {
1755
+ block: { number: bn, hash },
1756
+ checkpoint: { number: cpn, hash: cph },
1757
+ },
1758
+ };
1759
+ }
package/src/tests/jest.ts CHANGED
@@ -1,26 +1,26 @@
1
- import { L2Block } from '../block/l2_block.js';
1
+ import { L2BlockNew } from '../block/l2_block_new.js';
2
2
 
3
3
  /**
4
- * Checks if two objects are the same L2Block.
4
+ * Checks if two objects are the same L2BlockNew.
5
5
  *
6
- * Sometimes we might be comparing two L2Block instances that represent the same block but one of them might not have
6
+ * Sometimes we might be comparing two L2BlockNew instances that represent the same block but one of them might not have
7
7
  * calculated and filled its `blockHash` property (which is computed on demand). This function ensures both objects
8
- * are really the same L2Block.
8
+ * are really the same L2BlockNew.
9
9
  *
10
10
  * @param a - An object
11
11
  * @param b - Another object
12
- * @returns True if both a and b are the same L2Block
12
+ * @returns True if both a and b are the same L2BlockNew
13
13
  */
14
14
  export function equalL2Blocks(a: any, b: any) {
15
- const aAsL2Block = a && a instanceof L2Block ? a : undefined;
16
- const bAsL2Block = b && b instanceof L2Block ? b : undefined;
15
+ const aAsL2Block = a && a instanceof L2BlockNew ? a : undefined;
16
+ const bAsL2Block = b && b instanceof L2BlockNew ? b : undefined;
17
17
 
18
18
  if (aAsL2Block && bAsL2Block) {
19
- // we got two L2Block instances, so we can compare them
19
+ // we got two L2BlockNew instances, so we can compare them
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 L2BlockNew 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