@aztec/stdlib 0.86.0 → 0.87.0

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 (570) hide show
  1. package/dest/abi/abi.d.ts +291 -241
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +14 -14
  4. package/dest/abi/buffer.d.ts +0 -2
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.d.ts +0 -2
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +3 -16
  9. package/dest/abi/decoder.d.ts.map +1 -1
  10. package/dest/abi/decoder.js +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +1 -1
  13. package/dest/abi/event_selector.d.ts +0 -2
  14. package/dest/abi/event_selector.d.ts.map +1 -1
  15. package/dest/abi/function_selector.d.ts +0 -2
  16. package/dest/abi/function_selector.d.ts.map +1 -1
  17. package/dest/abi/note_selector.d.ts +0 -2
  18. package/dest/abi/note_selector.d.ts.map +1 -1
  19. package/dest/abi/selector.d.ts +0 -3
  20. package/dest/abi/selector.d.ts.map +1 -1
  21. package/dest/abi/utils.d.ts +0 -2
  22. package/dest/abi/utils.d.ts.map +1 -1
  23. package/dest/auth_witness/auth_witness.d.ts +1 -3
  24. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  25. package/dest/avm/avm.d.ts +39 -40
  26. package/dest/avm/avm.d.ts.map +1 -1
  27. package/dest/avm/avm.js +5 -5
  28. package/dest/avm/avm_accumulated_data.d.ts +4 -4
  29. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  30. package/dest/avm/avm_accumulated_data.js +18 -2
  31. package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
  32. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  33. package/dest/avm/avm_circuit_public_inputs.js +26 -1
  34. package/dest/avm/avm_proving_request.d.ts +15 -17
  35. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  36. package/dest/avm/contract_storage_read.d.ts +1 -3
  37. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  38. package/dest/avm/contract_storage_update_request.d.ts +1 -3
  39. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  40. package/dest/avm/message_pack.d.ts +0 -2
  41. package/dest/avm/message_pack.d.ts.map +1 -1
  42. package/dest/avm/message_pack.js +7 -1
  43. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  44. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  45. package/dest/avm/public_data_hint.d.ts +1 -3
  46. package/dest/avm/public_data_hint.d.ts.map +1 -1
  47. package/dest/avm/public_data_read.d.ts +1 -3
  48. package/dest/avm/public_data_read.d.ts.map +1 -1
  49. package/dest/avm/public_data_update_request.d.ts +1 -4
  50. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  51. package/dest/avm/public_data_write.d.ts +4 -3
  52. package/dest/avm/public_data_write.d.ts.map +1 -1
  53. package/dest/avm/public_data_write.js +19 -1
  54. package/dest/avm/public_inner_call_request.d.ts +1 -4
  55. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  56. package/dest/avm/public_inner_call_request.js +1 -1
  57. package/dest/avm/revert_code.d.ts +0 -3
  58. package/dest/avm/revert_code.d.ts.map +1 -1
  59. package/dest/aztec-address/index.d.ts +1 -4
  60. package/dest/aztec-address/index.d.ts.map +1 -1
  61. package/dest/block/block_hash.d.ts +1 -3
  62. package/dest/block/block_hash.d.ts.map +1 -1
  63. package/dest/block/body.d.ts +1 -4
  64. package/dest/block/body.d.ts.map +1 -1
  65. package/dest/block/body.js +5 -11
  66. package/dest/block/l2_block.d.ts +1 -20
  67. package/dest/block/l2_block.d.ts.map +1 -1
  68. package/dest/block/l2_block.js +1 -41
  69. package/dest/block/l2_block_code_to_purge.d.ts +0 -2
  70. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  71. package/dest/block/l2_block_source.d.ts +0 -1
  72. package/dest/block/l2_block_source.d.ts.map +1 -1
  73. package/dest/block/published_l2_block.d.ts +2 -1
  74. package/dest/block/published_l2_block.d.ts.map +1 -1
  75. package/dest/block/published_l2_block.js +5 -18
  76. package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
  77. package/dest/config/chain-config.d.ts.map +1 -0
  78. package/dest/config/index.d.ts +2 -1
  79. package/dest/config/index.d.ts.map +1 -1
  80. package/dest/config/index.js +2 -1
  81. package/dest/config/node-rpc-config.d.ts +7 -0
  82. package/dest/config/node-rpc-config.d.ts.map +1 -0
  83. package/dest/config/node-rpc-config.js +8 -0
  84. package/dest/contract/artifact_hash.d.ts +1 -3
  85. package/dest/contract/artifact_hash.d.ts.map +1 -1
  86. package/dest/contract/artifact_hash.js +3 -2
  87. package/dest/contract/complete_address.d.ts +0 -2
  88. package/dest/contract/complete_address.d.ts.map +1 -1
  89. package/dest/contract/contract_class_id.d.ts +0 -2
  90. package/dest/contract/contract_class_id.d.ts.map +1 -1
  91. package/dest/contract/contract_instance.d.ts +1 -3
  92. package/dest/contract/contract_instance.d.ts.map +1 -1
  93. package/dest/contract/contract_instance_update.d.ts +1 -3
  94. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  95. package/dest/contract/interfaces/contract_class.d.ts +17 -19
  96. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  97. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  98. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  99. package/dest/contract/private_function.d.ts +0 -2
  100. package/dest/contract/private_function.d.ts.map +1 -1
  101. package/dest/database-version/version_manager.d.ts +0 -4
  102. package/dest/database-version/version_manager.d.ts.map +1 -1
  103. package/dest/errors/proving_error.d.ts.map +1 -1
  104. package/dest/errors/simulation_error.d.ts.map +1 -1
  105. package/dest/errors/simulation_error.js +2 -2
  106. package/dest/file-store/factory.js +1 -1
  107. package/dest/file-store/gcs.d.ts +0 -2
  108. package/dest/file-store/gcs.d.ts.map +1 -1
  109. package/dest/file-store/http.d.ts +1 -2
  110. package/dest/file-store/http.d.ts.map +1 -1
  111. package/dest/file-store/http.js +32 -16
  112. package/dest/file-store/interface.d.ts +0 -2
  113. package/dest/file-store/interface.d.ts.map +1 -1
  114. package/dest/file-store/local.d.ts +0 -2
  115. package/dest/file-store/local.d.ts.map +1 -1
  116. package/dest/gas/gas.d.ts +1 -4
  117. package/dest/gas/gas.d.ts.map +1 -1
  118. package/dest/gas/gas_fees.d.ts +1 -4
  119. package/dest/gas/gas_fees.d.ts.map +1 -1
  120. package/dest/gas/gas_settings.d.ts +1 -3
  121. package/dest/gas/gas_settings.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node-admin.d.ts +10 -0
  123. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  124. package/dest/interfaces/aztec-node-admin.js +4 -1
  125. package/dest/interfaces/aztec-node.d.ts +1 -2
  126. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  127. package/dest/interfaces/aztec-node.js +7 -2
  128. package/dest/interfaces/configs.d.ts +5 -0
  129. package/dest/interfaces/configs.d.ts.map +1 -1
  130. package/dest/interfaces/configs.js +1 -0
  131. package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
  132. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  133. package/dest/interfaces/p2p.d.ts +2 -0
  134. package/dest/interfaces/p2p.d.ts.map +1 -1
  135. package/dest/interfaces/p2p.js +1 -0
  136. package/dest/interfaces/private_kernel_prover.d.ts +0 -2
  137. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  138. package/dest/interfaces/prover-client.d.ts.map +1 -1
  139. package/dest/interfaces/proving-job.d.ts +15 -17
  140. package/dest/interfaces/proving-job.d.ts.map +1 -1
  141. package/dest/interfaces/pxe.d.ts +6 -6
  142. package/dest/interfaces/pxe.d.ts.map +1 -1
  143. package/dest/interfaces/pxe.js +4 -4
  144. package/dest/interfaces/service.d.ts +2 -3
  145. package/dest/interfaces/service.d.ts.map +1 -1
  146. package/dest/interfaces/world_state.d.ts +4 -1
  147. package/dest/interfaces/world_state.d.ts.map +1 -1
  148. package/dest/kernel/combined_constant_data.d.ts +1 -3
  149. package/dest/kernel/combined_constant_data.d.ts.map +1 -1
  150. package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
  151. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  152. package/dest/kernel/hints/key_validation_request.d.ts +1 -3
  153. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  154. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
  155. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  156. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
  157. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  158. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
  159. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  160. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
  161. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/read_request.d.ts +0 -2
  163. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  164. package/dest/kernel/hints/read_request_hints.d.ts +4 -6
  165. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  166. package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
  167. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
  168. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
  169. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  170. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
  171. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
  172. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
  173. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  174. package/dest/kernel/log_hash.d.ts +27 -9
  175. package/dest/kernel/log_hash.d.ts.map +1 -1
  176. package/dest/kernel/log_hash.js +72 -13
  177. package/dest/kernel/note_hash.d.ts +0 -2
  178. package/dest/kernel/note_hash.d.ts.map +1 -1
  179. package/dest/kernel/nullifier.d.ts +0 -2
  180. package/dest/kernel/nullifier.d.ts.map +1 -1
  181. package/dest/kernel/private_accumulated_data.d.ts +4 -6
  182. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  183. package/dest/kernel/private_accumulated_data.js +3 -3
  184. package/dest/kernel/private_call_data.d.ts +0 -2
  185. package/dest/kernel/private_call_data.d.ts.map +1 -1
  186. package/dest/kernel/private_call_request.d.ts +1 -3
  187. package/dest/kernel/private_call_request.d.ts.map +1 -1
  188. package/dest/kernel/private_call_request.js +1 -1
  189. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
  190. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  191. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  192. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
  193. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  194. package/dest/kernel/private_kernel_data.d.ts +1 -3
  195. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  196. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
  197. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  198. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
  199. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  200. package/dest/kernel/private_kernel_prover_output.d.ts +31 -7
  201. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  202. package/dest/kernel/private_kernel_prover_output.js +5 -1
  203. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
  204. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  205. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
  206. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  207. package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
  208. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  209. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
  210. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  211. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -8
  212. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  213. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -2
  214. package/dest/kernel/private_log_data.d.ts +1 -4
  215. package/dest/kernel/private_log_data.d.ts.map +1 -1
  216. package/dest/kernel/private_log_data.js +4 -2
  217. package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
  218. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  219. package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
  220. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
  221. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  222. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
  223. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  224. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
  225. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  226. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
  227. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  228. package/dest/kernel/private_validation_requests.d.ts +1 -4
  229. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  230. package/dest/kernel/private_validation_requests.js +1 -1
  231. package/dest/kernel/public_call_request.d.ts +2 -5
  232. package/dest/kernel/public_call_request.d.ts.map +1 -1
  233. package/dest/kernel/utils/optional_number.d.ts +1 -3
  234. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  235. package/dest/keys/public_keys.d.ts +0 -2
  236. package/dest/keys/public_keys.d.ts.map +1 -1
  237. package/dest/keys/public_keys.js +0 -1
  238. package/dest/logs/contract_class_log.d.ts +53 -12
  239. package/dest/logs/contract_class_log.d.ts.map +1 -1
  240. package/dest/logs/contract_class_log.js +129 -66
  241. package/dest/logs/extended_contract_class_log.d.ts +0 -2
  242. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  243. package/dest/logs/extended_public_log.d.ts +0 -2
  244. package/dest/logs/extended_public_log.d.ts.map +1 -1
  245. package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
  246. package/dest/logs/log_id.d.ts +0 -2
  247. package/dest/logs/log_id.d.ts.map +1 -1
  248. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  249. package/dest/logs/log_with_tx_data.js +8 -3
  250. package/dest/logs/private_log.d.ts +13 -7
  251. package/dest/logs/private_log.d.ts.map +1 -1
  252. package/dest/logs/private_log.js +44 -30
  253. package/dest/logs/public_log.d.ts +9 -9
  254. package/dest/logs/public_log.d.ts.map +1 -1
  255. package/dest/logs/public_log.js +45 -32
  256. package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
  257. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  258. package/dest/logs/tx_scoped_l2_log.js +1 -2
  259. package/dest/messaging/inbox_leaf.d.ts +5 -2
  260. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  261. package/dest/messaging/inbox_leaf.js +11 -0
  262. package/dest/messaging/l1_actor.d.ts +0 -2
  263. package/dest/messaging/l1_actor.d.ts.map +1 -1
  264. package/dest/messaging/l1_to_l2_message.d.ts +0 -2
  265. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  266. package/dest/messaging/l2_actor.d.ts +0 -2
  267. package/dest/messaging/l2_actor.d.ts.map +1 -1
  268. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  269. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  270. package/dest/note/extended_note.d.ts +3 -5
  271. package/dest/note/extended_note.d.ts.map +1 -1
  272. package/dest/note/note.d.ts +5 -13
  273. package/dest/note/note.d.ts.map +1 -1
  274. package/dest/p2p/block_attestation.d.ts +6 -5
  275. package/dest/p2p/block_attestation.d.ts.map +1 -1
  276. package/dest/p2p/block_attestation.js +12 -11
  277. package/dest/p2p/block_proposal.d.ts +17 -8
  278. package/dest/p2p/block_proposal.d.ts.map +1 -1
  279. package/dest/p2p/block_proposal.js +29 -13
  280. package/dest/p2p/consensus_payload.d.ts +185 -12
  281. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  282. package/dest/p2p/consensus_payload.js +24 -14
  283. package/dest/p2p/gossipable.d.ts +14 -4
  284. package/dest/p2p/gossipable.d.ts.map +1 -1
  285. package/dest/p2p/gossipable.js +43 -0
  286. package/dest/p2p/signature_utils.d.ts +0 -2
  287. package/dest/p2p/signature_utils.d.ts.map +1 -1
  288. package/dest/p2p/topic_type.d.ts.map +1 -1
  289. package/dest/p2p/topic_type.js +5 -0
  290. package/dest/parity/base_parity_inputs.d.ts +2 -4
  291. package/dest/parity/base_parity_inputs.d.ts.map +1 -1
  292. package/dest/parity/parity_public_inputs.d.ts +2 -4
  293. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  294. package/dest/parity/root_parity_input.d.ts +4 -6
  295. package/dest/parity/root_parity_input.d.ts.map +1 -1
  296. package/dest/parity/root_parity_inputs.d.ts +2 -4
  297. package/dest/parity/root_parity_inputs.d.ts.map +1 -1
  298. package/dest/proofs/client_ivc_proof.d.ts +2 -4
  299. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  300. package/dest/proofs/proof.d.ts +1 -3
  301. package/dest/proofs/proof.d.ts.map +1 -1
  302. package/dest/proofs/proof.js +5 -5
  303. package/dest/proofs/recursive_proof.d.ts +4 -6
  304. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  305. package/dest/rollup/avm_proof_data.d.ts +1 -3
  306. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  307. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
  308. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/base_rollup_hints.d.ts +9 -11
  310. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  311. package/dest/rollup/base_rollup_hints.js +5 -5
  312. package/dest/rollup/block_merge_rollup.d.ts +2 -4
  313. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  314. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +11 -5
  315. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
  316. package/dest/rollup/block_root_or_block_merge_public_inputs.js +6 -2
  317. package/dest/rollup/block_root_rollup.d.ts +8 -10
  318. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  319. package/dest/rollup/constant_rollup_data.d.ts +1 -3
  320. package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
  321. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
  322. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  323. package/dest/rollup/merge_rollup.d.ts +2 -4
  324. package/dest/rollup/merge_rollup.d.ts.map +1 -1
  325. package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
  326. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  327. package/dest/rollup/previous_rollup_data.d.ts +0 -2
  328. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  329. package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
  330. package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
  331. package/dest/rollup/private_tube_data.d.ts +1 -3
  332. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  333. package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
  334. package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
  335. package/dest/rollup/public_tube_data.d.ts +1 -3
  336. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  337. package/dest/rollup/root_rollup.d.ts +9 -8
  338. package/dest/rollup/root_rollup.d.ts.map +1 -1
  339. package/dest/rollup/root_rollup.js +12 -3
  340. package/dest/rollup/state_diff_hints.d.ts +0 -2
  341. package/dest/rollup/state_diff_hints.d.ts.map +1 -1
  342. package/dest/rollup/tube_inputs.d.ts +2 -4
  343. package/dest/rollup/tube_inputs.d.ts.map +1 -1
  344. package/dest/schemas/schemas.d.ts +4 -6
  345. package/dest/schemas/schemas.d.ts.map +1 -1
  346. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  347. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  348. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
  349. package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
  350. package/dest/snapshots/download.d.ts +1 -1
  351. package/dest/snapshots/download.d.ts.map +1 -1
  352. package/dest/snapshots/download.js +3 -3
  353. package/dest/snapshots/index.d.ts +1 -1
  354. package/dest/snapshots/index.d.ts.map +1 -1
  355. package/dest/snapshots/index.js +1 -1
  356. package/dest/snapshots/types.d.ts +27 -4
  357. package/dest/snapshots/types.d.ts.map +1 -1
  358. package/dest/snapshots/types.js +8 -0
  359. package/dest/snapshots/upload.d.ts +6 -3
  360. package/dest/snapshots/upload.d.ts.map +1 -1
  361. package/dest/snapshots/upload.js +10 -6
  362. package/dest/tests/factories.d.ts +0 -2
  363. package/dest/tests/factories.d.ts.map +1 -1
  364. package/dest/tests/factories.js +19 -16
  365. package/dest/tests/mocks.d.ts +13 -3
  366. package/dest/tests/mocks.d.ts.map +1 -1
  367. package/dest/tests/mocks.js +40 -8
  368. package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
  369. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  370. package/dest/trees/nullifier_leaf.d.ts +0 -2
  371. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  372. package/dest/trees/nullifier_membership_witness.d.ts +4 -6
  373. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  374. package/dest/trees/protocol_contract_leaf.d.ts +0 -2
  375. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  376. package/dest/trees/public_data_leaf.d.ts +1 -3
  377. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  378. package/dest/trees/public_data_witness.d.ts +4 -6
  379. package/dest/trees/public_data_witness.d.ts.map +1 -1
  380. package/dest/tx/block_header.d.ts +3 -4
  381. package/dest/tx/block_header.d.ts.map +1 -1
  382. package/dest/tx/block_header.js +5 -1
  383. package/dest/tx/call_context.d.ts +1 -4
  384. package/dest/tx/call_context.d.ts.map +1 -1
  385. package/dest/tx/capsule.d.ts +1 -3
  386. package/dest/tx/capsule.d.ts.map +1 -1
  387. package/dest/tx/content_commitment.d.ts +10 -12
  388. package/dest/tx/content_commitment.d.ts.map +1 -1
  389. package/dest/tx/function_data.d.ts +0 -2
  390. package/dest/tx/function_data.d.ts.map +1 -1
  391. package/dest/tx/global_variables.d.ts +1 -4
  392. package/dest/tx/global_variables.d.ts.map +1 -1
  393. package/dest/tx/hashed_values.d.ts +1 -3
  394. package/dest/tx/hashed_values.d.ts.map +1 -1
  395. package/dest/tx/index.d.ts +2 -1
  396. package/dest/tx/index.d.ts.map +1 -1
  397. package/dest/tx/index.js +2 -1
  398. package/dest/tx/max_block_number.d.ts +1 -3
  399. package/dest/tx/max_block_number.d.ts.map +1 -1
  400. package/dest/tx/partial_state_reference.d.ts +1 -3
  401. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  402. package/dest/tx/private_execution_result.d.ts +18 -9
  403. package/dest/tx/private_execution_result.d.ts.map +1 -1
  404. package/dest/tx/private_execution_result.js +12 -3
  405. package/dest/tx/profiling.d.ts +110 -0
  406. package/dest/tx/profiling.d.ts.map +1 -0
  407. package/dest/tx/profiling.js +97 -0
  408. package/dest/tx/proposed_block_header.d.ts +80 -0
  409. package/dest/tx/proposed_block_header.d.ts.map +1 -0
  410. package/dest/tx/proposed_block_header.js +130 -0
  411. package/dest/tx/proven_tx.d.ts +73 -1
  412. package/dest/tx/proven_tx.d.ts.map +1 -1
  413. package/dest/tx/proven_tx.js +7 -2
  414. package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
  415. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  416. package/dest/tx/simulated_tx.d.ts +5 -3
  417. package/dest/tx/simulated_tx.d.ts.map +1 -1
  418. package/dest/tx/simulated_tx.js +10 -5
  419. package/dest/tx/state_reference.d.ts +1 -4
  420. package/dest/tx/state_reference.d.ts.map +1 -1
  421. package/dest/tx/tree_snapshots.d.ts +1 -4
  422. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  423. package/dest/tx/tx.d.ts +6 -11
  424. package/dest/tx/tx.d.ts.map +1 -1
  425. package/dest/tx/tx.js +18 -15
  426. package/dest/tx/tx_constant_data.d.ts +1 -3
  427. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  428. package/dest/tx/tx_context.d.ts +1 -3
  429. package/dest/tx/tx_context.d.ts.map +1 -1
  430. package/dest/tx/tx_effect.d.ts +1 -4
  431. package/dest/tx/tx_effect.d.ts.map +1 -1
  432. package/dest/tx/tx_effect.js +33 -63
  433. package/dest/tx/tx_execution_request.d.ts +13 -6
  434. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  435. package/dest/tx/tx_execution_request.js +14 -7
  436. package/dest/tx/tx_hash.d.ts +2 -4
  437. package/dest/tx/tx_hash.d.ts.map +1 -1
  438. package/dest/tx/tx_receipt.d.ts.map +1 -1
  439. package/dest/tx/tx_receipt.js +1 -1
  440. package/dest/tx/tx_request.d.ts +7 -5
  441. package/dest/tx/tx_request.d.ts.map +1 -1
  442. package/dest/tx/tx_request.js +8 -5
  443. package/dest/tx/validator/error_texts.d.ts +4 -2
  444. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  445. package/dest/tx/validator/error_texts.js +4 -2
  446. package/dest/types/shared.d.ts +5 -3
  447. package/dest/types/shared.d.ts.map +1 -1
  448. package/dest/update-checker/index.d.ts +2 -0
  449. package/dest/update-checker/index.d.ts.map +1 -0
  450. package/dest/update-checker/index.js +1 -0
  451. package/dest/update-checker/update-checker.d.ts +48 -0
  452. package/dest/update-checker/update-checker.d.ts.map +1 -0
  453. package/dest/update-checker/update-checker.js +121 -0
  454. package/dest/validators/schemas.d.ts +24 -24
  455. package/dest/validators/schemas.js +1 -1
  456. package/dest/validators/types.d.ts +2 -2
  457. package/dest/validators/types.d.ts.map +1 -1
  458. package/dest/versioning/versioning.d.ts +1 -1
  459. package/dest/versioning/versioning.d.ts.map +1 -1
  460. package/dest/vks/verification_key.d.ts +7 -9
  461. package/dest/vks/verification_key.d.ts.map +1 -1
  462. package/dest/vks/vk_witness_data.d.ts +1 -3
  463. package/dest/vks/vk_witness_data.d.ts.map +1 -1
  464. package/package.json +16 -13
  465. package/src/abi/abi.ts +29 -12
  466. package/src/abi/contract_artifact.ts +3 -17
  467. package/src/abi/decoder.ts +10 -3
  468. package/src/abi/encoder.ts +5 -2
  469. package/src/avm/avm.ts +13 -7
  470. package/src/avm/avm_accumulated_data.ts +30 -2
  471. package/src/avm/avm_circuit_public_inputs.ts +26 -0
  472. package/src/avm/message_pack.ts +7 -1
  473. package/src/avm/public_data_write.ts +21 -1
  474. package/src/avm/public_inner_call_request.ts +1 -1
  475. package/src/avm/revert_code.ts +5 -5
  476. package/src/block/body.ts +5 -11
  477. package/src/block/l2_block.ts +1 -61
  478. package/src/block/published_l2_block.ts +8 -16
  479. package/src/config/index.ts +2 -1
  480. package/src/config/node-rpc-config.ts +14 -0
  481. package/src/contract/artifact_hash.ts +5 -3
  482. package/src/contract/private_function.ts +4 -2
  483. package/src/errors/proving_error.ts +5 -1
  484. package/src/errors/simulation_error.ts +2 -2
  485. package/src/file-store/factory.ts +1 -1
  486. package/src/file-store/http.ts +27 -18
  487. package/src/gas/gas.ts +4 -1
  488. package/src/interfaces/aztec-node-admin.ts +16 -0
  489. package/src/interfaces/aztec-node.ts +4 -2
  490. package/src/interfaces/configs.ts +3 -0
  491. package/src/interfaces/p2p.ts +4 -0
  492. package/src/interfaces/prover-client.ts +4 -1
  493. package/src/interfaces/pxe.ts +12 -7
  494. package/src/interfaces/service.ts +2 -3
  495. package/src/interfaces/world_state.ts +6 -1
  496. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
  497. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
  498. package/src/kernel/hints/read_request.ts +4 -1
  499. package/src/kernel/hints/read_request_hints.ts +12 -3
  500. package/src/kernel/hints/transient_data_index_hint.ts +4 -1
  501. package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
  502. package/src/kernel/log_hash.ts +86 -14
  503. package/src/kernel/note_hash.ts +8 -2
  504. package/src/kernel/nullifier.ts +9 -2
  505. package/src/kernel/private_accumulated_data.ts +4 -4
  506. package/src/kernel/private_call_request.ts +1 -1
  507. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  508. package/src/kernel/private_kernel_prover_output.ts +10 -0
  509. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
  510. package/src/kernel/private_log_data.ts +13 -4
  511. package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
  512. package/src/kernel/private_validation_requests.ts +1 -1
  513. package/src/kernel/public_call_request.ts +4 -1
  514. package/src/keys/public_keys.ts +1 -1
  515. package/src/logs/contract_class_log.ts +156 -57
  516. package/src/logs/indexed_tagging_secret.ts +4 -1
  517. package/src/logs/log_with_tx_data.ts +7 -2
  518. package/src/logs/private_log.ts +52 -30
  519. package/src/logs/public_log.ts +62 -38
  520. package/src/logs/tx_scoped_l2_log.ts +1 -2
  521. package/src/messaging/inbox_leaf.ts +10 -0
  522. package/src/messaging/l2_to_l1_message.ts +9 -2
  523. package/src/p2p/block_attestation.ts +16 -12
  524. package/src/p2p/block_proposal.ts +42 -11
  525. package/src/p2p/consensus_payload.ts +33 -16
  526. package/src/p2p/gossipable.ts +44 -2
  527. package/src/p2p/topic_type.ts +2 -0
  528. package/src/proofs/proof.ts +5 -5
  529. package/src/rollup/base_rollup_hints.ts +7 -7
  530. package/src/rollup/block_root_or_block_merge_public_inputs.ts +10 -1
  531. package/src/rollup/private_base_rollup_inputs.ts +4 -1
  532. package/src/rollup/root_rollup.ts +12 -0
  533. package/src/rollup/tube_inputs.ts +4 -1
  534. package/src/shared_mutable/scheduled_delay_change.ts +5 -1
  535. package/src/shared_mutable/scheduled_value_change.ts +5 -1
  536. package/src/shared_mutable/shared_mutable_values.ts +4 -1
  537. package/src/snapshots/download.ts +3 -4
  538. package/src/snapshots/index.ts +1 -1
  539. package/src/snapshots/types.ts +12 -0
  540. package/src/snapshots/upload.ts +19 -11
  541. package/src/tests/factories.ts +35 -18
  542. package/src/tests/mocks.ts +69 -10
  543. package/src/tx/block_header.ts +16 -2
  544. package/src/tx/content_commitment.ts +6 -1
  545. package/src/tx/index.ts +2 -1
  546. package/src/tx/private_execution_result.ts +14 -5
  547. package/src/tx/profiling.ts +126 -0
  548. package/src/tx/proposed_block_header.ts +169 -0
  549. package/src/tx/proven_tx.ts +4 -0
  550. package/src/tx/simulated_tx.ts +12 -2
  551. package/src/tx/tx.ts +18 -17
  552. package/src/tx/tx_effect.ts +36 -76
  553. package/src/tx/tx_execution_request.ts +11 -0
  554. package/src/tx/tx_receipt.ts +1 -1
  555. package/src/tx/tx_request.ts +12 -3
  556. package/src/tx/validator/error_texts.ts +4 -2
  557. package/src/types/shared.ts +5 -0
  558. package/src/update-checker/index.ts +1 -0
  559. package/src/update-checker/update-checker.ts +152 -0
  560. package/src/validators/schemas.ts +1 -1
  561. package/src/validators/types.ts +2 -2
  562. package/src/versioning/versioning.ts +1 -1
  563. package/src/vks/verification_key.ts +8 -2
  564. package/dest/config/config.d.ts.map +0 -1
  565. package/dest/tx/profiled_tx.d.ts +0 -9
  566. package/dest/tx/profiled_tx.d.ts.map +0 -1
  567. package/dest/tx/profiled_tx.js +0 -28
  568. package/src/tx/profiled_tx.ts +0 -28
  569. /package/dest/config/{config.js → chain-config.js} +0 -0
  570. /package/src/config/{config.ts → chain-config.ts} +0 -0
