@aztec/stdlib 0.0.1-commit.fcb71a6 → 0.0.1-commit.fffb133c

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 (531) 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 +67 -31
  127. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  128. package/dest/interfaces/aztec-node-admin.js +2 -2
  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/kernel/claimed_length_array.js +3 -1
  157. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  158. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  159. package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
  160. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  161. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  163. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  164. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  165. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  166. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  167. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  168. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  169. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  170. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  171. package/dest/kernel/hints/read_request.d.ts +7 -1
  172. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  173. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  174. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  175. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  176. package/dest/kernel/log_hash.js +3 -1
  177. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  178. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  179. package/dest/kernel/private_call_data.d.ts +25 -1
  180. package/dest/kernel/private_call_data.d.ts.map +1 -1
  181. package/dest/kernel/private_call_request.d.ts +16 -1
  182. package/dest/kernel/private_call_request.d.ts.map +1 -1
  183. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  184. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  185. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  186. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  187. package/dest/kernel/private_kernel_data.d.ts +7 -1
  188. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  189. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  190. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  191. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  192. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  193. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  194. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  196. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  197. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  198. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  199. package/dest/kernel/private_log_data.js +5 -2
  200. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  201. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  202. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  203. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  204. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  205. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  206. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  207. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  208. package/dest/kernel/private_validation_requests.d.ts +10 -1
  209. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  210. package/dest/kernel/private_validation_requests.js +3 -1
  211. package/dest/kernel/public_call_request.d.ts +22 -1
  212. package/dest/kernel/public_call_request.d.ts.map +1 -1
  213. package/dest/kernel/public_call_request.js +5 -2
  214. package/dest/kernel/utils/optional_number.d.ts +7 -1
  215. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  216. package/dest/keys/public_keys.d.ts +5 -1
  217. package/dest/keys/public_keys.d.ts.map +1 -1
  218. package/dest/logs/contract_class_log.js +3 -1
  219. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  220. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  221. package/dest/logs/extended_public_log.d.ts +5 -3
  222. package/dest/logs/extended_public_log.d.ts.map +1 -1
  223. package/dest/logs/log_id.d.ts +5 -1
  224. package/dest/logs/log_id.d.ts.map +1 -1
  225. package/dest/logs/private_log.js +3 -1
  226. package/dest/logs/public_log.js +3 -1
  227. package/dest/messaging/in_hash.d.ts +4 -2
  228. package/dest/messaging/in_hash.d.ts.map +1 -1
  229. package/dest/messaging/in_hash.js +3 -1
  230. package/dest/messaging/inbox_leaf.d.ts +3 -1
  231. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  232. package/dest/messaging/l1_actor.d.ts +7 -1
  233. package/dest/messaging/l1_actor.d.ts.map +1 -1
  234. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  235. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  236. package/dest/messaging/l2_actor.d.ts +7 -1
  237. package/dest/messaging/l2_actor.d.ts.map +1 -1
  238. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  239. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  240. package/dest/messaging/l2_to_l1_membership.js +160 -42
  241. package/dest/messaging/out_hash.d.ts +41 -3
  242. package/dest/messaging/out_hash.d.ts.map +1 -1
  243. package/dest/messaging/out_hash.js +54 -19
  244. package/dest/note/note_dao.d.ts +36 -5
  245. package/dest/note/note_dao.d.ts.map +1 -1
  246. package/dest/note/note_dao.js +15 -12
  247. package/dest/p2p/attestation_utils.d.ts +3 -3
  248. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  249. package/dest/p2p/attestation_utils.js +1 -1
  250. package/dest/p2p/block_proposal.d.ts +93 -21
  251. package/dest/p2p/block_proposal.d.ts.map +1 -1
  252. package/dest/p2p/block_proposal.js +140 -39
  253. package/dest/p2p/checkpoint_attestation.d.ts +81 -0
  254. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  255. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  256. package/dest/p2p/checkpoint_proposal.d.ts +160 -0
  257. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  258. package/dest/p2p/checkpoint_proposal.js +229 -0
  259. package/dest/p2p/consensus_payload.d.ts +9 -9
  260. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  261. package/dest/p2p/consensus_payload.js +3 -5
  262. package/dest/p2p/constants.d.ts +3 -0
  263. package/dest/p2p/constants.d.ts.map +1 -0
  264. package/dest/p2p/constants.js +2 -0
  265. package/dest/p2p/gossipable.d.ts +4 -3
  266. package/dest/p2p/gossipable.d.ts.map +1 -1
  267. package/dest/p2p/gossipable.js +16 -5
  268. package/dest/p2p/index.d.ts +5 -2
  269. package/dest/p2p/index.d.ts.map +1 -1
  270. package/dest/p2p/index.js +4 -1
  271. package/dest/p2p/message_validator.d.ts +18 -3
  272. package/dest/p2p/message_validator.d.ts.map +1 -1
  273. package/dest/p2p/message_validator.js +2 -1
  274. package/dest/p2p/signature_utils.d.ts +5 -3
  275. package/dest/p2p/signature_utils.d.ts.map +1 -1
  276. package/dest/p2p/signature_utils.js +3 -1
  277. package/dest/p2p/signed_txs.d.ts +42 -0
  278. package/dest/p2p/signed_txs.d.ts.map +1 -0
  279. package/dest/p2p/signed_txs.js +75 -0
  280. package/dest/p2p/topic_type.d.ts +3 -2
  281. package/dest/p2p/topic_type.d.ts.map +1 -1
  282. package/dest/p2p/topic_type.js +10 -3
  283. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  284. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  285. package/dest/parity/parity_public_inputs.d.ts +4 -1
  286. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  287. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  288. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  289. package/dest/proofs/chonk_proof.d.ts +1 -1
  290. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  291. package/dest/proofs/chonk_proof.js +9 -4
  292. package/dest/proofs/proof.d.ts +4 -1
  293. package/dest/proofs/proof.d.ts.map +1 -1
  294. package/dest/proofs/recursive_proof.d.ts +10 -1
  295. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  296. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  297. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  298. package/dest/rollup/block_constant_data.d.ts +12 -1
  299. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  300. package/dest/rollup/block_headers_hash.js +1 -1
  301. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  302. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  303. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  304. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  305. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  306. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  307. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  308. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  309. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  310. package/dest/rollup/checkpoint_constant_data.js +3 -1
  311. package/dest/rollup/checkpoint_header.d.ts +42 -12
  312. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  313. package/dest/rollup/checkpoint_header.js +49 -19
  314. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  315. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  316. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -1
  317. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  318. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -2
  319. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  320. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  321. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  322. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  323. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  324. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  325. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  326. package/dest/rollup/root_rollup_public_inputs.d.ts +18 -3
  327. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  328. package/dest/rollup/root_rollup_public_inputs.js +9 -3
  329. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  330. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  331. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  332. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  333. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  334. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  335. package/dest/schemas/schemas.d.ts +1 -1
  336. package/dest/tests/factories.d.ts +16 -10
  337. package/dest/tests/factories.d.ts.map +1 -1
  338. package/dest/tests/factories.js +60 -25
  339. package/dest/tests/jest.js +1 -1
  340. package/dest/tests/mocks.d.ts +69 -18
  341. package/dest/tests/mocks.d.ts.map +1 -1
  342. package/dest/tests/mocks.js +119 -54
  343. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  344. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  345. package/dest/trees/append_only_tree_snapshot.js +3 -1
  346. package/dest/trees/nullifier_leaf.d.ts +13 -1
  347. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  348. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  349. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  350. package/dest/trees/public_data_leaf.d.ts +16 -1
  351. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  352. package/dest/trees/public_data_witness.d.ts +11 -1
  353. package/dest/trees/public_data_witness.d.ts.map +1 -1
  354. package/dest/tx/block_header.d.ts +14 -2
  355. package/dest/tx/block_header.d.ts.map +1 -1
  356. package/dest/tx/block_header.js +8 -2
  357. package/dest/tx/call_context.d.ts +13 -1
  358. package/dest/tx/call_context.d.ts.map +1 -1
  359. package/dest/tx/call_context.js +3 -1
  360. package/dest/tx/capsule.d.ts +4 -1
  361. package/dest/tx/capsule.d.ts.map +1 -1
  362. package/dest/tx/execution_payload.d.ts +9 -1
  363. package/dest/tx/execution_payload.d.ts.map +1 -1
  364. package/dest/tx/function_data.d.ts +4 -2
  365. package/dest/tx/function_data.d.ts.map +1 -1
  366. package/dest/tx/global_variable_builder.d.ts +2 -2
  367. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  368. package/dest/tx/global_variables.d.ts +9 -1
  369. package/dest/tx/global_variables.d.ts.map +1 -1
  370. package/dest/tx/global_variables.js +3 -1
  371. package/dest/tx/hashed_values.d.ts +7 -1
  372. package/dest/tx/hashed_values.d.ts.map +1 -1
  373. package/dest/tx/in_tx.d.ts +1 -1
  374. package/dest/tx/index.d.ts +1 -2
  375. package/dest/tx/index.d.ts.map +1 -1
  376. package/dest/tx/index.js +0 -1
  377. package/dest/tx/partial_state_reference.d.ts +4 -1
  378. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  379. package/dest/tx/private_execution_result.d.ts +23 -6
  380. package/dest/tx/private_execution_result.d.ts.map +1 -1
  381. package/dest/tx/private_execution_result.js +4 -21
  382. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  383. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  384. package/dest/tx/profiling.d.ts +149 -26
  385. package/dest/tx/profiling.d.ts.map +1 -1
  386. package/dest/tx/profiling.js +44 -7
  387. package/dest/tx/protocol_contracts.d.ts +1 -1
  388. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  389. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  390. package/dest/tx/public_call_request_with_calldata.js +3 -1
  391. package/dest/tx/state_reference.d.ts +3 -1
  392. package/dest/tx/state_reference.d.ts.map +1 -1
  393. package/dest/tx/state_reference.js +3 -1
  394. package/dest/tx/tree_snapshots.js +3 -1
  395. package/dest/tx/tx.d.ts +24 -1
  396. package/dest/tx/tx.d.ts.map +1 -1
  397. package/dest/tx/tx.js +9 -4
  398. package/dest/tx/tx_context.d.ts +2 -1
  399. package/dest/tx/tx_context.d.ts.map +1 -1
  400. package/dest/tx/tx_effect.d.ts +32 -6
  401. package/dest/tx/tx_effect.d.ts.map +1 -1
  402. package/dest/tx/tx_effect.js +3 -8
  403. package/dest/tx/tx_execution_request.d.ts +30 -1
  404. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  405. package/dest/tx/tx_execution_request.js +6 -2
  406. package/dest/tx/tx_hash.d.ts +2 -1
  407. package/dest/tx/tx_hash.d.ts.map +1 -1
  408. package/dest/tx/tx_receipt.d.ts +44 -10
  409. package/dest/tx/tx_receipt.d.ts.map +1 -1
  410. package/dest/tx/tx_receipt.js +44 -13
  411. package/dest/tx/tx_request.d.ts +6 -1
  412. package/dest/tx/tx_request.d.ts.map +1 -1
  413. package/dest/tx/validator/error_texts.d.ts +2 -1
  414. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  415. package/dest/tx/validator/error_texts.js +2 -0
  416. package/dest/types/shared.d.ts +4 -1
  417. package/dest/types/shared.d.ts.map +1 -1
  418. package/dest/validators/schemas.d.ts +8 -8
  419. package/dest/vks/verification_key.d.ts +22 -1
  420. package/dest/vks/verification_key.d.ts.map +1 -1
  421. package/dest/vks/vk_data.d.ts +7 -1
  422. package/dest/vks/vk_data.d.ts.map +1 -1
  423. package/dest/zkpassport/index.d.ts +3 -4
  424. package/dest/zkpassport/index.d.ts.map +1 -1
  425. package/dest/zkpassport/index.js +9 -9
  426. package/package.json +12 -10
  427. package/src/abi/contract_artifact.ts +10 -10
  428. package/src/abi/utils.ts +17 -0
  429. package/src/block/attestation_info.ts +9 -6
  430. package/src/block/block_hash.ts +27 -1
  431. package/src/block/block_parameter.ts +4 -2
  432. package/src/block/body.ts +2 -1
  433. package/src/block/checkpointed_l2_block.ts +8 -58
  434. package/src/block/index.ts +0 -2
  435. package/src/block/l2_block.ts +101 -148
  436. package/src/block/l2_block_source.ts +121 -43
  437. package/src/block/l2_block_stream/index.ts +1 -0
  438. package/src/block/l2_block_stream/interfaces.ts +15 -4
  439. package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
  440. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  441. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  442. package/src/block/test/l2_tips_store_test_suite.ts +480 -36
  443. package/src/block/validate_block_result.ts +40 -35
  444. package/src/checkpoint/checkpoint.ts +34 -11
  445. package/src/checkpoint/checkpoint_info.ts +45 -2
  446. package/src/checkpoint/index.ts +1 -0
  447. package/src/checkpoint/published_checkpoint.ts +4 -3
  448. package/src/config/node-rpc-config.ts +1 -1
  449. package/src/contract/index.ts +0 -2
  450. package/src/contract/private_function.ts +1 -2
  451. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  452. package/src/deserialization/index.ts +21 -0
  453. package/src/epoch-helpers/index.ts +1 -1
  454. package/src/interfaces/api_limit.ts +2 -0
  455. package/src/interfaces/archiver.ts +24 -23
  456. package/src/interfaces/aztec-node-admin.ts +5 -2
  457. package/src/interfaces/aztec-node.ts +100 -68
  458. package/src/interfaces/block-builder.ts +31 -24
  459. package/src/interfaces/configs.ts +3 -0
  460. package/src/interfaces/l2_logs_source.ts +17 -4
  461. package/src/interfaces/p2p.ts +8 -12
  462. package/src/interfaces/prover-client.ts +15 -0
  463. package/src/interfaces/proving-job.ts +2 -11
  464. package/src/interfaces/server_circuit_prover.ts +3 -2
  465. package/src/interfaces/tx_provider.ts +2 -2
  466. package/src/interfaces/validator.ts +63 -14
  467. package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
  468. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  469. package/src/messaging/in_hash.ts +3 -1
  470. package/src/messaging/l2_to_l1_membership.ts +178 -52
  471. package/src/messaging/out_hash.ts +62 -21
  472. package/src/note/note_dao.ts +18 -13
  473. package/src/p2p/attestation_utils.ts +3 -3
  474. package/src/p2p/block_proposal.ts +204 -44
  475. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
  476. package/src/p2p/checkpoint_proposal.ts +348 -0
  477. package/src/p2p/consensus_payload.ts +5 -7
  478. package/src/p2p/constants.ts +3 -0
  479. package/src/p2p/gossipable.ts +14 -4
  480. package/src/p2p/index.ts +4 -1
  481. package/src/p2p/message_validator.ts +14 -2
  482. package/src/p2p/signature_utils.ts +3 -1
  483. package/src/p2p/signed_txs.ts +88 -0
  484. package/src/p2p/topic_type.ts +4 -3
  485. package/src/proofs/chonk_proof.ts +9 -5
  486. package/src/rollup/block_headers_hash.ts +1 -1
  487. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  488. package/src/rollup/checkpoint_header.ts +63 -20
  489. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -0
  490. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  491. package/src/rollup/root_rollup_public_inputs.ts +9 -0
  492. package/src/tests/factories.ts +56 -40
  493. package/src/tests/jest.ts +1 -1
  494. package/src/tests/mocks.ts +207 -87
  495. package/src/tx/block_header.ts +11 -3
  496. package/src/tx/global_variable_builder.ts +1 -1
  497. package/src/tx/index.ts +0 -1
  498. package/src/tx/private_execution_result.ts +1 -16
  499. package/src/tx/profiling.ts +46 -4
  500. package/src/tx/tx.ts +10 -9
  501. package/src/tx/tx_effect.ts +0 -9
  502. package/src/tx/tx_execution_request.ts +2 -0
  503. package/src/tx/tx_receipt.ts +72 -15
  504. package/src/tx/validator/error_texts.ts +3 -0
  505. package/src/zkpassport/index.ts +11 -12
  506. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  507. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  508. package/dest/block/l2_block_code_to_purge.js +0 -61
  509. package/dest/block/l2_block_header.d.ts +0 -98
  510. package/dest/block/l2_block_header.d.ts.map +0 -1
  511. package/dest/block/l2_block_header.js +0 -153
  512. package/dest/block/l2_block_new.d.ts +0 -135
  513. package/dest/block/l2_block_new.d.ts.map +0 -1
  514. package/dest/block/l2_block_new.js +0 -152
  515. package/dest/contract/contract_class_metadata.d.ts +0 -8
  516. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  517. package/dest/contract/contract_class_metadata.js +0 -1
  518. package/dest/contract/contract_metadata.d.ts +0 -7
  519. package/dest/contract/contract_metadata.d.ts.map +0 -1
  520. package/dest/contract/contract_metadata.js +0 -1
  521. package/dest/p2p/block_attestation.d.ts +0 -80
  522. package/dest/p2p/block_attestation.d.ts.map +0 -1
  523. package/dest/tx/content_commitment.d.ts +0 -49
  524. package/dest/tx/content_commitment.d.ts.map +0 -1
  525. package/dest/tx/content_commitment.js +0 -90
  526. package/src/block/l2_block_code_to_purge.ts +0 -88
  527. package/src/block/l2_block_header.ts +0 -246
  528. package/src/block/l2_block_new.ts +0 -207
  529. package/src/contract/contract_class_metadata.ts +0 -8
  530. package/src/contract/contract_metadata.ts +0 -7
  531. package/src/tx/content_commitment.ts +0 -113
