@aztec/stdlib 0.0.1-commit.03f7ef2 → 0.0.1-commit.0b941701

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 (546) 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 +9 -2
  43. package/dest/block/block_hash.d.ts.map +1 -1
  44. package/dest/block/block_hash.js +15 -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 +20 -137
  52. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  53. package/dest/block/checkpointed_l2_block.js +7 -45
  54. package/dest/block/index.d.ts +1 -3
  55. package/dest/block/index.d.ts.map +1 -1
  56. package/dest/block/index.js +0 -2
  57. package/dest/block/l2_block.d.ts +56 -57
  58. package/dest/block/l2_block.d.ts.map +1 -1
  59. package/dest/block/l2_block.js +64 -107
  60. package/dest/block/l2_block_source.d.ts +296 -67
  61. package/dest/block/l2_block_source.d.ts.map +1 -1
  62. package/dest/block/l2_block_source.js +25 -6
  63. package/dest/block/l2_block_stream/index.d.ts +2 -1
  64. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  65. package/dest/block/l2_block_stream/index.js +1 -0
  66. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  67. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  68. package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -3
  69. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  70. package/dest/block/l2_block_stream/l2_block_stream.js +106 -31
  71. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  72. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  73. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  74. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  75. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  76. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  77. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  78. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  79. package/dest/block/test/l2_tips_store_test_suite.js +478 -38
  80. package/dest/block/validate_block_result.d.ts +24 -24
  81. package/dest/block/validate_block_result.d.ts.map +1 -1
  82. package/dest/block/validate_block_result.js +18 -17
  83. package/dest/checkpoint/checkpoint.d.ts +30 -20
  84. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  85. package/dest/checkpoint/checkpoint.js +19 -6
  86. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  87. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  88. package/dest/checkpoint/checkpoint_info.js +34 -1
  89. package/dest/checkpoint/index.d.ts +2 -1
  90. package/dest/checkpoint/index.d.ts.map +1 -1
  91. package/dest/checkpoint/index.js +1 -0
  92. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  93. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  94. package/dest/checkpoint/published_checkpoint.js +4 -3
  95. package/dest/config/node-rpc-config.js +1 -1
  96. package/dest/contract/complete_address.d.ts +4 -1
  97. package/dest/contract/complete_address.d.ts.map +1 -1
  98. package/dest/contract/contract_deployment_data.d.ts +5 -5
  99. package/dest/contract/index.d.ts +1 -3
  100. package/dest/contract/index.d.ts.map +1 -1
  101. package/dest/contract/index.js +0 -2
  102. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  103. package/dest/contract/private_function.d.ts +1 -1
  104. package/dest/contract/private_function.d.ts.map +1 -1
  105. package/dest/contract/private_function.js +1 -2
  106. package/dest/database-version/version_manager.d.ts +4 -2
  107. package/dest/database-version/version_manager.d.ts.map +1 -1
  108. package/dest/database-version/version_manager.js +3 -1
  109. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  110. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  111. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  112. package/dest/deserialization/index.d.ts +11 -0
  113. package/dest/deserialization/index.d.ts.map +1 -0
  114. package/dest/deserialization/index.js +10 -0
  115. package/dest/epoch-helpers/index.js +1 -1
  116. package/dest/errors/proving_error.d.ts +2 -2
  117. package/dest/errors/proving_error.d.ts.map +1 -1
  118. package/dest/gas/gas.js +3 -1
  119. package/dest/gas/gas_fees.js +3 -1
  120. package/dest/interfaces/api_limit.d.ts +3 -1
  121. package/dest/interfaces/api_limit.d.ts.map +1 -1
  122. package/dest/interfaces/api_limit.js +2 -0
  123. package/dest/interfaces/archiver.d.ts +6 -6
  124. package/dest/interfaces/archiver.d.ts.map +1 -1
  125. package/dest/interfaces/archiver.js +20 -16
  126. package/dest/interfaces/aztec-node-admin.d.ts +71 -35
  127. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  128. package/dest/interfaces/aztec-node-admin.js +3 -3
  129. package/dest/interfaces/aztec-node.d.ts +70 -51
  130. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  131. package/dest/interfaces/aztec-node.js +12 -9
  132. package/dest/interfaces/block-builder.d.ts +16 -14
  133. package/dest/interfaces/block-builder.d.ts.map +1 -1
  134. package/dest/interfaces/configs.d.ts +12 -7
  135. package/dest/interfaces/configs.d.ts.map +1 -1
  136. package/dest/interfaces/configs.js +2 -1
  137. package/dest/interfaces/get_logs_response.d.ts +1 -1
  138. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  139. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  140. package/dest/interfaces/p2p.d.ts +7 -9
  141. package/dest/interfaces/p2p.d.ts.map +1 -1
  142. package/dest/interfaces/p2p.js +3 -4
  143. package/dest/interfaces/prover-client.d.ts +10 -1
  144. package/dest/interfaces/prover-client.d.ts.map +1 -1
  145. package/dest/interfaces/prover-client.js +7 -1
  146. package/dest/interfaces/proving-job.d.ts +184 -184
  147. package/dest/interfaces/proving-job.d.ts.map +1 -1
  148. package/dest/interfaces/proving-job.js +1 -7
  149. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  150. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  151. package/dest/interfaces/tx_provider.d.ts +3 -3
  152. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  153. package/dest/interfaces/validator.d.ts +108 -18
  154. package/dest/interfaces/validator.d.ts.map +1 -1
  155. package/dest/interfaces/validator.js +5 -3
  156. package/dest/interfaces/world_state.d.ts +8 -6
  157. package/dest/interfaces/world_state.d.ts.map +1 -1
  158. package/dest/kernel/claimed_length_array.js +3 -1
  159. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  160. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  161. package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
  162. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  163. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  164. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  165. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  166. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  167. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  168. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  169. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  170. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  171. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  172. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  173. package/dest/kernel/hints/read_request.d.ts +7 -1
  174. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  175. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  176. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  177. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  178. package/dest/kernel/log_hash.js +3 -1
  179. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  180. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  181. package/dest/kernel/private_call_data.d.ts +25 -1
  182. package/dest/kernel/private_call_data.d.ts.map +1 -1
  183. package/dest/kernel/private_call_request.d.ts +16 -1
  184. package/dest/kernel/private_call_request.d.ts.map +1 -1
  185. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  186. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  187. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  188. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  189. package/dest/kernel/private_kernel_data.d.ts +7 -1
  190. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  191. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  192. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  193. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  194. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  196. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  197. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  198. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  199. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  200. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  201. package/dest/kernel/private_log_data.js +5 -2
  202. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  203. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  204. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  205. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  206. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  207. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  208. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  209. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  210. package/dest/kernel/private_validation_requests.d.ts +10 -1
  211. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  212. package/dest/kernel/private_validation_requests.js +3 -1
  213. package/dest/kernel/public_call_request.d.ts +22 -1
  214. package/dest/kernel/public_call_request.d.ts.map +1 -1
  215. package/dest/kernel/public_call_request.js +5 -2
  216. package/dest/kernel/utils/optional_number.d.ts +7 -1
  217. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  218. package/dest/keys/public_keys.d.ts +5 -1
  219. package/dest/keys/public_keys.d.ts.map +1 -1
  220. package/dest/logs/contract_class_log.js +3 -1
  221. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  222. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  223. package/dest/logs/extended_public_log.d.ts +5 -3
  224. package/dest/logs/extended_public_log.d.ts.map +1 -1
  225. package/dest/logs/index.d.ts +1 -2
  226. package/dest/logs/index.d.ts.map +1 -1
  227. package/dest/logs/index.js +0 -1
  228. package/dest/logs/log_id.d.ts +5 -1
  229. package/dest/logs/log_id.d.ts.map +1 -1
  230. package/dest/logs/private_log.js +3 -1
  231. package/dest/logs/public_log.js +3 -1
  232. package/dest/logs/tx_scoped_l2_log.d.ts +18 -39
  233. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  234. package/dest/logs/tx_scoped_l2_log.js +29 -50
  235. package/dest/messaging/in_hash.d.ts +4 -2
  236. package/dest/messaging/in_hash.d.ts.map +1 -1
  237. package/dest/messaging/in_hash.js +3 -1
  238. package/dest/messaging/inbox_leaf.d.ts +3 -1
  239. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  240. package/dest/messaging/l1_actor.d.ts +7 -1
  241. package/dest/messaging/l1_actor.d.ts.map +1 -1
  242. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  243. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  244. package/dest/messaging/l2_actor.d.ts +7 -1
  245. package/dest/messaging/l2_actor.d.ts.map +1 -1
  246. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  247. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  248. package/dest/messaging/l2_to_l1_membership.js +160 -42
  249. package/dest/messaging/out_hash.d.ts +41 -3
  250. package/dest/messaging/out_hash.d.ts.map +1 -1
  251. package/dest/messaging/out_hash.js +54 -19
  252. package/dest/note/note_dao.d.ts +36 -5
  253. package/dest/note/note_dao.d.ts.map +1 -1
  254. package/dest/note/note_dao.js +15 -12
  255. package/dest/p2p/attestation_utils.d.ts +3 -3
  256. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  257. package/dest/p2p/attestation_utils.js +1 -1
  258. package/dest/p2p/block_proposal.d.ts +93 -21
  259. package/dest/p2p/block_proposal.d.ts.map +1 -1
  260. package/dest/p2p/block_proposal.js +140 -39
  261. package/dest/p2p/checkpoint_attestation.d.ts +81 -0
  262. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  263. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  264. package/dest/p2p/checkpoint_proposal.d.ts +160 -0
  265. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  266. package/dest/p2p/checkpoint_proposal.js +229 -0
  267. package/dest/p2p/consensus_payload.d.ts +9 -9
  268. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  269. package/dest/p2p/consensus_payload.js +3 -5
  270. package/dest/p2p/constants.d.ts +3 -0
  271. package/dest/p2p/constants.d.ts.map +1 -0
  272. package/dest/p2p/constants.js +2 -0
  273. package/dest/p2p/gossipable.d.ts +4 -3
  274. package/dest/p2p/gossipable.d.ts.map +1 -1
  275. package/dest/p2p/gossipable.js +16 -5
  276. package/dest/p2p/index.d.ts +5 -2
  277. package/dest/p2p/index.d.ts.map +1 -1
  278. package/dest/p2p/index.js +4 -1
  279. package/dest/p2p/message_validator.d.ts +18 -3
  280. package/dest/p2p/message_validator.d.ts.map +1 -1
  281. package/dest/p2p/message_validator.js +2 -1
  282. package/dest/p2p/signature_utils.d.ts +5 -3
  283. package/dest/p2p/signature_utils.d.ts.map +1 -1
  284. package/dest/p2p/signature_utils.js +3 -1
  285. package/dest/p2p/signed_txs.d.ts +42 -0
  286. package/dest/p2p/signed_txs.d.ts.map +1 -0
  287. package/dest/p2p/signed_txs.js +75 -0
  288. package/dest/p2p/topic_type.d.ts +3 -2
  289. package/dest/p2p/topic_type.d.ts.map +1 -1
  290. package/dest/p2p/topic_type.js +10 -3
  291. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  292. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  293. package/dest/parity/parity_public_inputs.d.ts +4 -1
  294. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  295. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  296. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  297. package/dest/proofs/chonk_proof.d.ts +1 -1
  298. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  299. package/dest/proofs/chonk_proof.js +9 -4
  300. package/dest/proofs/proof.d.ts +4 -1
  301. package/dest/proofs/proof.d.ts.map +1 -1
  302. package/dest/proofs/recursive_proof.d.ts +10 -1
  303. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  304. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  305. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  306. package/dest/rollup/block_constant_data.d.ts +12 -1
  307. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  308. package/dest/rollup/block_headers_hash.js +1 -1
  309. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  310. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  311. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  312. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  313. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  314. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  315. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  316. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  317. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  318. package/dest/rollup/checkpoint_constant_data.js +3 -1
  319. package/dest/rollup/checkpoint_header.d.ts +42 -12
  320. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  321. package/dest/rollup/checkpoint_header.js +49 -19
  322. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  323. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  324. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -1
  325. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  326. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -2
  327. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  328. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  329. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  330. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  331. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  332. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  333. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  334. package/dest/rollup/root_rollup_public_inputs.d.ts +18 -3
  335. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  336. package/dest/rollup/root_rollup_public_inputs.js +9 -3
  337. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  338. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  339. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  340. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  341. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  342. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  343. package/dest/schemas/schemas.d.ts +1 -1
  344. package/dest/tests/factories.d.ts +39 -10
  345. package/dest/tests/factories.d.ts.map +1 -1
  346. package/dest/tests/factories.js +80 -25
  347. package/dest/tests/jest.js +1 -1
  348. package/dest/tests/mocks.d.ts +69 -18
  349. package/dest/tests/mocks.d.ts.map +1 -1
  350. package/dest/tests/mocks.js +119 -54
  351. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  352. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  353. package/dest/trees/append_only_tree_snapshot.js +3 -1
  354. package/dest/trees/nullifier_leaf.d.ts +13 -1
  355. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  356. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  357. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  358. package/dest/trees/public_data_leaf.d.ts +16 -1
  359. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  360. package/dest/trees/public_data_witness.d.ts +11 -1
  361. package/dest/trees/public_data_witness.d.ts.map +1 -1
  362. package/dest/tx/block_header.d.ts +14 -2
  363. package/dest/tx/block_header.d.ts.map +1 -1
  364. package/dest/tx/block_header.js +8 -2
  365. package/dest/tx/call_context.d.ts +13 -1
  366. package/dest/tx/call_context.d.ts.map +1 -1
  367. package/dest/tx/call_context.js +3 -1
  368. package/dest/tx/capsule.d.ts +4 -1
  369. package/dest/tx/capsule.d.ts.map +1 -1
  370. package/dest/tx/execution_payload.d.ts +9 -1
  371. package/dest/tx/execution_payload.d.ts.map +1 -1
  372. package/dest/tx/function_data.d.ts +4 -2
  373. package/dest/tx/function_data.d.ts.map +1 -1
  374. package/dest/tx/global_variable_builder.d.ts +2 -2
  375. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  376. package/dest/tx/global_variables.d.ts +9 -1
  377. package/dest/tx/global_variables.d.ts.map +1 -1
  378. package/dest/tx/global_variables.js +3 -1
  379. package/dest/tx/hashed_values.d.ts +7 -1
  380. package/dest/tx/hashed_values.d.ts.map +1 -1
  381. package/dest/tx/in_tx.d.ts +1 -1
  382. package/dest/tx/index.d.ts +1 -2
  383. package/dest/tx/index.d.ts.map +1 -1
  384. package/dest/tx/index.js +0 -1
  385. package/dest/tx/partial_state_reference.d.ts +4 -1
  386. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  387. package/dest/tx/private_execution_result.d.ts +23 -6
  388. package/dest/tx/private_execution_result.d.ts.map +1 -1
  389. package/dest/tx/private_execution_result.js +4 -21
  390. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  391. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  392. package/dest/tx/profiling.d.ts +149 -26
  393. package/dest/tx/profiling.d.ts.map +1 -1
  394. package/dest/tx/profiling.js +44 -7
  395. package/dest/tx/protocol_contracts.d.ts +1 -1
  396. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  397. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  398. package/dest/tx/public_call_request_with_calldata.js +3 -1
  399. package/dest/tx/state_reference.d.ts +3 -1
  400. package/dest/tx/state_reference.d.ts.map +1 -1
  401. package/dest/tx/state_reference.js +3 -1
  402. package/dest/tx/tree_snapshots.js +3 -1
  403. package/dest/tx/tx.d.ts +33 -3
  404. package/dest/tx/tx.d.ts.map +1 -1
  405. package/dest/tx/tx.js +18 -6
  406. package/dest/tx/tx_context.d.ts +2 -1
  407. package/dest/tx/tx_context.d.ts.map +1 -1
  408. package/dest/tx/tx_effect.d.ts +32 -6
  409. package/dest/tx/tx_effect.d.ts.map +1 -1
  410. package/dest/tx/tx_effect.js +6 -9
  411. package/dest/tx/tx_execution_request.d.ts +30 -1
  412. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  413. package/dest/tx/tx_execution_request.js +6 -2
  414. package/dest/tx/tx_hash.d.ts +2 -1
  415. package/dest/tx/tx_hash.d.ts.map +1 -1
  416. package/dest/tx/tx_receipt.d.ts +44 -10
  417. package/dest/tx/tx_receipt.d.ts.map +1 -1
  418. package/dest/tx/tx_receipt.js +44 -13
  419. package/dest/tx/tx_request.d.ts +6 -1
  420. package/dest/tx/tx_request.d.ts.map +1 -1
  421. package/dest/tx/validator/error_texts.d.ts +2 -1
  422. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  423. package/dest/tx/validator/error_texts.js +2 -0
  424. package/dest/types/shared.d.ts +4 -1
  425. package/dest/types/shared.d.ts.map +1 -1
  426. package/dest/validators/schemas.d.ts +8 -8
  427. package/dest/vks/verification_key.d.ts +22 -1
  428. package/dest/vks/verification_key.d.ts.map +1 -1
  429. package/dest/vks/vk_data.d.ts +7 -1
  430. package/dest/vks/vk_data.d.ts.map +1 -1
  431. package/dest/zkpassport/index.d.ts +3 -4
  432. package/dest/zkpassport/index.d.ts.map +1 -1
  433. package/dest/zkpassport/index.js +9 -9
  434. package/package.json +12 -10
  435. package/src/abi/contract_artifact.ts +10 -10
  436. package/src/abi/utils.ts +17 -0
  437. package/src/block/attestation_info.ts +9 -6
  438. package/src/block/block_hash.ts +27 -1
  439. package/src/block/block_parameter.ts +4 -2
  440. package/src/block/body.ts +2 -1
  441. package/src/block/checkpointed_l2_block.ts +8 -58
  442. package/src/block/index.ts +0 -2
  443. package/src/block/l2_block.ts +101 -148
  444. package/src/block/l2_block_source.ts +121 -43
  445. package/src/block/l2_block_stream/index.ts +1 -0
  446. package/src/block/l2_block_stream/interfaces.ts +15 -4
  447. package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
  448. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  449. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  450. package/src/block/test/l2_tips_store_test_suite.ts +480 -36
  451. package/src/block/validate_block_result.ts +40 -35
  452. package/src/checkpoint/checkpoint.ts +34 -11
  453. package/src/checkpoint/checkpoint_info.ts +45 -2
  454. package/src/checkpoint/index.ts +1 -0
  455. package/src/checkpoint/published_checkpoint.ts +4 -3
  456. package/src/config/node-rpc-config.ts +1 -1
  457. package/src/contract/index.ts +0 -2
  458. package/src/contract/private_function.ts +1 -2
  459. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  460. package/src/deserialization/index.ts +21 -0
  461. package/src/epoch-helpers/index.ts +1 -1
  462. package/src/interfaces/api_limit.ts +2 -0
  463. package/src/interfaces/archiver.ts +24 -23
  464. package/src/interfaces/aztec-node-admin.ts +7 -4
  465. package/src/interfaces/aztec-node.ts +100 -68
  466. package/src/interfaces/block-builder.ts +31 -24
  467. package/src/interfaces/configs.ts +3 -0
  468. package/src/interfaces/l2_logs_source.ts +17 -4
  469. package/src/interfaces/p2p.ts +8 -12
  470. package/src/interfaces/prover-client.ts +15 -0
  471. package/src/interfaces/proving-job.ts +2 -11
  472. package/src/interfaces/server_circuit_prover.ts +3 -2
  473. package/src/interfaces/tx_provider.ts +2 -2
  474. package/src/interfaces/validator.ts +63 -14
  475. package/src/interfaces/world_state.ts +9 -7
  476. package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
  477. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  478. package/src/logs/index.ts +0 -1
  479. package/src/logs/tx_scoped_l2_log.ts +37 -53
  480. package/src/messaging/in_hash.ts +3 -1
  481. package/src/messaging/l2_to_l1_membership.ts +178 -52
  482. package/src/messaging/out_hash.ts +62 -21
  483. package/src/note/note_dao.ts +18 -13
  484. package/src/p2p/attestation_utils.ts +3 -3
  485. package/src/p2p/block_proposal.ts +204 -44
  486. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
  487. package/src/p2p/checkpoint_proposal.ts +348 -0
  488. package/src/p2p/consensus_payload.ts +5 -7
  489. package/src/p2p/constants.ts +3 -0
  490. package/src/p2p/gossipable.ts +14 -4
  491. package/src/p2p/index.ts +4 -1
  492. package/src/p2p/message_validator.ts +14 -2
  493. package/src/p2p/signature_utils.ts +3 -1
  494. package/src/p2p/signed_txs.ts +88 -0
  495. package/src/p2p/topic_type.ts +4 -3
  496. package/src/proofs/chonk_proof.ts +9 -5
  497. package/src/rollup/block_headers_hash.ts +1 -1
  498. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  499. package/src/rollup/checkpoint_header.ts +63 -20
  500. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -0
  501. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  502. package/src/rollup/root_rollup_public_inputs.ts +9 -0
  503. package/src/tests/factories.ts +101 -40
  504. package/src/tests/jest.ts +1 -1
  505. package/src/tests/mocks.ts +207 -87
  506. package/src/tx/block_header.ts +11 -3
  507. package/src/tx/global_variable_builder.ts +1 -1
  508. package/src/tx/index.ts +0 -1
  509. package/src/tx/private_execution_result.ts +1 -16
  510. package/src/tx/profiling.ts +46 -4
  511. package/src/tx/tx.ts +19 -11
  512. package/src/tx/tx_effect.ts +3 -10
  513. package/src/tx/tx_execution_request.ts +2 -0
  514. package/src/tx/tx_receipt.ts +72 -15
  515. package/src/tx/validator/error_texts.ts +3 -0
  516. package/src/zkpassport/index.ts +11 -12
  517. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  518. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  519. package/dest/block/l2_block_code_to_purge.js +0 -61
  520. package/dest/block/l2_block_header.d.ts +0 -98
  521. package/dest/block/l2_block_header.d.ts.map +0 -1
  522. package/dest/block/l2_block_header.js +0 -153
  523. package/dest/block/l2_block_new.d.ts +0 -135
  524. package/dest/block/l2_block_new.d.ts.map +0 -1
  525. package/dest/block/l2_block_new.js +0 -152
  526. package/dest/contract/contract_class_metadata.d.ts +0 -8
  527. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  528. package/dest/contract/contract_class_metadata.js +0 -1
  529. package/dest/contract/contract_metadata.d.ts +0 -7
  530. package/dest/contract/contract_metadata.d.ts.map +0 -1
  531. package/dest/contract/contract_metadata.js +0 -1
  532. package/dest/logs/log_with_tx_data.d.ts +0 -19
  533. package/dest/logs/log_with_tx_data.d.ts.map +0 -1
  534. package/dest/logs/log_with_tx_data.js +0 -49
  535. package/dest/p2p/block_attestation.d.ts +0 -80
  536. package/dest/p2p/block_attestation.d.ts.map +0 -1
  537. package/dest/tx/content_commitment.d.ts +0 -49
  538. package/dest/tx/content_commitment.d.ts.map +0 -1
  539. package/dest/tx/content_commitment.js +0 -90
  540. package/src/block/l2_block_code_to_purge.ts +0 -88
  541. package/src/block/l2_block_header.ts +0 -246
  542. package/src/block/l2_block_new.ts +0 -207
  543. package/src/contract/contract_class_metadata.ts +0 -8
  544. package/src/contract/contract_metadata.ts +0 -7
  545. package/src/logs/log_with_tx_data.ts +0 -46
  546. 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,
