@aztec/stdlib 0.0.1-commit.1142ef1 → 0.0.1-commit.18ccd8f0

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 (459) hide show
  1. package/dest/abi/function_call.d.ts +9 -1
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/utils.d.ts +7 -1
  4. package/dest/abi/utils.d.ts.map +1 -1
  5. package/dest/abi/utils.js +7 -0
  6. package/dest/auth_witness/auth_witness.d.ts +2 -1
  7. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  8. package/dest/avm/avm.d.ts +62 -62
  9. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  10. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  11. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  12. package/dest/avm/avm_proving_request.d.ts +299 -299
  13. package/dest/avm/contract_storage_read.d.ts +13 -1
  14. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  15. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  16. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  17. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  19. package/dest/avm/public_data_read.d.ts +10 -1
  20. package/dest/avm/public_data_read.d.ts.map +1 -1
  21. package/dest/avm/public_data_update_request.d.ts +10 -1
  22. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_data_write.d.ts +7 -1
  24. package/dest/avm/public_data_write.d.ts.map +1 -1
  25. package/dest/avm/public_inner_call_request.d.ts +4 -1
  26. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  27. package/dest/avm/revert_code.d.ts +4 -4
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/block/block_hash.d.ts +16 -9
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +23 -8
  32. package/dest/block/block_parameter.d.ts +4 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +2 -0
  35. package/dest/block/body.d.ts +1 -1
  36. package/dest/block/body.d.ts.map +1 -1
  37. package/dest/block/body.js +2 -1
  38. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  39. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  40. package/dest/block/checkpointed_l2_block.js +7 -45
  41. package/dest/block/in_block.d.ts +8 -8
  42. package/dest/block/in_block.d.ts.map +1 -1
  43. package/dest/block/in_block.js +4 -4
  44. package/dest/block/index.d.ts +1 -3
  45. package/dest/block/index.d.ts.map +1 -1
  46. package/dest/block/index.js +0 -2
  47. package/dest/block/l2_block.d.ts +55 -59
  48. package/dest/block/l2_block.d.ts.map +1 -1
  49. package/dest/block/l2_block.js +64 -109
  50. package/dest/block/l2_block_source.d.ts +63 -38
  51. package/dest/block/l2_block_source.d.ts.map +1 -1
  52. package/dest/block/l2_block_source.js +2 -1
  53. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  54. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  55. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  57. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  58. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  63. package/dest/block/validate_block_result.d.ts +1 -1
  64. package/dest/block/validate_block_result.d.ts.map +1 -1
  65. package/dest/block/validate_block_result.js +5 -4
  66. package/dest/checkpoint/checkpoint.d.ts +30 -20
  67. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  68. package/dest/checkpoint/checkpoint.js +18 -6
  69. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  70. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  71. package/dest/checkpoint/published_checkpoint.js +4 -3
  72. package/dest/config/node-rpc-config.js +1 -1
  73. package/dest/contract/complete_address.d.ts +4 -1
  74. package/dest/contract/complete_address.d.ts.map +1 -1
  75. package/dest/contract/contract_address.js +1 -1
  76. package/dest/contract/contract_class_id.d.ts +1 -1
  77. package/dest/contract/contract_class_id.js +1 -1
  78. package/dest/contract/contract_deployment_data.d.ts +5 -5
  79. package/dest/contract/index.d.ts +1 -3
  80. package/dest/contract/index.d.ts.map +1 -1
  81. package/dest/contract/index.js +0 -2
  82. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  83. package/dest/contract/private_function.d.ts +1 -1
  84. package/dest/contract/private_function.d.ts.map +1 -1
  85. package/dest/contract/private_function.js +2 -3
  86. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  87. package/dest/contract/private_function_membership_proof.js +1 -1
  88. package/dest/database-version/version_manager.d.ts +4 -2
  89. package/dest/database-version/version_manager.d.ts.map +1 -1
  90. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  91. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  92. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  93. package/dest/deserialization/index.d.ts +11 -0
  94. package/dest/deserialization/index.d.ts.map +1 -0
  95. package/dest/deserialization/index.js +10 -0
  96. package/dest/epoch-helpers/index.d.ts +3 -1
  97. package/dest/epoch-helpers/index.d.ts.map +1 -1
  98. package/dest/epoch-helpers/index.js +5 -1
  99. package/dest/errors/proving_error.d.ts +2 -2
  100. package/dest/errors/proving_error.d.ts.map +1 -1
  101. package/dest/hash/hash.js +2 -2
  102. package/dest/hash/map_slot.d.ts +1 -1
  103. package/dest/hash/map_slot.d.ts.map +1 -1
  104. package/dest/hash/map_slot.js +4 -3
  105. package/dest/interfaces/api_limit.d.ts +2 -1
  106. package/dest/interfaces/api_limit.d.ts.map +1 -1
  107. package/dest/interfaces/api_limit.js +1 -0
  108. package/dest/interfaces/archiver.d.ts +1 -1
  109. package/dest/interfaces/archiver.d.ts.map +1 -1
  110. package/dest/interfaces/archiver.js +16 -14
  111. package/dest/interfaces/aztec-node-admin.d.ts +56 -26
  112. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  113. package/dest/interfaces/aztec-node.d.ts +61 -43
  114. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  115. package/dest/interfaces/aztec-node.js +7 -9
  116. package/dest/interfaces/block-builder.d.ts +17 -14
  117. package/dest/interfaces/block-builder.d.ts.map +1 -1
  118. package/dest/interfaces/configs.d.ts +8 -8
  119. package/dest/interfaces/configs.d.ts.map +1 -1
  120. package/dest/interfaces/get_logs_response.d.ts +3 -3
  121. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  122. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  123. package/dest/interfaces/prover-client.d.ts +10 -1
  124. package/dest/interfaces/prover-client.d.ts.map +1 -1
  125. package/dest/interfaces/prover-client.js +7 -1
  126. package/dest/interfaces/proving-job.d.ts +14 -14
  127. package/dest/interfaces/tx_provider.d.ts +3 -3
  128. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  129. package/dest/interfaces/validator.d.ts +70 -14
  130. package/dest/interfaces/validator.d.ts.map +1 -1
  131. package/dest/interfaces/validator.js +2 -2
  132. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  133. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  134. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  135. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  136. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  137. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  138. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  139. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  140. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  141. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  142. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  143. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  144. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  145. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  146. package/dest/kernel/hints/read_request.d.ts +7 -1
  147. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  148. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  149. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  150. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  151. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  152. package/dest/kernel/private_call_data.d.ts +25 -1
  153. package/dest/kernel/private_call_data.d.ts.map +1 -1
  154. package/dest/kernel/private_call_request.d.ts +16 -1
  155. package/dest/kernel/private_call_request.d.ts.map +1 -1
  156. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  157. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  158. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  159. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  160. package/dest/kernel/private_kernel_data.d.ts +7 -1
  161. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  162. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  163. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  164. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  165. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  166. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  167. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  168. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  169. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  170. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  171. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  172. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  173. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  174. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  175. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  176. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_validation_requests.d.ts +10 -1
  178. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  179. package/dest/kernel/public_call_request.d.ts +22 -1
  180. package/dest/kernel/public_call_request.d.ts.map +1 -1
  181. package/dest/kernel/utils/optional_number.d.ts +7 -1
  182. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  183. package/dest/keys/public_keys.d.ts +5 -1
  184. package/dest/keys/public_keys.d.ts.map +1 -1
  185. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  186. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  187. package/dest/logs/extended_public_log.d.ts +7 -5
  188. package/dest/logs/extended_public_log.d.ts.map +1 -1
  189. package/dest/logs/log_id.d.ts +10 -6
  190. package/dest/logs/log_id.d.ts.map +1 -1
  191. package/dest/logs/log_id.js +5 -5
  192. package/dest/logs/siloed_tag.d.ts +1 -1
  193. package/dest/logs/siloed_tag.d.ts.map +1 -1
  194. package/dest/logs/siloed_tag.js +4 -3
  195. package/dest/messaging/inbox_leaf.d.ts +3 -1
  196. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  197. package/dest/messaging/l1_actor.d.ts +7 -1
  198. package/dest/messaging/l1_actor.d.ts.map +1 -1
  199. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  200. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  201. package/dest/messaging/l2_actor.d.ts +7 -1
  202. package/dest/messaging/l2_actor.d.ts.map +1 -1
  203. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  204. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  205. package/dest/messaging/l2_to_l1_membership.js +5 -3
  206. package/dest/messaging/out_hash.d.ts +41 -4
  207. package/dest/messaging/out_hash.d.ts.map +1 -1
  208. package/dest/messaging/out_hash.js +52 -26
  209. package/dest/note/note_dao.d.ts +36 -5
  210. package/dest/note/note_dao.d.ts.map +1 -1
  211. package/dest/note/note_dao.js +15 -12
  212. package/dest/p2p/block_proposal.d.ts +23 -8
  213. package/dest/p2p/block_proposal.d.ts.map +1 -1
  214. package/dest/p2p/block_proposal.js +25 -7
  215. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  216. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  217. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  218. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  219. package/dest/p2p/checkpoint_proposal.js +17 -5
  220. package/dest/p2p/consensus_payload.d.ts +4 -3
  221. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  222. package/dest/p2p/consensus_payload.js +0 -3
  223. package/dest/p2p/constants.d.ts +3 -0
  224. package/dest/p2p/constants.d.ts.map +1 -0
  225. package/dest/p2p/constants.js +2 -0
  226. package/dest/p2p/index.d.ts +2 -1
  227. package/dest/p2p/index.d.ts.map +1 -1
  228. package/dest/p2p/index.js +1 -0
  229. package/dest/p2p/message_validator.d.ts +18 -3
  230. package/dest/p2p/message_validator.d.ts.map +1 -1
  231. package/dest/p2p/message_validator.js +2 -1
  232. package/dest/p2p/signed_txs.d.ts +3 -1
  233. package/dest/p2p/signed_txs.d.ts.map +1 -1
  234. package/dest/p2p/signed_txs.js +6 -1
  235. package/dest/p2p/topic_type.js +2 -1
  236. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  237. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  238. package/dest/parity/parity_public_inputs.d.ts +4 -1
  239. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  240. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  241. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  242. package/dest/proofs/chonk_proof.d.ts +1 -1
  243. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  244. package/dest/proofs/chonk_proof.js +9 -4
  245. package/dest/proofs/proof.d.ts +4 -1
  246. package/dest/proofs/proof.d.ts.map +1 -1
  247. package/dest/proofs/recursive_proof.d.ts +10 -1
  248. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  249. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  250. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  251. package/dest/rollup/block_constant_data.d.ts +12 -1
  252. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  253. package/dest/rollup/block_headers_hash.js +1 -1
  254. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  255. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  256. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  257. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  258. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  259. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  260. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  261. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  262. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  263. package/dest/rollup/checkpoint_header.d.ts +29 -2
  264. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  265. package/dest/rollup/checkpoint_header.js +21 -5
  266. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  267. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  268. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  269. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  270. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  271. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  272. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  273. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  274. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  275. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  276. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  277. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  278. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  279. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  280. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  281. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  282. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  283. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  284. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  285. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  286. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  287. package/dest/schemas/schemas.d.ts +1 -1
  288. package/dest/tests/factories.d.ts +2 -4
  289. package/dest/tests/factories.d.ts.map +1 -1
  290. package/dest/tests/factories.js +6 -15
  291. package/dest/tests/jest.js +1 -1
  292. package/dest/tests/mocks.d.ts +20 -14
  293. package/dest/tests/mocks.d.ts.map +1 -1
  294. package/dest/tests/mocks.js +45 -27
  295. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  296. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  297. package/dest/trees/nullifier_leaf.d.ts +13 -1
  298. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  299. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  300. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  301. package/dest/trees/public_data_leaf.d.ts +16 -1
  302. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  303. package/dest/trees/public_data_witness.d.ts +11 -1
  304. package/dest/trees/public_data_witness.d.ts.map +1 -1
  305. package/dest/tx/block_header.d.ts +14 -2
  306. package/dest/tx/block_header.d.ts.map +1 -1
  307. package/dest/tx/block_header.js +5 -1
  308. package/dest/tx/call_context.d.ts +13 -1
  309. package/dest/tx/call_context.d.ts.map +1 -1
  310. package/dest/tx/capsule.d.ts +4 -1
  311. package/dest/tx/capsule.d.ts.map +1 -1
  312. package/dest/tx/execution_payload.d.ts +9 -1
  313. package/dest/tx/execution_payload.d.ts.map +1 -1
  314. package/dest/tx/function_data.d.ts +4 -2
  315. package/dest/tx/function_data.d.ts.map +1 -1
  316. package/dest/tx/global_variables.d.ts +9 -1
  317. package/dest/tx/global_variables.d.ts.map +1 -1
  318. package/dest/tx/hashed_values.d.ts +7 -1
  319. package/dest/tx/hashed_values.d.ts.map +1 -1
  320. package/dest/tx/in_tx.d.ts +3 -3
  321. package/dest/tx/indexed_tx_effect.d.ts +4 -4
  322. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  323. package/dest/tx/indexed_tx_effect.js +2 -2
  324. package/dest/tx/partial_state_reference.d.ts +4 -1
  325. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  326. package/dest/tx/private_execution_result.d.ts +23 -2
  327. package/dest/tx/private_execution_result.d.ts.map +1 -1
  328. package/dest/tx/private_execution_result.js +1 -1
  329. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  330. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  331. package/dest/tx/profiling.d.ts +149 -26
  332. package/dest/tx/profiling.d.ts.map +1 -1
  333. package/dest/tx/profiling.js +44 -7
  334. package/dest/tx/protocol_contracts.d.ts +1 -1
  335. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  336. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  337. package/dest/tx/state_reference.d.ts +3 -1
  338. package/dest/tx/state_reference.d.ts.map +1 -1
  339. package/dest/tx/tx.d.ts +24 -1
  340. package/dest/tx/tx.d.ts.map +1 -1
  341. package/dest/tx/tx.js +6 -3
  342. package/dest/tx/tx_context.d.ts +2 -1
  343. package/dest/tx/tx_context.d.ts.map +1 -1
  344. package/dest/tx/tx_effect.d.ts +32 -6
  345. package/dest/tx/tx_effect.d.ts.map +1 -1
  346. package/dest/tx/tx_effect.js +0 -7
  347. package/dest/tx/tx_execution_request.d.ts +30 -1
  348. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  349. package/dest/tx/tx_hash.d.ts +2 -1
  350. package/dest/tx/tx_hash.d.ts.map +1 -1
  351. package/dest/tx/tx_receipt.d.ts +47 -13
  352. package/dest/tx/tx_receipt.d.ts.map +1 -1
  353. package/dest/tx/tx_receipt.js +46 -15
  354. package/dest/tx/tx_request.d.ts +6 -1
  355. package/dest/tx/tx_request.d.ts.map +1 -1
  356. package/dest/tx/validator/error_texts.d.ts +2 -1
  357. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  358. package/dest/tx/validator/error_texts.js +2 -0
  359. package/dest/types/shared.d.ts +4 -1
  360. package/dest/types/shared.d.ts.map +1 -1
  361. package/dest/validators/schemas.d.ts +8 -8
  362. package/dest/vks/verification_key.d.ts +22 -1
  363. package/dest/vks/verification_key.d.ts.map +1 -1
  364. package/dest/vks/vk_data.d.ts +7 -1
  365. package/dest/vks/vk_data.d.ts.map +1 -1
  366. package/dest/zkpassport/index.d.ts +3 -4
  367. package/dest/zkpassport/index.d.ts.map +1 -1
  368. package/dest/zkpassport/index.js +9 -9
  369. package/package.json +12 -10
  370. package/src/abi/utils.ts +17 -0
  371. package/src/block/block_hash.ts +36 -10
  372. package/src/block/block_parameter.ts +4 -2
  373. package/src/block/body.ts +2 -1
  374. package/src/block/checkpointed_l2_block.ts +8 -58
  375. package/src/block/in_block.ts +5 -5
  376. package/src/block/index.ts +0 -2
  377. package/src/block/l2_block.ts +101 -149
  378. package/src/block/l2_block_source.ts +69 -41
  379. package/src/block/l2_block_stream/interfaces.ts +8 -5
  380. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  381. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  382. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  383. package/src/block/validate_block_result.ts +5 -4
  384. package/src/checkpoint/checkpoint.ts +33 -11
  385. package/src/checkpoint/published_checkpoint.ts +4 -3
  386. package/src/config/node-rpc-config.ts +1 -1
  387. package/src/contract/contract_address.ts +1 -1
  388. package/src/contract/contract_class_id.ts +1 -1
  389. package/src/contract/index.ts +0 -2
  390. package/src/contract/private_function.ts +2 -3
  391. package/src/contract/private_function_membership_proof.ts +1 -1
  392. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  393. package/src/deserialization/index.ts +21 -0
  394. package/src/epoch-helpers/index.ts +10 -1
  395. package/src/hash/hash.ts +2 -2
  396. package/src/hash/map_slot.ts +3 -2
  397. package/src/interfaces/api_limit.ts +1 -0
  398. package/src/interfaces/archiver.ts +16 -23
  399. package/src/interfaces/aztec-node.ts +76 -74
  400. package/src/interfaces/block-builder.ts +33 -24
  401. package/src/interfaces/configs.ts +1 -3
  402. package/src/interfaces/l2_logs_source.ts +17 -4
  403. package/src/interfaces/prover-client.ts +15 -0
  404. package/src/interfaces/tx_provider.ts +2 -2
  405. package/src/interfaces/validator.ts +9 -11
  406. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  407. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  408. package/src/logs/log_id.ts +6 -6
  409. package/src/logs/siloed_tag.ts +3 -2
  410. package/src/messaging/l2_to_l1_membership.ts +5 -3
  411. package/src/messaging/out_hash.ts +60 -29
  412. package/src/note/note_dao.ts +18 -13
  413. package/src/p2p/block_proposal.ts +36 -13
  414. package/src/p2p/checkpoint_proposal.ts +29 -11
  415. package/src/p2p/consensus_payload.ts +0 -5
  416. package/src/p2p/constants.ts +3 -0
  417. package/src/p2p/index.ts +1 -0
  418. package/src/p2p/message_validator.ts +14 -2
  419. package/src/p2p/signed_txs.ts +6 -1
  420. package/src/p2p/topic_type.ts +1 -1
  421. package/src/proofs/chonk_proof.ts +9 -5
  422. package/src/rollup/block_headers_hash.ts +1 -1
  423. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  424. package/src/rollup/checkpoint_header.ts +20 -0
  425. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  426. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  427. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  428. package/src/tests/factories.ts +6 -26
  429. package/src/tests/jest.ts +1 -1
  430. package/src/tests/mocks.ts +62 -42
  431. package/src/tx/block_header.ts +11 -3
  432. package/src/tx/indexed_tx_effect.ts +2 -2
  433. package/src/tx/private_execution_result.ts +1 -1
  434. package/src/tx/profiling.ts +46 -4
  435. package/src/tx/tx.ts +8 -9
  436. package/src/tx/tx_effect.ts +0 -9
  437. package/src/tx/tx_receipt.ts +75 -18
  438. package/src/tx/validator/error_texts.ts +3 -0
  439. package/src/zkpassport/index.ts +11 -12
  440. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  441. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  442. package/dest/block/l2_block_code_to_purge.js +0 -55
  443. package/dest/block/l2_block_header.d.ts +0 -94
  444. package/dest/block/l2_block_header.d.ts.map +0 -1
  445. package/dest/block/l2_block_header.js +0 -160
  446. package/dest/block/l2_block_new.d.ts +0 -134
  447. package/dest/block/l2_block_new.d.ts.map +0 -1
  448. package/dest/block/l2_block_new.js +0 -155
  449. package/dest/contract/contract_class_metadata.d.ts +0 -8
  450. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  451. package/dest/contract/contract_class_metadata.js +0 -1
  452. package/dest/contract/contract_metadata.d.ts +0 -7
  453. package/dest/contract/contract_metadata.d.ts.map +0 -1
  454. package/dest/contract/contract_metadata.js +0 -1
  455. package/src/block/l2_block_code_to_purge.ts +0 -80
  456. package/src/block/l2_block_header.ts +0 -255
  457. package/src/block/l2_block_new.ts +0 -211
  458. package/src/contract/contract_class_metadata.ts +0 -8
  459. package/src/contract/contract_metadata.ts +0 -7