@@ -1,7 +1,7 @@
1
1
  import { makeBlobAccumulator, makeFinalBlobAccumulator, makeFinalBlobBatchingChallenges, makeSpongeBlob } from '@aztec/blob-lib/testing';
2
2
  import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { makeTuple } from '@aztec/foundation/array';
4
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
+ import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
5
5
  import { compact } from '@aztec/foundation/collection';
6
6
  import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
7
7
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
@@ -18,7 +18,6 @@ import { AvmAccumulatedData, AvmAccumulatedDataArrayLengths, AvmAppendLeavesHint
18
18
  import { PublicDataRead } from '../avm/public_data_read.js';
19
19
  import { PublicDataWrite } from '../avm/public_data_write.js';
20
20
  import { AztecAddress } from '../aztec-address/index.js';
21
- import { L2BlockHeader } from '../block/l2_block_header.js';
22
21
  import { ContractDeploymentData, SerializableContractInstance, computeContractClassId, computePublicBytecodeCommitment } from '../contract/index.js';
23
22
  import { Gas, GasFees, GasSettings } from '../gas/index.js';
24
23
  import { computeCalldataHash } from '../hash/hash.js';
@@ -68,7 +67,6 @@ import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js
68
67
  import { PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
69
68
  import { BlockHeader } from '../tx/block_header.js';
70
69
  import { CallContext } from '../tx/call_context.js';
71
- import { ContentCommitment } from '../tx/content_commitment.js';
72
70
  import { FunctionData } from '../tx/function_data.js';
73
71
  import { GlobalVariables } from '../tx/global_variables.js';
74
72
  import { PartialStateReference } from '../tx/partial_state_reference.js';
@@ -440,10 +438,10 @@ function makeEpochConstantData(seed = 1) {
440
438
  * @param blockNumber - The block number to use for generating the block merge or block root rollup circuit public inputs.
441
439
  * @returns A block merge or block root rollup circuit public inputs.
442
440
  */ export function makeBlockRollupPublicInputs(seed = 0) {
443
- return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), BigInt(seed + 0x810), fr(seed + 0x820), fr(seed + 0x830), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
441
+ return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820), fr(seed + 0x830), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
444
442
  }
445
443
  export function makeCheckpointRollupPublicInputs(seed = 0) {
446
- return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x400), makeBlobAccumulator(seed + 0x500), makeBlobAccumulator(seed + 0x600), makeFinalBlobBatchingChallenges(seed + 0x700));
444
+ return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x400), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
447
445
  }