@@ -131,6 +131,7 @@ import { PublicKeys, computeAddress } from '../keys/index.js';
131
131
  import { ContractClassLog, ContractClassLogFields } from '../logs/index.js';
132
132
  import { PrivateLog } from '../logs/private_log.js';
133
133
  import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
134
+ import { TxScopedL2Log } from '../logs/tx_scoped_l2_log.js';
134
135
  import { CountedL2ToL1Message, L2ToL1Message, ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
135
136
  import { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
136
137
  import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
@@ -163,7 +164,6 @@ import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js
163
164
  import { PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
164
165
  import { BlockHeader } from '../tx/block_header.js';
165
166
  import { CallContext } from '../tx/call_context.js';
166
- import { ContentCommitment } from '../tx/content_commitment.js';
167
167
  import { FunctionData } from '../tx/function_data.js';
168
168
  import { GlobalVariables } from '../tx/global_variables.js';
169
169
  import { PartialStateReference } from '../tx/partial_state_reference.js';
@@ -173,6 +173,7 @@ import { StateReference } from '../tx/state_reference.js';
173
173
  import { TreeSnapshots } from '../tx/tree_snapshots.js';
174
174
  import { TxConstantData } from '../tx/tx_constant_data.js';
175
175
  import { TxContext } from '../tx/tx_context.js';
176
+ import { TxHash } from '../tx/tx_hash.js';
176
177
  import { TxRequest } from '../tx/tx_request.js';
177
178
  import { Vector } from '../types/index.js';
178
179
  import { VkData } from '../vks/index.js';
@@ -835,7 +836,6 @@ export function makeBlockRollupPublicInputs(seed = 0): BlockRollupPublicInputs {
835
836
  makeSpongeBlob(seed + 0x600),
836
837
  makeSpongeBlob(seed + 0x700),
837
838
  BigInt(seed + 0x800),
838
- BigInt(seed + 0x810),
839
839
  fr(seed + 0x820),
840
840
  fr(seed + 0x830),
841
841
  fr(seed + 0x840),
@@ -849,11 +849,13 @@ export function makeCheckpointRollupPublicInputs(seed = 0) {
849
849
  makeEpochConstantData(seed),
850
850
  makeAppendOnlyTreeSnapshot(seed + 0x100),
851
851
  makeAppendOnlyTreeSnapshot(seed + 0x200),
852
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
853
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x400),
854
- 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),
855
856
  makeBlobAccumulator(seed + 0x600),
856
- makeFinalBlobBatchingChallenges(seed + 0x700),
857
+ makeBlobAccumulator(seed + 0x700),
858
+ makeFinalBlobBatchingChallenges(seed + 0x800),
857
859
  );
858
860
  }
859
861
 
@@ -885,20 +887,14 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
885
887
  return new RootRollupPublicInputs(
886
888
  fr(seed + 0x100),
887
889
  fr(seed + 0x200),
888
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
890
+ fr(seed + 0x300),
891
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
889
892
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
890
893
  makeEpochConstantData(seed + 0x600),
891
894
  makeFinalBlobAccumulator(seed + 0x700),
892
895
  );
893
896
  }
