@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
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
@@ -6,22 +6,23 @@ import {
6
6
  MAX_NULLIFIERS_PER_TX,
7
7
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
8
8
  } from '@aztec/constants';
9
- import { makeTuple } from '@aztec/foundation/array';
10
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
9
+ import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
10
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
11
11
  import { Buffer32 } from '@aztec/foundation/buffer';
12
12
  import { padArrayEnd, times } from '@aztec/foundation/collection';
13
13
  import { randomBytes } from '@aztec/foundation/crypto/random';
14
14
  import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
15
15
  import { Fr } from '@aztec/foundation/curves/bn254';
16
+ import { Signature } from '@aztec/foundation/eth-signature';
16
17
 
17
18
  import type { ContractArtifact } from '../abi/abi.js';
18
19
  import { PublicTxEffect } from '../avm/avm.js';
20
+ import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
19
21
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
20
22
  import { PublicDataWrite } from '../avm/public_data_write.js';
21
23
  import { RevertCode } from '../avm/revert_code.js';
22
24
  import { AztecAddress } from '../aztec-address/index.js';
23
- import { CommitteeAttestation, L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
24
- import { L2Block } from '../block/l2_block.js';
25
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
25
26
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
26
27
  import { Checkpoint } from '../checkpoint/checkpoint.js';
27
28
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
@@ -45,12 +46,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
45
46
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
46
47
  import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
47
48
  import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
48
- import { BlockAttestation } from '../p2p/block_attestation.js';
49
49
  import { BlockProposal } from '../p2p/block_proposal.js';
50
+ import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
51
+ import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
50
52
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
51
53
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
52
54
  import { ChonkProof } from '../proofs/chonk_proof.js';
53
55
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
56
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
54
57
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
55
58
  import {
56
59
  BlockHeader,
@@ -72,9 +75,9 @@ import {
72
75
  makeAvmCircuitInputs,
73
76
  makeAztecAddress,
74
77
  makeBlockHeader,
78
+ makeCheckpointHeader,
75
79
  makeGas,
76
80
  makeGlobalVariables,
77
- makeL2BlockHeader,
78
81
  makePrivateToPublicAccumulatedData,
79
82
  makePrivateToRollupAccumulatedData,
80
83
  makeProtocolContracts,
@@ -202,6 +205,7 @@ export async function mockProcessedTx({
202
205
  // The default gasUsed is the tx overhead.
203
206
  gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
204
207
  privateOnly = false,
208
+ avmAccumulatedData,
205
209
  ...mockTxOpts
206
210
  }: {
207
211
  seed?: number;
@@ -213,6 +217,7 @@ export async function mockProcessedTx({
213
217
  protocolContracts?: ProtocolContracts;
214
218
  feePaymentPublicDataWrite?: PublicDataWrite;
215
219
  privateOnly?: boolean;
220
+ avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
216
221
  } & Parameters<typeof mockTx>[1] = {}) {
217
222
  seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
218
223
  anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
@@ -292,19 +297,22 @@ export async function mockProcessedTx({
292
297
  avmOutput.previousRevertibleAccumulatedDataArrayLengths =
293
298
  avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
294
299
  // Assign final data emitted from avm.
295
- avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
296
- avmOutput.accumulatedData.nullifiers = padArrayEnd(
297
- nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
298
- Fr.ZERO,
299
- MAX_NULLIFIERS_PER_TX,
300
- );
301
- avmOutput.accumulatedData.l2ToL1Msgs = revertibleData.l2ToL1Msgs;
302
- avmOutput.accumulatedData.publicDataWrites = makeTuple(
303
- MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
304
- i => new PublicDataWrite(new Fr(i), new Fr(i + 10)),
305
- seed + 0x2000,
306
- );
307
- avmOutput.accumulatedData.publicDataWrites[0] = feePaymentPublicDataWrite;
300
+ avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
301
+ avmOutput.accumulatedData.nullifiers =
302
+ avmAccumulatedData?.nullifiers ??
303
+ padArrayEnd(
304
+ nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
305
+ Fr.ZERO,
306
+ MAX_NULLIFIERS_PER_TX,
307
+ );
308
+ avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
309
+ avmOutput.accumulatedData.publicDataWrites =
310
+ avmAccumulatedData?.publicDataWrites ??
311
+ makeTuple(
312
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
313
+ i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
314
+ seed + 0x2000,
315
+ );
308
316
  avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
309
317
  avmOutput.gasSettings = gasSettings;
310
318
  // Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
@@ -353,7 +361,6 @@ const emptyPrivateCallExecutionResult = () =>
353
361
  Buffer.from(''),
354
362
  new Map(),
355
363
  PrivateCircuitPublicInputs.empty(),
356
- new Map(),
357
364
  [],
358
365
  new Map(),
359
366
  [],
@@ -392,38 +399,47 @@ export async function mockCheckpointAndMessages(
392
399
  {
393
400
  startBlockNumber = BlockNumber(1),
394
401
  numBlocks = 1,
402
+ blocks,
395
403
  numTxsPerBlock = 1,
396
404
  numL1ToL2Messages = 1,
397
405
  makeBlockOptions = () => ({}),
398
406
  previousArchive,
407
+ maxEffects,
399
408
  ...options
400
409
  }: {
401
410
  startBlockNumber?: BlockNumber;
402
411
  numBlocks?: number;
403
412
  numTxsPerBlock?: number;
404
413
  numL1ToL2Messages?: number;
405
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
414
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
406
415
  previousArchive?: AppendOnlyTreeSnapshot;
416
+ blocks?: L2Block[];
417
+ maxEffects?: number;
407
418
  } & Partial<Parameters<typeof Checkpoint.random>[1]> &
408
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
419
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
409
420
  ) {
410
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
421
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
411
422
  const blocksAndMessages = [];
412
423
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
413
424
  // The current block's header.lastArchive must equal the previous block's archive.
414
425
  let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
415
- for (let i = 0; i < numBlocks; i++) {
426
+ // Pass maxEffects via txOptions so it reaches TxEffect.random
427
+ const txOptions = maxEffects !== undefined ? { maxEffects } : {};
428
+ for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
416
429
  const blockNumber = BlockNumber(startBlockNumber + i);
417
430
  const { block, messages } = {
418
- block: await L2BlockNew.random(blockNumber, {
419
- checkpointNumber,
420
- indexWithinCheckpoint: i,
421
- txsPerBlock: numTxsPerBlock,
422
- slotNumber,
423
- ...options,
424
- ...makeBlockOptions(blockNumber),
425
- ...(lastArchive ? { lastArchive } : {}),
426
- }),
431
+ block:
432
+ blocks?.[i] ??
433
+ (await L2Block.random(blockNumber, {
434
+ checkpointNumber,
435
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
436
+ txsPerBlock: numTxsPerBlock,
437
+ txOptions,
438
+ slotNumber,
439
+ ...options,
440
+ ...makeBlockOptions(blockNumber),
441
+ ...(lastArchive ? { lastArchive } : {}),
442
+ })),
427
443
  messages: mockL1ToL2Messages(numL1ToL2Messages),
428
444
  };
429
445
  // Update lastArchive for the next block
@@ -481,28 +497,52 @@ export interface MakeConsensusPayloadOptions {
481
497
  signer?: Secp256k1Signer;
482
498
  attesterSigner?: Secp256k1Signer;
483
499
  proposerSigner?: Secp256k1Signer;
484
- header?: L2BlockHeader;
500
+ header?: CheckpointHeader;
485
501
  archive?: Fr;
486
502
  txHashes?: TxHash[];
487
503
  txs?: Tx[];
488
504
  }
489
505
 
506
+ export interface MakeBlockProposalOptions {
507
+ signer?: Secp256k1Signer;
508
+ blockHeader?: BlockHeader;
509
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
510
+ inHash?: Fr;
511
+ archiveRoot?: Fr;
512
+ txHashes?: TxHash[];
513
+ txs?: Tx[];
514
+ }
515
+
516
+ export interface MakeCheckpointProposalOptions {
517
+ signer?: Secp256k1Signer;
518
+ checkpointHeader?: CheckpointHeader;
519
+ archiveRoot?: Fr;
520
+ /** Options for the lastBlock - if undefined, no lastBlock is included */
521
+ lastBlock?: {
522
+ blockHeader?: BlockHeader;
523
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
524
+ txHashes?: TxHash[];
525
+ txs?: Tx[];
526
+ };
527
+ }
528
+
529
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
490
530
  const makeAndSignConsensusPayload = (
491
531
  domainSeparator: SignatureDomainSeparator,
492
532
  options?: MakeConsensusPayloadOptions,
493
533
  ) => {
494
- const header = options?.header ?? makeL2BlockHeader(1);
534
+ const header = options?.header ?? makeCheckpointHeader(1);
495
535
  const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
496
536
 
497
537
  const payload = ConsensusPayload.fromFields({
498
- header: header.toCheckpointHeader(),
538
+ header,
499
539
  archive,
500
540
  });
501
541
 
502
542
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
503
543
  const signature = signer.sign(hash);
504
544
 
505
- return { blockNumber: header.globalVariables.blockNumber, payload, signature };
545
+ return { blockNumber: header.slotNumber, payload, signature };
506
546
  };
507
547
 
508
548
  export const makeAndSignCommitteeAttestationsAndSigners = (
@@ -516,79 +556,149 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
516
556
  return signer.sign(hash);
517
557
  };
518
558
 
519
- export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
520
- const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
559
+ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
560
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
561
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
562
+ const inHash = options?.inHash ?? Fr.random();
563
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
521
564
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
522
- return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
565
+ const txs = options?.txs;
566
+ const signer = options?.signer ?? Secp256k1Signer.random();
567
+
568
+ return BlockProposal.createProposalFromSigner(
569
+ blockHeader,
570
+ indexWithinCheckpoint,
571
+ inHash,
572
+ archiveRoot,
573
+ txHashes,
574
+ txs,
575
+ (_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
576
+ );
523
577
  };
524
578
 
525
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
526
- export const makeBlockAttestation = (options: MakeConsensusPayloadOptions = {}): BlockAttestation => {
527
- const header = options.header ?? makeL2BlockHeader(1);
528
- const { signer, attesterSigner = signer, proposerSigner = signer, archive = Fr.random() } = options;
579
+ export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
580
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
581
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
582
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
583
+ const signer = options?.signer ?? Secp256k1Signer.random();
584
+
585
+ // Build lastBlock info if provided
586
+ const lastBlockInfo = options?.lastBlock
587
+ ? {
588
+ blockHeader,
589
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
590
+ txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
591
+ txs: options.lastBlock.txs,
592
+ }
593
+ : undefined;
594
+
595
+ return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payload =>
596
+ Promise.resolve(signer.signMessage(payload)),
597
+ );
598
+ };
529
599
 
530
- const payload = ConsensusPayload.fromFields({
531
- header: header.toCheckpointHeader(),
532
- archive,
533
- });
600
+ /**
601
+ * Options for creating a checkpoint attestation
602
+ */
603
+ export type MakeCheckpointAttestationOptions = {
604
+ header?: CheckpointHeader;
605
+ archive?: Fr;
606
+ attesterSigner?: Secp256k1Signer;
607
+ proposerSigner?: Secp256k1Signer;
608
+ signer?: Secp256k1Signer;
609
+ };
610
+
611
+ /**
612
+ * Create a checkpoint attestation for testing
613
+ */
614
+ export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
615
+ const header = options.header ?? makeCheckpointHeader(1);
616
+ const archive = options.archive ?? Fr.random();
617
+ const { signer, attesterSigner = signer, proposerSigner = signer } = options;
618
+
619
+ const payload = new ConsensusPayload(header, archive);
620
+
621
+ // Sign as attester
622
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(
623
+ payload,
624
+ SignatureDomainSeparator.checkpointAttestation,
625
+ );
626
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
627
+ const attestationSignature = attestationSigner.sign(attestationHash);
628
+
629
+ // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
630
+ // This is different from ConsensusPayload's format (ABI encoding)
631
+ const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
632
+ const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
633
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(
634
+ tempProposal,
635
+ SignatureDomainSeparator.checkpointProposal,
636
+ );
637
+ const proposerSignature = proposalSignerToUse.sign(proposalHash);
534
638
 
535
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
639
+ return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
536
640
  };
537
641
 
538
- export const makeAttestationFromCheckpoint = (
539
- checkpoint: Checkpoint,
642
+ /**
643
+ * Create a checkpoint attestation from a checkpoint proposal
644
+ */
645
+ export const makeCheckpointAttestationFromProposal = (
646
+ proposal: CheckpointProposal,
540
647
  attesterSigner?: Secp256k1Signer,
541
- proposerSigner?: Secp256k1Signer,
542
- ): BlockAttestation => {
543
- const header = checkpoint.header;
544
- const archive = checkpoint.archive.root;
648
+ ): CheckpointAttestation => {
649
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
545
650
 
546
- const payload = ConsensusPayload.fromFields({
547
- header,
548
- archive,
549
- });
651
+ // Sign as attester
652
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(
653
+ payload,
654
+ SignatureDomainSeparator.checkpointAttestation,
655
+ );
656
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
657
+ const attestationSignature = attestationSigner.sign(attestationHash);
550
658
 
551
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
659
+ // Use the proposal's signature as the proposer signature
660
+ return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
552
661
  };
553
662
 
554
- export const makeBlockAttestationFromBlock = (
555
- block: L2Block,
663
+ /**
664
+ * Create a checkpoint attestation from a checkpoint
665
+ */
666
+ export const makeCheckpointAttestationFromCheckpoint = (
667
+ checkpoint: Checkpoint,
556
668
  attesterSigner?: Secp256k1Signer,
557
669
  proposerSigner?: Secp256k1Signer,
558
- ): BlockAttestation => {
559
- const header = block.header;
560
- const archive = block.archive.root;
561
-
562
- const payload = ConsensusPayload.fromFields({
563
- header: header.toCheckpointHeader(),
564
- archive,
565
- });
670
+ ): CheckpointAttestation => {
671
+ const header = checkpoint.header;
672
+ const archive = checkpoint.archive.root;
566
673
 
567
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
674
+ return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
568
675
  };
569
676
 
570
- export const makeBlockAttestationFromPayload = (
571
- payload: ConsensusPayload,
677
+ /**
678
+ * Create a checkpoint attestation from an L2Block
679
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
680
+ */
681
+ export const makeCheckpointAttestationFromBlock = (
682
+ block: L2Block,
572
683
  attesterSigner?: Secp256k1Signer,
573
684
  proposerSigner?: Secp256k1Signer,
574
- ): BlockAttestation => {
575
- // Sign as attester
576
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
577
- const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
578
- const attestationSignature = attestationSigner.sign(attestationHash);
579
-
580
- // Sign as proposer
581
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
582
- const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
583
- const proposerSignature = proposalSignerToUse.sign(proposalHash);
685
+ ): CheckpointAttestation => {
686
+ // For L2Block, we create a minimal checkpoint header for testing purposes
687
+ const header = CheckpointHeader.empty({
688
+ lastArchiveRoot: block.header.lastArchive.root,
689
+ slotNumber: block.slot,
690
+ timestamp: block.timestamp,
691
+ blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
692
+ });
693
+ const archive = block.archive.root;
584
694
 
585
- return new BlockAttestation(payload, attestationSignature, proposerSignature);
695
+ return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
586
696
  };
587
697
 
588
698
  export async function randomPublishedL2Block(
589
699
  l2BlockNumber: number,
590
700
  opts: { signers?: Secp256k1Signer[] } = {},
591
- ): Promise<PublishedL2Block> {
701
+ ): Promise<CheckpointedL2Block> {
592
702
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
593
703
  const l1 = L1PublishedData.fromFields({
594
704
  blockNumber: BigInt(block.number),
@@ -597,9 +707,19 @@ export async function randomPublishedL2Block(
597
707
  });
598
708
 
599
709
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
600
- const atts = await Promise.all(signers.map(signer => makeBlockAttestationFromBlock(block, signer)));
710
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
711
+ numBlocks: 0,
712
+ });
713
+ checkpoint.blocks = [block];
714
+ const atts = signers.map(signer =>
715
+ makeCheckpointAttestation({
716
+ signer,
717
+ archive: block.archive.root,
718
+ header: checkpoint.header,
719
+ }),
720
+ );
601
721
  const attestations = atts.map(
602
722
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
603
723
  );
604
- return new PublishedL2Block(block, l1, attestations);
724
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
605
725
  }
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
11
11
  import { inspect } from 'util';
12
12
  import { z } from 'zod';
13
13
 
14
+ import { L2BlockHash } from '../block/block_hash.js';
14
15
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
16
  import { GlobalVariables } from './global_variables.js';
16
17
  import { StateReference } from './state_reference.js';
17
18
 
18
19
  /** A header of an L2 block. */
19
20
  export class BlockHeader {
20
- private _cachedHash?: Promise<Fr>;
21
+ private _cachedHash?: Promise<L2BlockHash>;
21
22
 
22
23
  constructor(
23
24
  /** Snapshot of archive before the block is applied. */
@@ -161,13 +162,20 @@ export class BlockHeader {
161
162
  return BlockHeader.fromBuffer(hexToBuffer(str));
162
163
  }
163
164
 
164
- hash(): Promise<Fr> {
165
+ hash(): Promise<L2BlockHash> {
165
166
  if (!this._cachedHash) {
166
- this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
167
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH).then(fr =>
168
+ L2BlockHash.fromField(fr),
169
+ );
167
170
  }
168
171
  return this._cachedHash;
169
172
  }
170
173
 
174
+ /** Manually set the hash for this block header if already computed */
175
+ setHash(hashed: Fr) {
176
+ this._cachedHash = Promise.resolve(L2BlockHash.fromField(hashed));
177
+ }
178
+
171
179
  static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
172
180
  return BlockHeader.from({
173
181
  lastArchive: AppendOnlyTreeSnapshot.random(),
@@ -10,7 +10,7 @@ import type { CheckpointGlobalVariables, GlobalVariables } from './global_variab
10
10
  * Interface for building global variables for Aztec blocks.
11
11
  */
12
12
  export interface GlobalVariableBuilder {
13
- getCurrentBaseFees(): Promise<GasFees>;
13
+ getCurrentMinFees(): Promise<GasFees>;
14
14
 
15
15
  /**
16
16
  * Builds global variables for a given block.
package/src/tx/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './block_header.js';
2
2
  export * from './call_context.js';
3
3
  export * from './global_variables.js';
4
- export * from './content_commitment.js';
5
4
  export * from './state_reference.js';
6
5
  export * from './partial_state_reference.js';
7
6
  export * from './function_data.js';
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
79
79
  export class PrivateExecutionResult {
80
80
  constructor(
81
81
  public entrypoint: PrivateCallExecutionResult,
82
- /** The first non revertible nullifier, or zero if there was none. */
82
+ /** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
83
83
  public firstNullifier: Fr,
84
84
  /** An array of calldata for the enqueued public function calls and the teardown function call. */
85
85
  public publicFunctionCalldata: HashedValues[],
@@ -129,8 +129,6 @@ export class PrivateCallExecutionResult {
129
129
  // Needed for the verifier (kernel)
130
130
  /** The call stack item. */
131
131
  public publicInputs: PrivateCircuitPublicInputs,
132
- /** Mapping of note hash to its index in the note hash tree. Used for building hints for note hash read requests. */
133
- public noteHashLeafIndexMap: Map<bigint, bigint>,
134
132
  /** The notes created in the executed function. */
135
133
  public newNotes: NoteAndSlot[],
136
134
  /** Mapping of note hash counter to the counter of its nullifier. */
@@ -159,7 +157,6 @@ export class PrivateCallExecutionResult {
159
157
  vk: schemas.Buffer,
160
158
  partialWitness: mapSchema(z.coerce.number(), z.string()),
161
159
  publicInputs: PrivateCircuitPublicInputs.schema,
162
- noteHashLeafIndexMap: mapSchema(schemas.BigInt, schemas.BigInt),
163
160
  newNotes: z.array(NoteAndSlot.schema),
164
161
  noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
165
162
  returnValues: z.array(schemas.Fr),
@@ -177,7 +174,6 @@ export class PrivateCallExecutionResult {
177
174
  fields.vk,
178
175
  fields.partialWitness,
179
176
  fields.publicInputs,
180
- fields.noteHashLeafIndexMap,
181
177
  fields.newNotes,
182
178
  fields.noteHashNullifierCounterMap,
183
179
  fields.returnValues,
@@ -194,7 +190,6 @@ export class PrivateCallExecutionResult {
194
190
  randomBytes(4),
195
191
  new Map([[1, 'one']]),
196
192
  PrivateCircuitPublicInputs.empty(),
197
- new Map([[1n, 1n]]),
198
193
  [NoteAndSlot.random()],
199
194
  new Map([[0, 0]]),
200
195
  [Fr.random()],
@@ -210,16 +205,6 @@ export class PrivateCallExecutionResult {
210
205
  }
211
206
  }
212
207
 
213
- export function collectNoteHashLeafIndexMap(execResult: PrivateExecutionResult) {
214
- const accum: Map<bigint, bigint> = new Map();
215
- const collectNoteHashLeafIndexMapRecursive = (callResult: PrivateCallExecutionResult, accum: Map<bigint, bigint>) => {
216
- callResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
217
- callResult.nestedExecutionResults.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
218
- };
219
- collectNoteHashLeafIndexMapRecursive(execResult.entrypoint, accum);
220
- return accum;
221
- }
222
-
223
208
  export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionResult) {
224
209
  const accum: Map<number, number> = new Map();
225
210
  const collectNoteHashNullifierCounterMapRecursive = (
@@ -6,9 +6,35 @@ import { z } from 'zod';
6
6
  import type { AztecNode } from '../interfaces/aztec-node.js';
7
7
  import { type PrivateExecutionStep, PrivateExecutionStepSchema } from '../kernel/private_kernel_prover_output.js';
8
8
 
9
- export type NodeStats = Partial<Record<keyof AztecNode, { times: number[] }>>;
9
+ export type RoundTripStats = {
10
+ /** Number of round trips (times we blocked waiting for node responses) */
11
+ roundTrips: number;
12
+ /** Total wall-clock time spent waiting on node (excludes parallel overlap) */
13
+ totalBlockingTime: number;
14
+ /** Individual round trip durations */
15
+ roundTripDurations: number[];
16
+ /** Methods called in each round trip (parallel calls grouped together) */
17
+ roundTripMethods: string[][];
18
+ };
19
+
20
+ const RoundTripStatsSchema = z.object({
21
+ roundTrips: z.number(),
22
+ totalBlockingTime: z.number(),
23
+ roundTripDurations: z.array(z.number()),
24
+ roundTripMethods: z.array(z.array(z.string())),
25
+ });
26
+
27
+ export type NodeStats = {
28
+ /** Per-method call stats */
29
+ perMethod: Partial<Record<keyof AztecNode, { times: number[] }>>;
30
+ /** Round trip stats tracking actual blocking waits */
31
+ roundTrips: RoundTripStats;
32
+ };
10
33
 
11
- const NodeStatsSchema = z.record(z.string(), z.object({ times: z.array(z.number()) }));
34
+ const NodeStatsSchema = z.object({
35
+ perMethod: z.record(z.string(), z.object({ times: z.array(z.number()) })),
36
+ roundTrips: RoundTripStatsSchema,
37
+ });
12
38
 
13
39
  type FunctionTiming = {
14
40
  functionName: string;
@@ -105,7 +131,15 @@ export class TxProfileResult {
105
131
  },
106
132
  ],
107
133
  {
108
- nodeRPCCalls: { getBlockHeader: { times: [1] } },
134
+ nodeRPCCalls: {
135
+ perMethod: { getBlockHeader: { times: [1] } },
136
+ roundTrips: {
137
+ roundTrips: 1,
138
+ totalBlockingTime: 1,
139
+ roundTripDurations: [1],
140
+ roundTripMethods: [['getBlockHeader']],
141
+ },
142
+ },
109
143
  timings: {
110
144
  sync: 1,
111
145
  proving: 1,
@@ -140,7 +174,15 @@ export class UtilitySimulationResult {
140
174
 
141
175
  static random(): UtilitySimulationResult {
142
176
  return new UtilitySimulationResult([Fr.random()], {
143
- nodeRPCCalls: { getBlockHeader: { times: [1] } },
177
+ nodeRPCCalls: {
178
+ perMethod: { getBlockHeader: { times: [1] } },
179
+ roundTrips: {
180
+ roundTrips: 1,
181
+ totalBlockingTime: 1,
182
+ roundTripDurations: [1],
183
+ roundTripMethods: [['getBlockHeader']],
184
+ },
185
+ },
144
186
  timings: {
145
187
  sync: 1,
146
188
  publicSimulation: 1,