@@ -9,7 +9,12 @@ import { z } from 'zod';
9
9
  export const NUM_BYTES_PER_SHA256 = 32;
10
10
 
11
11
  export class ContentCommitment {
12
- constructor(public numTxs: Fr, public blobsHash: Buffer, public inHash: Buffer, public outHash: Buffer) {
12
+ constructor(
13
+ public numTxs: Fr,
14
+ public blobsHash: Buffer,
15
+ public inHash: Buffer,
16
+ public outHash: Buffer,
17
+ ) {
13
18
  // NB: we do not calculate blobHash in the circuit, but we still truncate it so it fits in a field
14
19
  if (blobsHash.length !== NUM_BYTES_PER_SHA256) {
15
20
  throw new Error(`blobsHash buffer must be ${NUM_BYTES_PER_SHA256} bytes`);
package/src/tx/index.ts CHANGED
@@ -11,13 +11,13 @@ export * from './tx_constant_data.js';
11
11
  export * from './tx_context.js';
12
12
  export * from './tx_request.js';
13
13
  export * from './private_execution_result.js';
14
+ export * from './proposed_block_header.js';
14
15
  export * from './public_call_request_with_calldata.js';
15
16
  export * from './tx_hash.js';
16
17
  export * from './tx_receipt.js';
17
18
  export * from './tx.js';
18
19
  export * from './processed_tx.js';
19
20
  export * from './proven_tx.js';
20
- export * from './profiled_tx.js';
21
21
  export * from './simulated_tx.js';
22
22
  export * from './tx_effect.js';
23
23
  export * from './public_simulation_output.js';
@@ -29,3 +29,4 @@ export * from './capsule.js';
29
29
  export * from './global_variable_builder.js';
30
30
  export * from './hashed_values.js';
31
31
  export * from './indexed_tx_effect.js';
32
+ export * from './profiling.js';
@@ -9,7 +9,7 @@ import { NoteSelector } from '../abi/note_selector.js';
9
9
  import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inputs.js';
10
10
  import type { IsEmpty } from '../kernel/utils/interfaces.js';
11
11
  import { sortByCounter } from '../kernel/utils/order_and_comparison.js';
12
- import { ContractClassLog } from '../logs/contract_class_log.js';
12
+ import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
13
13
  import { Note } from '../note/note.js';
14
14
  import { type ZodFor, mapSchema, schemas } from '../schemas/index.js';
15
15
  import { HashedValues } from './hashed_values.js';
@@ -47,7 +47,10 @@ export class NoteAndSlot {
47
47
  }
48
48
 
49
49
  export class CountedContractClassLog implements IsEmpty {
50
- constructor(public log: ContractClassLog, public counter: number) {}
50
+ constructor(
51
+ public log: ContractClassLog,
52
+ public counter: number,
53
+ ) {}
51
54
 
52
55
  static get schema(): ZodFor<CountedContractClassLog> {
53
56
  return z
@@ -132,9 +135,11 @@ export class PrivateCallExecutionResult {
132
135
  public nestedExecutions: PrivateCallExecutionResult[],
133
136
  /**
134
137
  * Contract class logs emitted during execution of this function call.
135
- * Note: These are preimages to `contractClassLogsHashes`.
138
+ * Note: We only need to collect the ContractClassLogFields as preimages for the tx.
139
+ * But keep them as ContractClassLog so that we can verify the log hashes before submitting the tx (TODO).
136
140
  */
137
141
  public contractClassLogs: CountedContractClassLog[],
142
+ public profileResult?: PrivateExecutionProfileResult,
138
143
  ) {}
139
144
 
140
145
  static get schema(): ZodFor<PrivateCallExecutionResult> {
@@ -222,10 +227,10 @@ function collectContractClassLogs(execResult: PrivateCallExecutionResult): Count
222
227
  * @param execResult - The topmost execution result.
223
228
  * @returns All contract class logs.
224
229
  */
225
- export function collectSortedContractClassLogs(execResult: PrivateExecutionResult): ContractClassLog[] {
230
+ export function collectSortedContractClassLogs(execResult: PrivateExecutionResult): ContractClassLogFields[] {
226
231
  const allLogs = collectContractClassLogs(execResult.entrypoint);
227
232
  const sortedLogs = sortByCounter(allLogs);
228
- return sortedLogs.map(l => l.log);
233
+ return sortedLogs.map(l => l.log.fields);
229
234
  }
230
235
 
231
236
  export function getFinalMinRevertibleSideEffectCounter(execResult: PrivateExecutionResult): number {
@@ -248,3 +253,7 @@ export function collectNested<T>(
248
253
  executionStack.flatMap(({ nestedExecutions }) => collectNested(nestedExecutions, extractExecutionItems)),
249
254
  );
250
255
  }
256
+
257
+ export class PrivateExecutionProfileResult {
258
+ constructor(public timings: { witgen: number }) {}
259
+ }
@@ -0,0 +1,126 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { type ZodFor, optional } from '@aztec/foundation/schemas';
3
+
4
+ import { z } from 'zod';
5
+
6
+ import type { AbiDecoded } from '../abi/decoder.js';
7
+ import { type PrivateExecutionStep, PrivateExecutionStepSchema } from '../kernel/private_kernel_prover_output.js';
8
+ import { AbiDecodedSchema } from '../schemas/schemas.js';
9
+
10
+ type FunctionTiming = {
11
+ functionName: string;
12
+ time: number;
13
+ };
14
+
15
+ const FunctionTimingSchema = z.object({ functionName: z.string(), time: z.number() });
16
+
17
+ export type ProvingTimings = {
18
+ sync?: number;
19
+ proving?: number;
20
+ perFunction: FunctionTiming[];
21
+ unaccounted: number;
22
+ total: number;
23
+ };
24
+
25
+ export const ProvingTimingsSchema = z.object({
26
+ sync: optional(z.number()),
27
+ proving: optional(z.number()),
28
+ perFunction: z.array(FunctionTimingSchema),
29
+ unaccounted: z.number(),
30
+ total: z.number(),
31
+ });
32
+
33
+ export interface SimulationTimings {
34
+ sync: number;
35
+ publicSimulation?: number;
36
+ validation?: number;
37
+ perFunction: FunctionTiming[];
38
+ unaccounted: number;
39
+ total: number;
40
+ }
41
+
42
+ export const SimulationTimingsSchema = z.object({
43
+ sync: z.number(),
44
+ publicSimulation: optional(z.number()),
45
+ validation: optional(z.number()),
46
+ perFunction: z.array(FunctionTimingSchema),
47
+ unaccounted: z.number(),
48
+ total: z.number(),
49
+ });
50
+
51
+ export class TxProfileResult {
52
+ constructor(
53
+ public executionSteps: PrivateExecutionStep[],
54
+ public timings: ProvingTimings,
55
+ ) {}
56
+
57
+ static get schema(): ZodFor<TxProfileResult> {
58
+ return z
59
+ .object({
60
+ executionSteps: z.array(PrivateExecutionStepSchema),
61
+ timings: ProvingTimingsSchema,
62
+ })
63
+ .transform(({ executionSteps, timings }) => new TxProfileResult(executionSteps, timings));
64
+ }
65
+
66
+ static random(): TxProfileResult {
67
+ return new TxProfileResult(
68
+ [
69
+ {
70
+ functionName: 'random',
71
+ bytecode: Buffer.from('random'),
72
+ witness: new Map([[1, 'random']]),
73
+ vk: Buffer.from('random'),
74
+ timings: {
75
+ witgen: 1,
76
+ gateCount: 1,
77
+ },
78
+ },
79
+ ],
80
+ {
81
+ sync: 1,
82
+ proving: 1,
83
+ perFunction: [
84
+ {
85
+ functionName: 'random',
86
+ time: 1,
87
+ },
88
+ ],
89
+ unaccounted: 1,
90
+ total: 4,
91
+ },
92
+ );
93
+ }
94
+ }
95
+
96
+ export class UtilitySimulationResult {
97
+ constructor(
98
+ public result: AbiDecoded,
99
+ public timings?: SimulationTimings,
100
+ ) {}
101
+
102
+ static get schema(): ZodFor<UtilitySimulationResult> {
103
+ return z
104
+ .object({
105
+ result: AbiDecodedSchema,
106
+ timings: optional(SimulationTimingsSchema),
107
+ })
108
+ .transform(({ result, timings }) => new UtilitySimulationResult(result, timings));
109
+ }
110
+
111
+ static random(): UtilitySimulationResult {
112
+ return new UtilitySimulationResult(Fr.random().toBigInt(), {
113
+ sync: 1,
114
+ publicSimulation: 1,
115
+ validation: 1,
116
+ perFunction: [
117
+ {
118
+ functionName: 'random',
119
+ time: 1,
120
+ },
121
+ ],
122
+ unaccounted: 1,
123
+ total: 5,
124
+ });
125
+ }
126
+ }
@@ -0,0 +1,169 @@
1
+ import { sha256ToField } from '@aztec/foundation/crypto';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import type { ZodFor } from '@aztec/foundation/schemas';
5
+ import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
7
+ import type { FieldsOf } from '@aztec/foundation/types';
8
+
9
+ import { inspect } from 'util';
10
+ import { z } from 'zod';
11
+
12
+ import { AztecAddress } from '../aztec-address/index.js';
13
+ import { GasFees } from '../gas/index.js';
14
+ import { schemas } from '../schemas/index.js';
15
+ import type { UInt64 } from '../types/shared.js';
16
+ import { ContentCommitment } from './content_commitment.js';
17
+
18
+ /** The proposed values of an L2 block. */
19
+ export class ProposedBlockHeader {
20
+ constructor(
21
+ /** Root of the archive tree before this block is added. */
22
+ public lastArchiveRoot: Fr,
23
+ /** Content commitment of the L2 block. */
24
+ public contentCommitment: ContentCommitment,
25
+ /** Slot number of the L2 block */
26
+ public slotNumber: Fr,
27
+ /** Timestamp of the L2 block. */
28
+ public timestamp: UInt64,
29
+ /** Recipient of block reward. */
30
+ public coinbase: EthAddress,
31
+ /** Address to receive fees. */
32
+ public feeRecipient: AztecAddress,
33
+ /** Global gas prices for this block. */
34
+ public gasFees: GasFees,
35
+ /** Total mana used in the block, computed by the root rollup circuit */
36
+ public totalManaUsed: Fr,
37
+ ) {}
38
+
39
+ static get schema(): ZodFor<ProposedBlockHeader> {
40
+ return z
41
+ .object({
42
+ lastArchiveRoot: schemas.Fr,
43
+ contentCommitment: ContentCommitment.schema,
44
+ slotNumber: schemas.Fr,
45
+ timestamp: schemas.BigInt,
46
+ coinbase: schemas.EthAddress,
47
+ feeRecipient: schemas.AztecAddress,
48
+ gasFees: GasFees.schema,
49
+ totalManaUsed: schemas.Fr,
50
+ })
51
+ .transform(ProposedBlockHeader.from);
52
+ }
53
+
54
+ static getFields(fields: FieldsOf<ProposedBlockHeader>) {
55
+ return [
56
+ fields.lastArchiveRoot,
57
+ fields.contentCommitment,
58
+ fields.slotNumber,
59
+ fields.timestamp,
60
+ fields.coinbase,
61
+ fields.feeRecipient,
62
+ fields.gasFees,
63
+ fields.totalManaUsed,
64
+ ] as const;
65
+ }
66
+
67
+ static from(fields: FieldsOf<ProposedBlockHeader>) {
68
+ return new ProposedBlockHeader(...ProposedBlockHeader.getFields(fields));
69
+ }
70
+
71
+ static fromBuffer(buffer: Buffer | BufferReader): ProposedBlockHeader {
72
+ const reader = BufferReader.asReader(buffer);
73
+
74
+ return new ProposedBlockHeader(
75
+ reader.readObject(Fr),
76
+ reader.readObject(ContentCommitment),
77
+ Fr.fromBuffer(reader),
78
+ reader.readUInt64(),
79
+ reader.readObject(EthAddress),
80
+ reader.readObject(AztecAddress),
81
+ reader.readObject(GasFees),
82
+ reader.readObject(Fr),
83
+ );
84
+ }
85
+
86
+ toBuffer() {
87
+ // Note: The order here must match the order in the HeaderLib solidity library.
88
+ return serializeToBuffer([
89
+ this.lastArchiveRoot,
90
+ this.contentCommitment,
91
+ this.slotNumber,
92
+ bigintToUInt64BE(this.timestamp),
93
+ this.coinbase,
94
+ this.feeRecipient,
95
+ this.gasFees,
96
+ this.totalManaUsed,
97
+ ]);
98
+ }
99
+
100
+ hash(): Fr {
101
+ return sha256ToField([this.toBuffer()]);
102
+ }
103
+
104
+ static empty(fields: Partial<FieldsOf<ProposedBlockHeader>> = {}): ProposedBlockHeader {
105
+ return ProposedBlockHeader.from({
106
+ lastArchiveRoot: Fr.ZERO,
107
+ contentCommitment: ContentCommitment.empty(),
108
+ slotNumber: Fr.ZERO,
109
+ timestamp: 0n,
110
+ coinbase: EthAddress.ZERO,
111
+ feeRecipient: AztecAddress.ZERO,
112
+ gasFees: GasFees.empty(),
113
+ totalManaUsed: Fr.ZERO,
114
+ ...fields,
115
+ });
116
+ }
117
+
118
+ isEmpty(): boolean {
119
+ return (
120
+ this.lastArchiveRoot.isZero() &&
121
+ this.contentCommitment.isEmpty() &&
122
+ this.slotNumber.isZero() &&
123
+ this.timestamp === 0n &&
124
+ this.coinbase.isZero() &&
125
+ this.feeRecipient.isZero() &&
126
+ this.gasFees.isEmpty() &&
127
+ this.totalManaUsed.isZero()
128
+ );
129
+ }
130
+
131
+ /**
132
+ * Serializes this instance into a string.
133
+ * @returns Encoded string.
134
+ */
135
+ public toString() {
136
+ return bufferToHex(this.toBuffer());
137
+ }
138
+
139
+ static fromString(str: string): ProposedBlockHeader {
140
+ return ProposedBlockHeader.fromBuffer(hexToBuffer(str));
141
+ }
142
+
143
+ toInspect() {
144
+ return {
145
+ lastArchive: this.lastArchiveRoot.toString(),
146
+ contentCommitment: this.contentCommitment.toInspect(),
147
+ slotNumber: this.slotNumber.toBigInt(),
148
+ timestamp: this.timestamp,
149
+ coinbase: this.coinbase.toString(),
150
+ feeRecipient: this.feeRecipient.toString(),
151
+ gasFees: this.gasFees.toInspect(),
152
+ totalManaUsed: this.totalManaUsed.toBigInt(),
153
+ };
154
+ }
155
+
156
+ [inspect.custom]() {
157
+ const gasfees = `da:${this.gasFees.feePerDaGas.toBigInt()}, l2:${this.gasFees.feePerL2Gas.toBigInt()}`;
158
+ return `Header {
159
+ lastArchiveRoot: ${this.lastArchiveRoot.toString()},
160
+ contentCommitment: ${inspect(this.contentCommitment)},
161
+ slotNumber: ${this.slotNumber.toBigInt()},
162
+ timestamp: ${this.timestamp},
163
+ coinbase: ${this.coinbase.toString()},
164
+ feeRecipient: ${this.feeRecipient.toString()},
165
+ gasFees: ${gasfees},
166
+ totalManaUsed: ${this.totalManaUsed.toBigInt()},
167
+ }`;
168
+ }
169
+ }
@@ -1,3 +1,4 @@
1
+ import { optional } from '@aztec/foundation/schemas';
1
2
  import type { FieldsOf } from '@aztec/foundation/types';
2
3
 
3
4
  import { z } from 'zod';
@@ -5,6 +6,7 @@ import { z } from 'zod';
5
6
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
6
7
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
7
8
  import { PrivateExecutionResult, collectSortedContractClassLogs } from './private_execution_result.js';
9
+ import { type ProvingTimings, SimulationTimingsSchema } from './profiling.js';
8
10
  import { Tx } from './tx.js';
9
11
 
10
12
  export class TxProvingResult {
@@ -12,6 +14,7 @@ export class TxProvingResult {
12
14
  public privateExecutionResult: PrivateExecutionResult,
13
15
  public publicInputs: PrivateKernelTailCircuitPublicInputs,
14
16
  public clientIvcProof: ClientIvcProof,
17
+ public timings?: ProvingTimings,
15
18
  ) {}
16
19
 
17
20
  toTx(): Tx {
@@ -32,6 +35,7 @@ export class TxProvingResult {
32
35
  privateExecutionResult: PrivateExecutionResult.schema,
33
36
  publicInputs: PrivateKernelTailCircuitPublicInputs.schema,
34
37
  clientIvcProof: ClientIvcProof.schema,
38
+ timings: optional(SimulationTimingsSchema),
35
39
  })
36
40
  .transform(TxProvingResult.from);
37
41
  }
@@ -1,4 +1,4 @@
1
- import type { ZodFor } from '@aztec/foundation/schemas';
1
+ import { type ZodFor, optional } from '@aztec/foundation/schemas';
2
2
  import type { FieldsOf } from '@aztec/foundation/types';
3
3
 
4
4
  import { z } from 'zod';
@@ -12,6 +12,7 @@ import {
12
12
  PrivateExecutionResult,
13
13
  collectSortedContractClassLogs,
14
14
  } from './private_execution_result.js';
15
+ import { type SimulationTimings, SimulationTimingsSchema } from './profiling.js';
15
16
  import { NestedProcessReturnValues, PublicSimulationOutput } from './public_simulation_output.js';
16
17
  import { Tx } from './tx.js';
17
18
 
@@ -43,6 +44,7 @@ export class TxSimulationResult {
43
44
  public privateExecutionResult: PrivateExecutionResult,
44
45
  public publicInputs: PrivateKernelTailCircuitPublicInputs,
45
46
  public publicOutput?: PublicSimulationOutput,
47
+ public timings?: SimulationTimings,
46
48
  ) {}
47
49
 
48
50
  get gasUsed(): GasUsed {
@@ -62,22 +64,30 @@ export class TxSimulationResult {
62
64
  privateExecutionResult: PrivateExecutionResult.schema,
63
65
  publicInputs: PrivateKernelTailCircuitPublicInputs.schema,
64
66
  publicOutput: PublicSimulationOutput.schema.optional(),
67
+ timings: optional(SimulationTimingsSchema),
65
68
  })
66
69
  .transform(TxSimulationResult.from);
67
70
  }
68
71
 
69
72
  static from(fields: Omit<FieldsOf<TxSimulationResult>, 'gasUsed'>) {
70
- return new TxSimulationResult(fields.privateExecutionResult, fields.publicInputs, fields.publicOutput);
73
+ return new TxSimulationResult(
74
+ fields.privateExecutionResult,
75
+ fields.publicInputs,
76
+ fields.publicOutput,
77
+ fields.timings,
78
+ );
71
79
  }
72
80
 
73
81
  static fromPrivateSimulationResultAndPublicOutput(
74
82
  privateSimulationResult: PrivateSimulationResult,
75
83
  publicOutput?: PublicSimulationOutput,
84
+ timings?: SimulationTimings,
76
85
  ) {
77
86
  return new TxSimulationResult(
78
87
  privateSimulationResult.privateExecutionResult,
79
88
  privateSimulationResult.publicInputs,
80
89
  publicOutput,
90
+ timings,
81
91
  );
82
92
  }
83
93
 
package/src/tx/tx.ts CHANGED
@@ -13,7 +13,7 @@ import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
13
13
  import type { PublicCallRequest } from '../kernel/index.js';
14
14
  import type { ScopedLogHash } from '../kernel/log_hash.js';
15
15
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
16
- import { ContractClassLog } from '../logs/contract_class_log.js';
16
+ import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
17
17
  import { Gossipable } from '../p2p/gossipable.js';
18
18
  import { TopicType } from '../p2p/topic_type.js';
19
19
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
@@ -44,7 +44,7 @@ export class Tx extends Gossipable {
44
44
  /**
45
45
  * Contract class logs generated by the tx.
46
46
  */
47
- public contractClassLogs: ContractClassLog[],
47
+ public contractClassLogs: ContractClassLogFields[],
48
48
  /**
49
49
  * An array of calldata for the enqueued public function calls and the teardown function call.
50
50
  */
@@ -54,7 +54,7 @@ export class Tx extends Gossipable {
54
54
  }
55
55
 
56
56
  // Gossipable method
57
- override async p2pMessageIdentifier(): Promise<Buffer32> {
57
+ override async generateP2PMessageIdentifier(): Promise<Buffer32> {
58
58
  return new Buffer32((await this.getTxHash()).toBuffer());
59
59
  }
60
60
 
@@ -107,7 +107,7 @@ export class Tx extends Gossipable {
107
107
  return new Tx(
108
108
  reader.readObject(PrivateKernelTailCircuitPublicInputs),
109
109
  reader.readObject(ClientIvcProof),
110
- reader.readVectorUint8Prefix(ContractClassLog),
110
+ reader.readVectorUint8Prefix(ContractClassLogFields),
111
111
  reader.readVectorUint8Prefix(HashedValues),
112
112
  );
113
113
  }
@@ -130,7 +130,7 @@ export class Tx extends Gossipable {
130
130
  .object({
131
131
  data: PrivateKernelTailCircuitPublicInputs.schema,
132
132
  clientIvcProof: ClientIvcProof.schema,
133
- contractClassLogs: z.array(ContractClassLog.schema),
133
+ contractClassLogs: z.array(ContractClassLogFields.schema),
134
134
  publicFunctionCalldata: z.array(HashedValues.schema),
135
135
  })
136
136
  .transform(Tx.from);
@@ -173,12 +173,15 @@ export class Tx extends Gossipable {
173
173
  */
174
174
  async filterContractClassLogs(logHashes: ScopedLogHash[], silo: boolean = false): Promise<ContractClassLog[]> {
175
175
  const contractClassLogs = [];
176
- for (const log of this.contractClassLogs) {
177
- const hashedLog = await log.hash();
178
- const logHash = logHashes.find(
179
- hash => hash.value.equals(hashedLog) && hash.contractAddress.equals(log.contractAddress),
180
- );
176
+ for (const fields of this.contractClassLogs) {
177
+ const hashedLog = await fields.hash();
178
+ const logHash = logHashes.find(hash => hash.value.equals(hashedLog));
181
179
  if (logHash) {
180
+ const log = ContractClassLog.from({
181
+ contractAddress: logHash.contractAddress,
182
+ fields,
183
+ emittedLength: logHash.logHash.length,
184
+ });
182
185
  contractClassLogs.push(silo ? await log.silo() : log);
183
186
  }
184
187
  }
@@ -287,7 +290,7 @@ export class Tx extends Gossipable {
287
290
  static clone(tx: Tx): Tx {
288
291
  const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
289
292
  const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
290
- const contractClassLogs = tx.contractClassLogs.map(x => ContractClassLog.fromBuffer(x.toBuffer()));
293
+ const contractClassLogs = tx.contractClassLogs.map(p => p.clone());
291
294
  const publicFunctionCalldata = tx.publicFunctionCalldata.map(cd => HashedValues.fromBuffer(cd.toBuffer()));
292
295
  const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogs, publicFunctionCalldata);
293
296
  if (tx.txHash) {
@@ -302,11 +305,11 @@ export class Tx extends Gossipable {
302
305
  * @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
303
306
  * @returns A random tx.
304
307
  */
305
- static async random(randomProof = false) {
308
+ static random(randomProof = false) {
306
309
  return new Tx(
307
310
  PrivateKernelTailCircuitPublicInputs.emptyWithNullifier(),
308
311
  randomProof ? ClientIvcProof.random() : ClientIvcProof.empty(),
309
- [await ContractClassLog.random()],
312
+ [ContractClassLogFields.random()],
310
313
  [HashedValues.random()],
311
314
  );
312
315
  }
@@ -321,12 +324,10 @@ export class Tx extends Gossipable {
321
324
  * The logic therefore is to drop all FunctionLogs if any constituent hash
322
325
  * does not appear in the provided hashes: it is impossible for part of a
323
326
  * function to revert.
324
- *
325
- * @param logHashes the individual log hashes we want to keep
326
- * @param out the output to put passing logs in, to keep this function abstract
327
327
  */
328
+ // TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
328
329
  public async filterRevertedLogs() {
329
- this.contractClassLogs = await this.getSplitContractClassLogs(false);
330
+ this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map(log => log.fields);
330
331
  }
331
332
 
332
333
  #combinePublicCallRequestWithCallData(request: PublicCallRequest) {