894
897
 
895
- /**
896
- * Makes content commitment
897
- */
898
- export function makeContentCommitment(seed = 0): ContentCommitment {
899
- return new ContentCommitment(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300));
900
- }
901
-
902
898
  export function makeBlockHeader(
903
899
  seed = 0,
904
900
  overrides: Partial<FieldsOf<Omit<BlockHeader, 'globalVariables'>>> & Partial<FieldsOf<GlobalVariables>> = {},
@@ -914,38 +910,20 @@ export function makeBlockHeader(
914
910
  });
915
911
  }
916
912
 
917
- export function makeL2BlockHeader(
918
- seed = 0,
919
- blockNumber?: number,
920
- slotNumber?: number,
921
- overrides: Partial<FieldsOf<L2BlockHeader>> = {},
922
- ) {
923
- return new L2BlockHeader(
924
- makeAppendOnlyTreeSnapshot(seed + 0x100),
925
- overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200),
926
- overrides?.state ?? makeStateReference(seed + 0x600),
927
- makeGlobalVariables((seed += 0x700), {
928
- ...(blockNumber !== undefined ? { blockNumber: BlockNumber(blockNumber) } : {}),
929
- ...(slotNumber !== undefined ? { slotNumber: SlotNumber(slotNumber) } : {}),
930
- }),
931
- new Fr(seed + 0x800),
932
- new Fr(seed + 0x900),
933
- new Fr(seed + 0xa00),
934
- new Fr(seed + 0xb00),
935
- );
936
- }
937
-
938
- export function makeCheckpointHeader(seed = 0) {
913
+ export function makeCheckpointHeader(seed = 0, overrides: Partial<FieldsOf<CheckpointHeader>> = {}) {
939
914
  return CheckpointHeader.from({
940
915
  lastArchiveRoot: fr(seed + 0x100),
941
916
  blockHeadersHash: fr(seed + 0x150),
942
- contentCommitment: makeContentCommitment(seed + 0x200),
917
+ blobsHash: fr(seed + 0x200),
918
+ inHash: fr(seed + 0x210),
919
+ epochOutHash: fr(seed + 0x220),
943
920
  slotNumber: SlotNumber(seed + 0x300),
944
921
  timestamp: BigInt(seed + 0x400),
945
922
  coinbase: makeEthAddress(seed + 0x500),
946
923
  feeRecipient: makeAztecAddress(seed + 0x600),
947
924
  gasFees: makeGasFees(seed + 0x700),
948
925
  totalManaUsed: fr(seed + 0x800),
926
+ ...overrides,
949
927
  });
950
928
  }
951
929
 
@@ -986,7 +964,7 @@ function makeCountedL2ToL1Message(seed = 0) {
986
964
  return new CountedL2ToL1Message(makeL2ToL1Message(seed), seed + 2);
987
965
  }
988
966
 
989
- function makeScopedL2ToL1Message(seed = 1) {
967
+ export function makeScopedL2ToL1Message(seed = 1) {
990
968
  return new ScopedL2ToL1Message(makeL2ToL1Message(seed), makeAztecAddress(seed + 3));
991
969
  }
992
970
 
@@ -1696,3 +1674,86 @@ export async function makeAvmCircuitInputs(
1696
1674
  export function fr(n: number): Fr {
1697
1675
  return new Fr(BigInt(n));
1698
1676
  }
1677
+
1678
+ /**
1679
+ * Creates a random TxScopedL2Log with private log data.
1680
+ */
1681
+ export function randomTxScopedPrivateL2Log(opts?: {
1682
+ tag?: Fr;
1683
+ txHash?: TxHash;
1684
+ blockNumber?: number;
1685
+ blockTimestamp?: bigint;
1686
+ noteHashes?: Fr[];
1687
+ firstNullifier?: Fr;
1688
+ }) {
1689
+ const log = PrivateLog.random(opts?.tag);
1690
+ return new TxScopedL2Log(
1691
+ opts?.txHash ?? TxHash.random(),
1692
+ BlockNumber(opts?.blockNumber ?? 1),
1693
+ opts?.blockTimestamp ?? 1n,
1694
+ log.getEmittedFields(),
1695
+ opts?.noteHashes ?? [Fr.random(), Fr.random()],
1696
+ opts?.firstNullifier ?? Fr.random(),
1697
+ );
1698
+ }
1699
+
1700
+ /**
1701
+ * Creates a random TxScopedL2Log with public log data.
1702
+ */
1703
+ export async function randomTxScopedPublicL2Log(opts?: {
1704
+ txHash?: TxHash;
1705
+ blockNumber?: number;
1706
+ blockTimestamp?: bigint;
1707
+ noteHashes?: Fr[];
1708
+ firstNullifier?: Fr;
1709
+ }) {
1710
+ const log = await PublicLog.random();
1711
+ return new TxScopedL2Log(
1712
+ opts?.txHash ?? TxHash.random(),
1713
+ BlockNumber(opts?.blockNumber ?? 1),
1714
+ opts?.blockTimestamp ?? 1n,
1715
+ log.getEmittedFields(),
1716
+ opts?.noteHashes ?? [Fr.random(), Fr.random()],
1717
+ opts?.firstNullifier ?? Fr.random(),
1718
+ );
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.fromBlockNumber(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
@@ -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