@@ -7,7 +7,7 @@ import {
7
7
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
8
8
  } from '@aztec/constants';
9
9
  import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
10
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
10
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
11
11
  import { Buffer32 } from '@aztec/foundation/buffer';
12
12
  import { padArrayEnd, times } from '@aztec/foundation/collection';
13
13
  import { randomBytes } from '@aztec/foundation/crypto/random';
@@ -22,8 +22,7 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
22
22
  import { PublicDataWrite } from '../avm/public_data_write.js';
23
23
  import { RevertCode } from '../avm/revert_code.js';
24
24
  import { AztecAddress } from '../aztec-address/index.js';
25
- import { CommitteeAttestation, L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
26
- import { L2Block } from '../block/l2_block.js';
25
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
27
26
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
28
27
  import { Checkpoint } from '../checkpoint/checkpoint.js';
29
28
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
@@ -76,9 +75,9 @@ import {
76
75
  makeAvmCircuitInputs,
77
76
  makeAztecAddress,
78
77
  makeBlockHeader,
78
+ makeCheckpointHeader,
79
79
  makeGas,
80
80
  makeGlobalVariables,
81
- makeL2BlockHeader,
82
81
  makePrivateToPublicAccumulatedData,
83
82
  makePrivateToRollupAccumulatedData,
84
83
  makeProtocolContracts,
@@ -98,12 +97,14 @@ export const mockTx = async (
98
97
  publicCalldataSize = 2,
99
98
  feePayer,
100
99
  chonkProof = ChonkProof.random(),
100
+ maxFeesPerGas = new GasFees(10, 10),
101
101
  maxPriorityFeesPerGas,
102
102
  gasUsed = Gas.empty(),
103
103
  chainId = Fr.ZERO,
104
104
  version = Fr.ZERO,
105
105
  vkTreeRoot = Fr.ZERO,
106
106
  protocolContractsHash = Fr.ZERO,
107
+ anchorBlockHeader = BlockHeader.empty(),
107
108
  }: {
108
109
  numberOfNonRevertiblePublicCallRequests?: number;
109
110
  numberOfRevertiblePublicCallRequests?: number;
@@ -112,12 +113,14 @@ export const mockTx = async (
112
113
  publicCalldataSize?: number;
113
114
  feePayer?: AztecAddress;
114
115
  chonkProof?: ChonkProof;
116
+ maxFeesPerGas?: GasFees;
115
117
  maxPriorityFeesPerGas?: GasFees;
116
118
  gasUsed?: Gas;
117
119
  chainId?: Fr;
118
120
  version?: Fr;
119
121
  vkTreeRoot?: Fr;
120
122
  protocolContractsHash?: Fr;
123
+ anchorBlockHeader?: BlockHeader;
121
124
  } = {},
122
125
  ) => {
123
126
  const totalPublicCallRequests =
@@ -127,10 +130,8 @@ export const mockTx = async (
127
130
  const isForPublic = totalPublicCallRequests > 0;
128
131
  const data = PrivateKernelTailCircuitPublicInputs.empty();
129
132
  const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
130
- data.constants.txContext.gasSettings = GasSettings.default({
131
- maxFeesPerGas: new GasFees(10, 10),
132
- maxPriorityFeesPerGas,
133
- });
133
+ data.constants.anchorBlockHeader = anchorBlockHeader;
134
+ data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
134
135
  data.feePayer = feePayer ?? (await AztecAddress.random());
135
136
  data.gasUsed = gasUsed;
136
137
  data.constants.txContext.chainId = chainId;
@@ -400,38 +401,47 @@ export async function mockCheckpointAndMessages(
400
401
  {
401
402
  startBlockNumber = BlockNumber(1),
402
403
  numBlocks = 1,
404
+ blocks,
403
405
  numTxsPerBlock = 1,
404
406
  numL1ToL2Messages = 1,
405
407
  makeBlockOptions = () => ({}),
406
408
  previousArchive,
409
+ maxEffects,
407
410
  ...options
408
411
  }: {
409
412
  startBlockNumber?: BlockNumber;
410
413
  numBlocks?: number;
411
414
  numTxsPerBlock?: number;
412
415
  numL1ToL2Messages?: number;
413
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
416
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
414
417
  previousArchive?: AppendOnlyTreeSnapshot;
418
+ blocks?: L2Block[];
419
+ maxEffects?: number;
415
420
  } & Partial<Parameters<typeof Checkpoint.random>[1]> &
416
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
421
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
417
422
  ) {
418
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
423
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
419
424
  const blocksAndMessages = [];
420
425
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
421
426
  // The current block's header.lastArchive must equal the previous block's archive.
422
427
  let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
423
- for (let i = 0; i < numBlocks; i++) {
428
+ // Pass maxEffects via txOptions so it reaches TxEffect.random
429
+ const txOptions = maxEffects !== undefined ? { maxEffects } : {};
430
+ for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
424
431
  const blockNumber = BlockNumber(startBlockNumber + i);
425
432
  const { block, messages } = {
426
- block: await L2BlockNew.random(blockNumber, {
427
- checkpointNumber,
428
- indexWithinCheckpoint: i,
429
- txsPerBlock: numTxsPerBlock,
430
- slotNumber,
431
- ...options,
432
- ...makeBlockOptions(blockNumber),
433
- ...(lastArchive ? { lastArchive } : {}),
434
- }),
433
+ block:
434
+ blocks?.[i] ??
435
+ (await L2Block.random(blockNumber, {
436
+ checkpointNumber,
437
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
438
+ txsPerBlock: numTxsPerBlock,
439
+ txOptions,
440
+ slotNumber,
441
+ ...options,
442
+ ...makeBlockOptions(blockNumber),
443
+ ...(lastArchive ? { lastArchive } : {}),
444
+ })),
435
445
  messages: mockL1ToL2Messages(numL1ToL2Messages),
436
446
  };
437
447
  // Update lastArchive for the next block
@@ -489,7 +499,7 @@ export interface MakeConsensusPayloadOptions {
489
499
  signer?: Secp256k1Signer;
490
500
  attesterSigner?: Secp256k1Signer;
491
501
  proposerSigner?: Secp256k1Signer;
492
- header?: L2BlockHeader;
502
+ header?: CheckpointHeader;
493
503
  archive?: Fr;
494
504
  txHashes?: TxHash[];
495
505
  txs?: Tx[];
@@ -497,8 +507,8 @@ export interface MakeConsensusPayloadOptions {
497
507
 
498
508
  export interface MakeBlockProposalOptions {
499
509
  signer?: Secp256k1Signer;
500
- blockHeader?: L2BlockHeader;
501
- indexWithinCheckpoint?: number;
510
+ blockHeader?: BlockHeader;
511
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
502
512
  inHash?: Fr;
503
513
  archiveRoot?: Fr;
504
514
  txHashes?: TxHash[];
@@ -511,8 +521,8 @@ export interface MakeCheckpointProposalOptions {
511
521
  archiveRoot?: Fr;
512
522
  /** Options for the lastBlock - if undefined, no lastBlock is included */
513
523
  lastBlock?: {
514
- blockHeader?: L2BlockHeader;
515
- indexWithinCheckpoint?: number;
524
+ blockHeader?: BlockHeader;
525
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
516
526
  txHashes?: TxHash[];
517
527
  txs?: Tx[];
518
528
  };
@@ -523,18 +533,18 @@ const makeAndSignConsensusPayload = (
523
533
  domainSeparator: SignatureDomainSeparator,
524
534
  options?: MakeConsensusPayloadOptions,
525
535
  ) => {
526
- const header = options?.header ?? makeL2BlockHeader(1);
536
+ const header = options?.header ?? makeCheckpointHeader(1);
527
537
  const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
528
538
 
529
539
  const payload = ConsensusPayload.fromFields({
530
- header: header.toCheckpointHeader(),
540
+ header,
531
541
  archive,
532
542
  });
533
543
 
534
544
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
535
545
  const signature = signer.sign(hash);
536
546
 
537
- return { blockNumber: header.globalVariables.blockNumber, payload, signature };
547
+ return { blockNumber: header.slotNumber, payload, signature };
538
548
  };
539
549
 
540
550
  export const makeAndSignCommitteeAttestationsAndSigners = (
@@ -549,9 +559,8 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
549
559
  };
550
560
 
551
561
  export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
552
- const l2BlockHeader = options?.blockHeader ?? makeL2BlockHeader(1);
553
- const blockHeader = l2BlockHeader.toBlockHeader();
554
- const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
562
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
563
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
555
564
  const inHash = options?.inHash ?? Fr.random();
556
565
  const archiveRoot = options?.archiveRoot ?? Fr.random();
557
566
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
@@ -565,21 +574,21 @@ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<B
565
574
  archiveRoot,
566
575
  txHashes,
567
576
  txs,
568
- payload => Promise.resolve(signer.signMessage(payload)),
577
+ (_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
569
578
  );
570
579
  };
571
580
 
572
581
  export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
573
- const l2BlockHeader = options?.lastBlock?.blockHeader ?? makeL2BlockHeader(1);
574
- const checkpointHeader = options?.checkpointHeader ?? l2BlockHeader.toCheckpointHeader();
582
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
583
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
575
584
  const archiveRoot = options?.archiveRoot ?? Fr.random();
576
585
  const signer = options?.signer ?? Secp256k1Signer.random();
577
586
 
578
587
  // Build lastBlock info if provided
579
588
  const lastBlockInfo = options?.lastBlock
580
589
  ? {
581
- blockHeader: l2BlockHeader.toBlockHeader(),
582
- indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4, // Last block in a 5-block checkpoint
590
+ blockHeader,
591
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
583
592
  txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
584
593
  txs: options.lastBlock.txs,
585
594
  }
@@ -605,7 +614,7 @@ export type MakeCheckpointAttestationOptions = {
605
614
  * Create a checkpoint attestation for testing
606
615
  */
607
616
  export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
608
- const header = options.header ?? makeL2BlockHeader(1).toCheckpointHeader();
617
+ const header = options.header ?? makeCheckpointHeader(1);
609
618
  const archive = options.archive ?? Fr.random();
610
619
  const { signer, attesterSigner = signer, proposerSigner = signer } = options;
611
620
 
@@ -669,13 +678,20 @@ export const makeCheckpointAttestationFromCheckpoint = (
669
678
 
670
679
  /**
671
680
  * Create a checkpoint attestation from an L2Block
681
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
672
682
  */
673
683
  export const makeCheckpointAttestationFromBlock = (
674
684
  block: L2Block,
675
685
  attesterSigner?: Secp256k1Signer,
676
686
  proposerSigner?: Secp256k1Signer,
677
687
  ): CheckpointAttestation => {
678
- const header = block.header.toCheckpointHeader();
688
+ // For L2Block, we create a minimal checkpoint header for testing purposes
689
+ const header = CheckpointHeader.empty({
690
+ lastArchiveRoot: block.header.lastArchive.root,
691
+ slotNumber: block.slot,
692
+ timestamp: block.timestamp,
693
+ blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
694
+ });
679
695
  const archive = block.archive.root;
680
696
 
681
697
  return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
@@ -684,7 +700,7 @@ export const makeCheckpointAttestationFromBlock = (
684
700
  export async function randomPublishedL2Block(
685
701
  l2BlockNumber: number,
686
702
  opts: { signers?: Secp256k1Signer[] } = {},
687
- ): Promise<PublishedL2Block> {
703
+ ): Promise<CheckpointedL2Block> {
688
704
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
689
705
  const l1 = L1PublishedData.fromFields({
690
706
  blockNumber: BigInt(block.number),
@@ -693,15 +709,19 @@ export async function randomPublishedL2Block(
693
709
  });
694
710
 
695
711
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
712
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
713
+ numBlocks: 0,
714
+ });
715
+ checkpoint.blocks = [block];
696
716
  const atts = signers.map(signer =>
697
717
  makeCheckpointAttestation({
698
718
  signer,
699
719
  archive: block.archive.root,
700
- header: block.header.toCheckpointHeader(),
720
+ header: checkpoint.header,
701
721
  }),
702
722
  );
703
723
  const attestations = atts.map(
704
724
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
705
725
  );
706
- return new PublishedL2Block(block, l1, attestations);
726
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
707
727
  }
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
11
11
  import { inspect } from 'util';
12
12
  import { z } from 'zod';
13
13
 
14
+ import { BlockHash } from '../block/block_hash.js';
14
15
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
16
  import { GlobalVariables } from './global_variables.js';
16
17
  import { StateReference } from './state_reference.js';
17
18
 
18
19
  /** A header of an L2 block. */
19
20
  export class BlockHeader {
20
- private _cachedHash?: Promise<Fr>;
21
+ private _cachedHash?: Promise<BlockHash>;
21
22
 
22
23
  constructor(
23
24
  /** Snapshot of archive before the block is applied. */
@@ -161,13 +162,20 @@ export class BlockHeader {
161
162
  return BlockHeader.fromBuffer(hexToBuffer(str));
162
163
  }
163
164
 
164
- hash(): Promise<Fr> {
165
+ hash(): Promise<BlockHash> {
165
166
  if (!this._cachedHash) {
166
- this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
167
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HEADER_HASH).then(fr =>
168
+ BlockHash.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(BlockHash.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(),
@@ -2,7 +2,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
 
5
- import { L2BlockHash } from '../block/block_hash.js';
5
+ import { BlockHash } from '../block/block_hash.js';
6
6
  import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
7
7
  import { TxEffect } from './tx_effect.js';
8
8
 
@@ -26,7 +26,7 @@ export function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer {
26
26
  export function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect {
27
27
  const reader = BufferReader.asReader(buffer);
28
28
 
29
- const l2BlockHash = reader.readObject(L2BlockHash);
29
+ const l2BlockHash = reader.readObject(BlockHash);
30
30
  const l2BlockNumber = BlockNumber(reader.readNumber());
31
31
  const txIndexInBlock = reader.readNumber();
32
32
  const data = reader.readObject(TxEffect);
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
79
79
  export class PrivateExecutionResult {
80
80
  constructor(
81
81
  public entrypoint: PrivateCallExecutionResult,
82
- /** The first non revertible nullifier, or zero if there was none. */
82
+ /** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
83
83
  public firstNullifier: Fr,
84
84
  /** An array of calldata for the enqueued public function calls and the teardown function call. */
85
85
  public publicFunctionCalldata: HashedValues[],
@@ -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,
package/src/tx/tx.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
3
2
  import { Fr } from '@aztec/foundation/curves/bn254';
4
3
  import type { ZodFor } from '@aztec/foundation/schemas';
5
4
  import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -247,7 +246,7 @@ export class Tx extends Gossipable {
247
246
  contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
248
247
 
249
248
  proofSize: this.chonkProof.fields.length,
250
- size: this.toBuffer().length,
249
+ size: this.getSize(),
251
250
 
252
251
  feePaymentMethod:
253
252
  // needsSetup? then we pay through a fee payment contract
@@ -255,13 +254,13 @@ export class Tx extends Gossipable {
255
254
  };
256
255
  }
257
256
 
258
- getSize() {
259
- return (
260
- this.data.getSize() +
261
- this.chonkProof.fields.length * Fr.SIZE_IN_BYTES +
262
- arraySerializedSizeOfNonEmpty(this.contractClassLogFields) +
263
- this.publicFunctionCalldata.reduce((accum, cd) => accum + cd.getSize(), 0)
264
- );
257
+ private sizeCache: number | undefined;
258
+
259
+ getSize(): number {
260
+ if (this.sizeCache == undefined) {
261
+ this.sizeCache = this.toBuffer().length;
262
+ }
263
+ return this.sizeCache;
265
264
  }
266
265
 
267
266
  /**
@@ -28,7 +28,6 @@ import { RevertCode } from '../avm/revert_code.js';
28
28
  import { ContractClassLog } from '../logs/contract_class_log.js';
29
29
  import { PrivateLog } from '../logs/private_log.js';
30
30
  import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
31
- import { computeTxOutHash } from '../messaging/out_hash.js';
32
31
  import { TxHash } from './tx_hash.js';
33
32
 
34
33
  export class TxEffect {
@@ -184,14 +183,6 @@ export class TxEffect {
184
183
  );
185
184
  }
186
185
 
187
- /**
188
- * Computes txOutHash of this tx effect.
189
- * @dev Follows new_sha in unbalanced_merkle_tree.nr
190
- */
191
- txOutHash(): Fr {
192
- return computeTxOutHash(this.l2ToL1Msgs);
193
- }
194
-
195
186
  static async random({
196
187
  numNoteHashes,
197
188
  numNullifiers,
@@ -1,19 +1,34 @@
1
1
  import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
2
- import type { FieldsOf } from '@aztec/foundation/types';
3
2
 
4
3
  import { z } from 'zod';
5
4
 
6
5
  import { RevertCode } from '../avm/revert_code.js';
7
- import { L2BlockHash } from '../block/block_hash.js';
6
+ import { BlockHash } from '../block/block_hash.js';
8
7
  import { type ZodFor, schemas } from '../schemas/schemas.js';
9
8
  import { TxHash } from './tx_hash.js';
10
9
 
11
- /**
12
- * Possible status of a transaction.
13
- */
10
+ /** Block inclusion/finalization status. */
14
11
  export enum TxStatus {
15
12
  DROPPED = 'dropped',
16
13
  PENDING = 'pending',
14
+ PROPOSED = 'proposed',
15
+ CHECKPOINTED = 'checkpointed',
16
+ PROVEN = 'proven',
17
+ FINALIZED = 'finalized', // TODO(#13569): Implement finalized status properly
18
+ }
19
+
20
+ /** Tx status sorted by finalization progress. */
21
+ export const SortedTxStatuses: TxStatus[] = [
22
+ TxStatus.DROPPED,
23
+ TxStatus.PENDING,
24
+ TxStatus.PROPOSED,
25
+ TxStatus.CHECKPOINTED,
26
+ TxStatus.PROVEN,
27
+ TxStatus.FINALIZED,
28
+ ];
29
+
30
+ /** Execution result - only set when tx is in a block. */
31
+ export enum TxExecutionResult {
17
32
  SUCCESS = 'success',
18
33
  APP_LOGIC_REVERTED = 'app_logic_reverted',
19
34
  TEARDOWN_REVERTED = 'teardown_reverted',
@@ -30,20 +45,52 @@ export class TxReceipt {
30
45
  constructor(
31
46
  /** A unique identifier for a transaction. */
32
47
  public txHash: TxHash,
33
- /** The transaction's status. */
48
+ /** The transaction's block finalization status. */
34
49
  public status: TxStatus,
50
+ /** The execution result of the transaction, only set when tx is in a block. */
51
+ public executionResult: TxExecutionResult | undefined,
35
52
  /** Description of transaction error, if any. */
36
- public error: string,
53
+ public error: string | undefined,
37
54
  /** The transaction fee paid for the transaction. */
38
55
  public transactionFee?: bigint,
39
56
  /** The hash of the block containing the transaction. */
40
- public blockHash?: L2BlockHash,
57
+ public blockHash?: BlockHash,
41
58
  /** The block number in which the transaction was included. */
42
59
  public blockNumber?: BlockNumber,
43
60
  ) {}
44
61
 
62
+ /** Returns true if the transaction was executed successfully. */
63
+ hasExecutionSucceeded(): boolean {
64
+ return this.executionResult === TxExecutionResult.SUCCESS;
65
+ }
66
+
67
+ /** Returns true if the transaction execution reverted. */
68
+ hasExecutionReverted(): boolean {
69
+ return this.executionResult !== undefined && this.executionResult !== TxExecutionResult.SUCCESS;
70
+ }
71
+
72
+ /** Returns true if the transaction has been included in a block (proposed, checkpointed, proven, or finalized). */
73
+ isMined(): boolean {
74
+ return (
75
+ this.status === TxStatus.PROPOSED ||
76
+ this.status === TxStatus.CHECKPOINTED ||
77
+ this.status === TxStatus.PROVEN ||
78
+ this.status === TxStatus.FINALIZED
79
+ );
80
+ }
81
+
82
+ /** Returns true if the transaction is pending. */
83
+ isPending(): boolean {
84
+ return this.status === TxStatus.PENDING;
85
+ }
86
+
87
+ /** Returns true if the transaction was dropped. */
88
+ isDropped(): boolean {
89
+ return this.status === TxStatus.DROPPED;
90
+ }
91
+
45
92
  static empty() {
46
- return new TxReceipt(TxHash.zero(), TxStatus.DROPPED, '');
93
+ return new TxReceipt(TxHash.zero(), TxStatus.DROPPED, undefined, undefined);
47
94
  }
48
95
 
49
96
  static get schema(): ZodFor<TxReceipt> {
@@ -51,18 +98,28 @@ export class TxReceipt {
51
98
  .object({
52
99
  txHash: TxHash.schema,
53
100
  status: z.nativeEnum(TxStatus),
54
- error: z.string(),
55
- blockHash: L2BlockHash.schema.optional(),
101
+ executionResult: z.nativeEnum(TxExecutionResult).optional(),
102
+ error: z.string().optional(),
103
+ blockHash: BlockHash.schema.optional(),
56
104
  blockNumber: BlockNumberSchema.optional(),
57
105
  transactionFee: schemas.BigInt.optional(),
58
106
  })
59
- .transform(TxReceipt.from);
107
+ .transform(fields => TxReceipt.from(fields));
60
108
  }
61
109
 
62
- static from(fields: FieldsOf<TxReceipt>) {
110
+ static from(fields: {
111
+ txHash: TxHash;
112
+ status: TxStatus;
113
+ executionResult?: TxExecutionResult;
114
+ error?: string;
115
+ transactionFee?: bigint;
116
+ blockHash?: BlockHash;
117
+ blockNumber?: BlockNumber;
118
+ }) {
63
119
  return new TxReceipt(
64
120
  fields.txHash,
65
121
  fields.status,
122
+ fields.executionResult,
66
123
  fields.error,
67
124
  fields.transactionFee,
68
125
  fields.blockHash,
@@ -70,15 +127,15 @@ export class TxReceipt {
70
127
  );
71
128
  }
72
129
 
73
- public static statusFromRevertCode(revertCode: RevertCode) {
130
+ public static executionResultFromRevertCode(revertCode: RevertCode): TxExecutionResult {
74
131
  if (revertCode.equals(RevertCode.OK)) {
75
- return TxStatus.SUCCESS;
132
+ return TxExecutionResult.SUCCESS;
76
133
  } else if (revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
77
- return TxStatus.APP_LOGIC_REVERTED;
134
+ return TxExecutionResult.APP_LOGIC_REVERTED;
78
135
  } else if (revertCode.equals(RevertCode.TEARDOWN_REVERTED)) {
79
- return TxStatus.TEARDOWN_REVERTED;
136
+ return TxExecutionResult.TEARDOWN_REVERTED;
80
137
  } else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
81
- return TxStatus.BOTH_REVERTED;
138
+ return TxExecutionResult.BOTH_REVERTED;
82
139
  } else {
83
140
  throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
84
141
  }
@@ -31,6 +31,9 @@ export const TX_ERROR_CONTRACT_CLASS_LOGS = 'Mismatched contract class logs';
31
31
  export const TX_ERROR_CONTRACT_CLASS_LOG_SORTING = 'Incorrectly sorted contract class logs';
32
32
  export const TX_ERROR_INCORRECT_HASH = 'Incorrect tx hash';
33
33
 
34
+ // Size
35
+ export const TX_ERROR_SIZE_ABOVE_LIMIT = 'Transaction size above size limit';
36
+
34
37
  // Block header
35
38
  export const TX_ERROR_BLOCK_HEADER = 'Block header not found';
36
39