@aztec/stdlib 3.0.3 → 3.9.9-nightly.20260312

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 (859) hide show
  1. package/dest/abi/abi.d.ts +602 -4
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +7 -7
  4. package/dest/abi/contract_artifact.d.ts +2 -2
  5. package/dest/abi/contract_artifact.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.js +1 -1
  7. package/dest/abi/decoder.d.ts +2 -2
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +7 -5
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_call.d.ts +47 -9
  17. package/dest/abi/function_call.d.ts.map +1 -1
  18. package/dest/abi/function_call.js +20 -3
  19. package/dest/abi/function_selector.d.ts +2 -1
  20. package/dest/abi/function_selector.d.ts.map +1 -1
  21. package/dest/abi/function_selector.js +7 -0
  22. package/dest/abi/selector.js +3 -1
  23. package/dest/abi/utils.d.ts +20 -1
  24. package/dest/abi/utils.d.ts.map +1 -1
  25. package/dest/abi/utils.js +22 -0
  26. package/dest/auth_witness/auth_witness.d.ts +2 -1
  27. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  28. package/dest/auth_witness/auth_witness.js +3 -3
  29. package/dest/avm/avm.d.ts +362 -362
  30. package/dest/avm/avm.js +1 -1
  31. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  32. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  33. package/dest/avm/avm_accumulated_data.js +5 -2
  34. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  35. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  36. package/dest/avm/avm_proving_request.d.ts +465 -465
  37. package/dest/avm/contract_storage_read.d.ts +13 -1
  38. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  39. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  40. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  41. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  42. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  43. package/dest/avm/public_data_read.d.ts +10 -1
  44. package/dest/avm/public_data_read.d.ts.map +1 -1
  45. package/dest/avm/public_data_update_request.d.ts +10 -1
  46. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  47. package/dest/avm/public_data_update_request.js +3 -1
  48. package/dest/avm/public_data_write.d.ts +7 -1
  49. package/dest/avm/public_data_write.d.ts.map +1 -1
  50. package/dest/avm/public_inner_call_request.d.ts +4 -1
  51. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  52. package/dest/avm/public_inner_call_request.js +3 -1
  53. package/dest/avm/revert_code.d.ts +19 -4
  54. package/dest/avm/revert_code.d.ts.map +1 -1
  55. package/dest/avm/revert_code.js +18 -6
  56. package/dest/aztec-address/index.js +4 -2
  57. package/dest/block/attestation_info.d.ts +5 -5
  58. package/dest/block/attestation_info.d.ts.map +1 -1
  59. package/dest/block/attestation_info.js +4 -4
  60. package/dest/block/block_data.d.ts +52 -0
  61. package/dest/block/block_data.d.ts.map +1 -0
  62. package/dest/block/block_data.js +12 -0
  63. package/dest/block/block_hash.d.ts +18 -14
  64. package/dest/block/block_hash.d.ts.map +1 -1
  65. package/dest/block/block_hash.js +22 -20
  66. package/dest/block/block_parameter.d.ts +4 -3
  67. package/dest/block/block_parameter.d.ts.map +1 -1
  68. package/dest/block/block_parameter.js +2 -0
  69. package/dest/block/body.d.ts +1 -1
  70. package/dest/block/body.d.ts.map +1 -1
  71. package/dest/block/body.js +5 -2
  72. package/dest/block/checkpointed_l2_block.d.ts +150 -0
  73. package/dest/block/checkpointed_l2_block.d.ts.map +1 -0
  74. package/dest/block/checkpointed_l2_block.js +46 -0
  75. package/dest/block/in_block.d.ts +9 -9
  76. package/dest/block/in_block.d.ts.map +1 -1
  77. package/dest/block/in_block.js +5 -5
  78. package/dest/block/index.d.ts +3 -4
  79. package/dest/block/index.d.ts.map +1 -1
  80. package/dest/block/index.js +2 -3
  81. package/dest/block/l2_block.d.ts +65 -57
  82. package/dest/block/l2_block.d.ts.map +1 -1
  83. package/dest/block/l2_block.js +73 -107
  84. package/dest/block/l2_block_source.d.ts +372 -92
  85. package/dest/block/l2_block_source.d.ts.map +1 -1
  86. package/dest/block/l2_block_source.js +25 -6
  87. package/dest/block/l2_block_stream/index.d.ts +2 -1
  88. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/index.js +1 -0
  90. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  91. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_block_stream.d.ts +13 -3
  93. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  94. package/dest/block/l2_block_stream/l2_block_stream.js +125 -32
  95. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  96. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  97. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  98. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  99. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  100. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +478 -41
  104. package/dest/block/validate_block_result.d.ts +24 -24
  105. package/dest/block/validate_block_result.d.ts.map +1 -1
  106. package/dest/block/validate_block_result.js +18 -17
  107. package/dest/checkpoint/checkpoint.d.ts +58 -18
  108. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint.js +83 -16
  110. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  111. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  112. package/dest/checkpoint/checkpoint_data.js +26 -0
  113. package/dest/checkpoint/checkpoint_info.d.ts +38 -0
  114. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -0
  115. package/dest/checkpoint/checkpoint_info.js +34 -0
  116. package/dest/checkpoint/index.d.ts +4 -1
  117. package/dest/checkpoint/index.d.ts.map +1 -1
  118. package/dest/checkpoint/index.js +3 -0
  119. package/dest/checkpoint/published_checkpoint.d.ts +46 -23
  120. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  121. package/dest/checkpoint/published_checkpoint.js +15 -5
  122. package/dest/checkpoint/validate.d.ts +36 -0
  123. package/dest/checkpoint/validate.d.ts.map +1 -0
  124. package/dest/checkpoint/validate.js +120 -0
  125. package/dest/config/index.d.ts +2 -1
  126. package/dest/config/index.d.ts.map +1 -1
  127. package/dest/config/index.js +1 -0
  128. package/dest/config/node-rpc-config.js +1 -1
  129. package/dest/config/sequencer-config.d.ts +10 -0
  130. package/dest/config/sequencer-config.d.ts.map +1 -0
  131. package/dest/config/sequencer-config.js +23 -0
  132. package/dest/contract/complete_address.d.ts +4 -1
  133. package/dest/contract/complete_address.d.ts.map +1 -1
  134. package/dest/contract/contract_address.js +4 -4
  135. package/dest/contract/contract_class.d.ts +2 -3
  136. package/dest/contract/contract_class.d.ts.map +1 -1
  137. package/dest/contract/contract_class_id.d.ts +2 -2
  138. package/dest/contract/contract_class_id.d.ts.map +1 -1
  139. package/dest/contract/contract_class_id.js +6 -5
  140. package/dest/contract/contract_deployment_data.d.ts +5 -5
  141. package/dest/contract/index.d.ts +1 -3
  142. package/dest/contract/index.d.ts.map +1 -1
  143. package/dest/contract/index.js +0 -2
  144. package/dest/contract/interfaces/contract_class.d.ts +11 -13
  145. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  146. package/dest/contract/interfaces/contract_class.js +18 -18
  147. package/dest/contract/interfaces/contract_instance.d.ts +28 -29
  148. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  149. package/dest/contract/interfaces/contract_instance.js +5 -5
  150. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -7
  151. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  152. package/dest/contract/interfaces/contract_instance_update.js +5 -5
  153. package/dest/contract/interfaces/node-info.d.ts +3 -1
  154. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  155. package/dest/contract/interfaces/node-info.js +2 -1
  156. package/dest/contract/private_function.d.ts +1 -1
  157. package/dest/contract/private_function.d.ts.map +1 -1
  158. package/dest/contract/private_function.js +3 -4
  159. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  160. package/dest/contract/private_function_membership_proof.js +1 -1
  161. package/dest/database-version/database_version.d.ts +58 -0
  162. package/dest/database-version/database_version.d.ts.map +1 -0
  163. package/dest/database-version/database_version.js +69 -0
  164. package/dest/database-version/version_manager.d.ts +3 -49
  165. package/dest/database-version/version_manager.d.ts.map +1 -1
  166. package/dest/database-version/version_manager.js +1 -64
  167. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  168. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  169. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  170. package/dest/deserialization/index.d.ts +11 -0
  171. package/dest/deserialization/index.d.ts.map +1 -0
  172. package/dest/deserialization/index.js +10 -0
  173. package/dest/epoch-helpers/index.d.ts +11 -1
  174. package/dest/epoch-helpers/index.d.ts.map +1 -1
  175. package/dest/epoch-helpers/index.js +14 -6
  176. package/dest/errors/proving_error.d.ts +2 -2
  177. package/dest/errors/proving_error.d.ts.map +1 -1
  178. package/dest/file-store/local.d.ts +3 -3
  179. package/dest/file-store/local.d.ts.map +1 -1
  180. package/dest/file-store/local.js +13 -4
  181. package/dest/file-store/s3.d.ts +1 -1
  182. package/dest/file-store/s3.d.ts.map +1 -1
  183. package/dest/file-store/s3.js +11 -3
  184. package/dest/gas/gas.js +3 -1
  185. package/dest/gas/gas_fees.js +3 -1
  186. package/dest/hash/hash.d.ts +2 -9
  187. package/dest/hash/hash.d.ts.map +1 -1
  188. package/dest/hash/hash.js +14 -20
  189. package/dest/hash/map_slot.d.ts +1 -1
  190. package/dest/hash/map_slot.d.ts.map +1 -1
  191. package/dest/hash/map_slot.js +4 -3
  192. package/dest/interfaces/allowed_element.d.ts +30 -25
  193. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  194. package/dest/interfaces/allowed_element.js +11 -11
  195. package/dest/interfaces/api_limit.d.ts +3 -1
  196. package/dest/interfaces/api_limit.d.ts.map +1 -1
  197. package/dest/interfaces/api_limit.js +2 -0
  198. package/dest/interfaces/archiver.d.ts +6 -6
  199. package/dest/interfaces/archiver.d.ts.map +1 -1
  200. package/dest/interfaces/archiver.js +33 -17
  201. package/dest/interfaces/aztec-node-admin.d.ts +202 -65
  202. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  203. package/dest/interfaces/aztec-node-admin.js +15 -7
  204. package/dest/interfaces/aztec-node.d.ts +86 -83
  205. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  206. package/dest/interfaces/aztec-node.js +18 -18
  207. package/dest/interfaces/block-builder.d.ts +27 -15
  208. package/dest/interfaces/block-builder.d.ts.map +1 -1
  209. package/dest/interfaces/block-builder.js +24 -1
  210. package/dest/interfaces/configs.d.ts +132 -53
  211. package/dest/interfaces/configs.d.ts.map +1 -1
  212. package/dest/interfaces/configs.js +22 -8
  213. package/dest/interfaces/get_logs_response.d.ts +27 -5
  214. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  215. package/dest/interfaces/get_logs_response.js +5 -4
  216. package/dest/interfaces/l2_logs_source.d.ts +21 -8
  217. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  218. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  219. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  220. package/dest/interfaces/p2p.d.ts +9 -16
  221. package/dest/interfaces/p2p.d.ts.map +1 -1
  222. package/dest/interfaces/p2p.js +3 -4
  223. package/dest/interfaces/prover-broker.d.ts +16 -1
  224. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  225. package/dest/interfaces/prover-broker.js +4 -1
  226. package/dest/interfaces/prover-client.d.ts +24 -3
  227. package/dest/interfaces/prover-client.d.ts.map +1 -1
  228. package/dest/interfaces/prover-client.js +22 -4
  229. package/dest/interfaces/proving-job.d.ts +218 -218
  230. package/dest/interfaces/proving-job.d.ts.map +1 -1
  231. package/dest/interfaces/proving-job.js +1 -7
  232. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  233. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  234. package/dest/interfaces/slasher.d.ts +9 -1
  235. package/dest/interfaces/slasher.d.ts.map +1 -1
  236. package/dest/interfaces/slasher.js +5 -3
  237. package/dest/interfaces/tx_provider.d.ts +3 -3
  238. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  239. package/dest/interfaces/validator.d.ts +224 -47
  240. package/dest/interfaces/validator.d.ts.map +1 -1
  241. package/dest/interfaces/validator.js +17 -8
  242. package/dest/interfaces/world_state.d.ts +17 -8
  243. package/dest/interfaces/world_state.d.ts.map +1 -1
  244. package/dest/kernel/claimed_length_array.js +3 -1
  245. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +7 -6
  246. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  247. package/dest/kernel/hints/build_note_hash_read_request_hints.js +31 -19
  248. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  249. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  250. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  251. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  252. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  253. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  254. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
  255. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  256. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -3
  257. package/dest/kernel/hints/index.d.ts +2 -2
  258. package/dest/kernel/hints/index.js +2 -2
  259. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  260. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  261. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  262. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  263. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  264. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  265. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  266. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  267. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  268. package/dest/kernel/hints/read_request.d.ts +7 -1
  269. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  270. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  271. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  272. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  273. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  274. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  275. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  276. package/dest/kernel/log_hash.js +3 -1
  277. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  278. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  279. package/dest/kernel/private_call_data.d.ts +25 -1
  280. package/dest/kernel/private_call_data.d.ts.map +1 -1
  281. package/dest/kernel/private_call_request.d.ts +16 -1
  282. package/dest/kernel/private_call_request.d.ts.map +1 -1
  283. package/dest/kernel/private_circuit_public_inputs.d.ts +126 -53
  284. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  285. package/dest/kernel/private_circuit_public_inputs.js +71 -71
  286. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  287. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  288. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  289. package/dest/kernel/private_kernel_data.d.ts +7 -1
  290. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  291. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  292. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  293. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  294. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  295. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  296. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  297. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  298. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  299. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  300. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
  301. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  302. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  303. package/dest/kernel/private_log_data.js +5 -2
  304. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  305. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  306. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  307. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  308. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  309. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  310. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  311. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  312. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  313. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  314. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  315. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  316. package/dest/kernel/private_validation_requests.d.ts +13 -4
  317. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  318. package/dest/kernel/private_validation_requests.js +12 -10
  319. package/dest/kernel/public_call_request.d.ts +22 -1
  320. package/dest/kernel/public_call_request.d.ts.map +1 -1
  321. package/dest/kernel/public_call_request.js +5 -2
  322. package/dest/kernel/utils/optional_number.d.ts +7 -1
  323. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  324. package/dest/keys/derivation.d.ts +3 -3
  325. package/dest/keys/derivation.js +15 -15
  326. package/dest/keys/key_types.d.ts +3 -3
  327. package/dest/keys/key_types.d.ts.map +1 -1
  328. package/dest/keys/public_keys.d.ts +5 -1
  329. package/dest/keys/public_keys.d.ts.map +1 -1
  330. package/dest/keys/public_keys.js +2 -2
  331. package/dest/keys/utils.d.ts +1 -1
  332. package/dest/keys/utils.d.ts.map +1 -1
  333. package/dest/keys/utils.js +8 -4
  334. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  335. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  336. package/dest/l1-contracts/slash_factory.js +1 -0
  337. package/dest/logs/contract_class_log.js +3 -1
  338. package/dest/logs/debug_log_store.d.ts +30 -0
  339. package/dest/logs/debug_log_store.d.ts.map +1 -0
  340. package/dest/logs/debug_log_store.js +30 -0
  341. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  342. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  343. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  344. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  345. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  346. package/dest/logs/extended_public_log.d.ts +17 -3
  347. package/dest/logs/extended_public_log.d.ts.map +1 -1
  348. package/dest/logs/index.d.ts +5 -3
  349. package/dest/logs/index.d.ts.map +1 -1
  350. package/dest/logs/index.js +4 -2
  351. package/dest/logs/log_id.d.ts +22 -7
  352. package/dest/logs/log_id.d.ts.map +1 -1
  353. package/dest/logs/log_id.js +23 -13
  354. package/dest/logs/pre_tag.d.ts +16 -11
  355. package/dest/logs/pre_tag.d.ts.map +1 -1
  356. package/dest/logs/pre_tag.js +2 -2
  357. package/dest/logs/private_log.d.ts +2 -2
  358. package/dest/logs/private_log.d.ts.map +1 -1
  359. package/dest/logs/private_log.js +5 -2
  360. package/dest/logs/public_log.d.ts +4 -3
  361. package/dest/logs/public_log.d.ts.map +1 -1
  362. package/dest/logs/public_log.js +5 -2
  363. package/dest/logs/siloed_tag.d.ts +25 -0
  364. package/dest/logs/siloed_tag.d.ts.map +1 -0
  365. package/dest/logs/siloed_tag.js +32 -0
  366. package/dest/logs/tag.d.ts +21 -0
  367. package/dest/logs/tag.d.ts.map +1 -0
  368. package/dest/logs/tag.js +30 -0
  369. package/dest/logs/tx_scoped_l2_log.d.ts +24 -33
  370. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  371. package/dest/logs/tx_scoped_l2_log.js +37 -43
  372. package/dest/messaging/in_hash.d.ts +4 -2
  373. package/dest/messaging/in_hash.d.ts.map +1 -1
  374. package/dest/messaging/in_hash.js +3 -1
  375. package/dest/messaging/inbox_leaf.d.ts +3 -1
  376. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  377. package/dest/messaging/l1_actor.d.ts +7 -1
  378. package/dest/messaging/l1_actor.d.ts.map +1 -1
  379. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  380. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  381. package/dest/messaging/l2_actor.d.ts +7 -1
  382. package/dest/messaging/l2_actor.d.ts.map +1 -1
  383. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  384. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  385. package/dest/messaging/l2_to_l1_membership.js +160 -42
  386. package/dest/messaging/out_hash.d.ts +41 -3
  387. package/dest/messaging/out_hash.d.ts.map +1 -1
  388. package/dest/messaging/out_hash.js +54 -19
  389. package/dest/note/index.d.ts +1 -2
  390. package/dest/note/index.d.ts.map +1 -1
  391. package/dest/note/index.js +0 -1
  392. package/dest/note/note_dao.d.ts +36 -5
  393. package/dest/note/note_dao.d.ts.map +1 -1
  394. package/dest/note/note_dao.js +15 -12
  395. package/dest/p2p/attestation_utils.d.ts +13 -3
  396. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  397. package/dest/p2p/attestation_utils.js +46 -1
  398. package/dest/p2p/block_proposal.d.ts +102 -23
  399. package/dest/p2p/block_proposal.d.ts.map +1 -1
  400. package/dest/p2p/block_proposal.js +138 -39
  401. package/dest/p2p/checkpoint_attestation.d.ts +82 -0
  402. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  403. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  404. package/dest/p2p/checkpoint_proposal.d.ts +174 -0
  405. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  406. package/dest/p2p/checkpoint_proposal.js +231 -0
  407. package/dest/p2p/client_type.d.ts +2 -5
  408. package/dest/p2p/client_type.d.ts.map +1 -1
  409. package/dest/p2p/client_type.js +0 -7
  410. package/dest/p2p/consensus_payload.d.ts +20 -11
  411. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  412. package/dest/p2p/consensus_payload.js +24 -19
  413. package/dest/p2p/constants.d.ts +5 -0
  414. package/dest/p2p/constants.d.ts.map +1 -0
  415. package/dest/p2p/constants.js +3 -0
  416. package/dest/p2p/gossipable.d.ts +4 -3
  417. package/dest/p2p/gossipable.d.ts.map +1 -1
  418. package/dest/p2p/gossipable.js +16 -5
  419. package/dest/p2p/index.d.ts +5 -3
  420. package/dest/p2p/index.d.ts.map +1 -1
  421. package/dest/p2p/index.js +4 -2
  422. package/dest/p2p/message_validator.d.ts +18 -3
  423. package/dest/p2p/message_validator.d.ts.map +1 -1
  424. package/dest/p2p/message_validator.js +2 -1
  425. package/dest/p2p/peer_error.d.ts +3 -1
  426. package/dest/p2p/peer_error.d.ts.map +1 -1
  427. package/dest/p2p/peer_error.js +5 -0
  428. package/dest/p2p/signature_utils.d.ts +5 -3
  429. package/dest/p2p/signature_utils.d.ts.map +1 -1
  430. package/dest/p2p/signature_utils.js +3 -1
  431. package/dest/p2p/signed_txs.d.ts +42 -0
  432. package/dest/p2p/signed_txs.d.ts.map +1 -0
  433. package/dest/p2p/signed_txs.js +75 -0
  434. package/dest/p2p/topic_type.d.ts +5 -5
  435. package/dest/p2p/topic_type.d.ts.map +1 -1
  436. package/dest/p2p/topic_type.js +9 -19
  437. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  438. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  439. package/dest/parity/parity_public_inputs.d.ts +4 -1
  440. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  441. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  442. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  443. package/dest/proofs/chonk_proof.d.ts +1 -1
  444. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  445. package/dest/proofs/chonk_proof.js +9 -4
  446. package/dest/proofs/proof.d.ts +4 -1
  447. package/dest/proofs/proof.d.ts.map +1 -1
  448. package/dest/proofs/recursive_proof.d.ts +10 -1
  449. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  450. package/dest/rollup/avm_proof_data.d.ts +1 -3
  451. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  452. package/dest/rollup/avm_proof_data.js +1 -9
  453. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  454. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  455. package/dest/rollup/block_constant_data.d.ts +12 -1
  456. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  457. package/dest/rollup/block_headers_hash.js +1 -1
  458. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  459. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  460. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  461. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  462. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  463. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  464. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  465. package/dest/rollup/checkpoint_constant_data.d.ts +11 -1
  466. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  467. package/dest/rollup/checkpoint_constant_data.js +4 -1
  468. package/dest/rollup/checkpoint_header.d.ts +46 -12
  469. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  470. package/dest/rollup/checkpoint_header.js +53 -20
  471. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  472. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  473. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +46 -6
  474. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  475. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
  476. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  477. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  478. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  479. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  480. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  481. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  482. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  483. package/dest/rollup/root_rollup_public_inputs.d.ts +21 -6
  484. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  485. package/dest/rollup/root_rollup_public_inputs.js +10 -4
  486. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  487. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  488. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  489. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  490. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  491. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  492. package/dest/schemas/schemas.d.ts +5 -3
  493. package/dest/schemas/schemas.d.ts.map +1 -1
  494. package/dest/schemas/schemas.js +2 -1
  495. package/dest/slashing/empire.d.ts +1 -1
  496. package/dest/slashing/empire.d.ts.map +1 -1
  497. package/dest/slashing/empire.js +2 -0
  498. package/dest/slashing/helpers.d.ts +2 -2
  499. package/dest/slashing/helpers.d.ts.map +1 -1
  500. package/dest/slashing/helpers.js +6 -0
  501. package/dest/slashing/tally.d.ts +8 -2
  502. package/dest/slashing/tally.d.ts.map +1 -1
  503. package/dest/slashing/tally.js +35 -3
  504. package/dest/slashing/types.d.ts +10 -7
  505. package/dest/slashing/types.d.ts.map +1 -1
  506. package/dest/slashing/types.js +18 -6
  507. package/dest/snapshots/types.d.ts +1 -1
  508. package/dest/snapshots/types.d.ts.map +1 -1
  509. package/dest/snapshots/types.js +5 -5
  510. package/dest/stats/stats.d.ts +10 -8
  511. package/dest/stats/stats.d.ts.map +1 -1
  512. package/dest/tests/factories.d.ts +41 -10
  513. package/dest/tests/factories.d.ts.map +1 -1
  514. package/dest/tests/factories.js +99 -36
  515. package/dest/tests/jest.js +1 -1
  516. package/dest/tests/mocks.d.ts +81 -20
  517. package/dest/tests/mocks.d.ts.map +1 -1
  518. package/dest/tests/mocks.js +160 -71
  519. package/dest/timetable/index.d.ts +37 -0
  520. package/dest/timetable/index.d.ts.map +1 -0
  521. package/dest/timetable/index.js +39 -0
  522. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  523. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  524. package/dest/trees/append_only_tree_snapshot.js +3 -1
  525. package/dest/trees/nullifier_leaf.d.ts +13 -1
  526. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  527. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  528. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  529. package/dest/trees/public_data_leaf.d.ts +17 -1
  530. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  531. package/dest/trees/public_data_leaf.js +7 -6
  532. package/dest/trees/public_data_witness.d.ts +11 -1
  533. package/dest/trees/public_data_witness.d.ts.map +1 -1
  534. package/dest/tx/block_header.d.ts +23 -8
  535. package/dest/tx/block_header.d.ts.map +1 -1
  536. package/dest/tx/block_header.js +17 -3
  537. package/dest/tx/call_context.d.ts +13 -1
  538. package/dest/tx/call_context.d.ts.map +1 -1
  539. package/dest/tx/call_context.js +3 -1
  540. package/dest/tx/capsule.d.ts +4 -1
  541. package/dest/tx/capsule.d.ts.map +1 -1
  542. package/dest/tx/execution_payload.d.ts +9 -1
  543. package/dest/tx/execution_payload.d.ts.map +1 -1
  544. package/dest/tx/function_data.d.ts +4 -2
  545. package/dest/tx/function_data.d.ts.map +1 -1
  546. package/dest/tx/global_variable_builder.d.ts +5 -3
  547. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  548. package/dest/tx/global_variables.d.ts +14 -1
  549. package/dest/tx/global_variables.d.ts.map +1 -1
  550. package/dest/tx/global_variables.js +3 -1
  551. package/dest/tx/hashed_values.d.ts +7 -1
  552. package/dest/tx/hashed_values.d.ts.map +1 -1
  553. package/dest/tx/in_tx.d.ts +4 -4
  554. package/dest/tx/index.d.ts +1 -2
  555. package/dest/tx/index.d.ts.map +1 -1
  556. package/dest/tx/index.js +0 -1
  557. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  558. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  559. package/dest/tx/indexed_tx_effect.js +3 -2
  560. package/dest/tx/partial_state_reference.d.ts +4 -1
  561. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  562. package/dest/tx/private_execution_result.d.ts +24 -7
  563. package/dest/tx/private_execution_result.d.ts.map +1 -1
  564. package/dest/tx/private_execution_result.js +4 -21
  565. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  566. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  567. package/dest/tx/profiling.d.ts +152 -29
  568. package/dest/tx/profiling.d.ts.map +1 -1
  569. package/dest/tx/profiling.js +47 -10
  570. package/dest/tx/protocol_contracts.d.ts +2 -2
  571. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  572. package/dest/tx/protocol_contracts.js +2 -2
  573. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  574. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  575. package/dest/tx/public_call_request_with_calldata.js +3 -1
  576. package/dest/tx/public_simulation_output.d.ts +4 -2
  577. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  578. package/dest/tx/public_simulation_output.js +7 -3
  579. package/dest/tx/simulated_tx.d.ts +1035 -8
  580. package/dest/tx/simulated_tx.d.ts.map +1 -1
  581. package/dest/tx/simulated_tx.js +4 -1
  582. package/dest/tx/state_reference.d.ts +3 -1
  583. package/dest/tx/state_reference.d.ts.map +1 -1
  584. package/dest/tx/state_reference.js +3 -1
  585. package/dest/tx/tree_snapshots.js +3 -1
  586. package/dest/tx/tx.d.ts +38 -7
  587. package/dest/tx/tx.d.ts.map +1 -1
  588. package/dest/tx/tx.js +36 -12
  589. package/dest/tx/tx_context.d.ts +2 -1
  590. package/dest/tx/tx_context.d.ts.map +1 -1
  591. package/dest/tx/tx_effect.d.ts +32 -6
  592. package/dest/tx/tx_effect.d.ts.map +1 -1
  593. package/dest/tx/tx_effect.js +6 -9
  594. package/dest/tx/tx_execution_request.d.ts +30 -1
  595. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  596. package/dest/tx/tx_execution_request.js +6 -2
  597. package/dest/tx/tx_hash.d.ts +2 -1
  598. package/dest/tx/tx_hash.d.ts.map +1 -1
  599. package/dest/tx/tx_receipt.d.ts +62 -14
  600. package/dest/tx/tx_receipt.d.ts.map +1 -1
  601. package/dest/tx/tx_receipt.js +55 -16
  602. package/dest/tx/tx_request.d.ts +6 -1
  603. package/dest/tx/tx_request.d.ts.map +1 -1
  604. package/dest/tx/tx_request.js +2 -2
  605. package/dest/tx/validator/empty_validator.d.ts +2 -2
  606. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  607. package/dest/tx/validator/error_texts.d.ts +7 -2
  608. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  609. package/dest/tx/validator/error_texts.js +7 -1
  610. package/dest/tx/validator/tx_validator.d.ts +2 -5
  611. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  612. package/dest/tx/validator/tx_validator.js +4 -4
  613. package/dest/types/shared.d.ts +4 -1
  614. package/dest/types/shared.d.ts.map +1 -1
  615. package/dest/update-checker/index.d.ts +3 -2
  616. package/dest/update-checker/index.d.ts.map +1 -1
  617. package/dest/update-checker/index.js +2 -1
  618. package/dest/update-checker/package_version.d.ts +3 -0
  619. package/dest/update-checker/package_version.d.ts.map +1 -0
  620. package/dest/update-checker/package_version.js +24 -0
  621. package/dest/update-checker/version_checker.d.ts +25 -0
  622. package/dest/update-checker/version_checker.d.ts.map +1 -0
  623. package/dest/update-checker/version_checker.js +50 -0
  624. package/dest/validators/errors.d.ts +6 -1
  625. package/dest/validators/errors.d.ts.map +1 -1
  626. package/dest/validators/errors.js +7 -0
  627. package/dest/validators/schemas.d.ts +38 -38
  628. package/dest/validators/schemas.d.ts.map +1 -1
  629. package/dest/validators/schemas.js +17 -16
  630. package/dest/validators/types.d.ts +3 -3
  631. package/dest/validators/types.d.ts.map +1 -1
  632. package/dest/vks/verification_key.d.ts +22 -1
  633. package/dest/vks/verification_key.d.ts.map +1 -1
  634. package/dest/vks/vk_data.d.ts +7 -1
  635. package/dest/vks/vk_data.d.ts.map +1 -1
  636. package/dest/zkpassport/index.d.ts +3 -4
  637. package/dest/zkpassport/index.d.ts.map +1 -1
  638. package/dest/zkpassport/index.js +9 -9
  639. package/package.json +28 -14
  640. package/src/abi/abi.ts +39 -33
  641. package/src/abi/contract_artifact.ts +10 -10
  642. package/src/abi/decoder.ts +15 -6
  643. package/src/abi/encoder.ts +49 -6
  644. package/src/abi/event_metadata_definition.ts +2 -0
  645. package/src/abi/function_call.ts +25 -3
  646. package/src/abi/function_selector.ts +8 -0
  647. package/src/abi/utils.ts +42 -0
  648. package/src/auth_witness/auth_witness.ts +3 -3
  649. package/src/avm/avm.ts +1 -1
  650. package/src/avm/revert_code.ts +15 -0
  651. package/src/block/attestation_info.ts +9 -6
  652. package/src/block/block_data.ts +26 -0
  653. package/src/block/block_hash.ts +26 -25
  654. package/src/block/block_parameter.ts +4 -2
  655. package/src/block/body.ts +2 -1
  656. package/src/block/checkpointed_l2_block.ts +70 -0
  657. package/src/block/in_block.ts +6 -6
  658. package/src/block/index.ts +2 -3
  659. package/src/block/l2_block.ts +112 -147
  660. package/src/block/l2_block_source.ts +207 -70
  661. package/src/block/l2_block_stream/index.ts +1 -0
  662. package/src/block/l2_block_stream/interfaces.ts +15 -4
  663. package/src/block/l2_block_stream/l2_block_stream.ts +160 -39
  664. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  665. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  666. package/src/block/test/l2_tips_store_test_suite.ts +480 -35
  667. package/src/block/validate_block_result.ts +40 -35
  668. package/src/checkpoint/checkpoint.ts +120 -23
  669. package/src/checkpoint/checkpoint_data.ts +51 -0
  670. package/src/checkpoint/checkpoint_info.ts +52 -0
  671. package/src/checkpoint/index.ts +3 -0
  672. package/src/checkpoint/published_checkpoint.ts +25 -8
  673. package/src/checkpoint/validate.ts +230 -0
  674. package/src/config/index.ts +1 -0
  675. package/src/config/node-rpc-config.ts +1 -1
  676. package/src/config/sequencer-config.ts +34 -0
  677. package/src/contract/contract_address.ts +4 -4
  678. package/src/contract/contract_class.ts +3 -3
  679. package/src/contract/contract_class_id.ts +6 -5
  680. package/src/contract/index.ts +0 -2
  681. package/src/contract/interfaces/contract_class.ts +59 -46
  682. package/src/contract/interfaces/contract_instance.ts +15 -13
  683. package/src/contract/interfaces/contract_instance_update.ts +11 -9
  684. package/src/contract/interfaces/node-info.ts +3 -0
  685. package/src/contract/private_function.ts +3 -4
  686. package/src/contract/private_function_membership_proof.ts +1 -1
  687. package/src/database-version/database_version.ts +87 -0
  688. package/src/database-version/version_manager.ts +1 -77
  689. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  690. package/src/deserialization/index.ts +21 -0
  691. package/src/epoch-helpers/index.ts +27 -10
  692. package/src/file-store/local.ts +15 -5
  693. package/src/file-store/s3.ts +12 -3
  694. package/src/hash/hash.ts +12 -19
  695. package/src/hash/map_slot.ts +3 -2
  696. package/src/interfaces/allowed_element.ts +34 -12
  697. package/src/interfaces/api_limit.ts +2 -0
  698. package/src/interfaces/archiver.ts +41 -25
  699. package/src/interfaces/aztec-node-admin.ts +33 -6
  700. package/src/interfaces/aztec-node.ts +133 -139
  701. package/src/interfaces/block-builder.ts +76 -25
  702. package/src/interfaces/configs.ts +104 -37
  703. package/src/interfaces/get_logs_response.ts +13 -9
  704. package/src/interfaces/l2_logs_source.ts +25 -7
  705. package/src/interfaces/merkle_tree_operations.ts +4 -1
  706. package/src/interfaces/p2p.ts +10 -25
  707. package/src/interfaces/prover-broker.ts +22 -0
  708. package/src/interfaces/prover-client.ts +43 -10
  709. package/src/interfaces/proving-job.ts +2 -11
  710. package/src/interfaces/server_circuit_prover.ts +3 -3
  711. package/src/interfaces/slasher.ts +28 -22
  712. package/src/interfaces/tx_provider.ts +2 -2
  713. package/src/interfaces/validator.ts +110 -32
  714. package/src/interfaces/world_state.ts +16 -9
  715. package/src/kernel/hints/build_note_hash_read_request_hints.ts +34 -30
  716. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
  717. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  718. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +2 -4
  719. package/src/kernel/hints/index.ts +2 -2
  720. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  721. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  722. package/src/kernel/private_circuit_public_inputs.ts +99 -99
  723. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  724. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  725. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  726. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  727. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  728. package/src/kernel/private_validation_requests.ts +8 -8
  729. package/src/keys/derivation.ts +15 -15
  730. package/src/keys/key_types.ts +6 -2
  731. package/src/keys/public_keys.ts +2 -2
  732. package/src/keys/utils.ts +8 -4
  733. package/src/l1-contracts/slash_factory.ts +1 -0
  734. package/src/logs/debug_log_store.ts +54 -0
  735. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  736. package/src/logs/index.ts +4 -2
  737. package/src/logs/log_id.ts +26 -12
  738. package/src/logs/pre_tag.ts +5 -5
  739. package/src/logs/private_log.ts +2 -1
  740. package/src/logs/public_log.ts +4 -2
  741. package/src/logs/siloed_tag.ts +50 -0
  742. package/src/logs/tag.ts +42 -0
  743. package/src/logs/tx_scoped_l2_log.ts +45 -43
  744. package/src/messaging/in_hash.ts +3 -1
  745. package/src/messaging/l1_to_l2_message.ts +1 -0
  746. package/src/messaging/l2_to_l1_membership.ts +178 -52
  747. package/src/messaging/out_hash.ts +62 -21
  748. package/src/note/index.ts +0 -1
  749. package/src/note/note_dao.ts +18 -13
  750. package/src/p2p/attestation_utils.ts +59 -3
  751. package/src/p2p/block_proposal.ts +211 -46
  752. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
  753. package/src/p2p/checkpoint_proposal.ts +370 -0
  754. package/src/p2p/client_type.ts +0 -6
  755. package/src/p2p/consensus_payload.ts +29 -18
  756. package/src/p2p/constants.ts +6 -0
  757. package/src/p2p/gossipable.ts +14 -4
  758. package/src/p2p/index.ts +4 -2
  759. package/src/p2p/message_validator.ts +14 -2
  760. package/src/p2p/peer_error.ts +7 -0
  761. package/src/p2p/signature_utils.ts +3 -1
  762. package/src/p2p/signed_txs.ts +88 -0
  763. package/src/p2p/topic_type.ts +10 -16
  764. package/src/proofs/chonk_proof.ts +9 -5
  765. package/src/rollup/avm_proof_data.ts +0 -7
  766. package/src/rollup/block_headers_hash.ts +1 -1
  767. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  768. package/src/rollup/checkpoint_constant_data.ts +1 -0
  769. package/src/rollup/checkpoint_header.ts +67 -20
  770. package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
  771. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  772. package/src/rollup/root_rollup_public_inputs.ts +16 -7
  773. package/src/schemas/schemas.ts +4 -0
  774. package/src/slashing/empire.ts +3 -1
  775. package/src/slashing/helpers.ts +8 -0
  776. package/src/slashing/tally.ts +41 -2
  777. package/src/slashing/types.ts +38 -20
  778. package/src/snapshots/types.ts +33 -29
  779. package/src/stats/stats.ts +10 -7
  780. package/src/tests/factories.ts +124 -54
  781. package/src/tests/jest.ts +1 -1
  782. package/src/tests/mocks.ts +260 -100
  783. package/src/timetable/index.ts +66 -0
  784. package/src/trees/public_data_leaf.ts +11 -5
  785. package/src/tx/block_header.ts +28 -9
  786. package/src/tx/global_variable_builder.ts +9 -2
  787. package/src/tx/global_variables.ts +6 -0
  788. package/src/tx/index.ts +0 -1
  789. package/src/tx/indexed_tx_effect.ts +3 -2
  790. package/src/tx/private_execution_result.ts +2 -17
  791. package/src/tx/profiling.ts +51 -9
  792. package/src/tx/protocol_contracts.ts +2 -2
  793. package/src/tx/public_simulation_output.ts +4 -0
  794. package/src/tx/simulated_tx.ts +8 -1
  795. package/src/tx/tx.ts +39 -22
  796. package/src/tx/tx_effect.ts +3 -10
  797. package/src/tx/tx_execution_request.ts +2 -0
  798. package/src/tx/tx_receipt.ts +85 -18
  799. package/src/tx/tx_request.ts +2 -2
  800. package/src/tx/validator/empty_validator.ts +1 -1
  801. package/src/tx/validator/error_texts.ts +8 -1
  802. package/src/tx/validator/tx_validator.ts +9 -7
  803. package/src/update-checker/index.ts +2 -1
  804. package/src/update-checker/package_version.ts +30 -0
  805. package/src/update-checker/version_checker.ts +65 -0
  806. package/src/validators/errors.ts +9 -0
  807. package/src/validators/schemas.ts +61 -48
  808. package/src/validators/types.ts +5 -4
  809. package/src/zkpassport/index.ts +11 -12
  810. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  811. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  812. package/dest/block/l2_block_code_to_purge.js +0 -61
  813. package/dest/block/l2_block_header.d.ts +0 -98
  814. package/dest/block/l2_block_header.d.ts.map +0 -1
  815. package/dest/block/l2_block_header.js +0 -153
  816. package/dest/block/l2_block_new.d.ts +0 -130
  817. package/dest/block/l2_block_new.d.ts.map +0 -1
  818. package/dest/block/l2_block_new.js +0 -151
  819. package/dest/block/published_l2_block.d.ts +0 -130
  820. package/dest/block/published_l2_block.d.ts.map +0 -1
  821. package/dest/block/published_l2_block.js +0 -48
  822. package/dest/contract/contract_class_metadata.d.ts +0 -8
  823. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  824. package/dest/contract/contract_class_metadata.js +0 -1
  825. package/dest/contract/contract_metadata.d.ts +0 -7
  826. package/dest/contract/contract_metadata.d.ts.map +0 -1
  827. package/dest/contract/contract_metadata.js +0 -1
  828. package/dest/database-version/index.d.ts +0 -2
  829. package/dest/database-version/index.d.ts.map +0 -1
  830. package/dest/database-version/index.js +0 -1
  831. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  832. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  833. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  834. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  835. package/dest/logs/log_with_tx_data.d.ts +0 -19
  836. package/dest/logs/log_with_tx_data.d.ts.map +0 -1
  837. package/dest/logs/log_with_tx_data.js +0 -49
  838. package/dest/note/notes_filter.d.ts +0 -27
  839. package/dest/note/notes_filter.d.ts.map +0 -1
  840. package/dest/note/notes_filter.js +0 -11
  841. package/dest/p2p/block_attestation.d.ts +0 -80
  842. package/dest/p2p/block_attestation.d.ts.map +0 -1
  843. package/dest/tx/content_commitment.d.ts +0 -49
  844. package/dest/tx/content_commitment.d.ts.map +0 -1
  845. package/dest/tx/content_commitment.js +0 -90
  846. package/dest/update-checker/update-checker.d.ts +0 -49
  847. package/dest/update-checker/update-checker.d.ts.map +0 -1
  848. package/dest/update-checker/update-checker.js +0 -130
  849. package/src/block/l2_block_code_to_purge.ts +0 -88
  850. package/src/block/l2_block_header.ts +0 -246
  851. package/src/block/l2_block_new.ts +0 -197
  852. package/src/block/published_l2_block.ts +0 -65
  853. package/src/contract/contract_class_metadata.ts +0 -8
  854. package/src/contract/contract_metadata.ts +0 -7
  855. package/src/database-version/index.ts +0 -1
  856. package/src/logs/log_with_tx_data.ts +0 -46
  857. package/src/note/notes_filter.ts +0 -38
  858. package/src/tx/content_commitment.ts +0 -113
  859. package/src/update-checker/update-checker.ts +0 -166
