@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
@@ -4,8 +4,10 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
 
5
5
  import { AztecAddress } from '../aztec-address/index.js';
6
6
  import { Gas } from '../gas/gas.js';
7
+ import type { PrivateLog } from '../logs/index.js';
7
8
  import { TxConstantData } from '../tx/tx_constant_data.js';
8
9
  import { RollupValidationRequests } from './hints/rollup_validation_requests.js';
10
+ import type { ScopedLogHash } from './log_hash.js';
9
11
  import { PrivateToPublicAccumulatedData } from './private_to_public_accumulated_data.js';
10
12
  import { PrivateToPublicKernelCircuitPublicInputs } from './private_to_public_kernel_circuit_public_inputs.js';
11
13
  import { PrivateToRollupAccumulatedData } from './private_to_rollup_accumulated_data.js';
@@ -254,11 +256,20 @@ export class PrivateKernelTailCircuitPublicInputs {
254
256
  }
255
257
 
256
258
  getEmittedContractClassLogsLength() {
257
- return this.getNonEmptyContractClassLogsHashes().reduce((total, log) => total + log.logHash.length, 0);
259
+ const accumulateLengths = (logHashes: ScopedLogHash[]) =>
260
+ logHashes.reduce((acc, log) => acc + log.logHash.length, 0);
261
+ return this.forPublic
262
+ ? accumulateLengths(this.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes) +
263
+ accumulateLengths(this.forPublic.revertibleAccumulatedData.contractClassLogsHashes)
264
+ : accumulateLengths(this.forRollup!.end.contractClassLogsHashes);
258
265
  }
259
266
 
260
267
  getEmittedPrivateLogsLength() {
261
- return this.getNonEmptyPrivateLogs().reduce((total, log) => total + log.getEmittedLength(), 0);
268
+ const accumulateLengths = (logs: PrivateLog[]) => logs.reduce((acc, log) => acc + log.emittedLength, 0);
269
+ return this.forPublic
270
+ ? accumulateLengths(this.forPublic.nonRevertibleAccumulatedData.privateLogs) +
271
+ accumulateLengths(this.forPublic.revertibleAccumulatedData.privateLogs)
272
+ : accumulateLengths(this.forRollup!.end.privateLogs);
262
273
  }
263
274
 