448
446
  export function makeParityPublicInputs(seed = 0) {
449
447
  return new ParityPublicInputs(new Fr(BigInt(seed + 0x200)), new Fr(BigInt(seed + 0x300)), new Fr(BigInt(seed + 0x400)));
@@ -460,12 +458,7 @@ export function makeParityRootPrivateInputs(seed = 0) {
460
458
  * @param blockNumber - The block number to use in the global variables of a header.
461
459
  * @returns A root rollup public inputs.
462
460
  */ export function makeRootRollupPublicInputs(seed = 0) {
463
- return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
464
- }
465
- /**
466
- * Makes content commitment
467
- */ export function makeContentCommitment(seed = 0) {
468
- return new ContentCommitment(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300));
461
+ return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x400), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
469
462
  }
470
463
  export function makeBlockHeader(seed = 0, overrides = {}) {
471
464
  return BlockHeader.from({
@@ -478,27 +471,20 @@ export function makeBlockHeader(seed = 0, overrides = {}) {
478
471
  ...overrides
479
472
  });
480
473
  }
481
- export function makeL2BlockHeader(seed = 0, blockNumber, slotNumber, overrides = {}) {
482
- return new L2BlockHeader(makeAppendOnlyTreeSnapshot(seed + 0x100), overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200), overrides?.state ?? makeStateReference(seed + 0x600), makeGlobalVariables(seed += 0x700, {
483
- ...blockNumber !== undefined ? {
484
- blockNumber: BlockNumber(blockNumber)
485
- } : {},
486
- ...slotNumber !== undefined ? {
487
- slotNumber: SlotNumber(slotNumber)
488
- } : {}
489
- }), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00), new Fr(seed + 0xb00));
490
- }
491
- export function makeCheckpointHeader(seed = 0) {
474
+ export function makeCheckpointHeader(seed = 0, overrides = {}) {
492
475
  return CheckpointHeader.from({
493
476
  lastArchiveRoot: fr(seed + 0x100),
494
477
  blockHeadersHash: fr(seed + 0x150),
495
- contentCommitment: makeContentCommitment(seed + 0x200),
478
+ blobsHash: fr(seed + 0x200),
479
+ inHash: fr(seed + 0x210),
480
+ epochOutHash: fr(seed + 0x220),
496
481
  slotNumber: SlotNumber(seed + 0x300),
497
482
  timestamp: BigInt(seed + 0x400),
498
483
  coinbase: makeEthAddress(seed + 0x500),
499
484
  feeRecipient: makeAztecAddress(seed + 0x600),
500
485
  gasFees: makeGasFees(seed + 0x700),
501
- totalManaUsed: fr(seed + 0x800)
486
+ totalManaUsed: fr(seed + 0x800),
487
+ ...overrides
502
488
  });
503
489
  }
504
490
  /**
@@ -523,7 +509,7 @@ function makeTreeSnapshots(seed = 0) {
523
509
  function makeCountedL2ToL1Message(seed = 0) {
524
510
  return new CountedL2ToL1Message(makeL2ToL1Message(seed), seed + 2);
525
511
  }
526
- function makeScopedL2ToL1Message(seed = 1) {
512
+ export function makeScopedL2ToL1Message(seed = 1) {
527
513
  return new ScopedL2ToL1Message(makeL2ToL1Message(seed), makeAztecAddress(seed + 3));
528
514
  }
529
515
  /**
@@ -953,3 +939,52 @@ export async function makeAvmTxHint(seed = 0) {
953
939
  Fr.random()
954
940
  ], opts?.firstNullifier ?? Fr.random());
955
941
  }
942
+ /**
943
+ * Creates L2Tips with all tips pointing to the same block number.
944
+ * Useful for mocking aztecNode.getL2Tips() in tests.
945
+ * @param blockNumber - The block number to use for all tips.
946
+ * @param hash - Optional hash for the block (defaults to empty string).
947
+ * @param checkpointNumber - Optional checkpoint number (defaults to blockNumber).
948
+ * @param checkpointHash - Optional checkpoint hash (defaults to block hash).
949
+ * @returns L2Tips object with all tips at the same block.
950
+ */ export function makeL2Tips(blockNumber, hash = '', checkpointNumber, checkpointHash) {
951
+ const bn = typeof blockNumber === 'number' ? BlockNumber(blockNumber) : blockNumber;
952
+ const cpn = checkpointNumber !== undefined ? typeof checkpointNumber === 'number' ? CheckpointNumber(checkpointNumber) : checkpointNumber : CheckpointNumber.fromBlockNumber(bn);
953
+ const cph = checkpointHash ?? hash;
954
+ return {
955
+ proposed: {
956
+ number: bn,
957
+ hash
958
+ },
959
+ checkpointed: {
960
+ block: {
961
+ number: bn,
962
+ hash
963
+ },
964
+ checkpoint: {
965
+ number: cpn,
966
+ hash: cph
967
+ }
968
+ },
969
+ proven: {
970
+ block: {
971
+ number: bn,
972
+ hash
973
+ },
974
+ checkpoint: {
975
+ number: cpn,
976
+ hash: cph
977
+ }
978
+ },
979
+ finalized: {
980
+ block: {
981
+ number: bn,
982
+ hash
983
+ },
984
+ checkpoint: {
985
+ number: cpn,
986
+ hash: cph
987
+ }
988
+ }
989
+ };
990
+ }
@@ -17,7 +17,7 @@ import { L2Block } from '../block/l2_block.js';
17
17
  // use a custom comparator because the blockHash property is lazily computed and one instance might not have it
18
18
  return aAsL2Block.toBuffer().equals(bAsL2Block.toBuffer());
19
19
  } else if (aAsL2Block || bAsL2Block) {
20
- // one value is an L2block and the other isn't. Definitely not equal.
20
+ // one value is an L2Block and the other isn't. Definitely not equal.
21
21
  return false;
22
22
  } else {
23
23
  // we don't know what they are, tell Jest to keep looking
@@ -1,11 +1,13 @@
1
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
1
+ import { type FieldsOf } from '@aztec/foundation/array';
2
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
2
3
  import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { Signature } from '@aztec/foundation/eth-signature';
4
6
  import type { ContractArtifact } from '../abi/abi.js';
7
+ import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
5
8
  import { PublicDataWrite } from '../avm/public_data_write.js';
6
9
  import { AztecAddress } from '../aztec-address/index.js';
7
- import { L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
8
- import { L2Block } from '../block/l2_block.js';
10
+ import { CheckpointedL2Block, L2Block } from '../block/index.js';
9
11
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
10
12
  import { Checkpoint } from '../checkpoint/checkpoint.js';
11
13
  import type { ContractInstanceWithAddress } from '../contract/index.js';
@@ -13,10 +15,11 @@ import { Gas } from '../gas/gas.js';
13
15
  import { GasFees } from '../gas/gas_fees.js';
14
16
  import { GasSettings } from '../gas/gas_settings.js';
15
17
  import type { MerkleTreeReadOperations } from '../interfaces/merkle_tree_operations.js';
16
- import { BlockAttestation } from '../p2p/block_attestation.js';
17
18
  import { BlockProposal } from '../p2p/block_proposal.js';
18
- import { ConsensusPayload } from '../p2p/consensus_payload.js';
19
+ import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
20
+ import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
19
21
  import { ChonkProof } from '../proofs/chonk_proof.js';
22
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
23
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
21
24
  import { BlockHeader, GlobalVariables, ProtocolContracts, Tx } from '../tx/index.js';
22
25
  import { TxSimulationResult } from '../tx/simulated_tx.js';
@@ -53,7 +56,7 @@ export declare const mockTxForRollup: (seed?: number, opts?: {
53
56
  protocolContractsHash?: Fr | undefined;
54
57
  } | undefined) => Promise<Tx>;
55
58
  /** Mock a processed tx for testing purposes. */
56
- export declare function mockProcessedTx({ seed, anchorBlockHeader, db, chainId, version, gasSettings, vkTreeRoot, protocolContracts, globalVariables, newL1ToL2Snapshot, feePayer, feePaymentPublicDataWrite, gasUsed, privateOnly, ...mockTxOpts }?: {
59
+ export declare function mockProcessedTx({ seed, anchorBlockHeader, db, chainId, version, gasSettings, vkTreeRoot, protocolContracts, globalVariables, newL1ToL2Snapshot, feePayer, feePaymentPublicDataWrite, gasUsed, privateOnly, avmAccumulatedData, ...mockTxOpts }?: {
57
60
  seed?: number;
58
61
  anchorBlockHeader?: BlockHeader;
59
62
  db?: MerkleTreeReadOperations;
@@ -63,17 +66,20 @@ export declare function mockProcessedTx({ seed, anchorBlockHeader, db, chainId,
63
66
  protocolContracts?: ProtocolContracts;
64
67
  feePaymentPublicDataWrite?: PublicDataWrite;
65
68
  privateOnly?: boolean;
69
+ avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
66
70
  } & Parameters<typeof mockTx>[1]): Promise<import("../tx/processed_tx.js").ProcessedTx>;
67
71
  export declare const mockSimulatedTx: (seed?: number) => Promise<TxSimulationResult>;
68
72
  export declare function mockL1ToL2Messages(numL1ToL2Messages: number): Fr[];
69
- export declare function mockCheckpointAndMessages(checkpointNumber: CheckpointNumber, { startBlockNumber, numBlocks, numTxsPerBlock, numL1ToL2Messages, makeBlockOptions, previousArchive, ...options }?: {
73
+ export declare function mockCheckpointAndMessages(checkpointNumber: CheckpointNumber, { startBlockNumber, numBlocks, blocks, numTxsPerBlock, numL1ToL2Messages, makeBlockOptions, previousArchive, maxEffects, ...options }?: {
70
74
  startBlockNumber?: BlockNumber;
71
75
  numBlocks?: number;
72
76
  numTxsPerBlock?: number;
73
77
  numL1ToL2Messages?: number;
74
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
78
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
75
79
  previousArchive?: AppendOnlyTreeSnapshot;
76
- } & Partial<Parameters<typeof Checkpoint.random>[1]> & Partial<Parameters<typeof L2BlockNew.random>[1]>): Promise<{
80
+ blocks?: L2Block[];
81
+ maxEffects?: number;
82
+ } & Partial<Parameters<typeof Checkpoint.random>[1]> & Partial<Parameters<typeof L2Block.random>[1]>): Promise<{
77
83
  checkpoint: Checkpoint;
78
84
  messages: Fr[];
79
85
  lastArchive: AppendOnlyTreeSnapshot | undefined;
@@ -90,18 +96,63 @@ export interface MakeConsensusPayloadOptions {
90
96
  signer?: Secp256k1Signer;
91
97
  attesterSigner?: Secp256k1Signer;
92
98
  proposerSigner?: Secp256k1Signer;
93
- header?: L2BlockHeader;
99
+ header?: CheckpointHeader;
94
100
  archive?: Fr;
95
101
  txHashes?: TxHash[];
96
102
  txs?: Tx[];
97
103
  }
98
- export declare const makeAndSignCommitteeAttestationsAndSigners: (attestationsAndSigners: CommitteeAttestationsAndSigners, signer?: Secp256k1Signer) => import("../block/index.js").Signature;
99
- export declare const makeBlockProposal: (options?: MakeConsensusPayloadOptions | undefined) => BlockProposal;
100
- export declare const makeBlockAttestation: (options?: MakeConsensusPayloadOptions) => BlockAttestation;
101
- export declare const makeAttestationFromCheckpoint: (checkpoint: Checkpoint, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => BlockAttestation;
102
- export declare const makeBlockAttestationFromBlock: (block: L2Block, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => BlockAttestation;
103
- export declare const makeBlockAttestationFromPayload: (payload: ConsensusPayload, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => BlockAttestation;
104
+ export interface MakeBlockProposalOptions {
105
+ signer?: Secp256k1Signer;
106
+ blockHeader?: BlockHeader;
107
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
108
+ inHash?: Fr;
109
+ archiveRoot?: Fr;
110
+ txHashes?: TxHash[];
111
+ txs?: Tx[];
112
+ }
113
+ export interface MakeCheckpointProposalOptions {
114
+ signer?: Secp256k1Signer;
115
+ checkpointHeader?: CheckpointHeader;
116
+ archiveRoot?: Fr;
117
+ /** Options for the lastBlock - if undefined, no lastBlock is included */
118
+ lastBlock?: {
119
+ blockHeader?: BlockHeader;
120
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
121
+ txHashes?: TxHash[];
122
+ txs?: Tx[];
123
+ };
124
+ }
125
+ export declare const makeAndSignCommitteeAttestationsAndSigners: (attestationsAndSigners: CommitteeAttestationsAndSigners, signer?: Secp256k1Signer) => Signature;
126
+ export declare const makeBlockProposal: (options?: MakeBlockProposalOptions | undefined) => Promise<BlockProposal>;
127
+ export declare const makeCheckpointProposal: (options?: MakeCheckpointProposalOptions | undefined) => Promise<CheckpointProposal>;
128
+ /**
129
+ * Options for creating a checkpoint attestation
130
+ */
131
+ export type MakeCheckpointAttestationOptions = {
132
+ header?: CheckpointHeader;
133
+ archive?: Fr;
134
+ attesterSigner?: Secp256k1Signer;
135
+ proposerSigner?: Secp256k1Signer;
136
+ signer?: Secp256k1Signer;
137
+ };
138
+ /**
139
+ * Create a checkpoint attestation for testing
140
+ */
141
+ export declare const makeCheckpointAttestation: (options?: MakeCheckpointAttestationOptions) => CheckpointAttestation;
142
+ /**
143
+ * Create a checkpoint attestation from a checkpoint proposal
144
+ */
145
+ export declare const makeCheckpointAttestationFromProposal: (proposal: CheckpointProposal, attesterSigner?: Secp256k1Signer | undefined) => CheckpointAttestation;
146
+ /**
147
+ * Create a checkpoint attestation from a checkpoint
148
+ */
149
+ export declare const makeCheckpointAttestationFromCheckpoint: (checkpoint: Checkpoint, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => CheckpointAttestation;
150
+ /**
151
+ * Create a checkpoint attestation from an L2Block
152
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
153
+ */
154
+ export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => CheckpointAttestation;
104
155
  export declare function randomPublishedL2Block(l2BlockNumber: number, opts?: {
105
156
  signers?: Secp256k1Signer[];
106
- }): Promise<PublishedL2Block>;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBd0IsYUFBYSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUt6RCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBV3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FB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
157
+ }): Promise<CheckpointedL2Block>;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { FIXED_DA_GAS, FIXED_L2_GAS, MAX_ENQUEUED_CALLS_PER_TX, MAX_INCLUDE_BY_TIMESTAMP_DURATION, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import { Buffer32 } from '@aztec/foundation/buffer';
5
5
  import { padArrayEnd, times } from '@aztec/foundation/collection';
6
6
  import { randomBytes } from '@aztec/foundation/crypto/random';
7
7
  import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
8
8
  import { Fr } from '@aztec/foundation/curves/bn254';
9
+ import { Signature } from '@aztec/foundation/eth-signature';
9
10
  import { PublicTxEffect } from '../avm/avm.js';
10
11
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
11
12
  import { PublicDataWrite } from '../avm/public_data_write.js';
12
13
  import { RevertCode } from '../avm/revert_code.js';
13
14
  import { AztecAddress } from '../aztec-address/index.js';
14
- import { CommitteeAttestation, L2BlockNew, PublishedL2Block } from '../block/index.js';
15
- import { L2Block } from '../block/l2_block.js';
15
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
16
16
  import { Checkpoint } from '../checkpoint/checkpoint.js';
17
17
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
18
18
  import { computeContractAddressFromInstance } from '../contract/contract_address.js';
@@ -29,19 +29,21 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
29
29
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
30
30
  import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
31
31
  import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
32
- import { BlockAttestation } from '../p2p/block_attestation.js';
33
32
  import { BlockProposal } from '../p2p/block_proposal.js';
33
+ import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
34
+ import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
34
35
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
35
36
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
36
37
  import { ChonkProof } from '../proofs/chonk_proof.js';
37
38
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
39
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
38
40
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
39
41
  import { GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
40
42
  import { NestedProcessReturnValues, PublicSimulationOutput } from '../tx/public_simulation_output.js';
41
43
  import { TxSimulationResult } from '../tx/simulated_tx.js';
42
44
  import { TxEffect } from '../tx/tx_effect.js';
43
45
  import { TxHash } from '../tx/tx_hash.js';
44
- import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeGas, makeGlobalVariables, makeL2BlockHeader, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
46
+ import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
45
47
  export const randomTxHash = ()=>TxHash.random();
46
48
  export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO } = {})=>{
47
49
  const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
@@ -103,7 +105,7 @@ export const mockTxForRollup = (seed = 1, opts = {})=>mockTx(seed, {
103
105
  gasUsed = Gas.from({
104
106
  daGas: FIXED_DA_GAS,
105
107
  l2Gas: FIXED_L2_GAS
106
- }), privateOnly = false, ...mockTxOpts } = {}) {
108
+ }), privateOnly = false, avmAccumulatedData, ...mockTxOpts } = {}) {
107
109
  seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
108
110
  anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
109
111
  feePayer ??= makeAztecAddress(seed + 0x100);
@@ -165,11 +167,10 @@ gasUsed = Gas.from({
165
167
  avmOutput.previousRevertibleAccumulatedData = new PrivateToAvmAccumulatedData(dataFromPrivate.revertibleAccumulatedData.noteHashes, dataFromPrivate.revertibleAccumulatedData.nullifiers, dataFromPrivate.revertibleAccumulatedData.l2ToL1Msgs);
166
168
  avmOutput.previousRevertibleAccumulatedDataArrayLengths = avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
167
169
  // Assign final data emitted from avm.
168
- avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
169
- avmOutput.accumulatedData.nullifiers = padArrayEnd(nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter((n)=>!n.isEmpty()), Fr.ZERO, MAX_NULLIFIERS_PER_TX);
170
- avmOutput.accumulatedData.l2ToL1Msgs = revertibleData.l2ToL1Msgs;
171
- avmOutput.accumulatedData.publicDataWrites = makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, (i)=>new PublicDataWrite(new Fr(i), new Fr(i + 10)), seed + 0x2000);
172
- avmOutput.accumulatedData.publicDataWrites[0] = feePaymentPublicDataWrite;
170
+ avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
171
+ avmOutput.accumulatedData.nullifiers = avmAccumulatedData?.nullifiers ?? padArrayEnd(nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter((n)=>!n.isEmpty()), Fr.ZERO, MAX_NULLIFIERS_PER_TX);
172
+ avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
173
+ avmOutput.accumulatedData.publicDataWrites = avmAccumulatedData?.publicDataWrites ?? makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, (i)=>i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10)), seed + 0x2000);
173
174
  avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
174
175
  avmOutput.gasSettings = gasSettings;
175
176
  // Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
@@ -193,7 +194,7 @@ gasUsed = Gas.from({
193
194
  }, publicTxEffect, gasUsed, RevertCode.OK, undefined /* revertReason */ );
194
195
  }
195
196
  }
196
- const emptyPrivateCallExecutionResult = ()=>new PrivateCallExecutionResult(Buffer.from(''), Buffer.from(''), new Map(), PrivateCircuitPublicInputs.empty(), new Map(), [], new Map(), [], [], [], [], []);
197
+ const emptyPrivateCallExecutionResult = ()=>new PrivateCallExecutionResult(Buffer.from(''), Buffer.from(''), new Map(), PrivateCircuitPublicInputs.empty(), [], new Map(), [], [], [], [], []);
197
198
  const emptyPrivateExecutionResult = ()=>new PrivateExecutionResult(emptyPrivateCallExecutionResult(), Fr.zero(), []);
198
199
  export const mockSimulatedTx = async (seed = 1)=>{
199
200
  const privateExecutionResult = emptyPrivateExecutionResult();
@@ -211,19 +212,24 @@ export function mockL1ToL2Messages(numL1ToL2Messages) {
211
212
  length: numL1ToL2Messages
212
213
  }, ()=>Fr.random());
213
214
  }
214
- export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, ...options } = {}) {
215
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
215
+ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, blocks, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, maxEffects, ...options } = {}) {
216
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
216
217
  const blocksAndMessages = [];
217
218
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
218
219
  // The current block's header.lastArchive must equal the previous block's archive.
219
220
  let lastArchive = previousArchive;
220
- for(let i = 0; i < numBlocks; i++){
221
+ // Pass maxEffects via txOptions so it reaches TxEffect.random
222
+ const txOptions = maxEffects !== undefined ? {
223
+ maxEffects
224
+ } : {};
225
+ for(let i = 0; i < (blocks?.length ?? numBlocks); i++){
221
226
  const blockNumber = BlockNumber(startBlockNumber + i);
222
227
  const { block, messages } = {
223
- block: await L2BlockNew.random(blockNumber, {
228
+ block: blocks?.[i] ?? await L2Block.random(blockNumber, {
224
229
  checkpointNumber,
225
- indexWithinCheckpoint: i,
230
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
226
231
  txsPerBlock: numTxsPerBlock,
232
+ txOptions,
227
233
  slotNumber,
228
234
  ...options,
229
235
  ...makeBlockOptions(blockNumber),
@@ -288,17 +294,18 @@ export const randomDeployedContract = async ()=>{
288
294
  })
289
295
  };
290
296
  };
297
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
291
298
  const makeAndSignConsensusPayload = (domainSeparator, options)=>{
292
- const header = options?.header ?? makeL2BlockHeader(1);
299
+ const header = options?.header ?? makeCheckpointHeader(1);
293
300
  const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
294
301
  const payload = ConsensusPayload.fromFields({
295
- header: header.toCheckpointHeader(),
302
+ header,
296
303
  archive
297
304
  });
298
305
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
299
306
  const signature = signer.sign(hash);
300
307
  return {
301
- blockNumber: header.globalVariables.blockNumber,
308
+ blockNumber: header.slotNumber,
302
309
  payload,
303
310
  signature
304
311
  };
@@ -308,7 +315,10 @@ export const makeAndSignCommitteeAttestationsAndSigners = (attestationsAndSigner
308
315
  return signer.sign(hash);
309
316
  };
310
317
  export const makeBlockProposal = (options)=>{
311
- const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
318
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
319
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
320
+ const inHash = options?.inHash ?? Fr.random();
321
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
312
322
  const txHashes = options?.txHashes ?? [
313
323
  0,
314
324
  1,
@@ -317,46 +327,91 @@ export const makeBlockProposal = (options)=>{
317
327
  4,
318
328
  5
319
329
  ].map(()=>TxHash.random());
320
- return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
330
+ const txs = options?.txs;
331
+ const signer = options?.signer ?? Secp256k1Signer.random();
332
+ return BlockProposal.createProposalFromSigner(blockHeader, indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, (_payload, _context)=>Promise.resolve(signer.signMessage(_payload)));
321
333
  };
322
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
323
- export const makeBlockAttestation = (options = {})=>{
324
- const header = options.header ?? makeL2BlockHeader(1);
325
- const { signer, attesterSigner = signer, proposerSigner = signer, archive = Fr.random() } = options;
326
- const payload = ConsensusPayload.fromFields({
327
- header: header.toCheckpointHeader(),
328
- archive
329
- });
330
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
334
+ export const makeCheckpointProposal = (options)=>{
335
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
336
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
337
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
338
+ const signer = options?.signer ?? Secp256k1Signer.random();
339
+ // Build lastBlock info if provided
340
+ const lastBlockInfo = options?.lastBlock ? {
341
+ blockHeader,
342
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
343
+ txHashes: options.lastBlock.txHashes ?? [
344
+ 0,
345
+ 1,
346
+ 2,
347
+ 3,
348
+ 4,
349
+ 5
350
+ ].map(()=>TxHash.random()),
351
+ txs: options.lastBlock.txs
352
+ } : undefined;
353
+ return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
354
+ };
355
+ /**
356
+ * Create a checkpoint attestation for testing
357
+ */ export const makeCheckpointAttestation = (options = {})=>{
358
+ const header = options.header ?? makeCheckpointHeader(1);
359
+ const archive = options.archive ?? Fr.random();
360
+ const { signer, attesterSigner = signer, proposerSigner = signer } = options;
361
+ const payload = new ConsensusPayload(header, archive);
362
+ // Sign as attester
363
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
364
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
365
+ const attestationSignature = attestationSigner.sign(attestationHash);
366
+ // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
367
+ // This is different from ConsensusPayload's format (ABI encoding)
368
+ const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
369
+ const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
370
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(tempProposal, SignatureDomainSeparator.checkpointProposal);
371
+ const proposerSignature = proposalSignerToUse.sign(proposalHash);
372
+ return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
373
+ };
374
+ /**
375
+ * Create a checkpoint attestation from a checkpoint proposal
376
+ */ export const makeCheckpointAttestationFromProposal = (proposal, attesterSigner)=>{
377
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
378
+ // Sign as attester
379
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
380
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
381
+ const attestationSignature = attestationSigner.sign(attestationHash);
382
+ // Use the proposal's signature as the proposer signature
383
+ return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
331
384
  };
332
- export const makeAttestationFromCheckpoint = (checkpoint, attesterSigner, proposerSigner)=>{
385
+ /**
386
+ * Create a checkpoint attestation from a checkpoint
387
+ */ export const makeCheckpointAttestationFromCheckpoint = (checkpoint, attesterSigner, proposerSigner)=>{
333
388
  const header = checkpoint.header;
334
389
  const archive = checkpoint.archive.root;
335
- const payload = ConsensusPayload.fromFields({
390
+ return makeCheckpointAttestation({
336
391
  header,
337
- archive
392
+ archive,
393
+ attesterSigner,
394
+ proposerSigner
338
395
  });
339
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
340
396
  };
341
- export const makeBlockAttestationFromBlock = (block, attesterSigner, proposerSigner)=>{
342
- const header = block.header;
397
+ /**
398
+ * Create a checkpoint attestation from an L2Block
399
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
400
+ */ export const makeCheckpointAttestationFromBlock = (block, attesterSigner, proposerSigner)=>{
401
+ // For L2Block, we create a minimal checkpoint header for testing purposes
402
+ const header = CheckpointHeader.empty({
403
+ lastArchiveRoot: block.header.lastArchive.root,
404
+ slotNumber: block.slot,
405
+ timestamp: block.timestamp,
406
+ blockHeadersHash: Fr.ZERO
407
+ });
343
408
  const archive = block.archive.root;
344
- const payload = ConsensusPayload.fromFields({
345
- header: header.toCheckpointHeader(),
346
- archive
409
+ return makeCheckpointAttestation({
410
+ header,
411
+ archive,
412
+ attesterSigner,
413
+ proposerSigner
347
414
  });
348
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
349
- };
350
- export const makeBlockAttestationFromPayload = (payload, attesterSigner, proposerSigner)=>{
351
- // Sign as attester
352
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
353
- const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
354
- const attestationSignature = attestationSigner.sign(attestationHash);
355
- // Sign as proposer
356
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
357
- const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
358
- const proposerSignature = proposalSignerToUse.sign(proposalHash);
359
- return new BlockAttestation(payload, attestationSignature, proposerSignature);
360
415
  };
361
416
  export async function randomPublishedL2Block(l2BlockNumber, opts = {}) {
362
417
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
@@ -366,7 +421,17 @@ export async function randomPublishedL2Block(l2BlockNumber, opts = {}) {
366
421
  blockHash: Buffer32.random().toString()
367
422
  });
368
423
  const signers = opts.signers ?? times(3, ()=>Secp256k1Signer.random());
369
- const atts = await Promise.all(signers.map((signer)=>makeBlockAttestationFromBlock(block, signer)));
424
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
425
+ numBlocks: 0
426
+ });
427
+ checkpoint.blocks = [
428
+ block
429
+ ];
430
+ const atts = signers.map((signer)=>makeCheckpointAttestation({
431
+ signer,
432
+ archive: block.archive.root,
433
+ header: checkpoint.header
434
+ }));
370
435
  const attestations = atts.map((attestation, i)=>new CommitteeAttestation(signers[i].address, attestation.signature));
371
- return new PublishedL2Block(block, l1, attestations);
436
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
372
437
  }