@@ -1,4 +1,4 @@
1
- import { BLOCK_HEADER_LENGTH, GeneratorIndex } from '@aztec/constants';
1
+ import { BLOCK_HEADER_LENGTH, DomainSeparator } from '@aztec/constants';
2
2
  import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
4
  import { randomInt } from '@aztec/foundation/crypto/random';
@@ -11,28 +11,31 @@ 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 {
21
+ private _cachedHash?: Promise<BlockHash>;
22
+
20
23
  constructor(
21
24
  /** Snapshot of archive before the block is applied. */
22
- public lastArchive: AppendOnlyTreeSnapshot,
25
+ public readonly lastArchive: AppendOnlyTreeSnapshot,
23
26
  /** State reference. */
24
- public state: StateReference,
27
+ public readonly state: StateReference,
25
28
  /**
26
29
  * Hash of the sponge blob after the tx effects of this block has been applied.
27
30
  * May contain tx effects from the previous blocks in the same checkpoint.
28
31
  */
29
- public spongeBlobHash: Fr,
32
+ public readonly spongeBlobHash: Fr,
30
33
  /** Global variables of an L2 block. */
31
- public globalVariables: GlobalVariables,
34
+ public readonly globalVariables: GlobalVariables,
32
35
  /** Total fees in the block, computed by the root rollup circuit */
33
- public totalFees: Fr,
36
+ public readonly totalFees: Fr,
34
37
  /** Total mana used in the block, computed by the root rollup circuit */
35
- public totalManaUsed: Fr,
38
+ public readonly totalManaUsed: Fr,
36
39
  ) {}
37
40
 
38
41
  static get schema(): ZodFor<BlockHeader> {
@@ -159,8 +162,24 @@ export class BlockHeader {
159
162
  return BlockHeader.fromBuffer(hexToBuffer(str));
160
163
  }
161
164
 
162
- hash(): Promise<Fr> {
163
- return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
165
+ hash(): Promise<BlockHash> {
166
+ if (!this._cachedHash) {
167
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), DomainSeparator.BLOCK_HEADER_HASH).then(
168
+ fr => new BlockHash(fr),
169
+ );
170
+ }
171
+ return this._cachedHash;
172
+ }
173
+
174
+ /** Manually set the hash for this block header if already computed */
175
+ setHash(hashed: Fr) {
176
+ this._cachedHash = Promise.resolve(new BlockHash(hashed));
177
+ }
178
+
179
+ /** Recomputes the cached hash. Used for testing when header fields are mutated via unfreeze. */
180
+ recomputeHash(): Promise<BlockHash> {
181
+ this._cachedHash = undefined;
182
+ return this.hash();
164
183
  }
165
184
 
166
185
  static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
@@ -4,13 +4,13 @@ import type { SlotNumber } from '@aztec/foundation/schemas';
4
4
  import type { AztecAddress } from '../aztec-address/index.js';
5
5
  import type { GasFees } from '../gas/gas_fees.js';
6
6
  import type { UInt32 } from '../types/index.js';
7
- import type { GlobalVariables } from './global_variables.js';
7
+ import type { CheckpointGlobalVariables, GlobalVariables } from './global_variables.js';
8
8
 
9
9
  /**
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.
@@ -26,4 +26,11 @@ export interface GlobalVariableBuilder {
26
26
  feeRecipient: AztecAddress,
27
27
  slotNumber?: SlotNumber,
28
28
  ): Promise<GlobalVariables>;
29
+
30
+ /** Builds global variables that are constant throughout a checkpoint. */
31
+ buildCheckpointGlobalVariables(
32
+ coinbase: EthAddress,
33
+ feeRecipient: AztecAddress,
34
+ slotNumber: SlotNumber,
35
+ ): Promise<CheckpointGlobalVariables>;
29
36
  }