264
275
  static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelTailCircuitPublicInputs {
@@ -10,7 +10,11 @@ import { PrivateLog } from '../logs/private_log.js';
10
10
  import type { UInt32 } from '../types/shared.js';
11
11
 
12
12
  export class PrivateLogData {
13
- constructor(public log: PrivateLog, public noteHashCounter: UInt32, public counter: UInt32) {}
13
+ constructor(
14
+ public log: PrivateLog,
15
+ public noteHashCounter: UInt32,
16
+ public counter: UInt32,
17
+ ) {}
14
18
 
15
19
  static from(fields: FieldsOf<PrivateLogData>): PrivateLogData {
16
20
  return new PrivateLogData(...PrivateLogData.getFields(fields));
@@ -54,7 +58,7 @@ export class PrivateLogData {
54
58
 
55
59
  [inspect.custom]() {
56
60
  return `PrivateLogData {
57
- log: ${this.log}
61
+ log: ${this.log.fields}
58
62
  noteHashCounter: ${this.noteHashCounter}
59
63
  counter: ${this.counter}
60
64
  }`;
@@ -62,7 +66,10 @@ export class PrivateLogData {
62
66
  }
63
67
 
64
68
  export class ScopedPrivateLogData {
65
- constructor(public inner: PrivateLogData, public contractAddress: AztecAddress) {}
69
+ constructor(
70
+ public inner: PrivateLogData,
71
+ public contractAddress: AztecAddress,
72
+ ) {}
66
73
 
67
74
  static from(fields: FieldsOf<ScopedPrivateLogData>): ScopedPrivateLogData {
68
75
  return new ScopedPrivateLogData(...ScopedPrivateLogData.getFields(fields));
@@ -100,7 +107,9 @@ export class ScopedPrivateLogData {
100
107
 
101
108
  [inspect.custom]() {
102
109
  return `ScopedPrivateLogData {
103
- inner: ${this.inner}
110
+ inner.counter: ${this.inner.counter}
111
+ inner.noteHashCounter: ${this.inner.noteHashCounter}
112
+ inner.log: ${this.inner.log.fields}
104
113
  contractAddress: ${this.contractAddress}
105
114
  }`;
106
115
  }
@@ -122,7 +122,11 @@ export class PrivateToAvmAccumulatedData {
122
122
  }
123
123
 
124
124
  export class PrivateToAvmAccumulatedDataArrayLengths {
125
- constructor(public noteHashes: UInt32, public nullifiers: UInt32, public l2ToL1Msgs: UInt32) {}
125
+ constructor(
126
+ public noteHashes: UInt32,
127
+ public nullifiers: UInt32,
128
+ public l2ToL1Msgs: UInt32,
129
+ ) {}
126
130
 
127
131
  static get schema() {
128
132
  return z
@@ -150,6 +154,10 @@ export class PrivateToAvmAccumulatedDataArrayLengths {
150
154
  return new this(reader.readU32(), reader.readU32(), reader.readU32());
151
155
  }
152
156
 
157
+ toFields() {
158
+ return [this.noteHashes, this.nullifiers, this.l2ToL1Msgs];
159
+ }
160
+
153
161
  static from(fields: FieldsOf<PrivateToAvmAccumulatedDataArrayLengths>) {
154
162
  return new PrivateToAvmAccumulatedDataArrayLengths(...PrivateToAvmAccumulatedDataArrayLengths.getFields(fields));
155
163
  }
@@ -134,7 +134,7 @@ export class PrivateValidationRequests {
134
134
  .filter(x => !x.isEmpty())
135
135
  .map(h => inspect(h))
136
136
  .join(', ')}],
137
- splitCounter: ${this.splitCounter}
137
+ splitCounter: ${this.splitCounter.getSize()}
138
138
  `;
139
139
  }
140
140
  }
@@ -124,7 +124,10 @@ export class PublicCallRequest {
124
124
  }
125
125
 
126
126
  export class CountedPublicCallRequest {
127
- constructor(public inner: PublicCallRequest, public counter: UInt32) {}
127
+ constructor(
128
+ public inner: PublicCallRequest,
129
+ public counter: UInt32,
130
+ ) {}
128
131
 
129
132
  getSize() {
130
133
  return this.isEmpty() ? 0 : this.toBuffer().length;
@@ -143,7 +143,7 @@ export class PublicKeys {
143
143
 
144
144
  toNoirStruct() {
145
145
  // We need to use lowercase identifiers as those are what the noir interface expects
146
- // eslint-disable-next-line camelcase
146
+
147
147
  return {
148
148
  // TODO(#6337): Directly dump account.publicKeys here
149
149
  /* eslint-disable camelcase */
@@ -1,139 +1,238 @@
1
- import { CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { CONTRACT_CLASS_LOG_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { poseidon2Hash } from '@aztec/foundation/crypto';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { schemas } from '@aztec/foundation/schemas';
5
- import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
+ import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
6
+ import type { FieldsOf } from '@aztec/foundation/types';
6
7
 
7
8
  import { inspect } from 'util';
8
9
  import { z } from 'zod';
9
10
 
10
11
  import { AztecAddress } from '../aztec-address/index.js';
11
12
 
12
- export class ContractClassLog {
13
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_SIZE_IN_FIELDS;
14
- // Keeps original first field pre-siloing. Only set by silo().
15
- public unsiloedFirstField?: Fr | undefined;
16
-
13
+ export class ContractClassLogFields {
17
14
  // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
18
- // public fields: Tuple<Fr, typeof CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS>
19
- constructor(public contractAddress: AztecAddress, public fields: Fr[]) {
20
- if (fields.length !== CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS) {
15
+ // public fields: Tuple<Fr, typeof CONTRACT_CLASS_LOG_SIZE_IN_FIELDS>
16
+ constructor(public fields: Fr[]) {
17
+ if (fields.length !== CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
21
18
  throw new Error(
22
- `Invalid number of fields for ContractClassLog. Expected ${CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS}, got ${fields.length}`,
19
+ `Invalid number of fields for ContractClassLog. Expected ${CONTRACT_CLASS_LOG_SIZE_IN_FIELDS}, got ${fields.length}`,
23
20
  );
24
21
  }
25
22
  }
26
23
 
24
+ static get schema() {
25
+ return z
26
+ .object({
27
+ fields: z.array(schemas.Fr).refine(arr => arr.length === CONTRACT_CLASS_LOG_SIZE_IN_FIELDS),
28
+ })
29
+ .transform(({ fields }) => new ContractClassLogFields(fields));
30
+ }
31
+
32
+ toFields(): Fr[] {
33
+ return this.fields;
34
+ }
35
+
36
+ static fromFields(fields: Fr[] | FieldReader) {
37
+ const reader = FieldReader.asReader(fields);
38
+ // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
39
+ // reader.readFieldArray(CONTRACT_CLASS_LOG_LENGTH);
40
+ return new ContractClassLogFields(
41
+ Array.from({ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS }, () => reader.readField()),
42
+ );
43
+ }
44
+
45
+ toBuffer() {
46
+ return serializeToBuffer(this.fields);
47
+ }
48
+
49
+ static fromBuffer(buffer: Buffer | BufferReader) {
50
+ const reader = BufferReader.asReader(buffer);
51
+ // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
52
+ // reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr)
53
+ return new ContractClassLogFields(
54
+ Array.from({ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS }, () => reader.readObject(Fr)),
55
+ );
56
+ }
57
+
58
+ equals(other: ContractClassLogFields) {
59
+ return this.fields.every((f, i) => f.equals(other.fields[i]));
60
+ }
61
+
62
+ getEmittedFields(emittedLength: number) {
63
+ return this.fields.slice(0, emittedLength);
64
+ }
65
+
66
+ static fromEmittedFields(emittedFields: Fr[]) {
67
+ return new ContractClassLogFields(
68
+ emittedFields.concat(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedFields.length).fill(Fr.ZERO)),
69
+ );
70
+ }
71
+
72
+ isEmpty() {
73
+ return this.fields.every(f => f.isZero());
74
+ }
75
+
76
+ static empty() {
77
+ return new ContractClassLogFields(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS).fill(Fr.ZERO));
78
+ }
79
+
80
+ static random(emittedLength = CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
81
+ return new ContractClassLogFields(
82
+ Array.from({ length: emittedLength }, () => Fr.random()).concat(
83
+ Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedLength).fill(Fr.ZERO),
84
+ ),
85
+ );
86
+ }
87
+
88
+ async hash() {
89
+ return await poseidon2Hash(this.fields);
90
+ }
91
+
92
+ clone() {
93
+ return ContractClassLogFields.fromBuffer(this.toBuffer());
94
+ }
95
+ }
96
+
97
+ export class ContractClassLog {
98
+ static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_LENGTH;
99
+ // Keeps original first field pre-siloing. Only set by silo().
100
+ public unsiloedFirstField?: Fr | undefined;
101
+
102
+ constructor(
103
+ public contractAddress: AztecAddress,
104
+ public fields: ContractClassLogFields,
105
+ public emittedLength: number,
106
+ ) {}
107
+
108
+ static from(fields: FieldsOf<ContractClassLog>) {
109
+ return new ContractClassLog(fields.contractAddress, fields.fields, fields.emittedLength);
110
+ }
111
+
27
112
  toFields(): Fr[] {
28
- return [this.contractAddress.toField(), ...this.fields];
113
+ return serializeToFields([this.contractAddress, this.fields, this.emittedLength]);
29
114
  }
30
115
 
31
116
  equals(other: ContractClassLog) {
32
117
  return (
33
118
  this.contractAddress.equals(other.contractAddress) &&
34
- this.fields.length === other.fields.length &&
35
- this.fields.every((f, i) => f.equals(other.fields[i]))
119
+ this.fields.equals(other.fields) &&
120
+ this.emittedLength === other.emittedLength
36
121
  );
37
122
  }
38
123
 
39
124
  static fromFields(fields: Fr[] | FieldReader) {
40
125
  const reader = FieldReader.asReader(fields);
41
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
42
- // return new ContractClassLog(reader.readFieldArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS));
43
126
  return new ContractClassLog(
44
127
  reader.readObject(AztecAddress),
45
- Array.from({ length: CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS }, () => reader.readField()),
128
+ reader.readObject(ContractClassLogFields),
129
+ reader.readU32(),
130
+ );
131
+ }
132
+
133
+ getEmittedFields() {
134
+ return this.fields.getEmittedFields(this.emittedLength);
135
+ }
136
+
137
+ toBlobFields(): Fr[] {
138
+ return [new Fr(this.emittedLength), this.contractAddress.toField()].concat(this.getEmittedFields());
139
+ }
140
+
141
+ static fromBlobFields(fields: Fr[] | FieldReader) {
142
+ const reader = FieldReader.asReader(fields);
143
+ const emittedLength = reader.readU32();
144
+ const contractAddress = reader.readObject(AztecAddress);
145
+ const emittedFields = reader.readFieldArray(emittedLength);
146
+ return new ContractClassLog(
147
+ contractAddress,
148
+ ContractClassLogFields.fromEmittedFields(emittedFields),
149
+ emittedLength,
46
150
  );
47
151
  }
48
152
 
49
153
  isEmpty() {
50
- return this.fields.every(f => f.isZero());
154
+ return this.contractAddress.isZero() && this.fields.isEmpty() && this.emittedLength === 0;
51
155
  }
52
156
 
53
157
  static empty() {
54
- return new ContractClassLog(AztecAddress.ZERO, new Array(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS).fill(Fr.ZERO));
158
+ return new ContractClassLog(AztecAddress.ZERO, ContractClassLogFields.empty(), 0);
55
159
  }
56
160
 
57
161
  toBuffer(): Buffer {
58
- return serializeToBuffer([this.contractAddress, this.fields]);
162
+ return serializeToBuffer([this.contractAddress, this.fields, this.emittedLength]);
59
163
  }
60
164
 
61
165
  static fromBuffer(buffer: Buffer | BufferReader) {
62
166
  const reader = BufferReader.asReader(buffer);
63
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
64
- // reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr);
65
167
  const address = reader.readObject(AztecAddress);
66
- const fields = Array.from({ length: CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS }, () =>
67
- reader.remainingBytes() == 0 ? Fr.ZERO : Fr.fromBuffer(reader),
68
- );
69
- return new ContractClassLog(address, fields);
70
- }
71
-
72
- clone() {
73
- return ContractClassLog.fromBuffer(this.toBuffer());
168
+ const fields = ContractClassLogFields.fromBuffer(reader);
169
+ const emittedLength = reader.readNumber();
170
+ return new ContractClassLog(address, fields, emittedLength);
74
171
  }
75
172
 
76
173
  static async random() {
77
174
  // NB: Using half the maximum number of fields per log because max fields keeps overfilling blobs in tests.
78
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
79
- // makeTuple(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS, Fr.random);
80
- const fields = Array.from({ length: Math.ceil(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS / 2) }, () => Fr.random());
175
+ const emittedLength = Math.ceil(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS / 2);
81
176
  return new ContractClassLog(
82
177
  await AztecAddress.random(),
83
- fields.concat(Array.from({ length: Math.floor(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS / 2) }, () => Fr.ZERO)),
178
+ ContractClassLogFields.random(emittedLength),
179
+ emittedLength,
84
180
  );
85
181
  }
86
182
 
87
- getEmittedLength() {
88
- // This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
89
- // Does not include address or length prefix.
90
- // Note: Unlike public logs, address is not included here because it is not included in the log itself.
91
- return this.getEmittedFields().length;
92
- }
93
-
94
- getEmittedFields() {
95
- const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
96
- return this.fields.slice(0, lastNonZeroIndex + 1);
97
- }
98
-
99
183
  setUnsiloedFirstField(field: Fr) {
100
184
  this.unsiloedFirstField = field;
101
185
  }
102
186
 
103
187
  toUnsiloed() {
188
+ if (this.contractAddress.isZero()) {
189
+ return this;
190
+ }
104
191
  if (this.unsiloedFirstField) {
105
- return new ContractClassLog(this.contractAddress, [this.unsiloedFirstField].concat(this.fields.slice(1)));
192
+ return new ContractClassLog(
193
+ this.contractAddress,
194
+ new ContractClassLogFields([this.unsiloedFirstField].concat(this.fields.fields.slice(1))),
195
+ this.emittedLength,
196
+ );
106
197
  } else {
107
198
  return this;
108
199
  }
109
200
  }
110
201
 
202
+ // TODO(#13914): Don't need to silo the contract class logs.
111
203
  async silo() {
112
- const innerLog = this.clone();
113
- if (innerLog.contractAddress.isZero()) {
114
- return innerLog;
204
+ if (this.contractAddress.isZero()) {
205
+ return this;
115
206
  }
116
- innerLog.setUnsiloedFirstField(innerLog.fields[0]);
117
- innerLog.fields[0] = await poseidon2Hash([innerLog.contractAddress, innerLog.fields[0]]);
118
- return innerLog;
207
+
208
+ const fields = this.fields.clone();
209
+ const unsiloedField = fields.fields[0];
210
+ const siloedField = await poseidon2Hash([this.contractAddress, unsiloedField]);
211
+ fields.fields[0] = siloedField;
212
+ const cloned = new ContractClassLog(this.contractAddress, fields, this.emittedLength);
213
+ cloned.setUnsiloedFirstField(unsiloedField);
214
+ return cloned;
119
215
  }
120
216
 
121
217
  async hash() {
122
- return await poseidon2Hash(this.fields);
218
+ return await this.fields.hash();
123
219
  }
124
220
 
125
221
  static get schema() {
126
222
  return z
127
223
  .object({
128
224
  contractAddress: AztecAddress.schema,
129
- fields: z.array(schemas.Fr),
225
+ fields: ContractClassLogFields.schema,
226
+ emittedLength: z.number(),
130
227
  })
131
- .transform(({ contractAddress, fields }) => ContractClassLog.fromFields([contractAddress.toField(), ...fields]));
228
+ .transform(ContractClassLog.from);
132
229
  }
133
230
 
134
231
  [inspect.custom](): string {
135
232
  return `ContractClassLog {
136
- fields: [${this.fields.map((x: Fr) => inspect(x)).join(', ')}],
233
+ contractAddress: ${this.contractAddress.toString()},
234
+ emittedLength: ${this.emittedLength},
235
+ fields: [${this.fields.fields.map((x: Fr) => inspect(x)).join(', ')}],
137
236
  }`;
138
237
  }
139
238
  }
@@ -4,7 +4,10 @@ import { Fr } from '@aztec/foundation/fields';
4
4
  import type { AztecAddress } from '../aztec-address/index.js';
5
5
 
6
6
  export class IndexedTaggingSecret {
7
- constructor(public appTaggingSecret: Fr, public index: number) {
7
+ constructor(
8
+ public appTaggingSecret: Fr,
9
+ public index: number,
10
+ ) {
8
11
  if (index < 0) {
9
12
  throw new Error('IndexedTaggingSecret index out of bounds');
10
13
  }
@@ -1,4 +1,4 @@
1
- import { MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_DATA_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { TxHash } from '@aztec/stdlib/tx';
4
4
 
@@ -6,6 +6,8 @@ import { TxHash } from '@aztec/stdlib/tx';
6
6
  // response for PXE's custom getLogByTag oracle.
7
7
  export class LogWithTxData {
8
8
  constructor(
9
+ // The emitted fields of a log.
10
+ // For public logs, the contract address is prepended to the content.
9
11
  public logContent: Fr[],
10
12
  public txHash: TxHash,
11
13
  public uniqueNoteHashesInTx: Fr[],
@@ -14,7 +16,10 @@ export class LogWithTxData {
14
16
 
15
17
  toNoirSerialization(): (Fr | Fr[])[] {
16
18
  return [
17
- ...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_DATA_SIZE_IN_FIELDS),
19
+ // The log fields length is PUBLIC_LOG_SIZE_IN_FIELDS. + 1 because the contract address is prepended to the content.
20
+ // This is only used for public logs currently, so the maxLength is PUBLIC_LOG_SIZE_IN_FIELDS + 1.
21
+ // TODO(#11639): this could also be used for private logs.
22
+ ...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_SIZE_IN_FIELDS + 1),
18
23
  this.txHash.hash,
19
24
  ...toBoundedVecSerialization(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
20
25
  this.firstNullifierInTx,
@@ -1,24 +1,58 @@
1
- import { PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_LOG_DATA_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { makeTuple } from '@aztec/foundation/array';
1
+ import { PRIVATE_LOG_LENGTH, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
+ import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
3
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
4
  import { Fr } from '@aztec/foundation/fields';
4
5
  import { schemas } from '@aztec/foundation/schemas';
5
- import { BufferReader, FieldReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import {
7
+ BufferReader,
8
+ FieldReader,
9
+ type Tuple,
10
+ serializeToBuffer,
11
+ serializeToFields,
12
+ } from '@aztec/foundation/serialize';
6
13
 
7
14
  import { inspect } from 'util';
8
15
  import { z } from 'zod';
9
16
 
10
17
  export class PrivateLog {
11
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PRIVATE_LOG_SIZE_IN_FIELDS;
18
+ static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PRIVATE_LOG_LENGTH;
12
19
 
13
- constructor(public fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>) {}
20
+ constructor(
21
+ public fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>,
22
+ // Named `emittedLength` instead of `length` to avoid being confused with fields.length.
23
+ public emittedLength: number,
24
+ ) {}
25
+
26
+ static from(fields: FieldsOf<PrivateLog>) {
27
+ return new PrivateLog(...PrivateLog.getFields(fields));
28
+ }
29
+
30
+ static getFields(fields: FieldsOf<PrivateLog>) {
31
+ return [fields.fields, fields.emittedLength] as const;
32
+ }
14
33
 
15
34
  toFields(): Fr[] {
16
- return this.fields;
35
+ return serializeToFields(...PrivateLog.getFields(this));
17
36
  }
18
37
 
19
38
  static fromFields(fields: Fr[] | FieldReader) {
20
39
  const reader = FieldReader.asReader(fields);
21
- return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS));
40
+ return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS), reader.readU32());
41
+ }
42
+
43
+ getEmittedFields() {
44
+ return this.fields.slice(0, this.emittedLength);
45
+ }
46
+
47
+ toBlobFields(): Fr[] {
48
+ return [new Fr(this.emittedLength)].concat(this.getEmittedFields());
49
+ }
50
+
51
+ static fromBlobFields(fields: Fr[] | FieldReader) {
52
+ const reader = FieldReader.asReader(fields);
53
+ const emittedLength = reader.readU32();
54
+ const emittedFields = reader.readFieldArray(emittedLength);
55
+ return new PrivateLog(padArrayEnd(emittedFields, Fr.ZERO, PRIVATE_LOG_SIZE_IN_FIELDS), emittedLength);
22
56
  }
23
57
 
24
58
  isEmpty() {
@@ -26,54 +60,42 @@ export class PrivateLog {
26
60
  }
27
61
 
28
62
  static empty() {
29
- return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero));
63
+ return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
30
64
  }
31
65
 
32
66
  toBuffer(): Buffer {
33
- return serializeToBuffer(this.fields);
67
+ return serializeToBuffer(this.fields, this.emittedLength);
34
68
  }
35
69
 
36
70
  static fromBuffer(buffer: Buffer | BufferReader) {
37
71
  const reader = BufferReader.asReader(buffer);
38
- return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr));
72
+ return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
39
73
  }
40
74
 
41
75
  static random(tag = Fr.random()) {
42
- return PrivateLog.fromFields([tag, ...Array.from({ length: PRIVATE_LOG_SIZE_IN_FIELDS - 1 }, () => Fr.random())]);
43
- }
44
-
45
- getEmittedLength() {
46
- // This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
47
- // Does not include length prefix.
48
- return this.getEmittedFields().length;
49
- }
50
-
51
- getEmittedFields() {
52
- const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
53
- return this.fields.slice(0, lastNonZeroIndex + 1);
76
+ const fields = makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random);
77
+ fields[0] = tag;
78
+ return new PrivateLog(fields, PRIVATE_LOG_SIZE_IN_FIELDS);
54
79
  }
55
80
 
56
81
  static get schema() {
57
- if (PUBLIC_LOG_DATA_SIZE_IN_FIELDS + 1 == PRIVATE_LOG_SIZE_IN_FIELDS) {
58
- throw new Error(
59
- 'Constants got updated and schema for PublicLog matches that of PrivateLog. This needs to be updated now as Zod is no longer able to differentiate the 2 in TxScopedL2Log.',
60
- );
61
- }
62
-
63
82
  return z
64
83
  .object({
65
84
  fields: z.array(schemas.Fr),
85
+ emittedLength: z.number(),
66
86
  })
67
- .transform(({ fields }) => PrivateLog.fromFields(fields));
87
+ .strict()
88
+ .transform(({ fields, emittedLength }) => PrivateLog.fromFields(fields.concat(new Fr(emittedLength))));
68
89
  }
69
90
 
70
91
  equals(other: PrivateLog) {
71
- return this.fields.every((field, i) => field.equals(other.fields[i]));
92
+ return this.fields.every((field, i) => field.equals(other.fields[i])) && this.emittedLength === other.emittedLength;
72
93
  }
73
94
 
74
95
  [inspect.custom](): string {
75
96
  return `PrivateLog {
76
97
  fields: [${this.fields.map(x => inspect(x)).join(', ')}],
98
+ emittedLength: ${this.emittedLength},
77
99
  }`;
78
100
  }
79
101
  }