@@ -21,6 +21,12 @@ import { GasFees } from '../gas/gas_fees.js';
21
21
  import { schemas } from '../schemas/index.js';
22
22
  import type { UInt64 } from '../types/index.js';
23
23
 
24
+ /**
25
+ * Global variables that are constant across the entire checkpoint (slot).
26
+ * Excludes blockNumber since that varies per block within a checkpoint.
27
+ */
28
+ export type CheckpointGlobalVariables = Omit<FieldsOf<GlobalVariables>, 'blockNumber'>;
29
+
24
30
  /**
25
31
  * Global variables of the L2 block.
26
32
  */
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';
@@ -1,8 +1,9 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { schemas } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
5
 
5
- import { L2BlockHash } from '../block/block_hash.js';
6
+ import { BlockHash } from '../block/block_hash.js';
6
7
  import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
7
8
  import { TxEffect } from './tx_effect.js';
8
9
 
@@ -26,7 +27,7 @@ export function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer {
26
27
  export function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect {
27
28
  const reader = BufferReader.asReader(buffer);
28
29
 
29
- const l2BlockHash = reader.readObject(L2BlockHash);
30
+ const l2BlockHash = new BlockHash(reader.readObject(Fr));
30
31
  const l2BlockNumber = BlockNumber(reader.readNumber());
31
32
  const txIndexInBlock = reader.readNumber();
32
33
  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[],
@@ -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. */
@@ -139,7 +137,7 @@ export class PrivateCallExecutionResult {
139
137
  public returnValues: Fr[],
140
138
  /** The offchain effects emitted during execution of this function call via the `emit_offchain_effect` oracle. */
141
139
  public offchainEffects: { data: Fr[] }[],
142
- /** The pre tags used in this tx to compute tags for private logs */
140
+ /** The pre-tags used in this tx to compute tags for private logs */
143
141
  public preTags: PreTag[],
144
142
  /** The nested executions. */
145
143
  public nestedExecutionResults: PrivateCallExecutionResult[],
@@ -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,
@@ -123,24 +157,32 @@ export class TxProfileResult {
123
157
  }
124
158
  }
125
159
 
126
- export class UtilitySimulationResult {
160
+ export class UtilityExecutionResult {
127
161
  constructor(
128
162
  public result: Fr[],
129
163
  public stats?: SimulationStats,
130
164
  ) {}
131
165
 
132
- static get schema(): ZodFor<UtilitySimulationResult> {
166
+ static get schema(): ZodFor<UtilityExecutionResult> {
133
167
  return z
134
168
  .object({
135
169
  result: z.array(schemas.Fr),
136
170
  stats: optional(SimulationStatsSchema),
137
171
  })
138
- .transform(({ result, stats }) => new UtilitySimulationResult(result, stats));
172
+ .transform(({ result, stats }) => new UtilityExecutionResult(result, stats));
139
173
  }
140
174
 
141
- static random(): UtilitySimulationResult {
142
- return new UtilitySimulationResult([Fr.random()], {
143
- nodeRPCCalls: { getBlockHeader: { times: [1] } },
175
+ static random(): UtilityExecutionResult {
176
+ return new UtilityExecutionResult([Fr.random()], {
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,
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
1
+ import { DomainSeparator, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
3
  import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
4
4
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
@@ -71,7 +71,7 @@ export class ProtocolContracts {
71
71
  }
72
72
 
73
73
  hash() {
74
- return poseidon2HashWithSeparator(this.derivedAddresses, GeneratorIndex.PROTOCOL_CONTRACTS);
74
+ return poseidon2HashWithSeparator(this.derivedAddresses, DomainSeparator.PROTOCOL_CONTRACTS);
75
75
  }
76
76
 
77
77
  static get schema() {
@@ -7,6 +7,7 @@ import { z } from 'zod';
7
7
  import { SimulationError } from '../errors/simulation_error.js';
8
8
  import { Gas } from '../gas/gas.js';
9
9
  import type { GasUsed } from '../gas/gas_used.js';
10
+ import { DebugLog } from '../logs/debug_log.js';
10
11
  import { NullishToUndefined } from '../schemas/schemas.js';
11
12
  import { TxEffect } from '../tx/tx_effect.js';
12
13
  import { GlobalVariables } from './global_variables.js';
@@ -71,6 +72,7 @@ export class PublicSimulationOutput {
71
72
  public txEffect: TxEffect,
72
73
  public publicReturnValues: NestedProcessReturnValues[],
73
74
  public gasUsed: GasUsed,
75
+ public debugLogs: DebugLog[] = [],
74
76
  ) {}
75
77
 
76
78
  static get schema(): ZodFor<PublicSimulationOutput> {
@@ -86,6 +88,7 @@ export class PublicSimulationOutput {
86
88
  publicGas: Gas.schema,
87
89
  billedGas: Gas.schema,
88
90
  }),
91
+ debugLogs: z.array(DebugLog.schema).default([]),
89
92
  })
90
93
  .transform(
91
94
  fields =>
@@ -95,6 +98,7 @@ export class PublicSimulationOutput {
95
98
  fields.txEffect,
96
99
  fields.publicReturnValues,
97
100
  fields.gasUsed,
101
+ fields.debugLogs,
98
102
  ),
99
103
  );
100
104
  }
@@ -12,9 +12,11 @@ import { Gas } from '../gas/gas.js';
12
12
  import type { GasUsed } from '../gas/gas_used.js';
13
13
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
14
14
  import { ChonkProof } from '../proofs/chonk_proof.js';
15
+ import type { OffchainEffect } from './offchain_effect.js';
15
16
  import {
16
17
  PrivateCallExecutionResult,
17
18
  PrivateExecutionResult,
19
+ collectOffchainEffects,
18
20
  collectSortedContractClassLogs,
19
21
  } from './private_execution_result.js';
20
22
  import { type SimulationStats, SimulationStatsSchema } from './profiling.js';
@@ -84,6 +86,11 @@ export class TxSimulationResult {
84
86
  public stats?: SimulationStats,
85
87
  ) {}
86
88
 
89
+ /** Returns offchain effects collected from private execution. */
90
+ get offchainEffects(): OffchainEffect[] {
91
+ return collectOffchainEffects(this.privateExecutionResult);
92
+ }
93
+
87
94
  get gasUsed(): GasUsed {
88
95
  return (
89
96
  this.publicOutput?.gasUsed ?? {
@@ -106,7 +113,7 @@ export class TxSimulationResult {
106
113
  .transform(TxSimulationResult.from);
107
114
  }
108
115
 
109
- static from(fields: Omit<FieldsOf<TxSimulationResult>, 'gasUsed'>) {
116
+ static from(fields: Omit<FieldsOf<TxSimulationResult>, 'gasUsed' | 'offchainEffects'>) {
110
117
  return new TxSimulationResult(
111
118
  fields.privateExecutionResult,
112
119
  fields.publicInputs,
package/src/tx/tx.ts CHANGED
@@ -1,9 +1,9 @@
1
+ import { DA_GAS_PER_FIELD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
1
2
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { ZodFor } from '@aztec/foundation/schemas';
5
5
  import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
6
- import type { FieldsOf } from '@aztec/foundation/types';
6
+ import { type FieldsOf, unfreeze } from '@aztec/foundation/types';
7
7
 
8
8
  import { z } from 'zod';
9
9
 
@@ -24,13 +24,18 @@ import { TxHash } from './tx_hash.js';
24
24
  /**
25
25
  * The interface of an L2 transaction.
26
26
  */
27
+ // docs:start:tx_class
27
28
  export class Tx extends Gossipable {
28
29
  static override p2pTopic = TopicType.tx;
29
30
 
30
31
  private calldataMap: Map<string, Fr[]> | undefined;
31
32
 
32
33
  constructor(
33
- /** Identifier of the tx */
34
+ /**
35
+ * Identifier of the tx.
36
+ * It's a hash of the public inputs of the tx's proof.
37
+ * This claimed hash is reconciled against the tx's public inputs (`this.data`) in data_validator.ts.
38
+ */
34
39
  public readonly txHash: TxHash,
35
40
  /**
36
41
  * Output of the private kernel circuit for this tx.
@@ -43,16 +48,20 @@ export class Tx extends Gossipable {
43
48
  /**
44
49
  * Contract class log fields emitted from the tx.
45
50
  * Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
46
- * It's checked in data_validator.ts
51
+ * This claimed data is reconciled against a hash of this data (that is contained within
52
+ * the tx's public inputs (`this.data`)), in data_validator.ts.
47
53
  */
48
54
  public readonly contractClassLogFields: ContractClassLogFields[],
49
55
  /**
50
56
  * An array of calldata for the enqueued public function calls and the teardown function call.
57
+ * This claimed data is reconciled against hashes of this data (that are contained within
58
+ * the tx's public inputs (`this.data`)), in data_validator.ts.
51
59
  */
52
60
  public readonly publicFunctionCalldata: HashedValues[],
53
61
  ) {
54
62
  super();
55
63
  }
64
+ // docs:end:tx_class
56
65
 
57
66
  // Gossipable method
58
67
  override generateP2PMessageIdentifier(): Promise<Buffer32> {
@@ -238,7 +247,7 @@ export class Tx extends Gossipable {
238
247
  contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
239
248
 
240
249
  proofSize: this.chonkProof.fields.length,
241
- size: this.toBuffer().length,
250
+ size: this.getSize(),
242
251
 
243
252
  feePaymentMethod:
244
253
  // needsSetup? then we pay through a fee payment contract
@@ -246,26 +255,34 @@ export class Tx extends Gossipable {
246
255
  };
247
256
  }
248
257
 
249
- getSize() {
250
- return (
251
- this.data.getSize() +
252
- this.chonkProof.fields.length * Fr.SIZE_IN_BYTES +
253
- arraySerializedSizeOfNonEmpty(this.contractClassLogFields) +
254
- this.publicFunctionCalldata.reduce((accum, cd) => accum + cd.getSize(), 0)
255
- );
258
+ private sizeCache: number | undefined;
259
+
260
+ getSize(): number {
261
+ if (this.sizeCache == undefined) {
262
+ this.sizeCache = this.toBuffer().length;
263
+ }
264
+ return this.sizeCache;
256
265
  }
257
266
 
258
267
  /**
259
- * Estimates the tx size based on its private effects. Note that the actual size of the tx
260
- * after processing will probably be larger, as public execution would generate more data.
268
+ * Returns the number of fields this tx's effects will occupy in the blob,
269
+ * based on its private side effects only. Accurate for txs without public calls.
270
+ * For txs with public calls, the actual size will be larger due to public execution outputs.
261
271
  */
262
- getEstimatedPrivateTxEffectsSize() {
263
- return (
264
- this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES +
265
- this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES +
266
- this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES +
267
- this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES
268
- );
272
+ getPrivateTxEffectsSizeInFields(): number {
273
+ // 3 fields overhead: tx_start_marker, tx_hash, tx_fee.
274
+ // TX_DA_GAS_OVERHEAD is defined as N * DA_GAS_PER_FIELD, so this division is always exact.
275
+ const overheadFields = TX_DA_GAS_OVERHEAD / DA_GAS_PER_FIELD;
276
+ const noteHashes = this.data.getNonEmptyNoteHashes().length;
277
+ const nullifiers = this.data.getNonEmptyNullifiers().length;
278
+ const l2ToL1Msgs = this.data.getNonEmptyL2ToL1Msgs().length;
279
+ // Each private log occupies (emittedLength + 1) fields: content + length field
280
+ const privateLogFields = this.data.getNonEmptyPrivateLogs().reduce((acc, log) => acc + log.emittedLength + 1, 0);
281
+ // Each contract class log occupies (length + 1) fields: content + contract address
282
+ const contractClassLogFields = this.data
283
+ .getNonEmptyContractClassLogsHashes()
284
+ .reduce((acc, log) => acc + log.logHash.length + 1, 0);
285
+ return overheadFields + noteHashes + nullifiers + l2ToL1Msgs + privateLogFields + contractClassLogFields;
269
286
  }
270
287
 
271
288
  /**
@@ -301,7 +318,7 @@ export class Tx extends Gossipable {
301
318
 
302
319
  /** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */
303
320
  public async recomputeHash(): Promise<TxHash> {
304
- (this as any).txHash = await Tx.computeTxHash(this);
321
+ unfreeze(this).txHash = await Tx.computeTxHash(this);
305
322
  return this.txHash;
306
323
  }
307
324
 
@@ -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,
@@ -214,12 +205,14 @@ export class TxEffect {
214
205
  maxEffects?: number;
215
206
  } = {}): Promise<TxEffect> {
216
207
  const count = (max: number, num?: number) => num ?? Math.min(maxEffects ?? randomInt(max), max);
208
+ // Every tx effect must have at least 1 nullifier (the first nullifier is used for log indexing)
209
+ const countNullifiers = (max: number, num?: number) => Math.max(1, count(max, num));
217
210
  return new TxEffect(
218
211
  RevertCode.random(),
219
212
  TxHash.random(),
220
213
  new Fr(Math.floor(Math.random() * 100_000)),
221
214
  makeTuple(count(MAX_NOTE_HASHES_PER_TX, numNoteHashes), Fr.random),
222
- makeTuple(count(MAX_NULLIFIERS_PER_TX, numNullifiers), Fr.random),
215
+ makeTuple(countNullifiers(MAX_NULLIFIERS_PER_TX, numNullifiers), Fr.random),
223
216
  makeTuple(count(MAX_L2_TO_L1_MSGS_PER_TX, numL2ToL1Msgs), Fr.random),
224
217
  makeTuple(count(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, numPublicDataWrites), PublicDataWrite.random),
225
218
  makeTuple(count(MAX_PRIVATE_LOGS_PER_TX, numPrivateLogs), () => PrivateLog.random()),
@@ -20,6 +20,7 @@ import { TxRequest } from './tx_request.js';
20
20
  /**
21
21
  * Request to execute a transaction. Similar to TxRequest, but has the full args.
22
22
  */
23
+ // docs:start:tx_execution_request_class
23
24
  export class TxExecutionRequest {
24
25
  constructor(
25
26
  /**
@@ -60,6 +61,7 @@ export class TxExecutionRequest {
60
61
  */
61
62
  public salt = Fr.random(),
62
63
  ) {}
64
+ // docs:end:tx_execution_request_class
63
65
 
64
66
  static get schema(): ZodFor<TxExecutionRequest> {
65
67
  return z