@aztec/stdlib 0.86.0-starknet.1 → 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 (517) hide show
  1. package/dest/abi/abi.d.ts +3 -5
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/buffer.d.ts +0 -2
  4. package/dest/abi/buffer.d.ts.map +1 -1
  5. package/dest/abi/contract_artifact.d.ts +0 -2
  6. package/dest/abi/contract_artifact.d.ts.map +1 -1
  7. package/dest/abi/contract_artifact.js +3 -16
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +1 -1
  10. package/dest/abi/encoder.d.ts.map +1 -1
  11. package/dest/abi/encoder.js +1 -1
  12. package/dest/abi/event_selector.d.ts +0 -2
  13. package/dest/abi/event_selector.d.ts.map +1 -1
  14. package/dest/abi/function_selector.d.ts +0 -2
  15. package/dest/abi/function_selector.d.ts.map +1 -1
  16. package/dest/abi/note_selector.d.ts +0 -2
  17. package/dest/abi/note_selector.d.ts.map +1 -1
  18. package/dest/abi/selector.d.ts +0 -3
  19. package/dest/abi/selector.d.ts.map +1 -1
  20. package/dest/abi/utils.d.ts +0 -2
  21. package/dest/abi/utils.d.ts.map +1 -1
  22. package/dest/auth_witness/auth_witness.d.ts +1 -3
  23. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  24. package/dest/avm/avm.d.ts +39 -40
  25. package/dest/avm/avm.d.ts.map +1 -1
  26. package/dest/avm/avm.js +5 -5
  27. package/dest/avm/avm_accumulated_data.d.ts +4 -4
  28. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  29. package/dest/avm/avm_accumulated_data.js +18 -2
  30. package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
  31. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  32. package/dest/avm/avm_circuit_public_inputs.js +26 -1
  33. package/dest/avm/avm_proving_request.d.ts +15 -17
  34. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  35. package/dest/avm/contract_storage_read.d.ts +1 -3
  36. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  37. package/dest/avm/contract_storage_update_request.d.ts +1 -3
  38. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  39. package/dest/avm/message_pack.d.ts +0 -2
  40. package/dest/avm/message_pack.d.ts.map +1 -1
  41. package/dest/avm/message_pack.js +7 -1
  42. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  43. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  44. package/dest/avm/public_data_hint.d.ts +1 -3
  45. package/dest/avm/public_data_hint.d.ts.map +1 -1
  46. package/dest/avm/public_data_read.d.ts +1 -3
  47. package/dest/avm/public_data_read.d.ts.map +1 -1
  48. package/dest/avm/public_data_update_request.d.ts +1 -4
  49. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  50. package/dest/avm/public_data_write.d.ts +4 -3
  51. package/dest/avm/public_data_write.d.ts.map +1 -1
  52. package/dest/avm/public_data_write.js +19 -1
  53. package/dest/avm/public_inner_call_request.d.ts +1 -4
  54. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  55. package/dest/avm/public_inner_call_request.js +1 -1
  56. package/dest/avm/revert_code.d.ts +0 -3
  57. package/dest/avm/revert_code.d.ts.map +1 -1
  58. package/dest/aztec-address/index.d.ts +1 -4
  59. package/dest/aztec-address/index.d.ts.map +1 -1
  60. package/dest/block/block_hash.d.ts +1 -3
  61. package/dest/block/block_hash.d.ts.map +1 -1
  62. package/dest/block/body.d.ts +1 -4
  63. package/dest/block/body.d.ts.map +1 -1
  64. package/dest/block/body.js +5 -11
  65. package/dest/block/l2_block.d.ts +1 -3
  66. package/dest/block/l2_block.d.ts.map +1 -1
  67. package/dest/block/l2_block.js +1 -1
  68. package/dest/block/l2_block_code_to_purge.d.ts +0 -2
  69. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  70. package/dest/block/l2_block_source.d.ts +0 -1
  71. package/dest/block/l2_block_source.d.ts.map +1 -1
  72. package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
  73. package/dest/config/chain-config.d.ts.map +1 -0
  74. package/dest/config/index.d.ts +2 -1
  75. package/dest/config/index.d.ts.map +1 -1
  76. package/dest/config/index.js +2 -1
  77. package/dest/config/node-rpc-config.d.ts +7 -0
  78. package/dest/config/node-rpc-config.d.ts.map +1 -0
  79. package/dest/config/node-rpc-config.js +8 -0
  80. package/dest/contract/artifact_hash.d.ts +1 -3
  81. package/dest/contract/artifact_hash.d.ts.map +1 -1
  82. package/dest/contract/artifact_hash.js +3 -2
  83. package/dest/contract/complete_address.d.ts +0 -2
  84. package/dest/contract/complete_address.d.ts.map +1 -1
  85. package/dest/contract/contract_class_id.d.ts +0 -2
  86. package/dest/contract/contract_class_id.d.ts.map +1 -1
  87. package/dest/contract/contract_instance.d.ts +1 -3
  88. package/dest/contract/contract_instance.d.ts.map +1 -1
  89. package/dest/contract/contract_instance_update.d.ts +1 -3
  90. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  91. package/dest/contract/interfaces/contract_class.d.ts +17 -19
  92. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  93. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  94. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  95. package/dest/contract/private_function.d.ts +0 -2
  96. package/dest/contract/private_function.d.ts.map +1 -1
  97. package/dest/database-version/version_manager.d.ts +0 -4
  98. package/dest/database-version/version_manager.d.ts.map +1 -1
  99. package/dest/errors/proving_error.d.ts.map +1 -1
  100. package/dest/errors/simulation_error.d.ts.map +1 -1
  101. package/dest/file-store/factory.js +1 -1
  102. package/dest/file-store/gcs.d.ts +0 -2
  103. package/dest/file-store/gcs.d.ts.map +1 -1
  104. package/dest/file-store/http.d.ts +1 -2
  105. package/dest/file-store/http.d.ts.map +1 -1
  106. package/dest/file-store/http.js +32 -16
  107. package/dest/file-store/interface.d.ts +0 -2
  108. package/dest/file-store/interface.d.ts.map +1 -1
  109. package/dest/file-store/local.d.ts +0 -2
  110. package/dest/file-store/local.d.ts.map +1 -1
  111. package/dest/gas/gas.d.ts +1 -4
  112. package/dest/gas/gas.d.ts.map +1 -1
  113. package/dest/gas/gas_fees.d.ts +1 -4
  114. package/dest/gas/gas_fees.d.ts.map +1 -1
  115. package/dest/gas/gas_settings.d.ts +1 -3
  116. package/dest/gas/gas_settings.d.ts.map +1 -1
  117. package/dest/interfaces/aztec-node-admin.d.ts +10 -0
  118. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  119. package/dest/interfaces/aztec-node-admin.js +4 -1
  120. package/dest/interfaces/aztec-node.d.ts +1 -2
  121. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node.js +7 -2
  123. package/dest/interfaces/configs.d.ts +5 -0
  124. package/dest/interfaces/configs.d.ts.map +1 -1
  125. package/dest/interfaces/configs.js +1 -0
  126. package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
  127. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  128. package/dest/interfaces/p2p.d.ts +2 -0
  129. package/dest/interfaces/p2p.d.ts.map +1 -1
  130. package/dest/interfaces/p2p.js +1 -0
  131. package/dest/interfaces/private_kernel_prover.d.ts +0 -2
  132. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  133. package/dest/interfaces/prover-client.d.ts.map +1 -1
  134. package/dest/interfaces/proving-job.d.ts +15 -17
  135. package/dest/interfaces/proving-job.d.ts.map +1 -1
  136. package/dest/interfaces/pxe.d.ts +2 -3
  137. package/dest/interfaces/pxe.d.ts.map +1 -1
  138. package/dest/interfaces/pxe.js +2 -2
  139. package/dest/interfaces/service.d.ts +2 -3
  140. package/dest/interfaces/service.d.ts.map +1 -1
  141. package/dest/interfaces/world_state.d.ts +4 -1
  142. package/dest/interfaces/world_state.d.ts.map +1 -1
  143. package/dest/kernel/combined_constant_data.d.ts +1 -3
  144. package/dest/kernel/combined_constant_data.d.ts.map +1 -1
  145. package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
  146. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  147. package/dest/kernel/hints/key_validation_request.d.ts +1 -3
  148. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  149. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
  150. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  151. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
  152. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  153. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
  154. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  155. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
  156. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  157. package/dest/kernel/hints/read_request.d.ts +0 -2
  158. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  159. package/dest/kernel/hints/read_request_hints.d.ts +4 -6
  160. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  161. package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
  162. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
  163. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
  164. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  165. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
  166. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
  167. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
  168. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  169. package/dest/kernel/log_hash.d.ts +27 -9
  170. package/dest/kernel/log_hash.d.ts.map +1 -1
  171. package/dest/kernel/log_hash.js +72 -13
  172. package/dest/kernel/note_hash.d.ts +0 -2
  173. package/dest/kernel/note_hash.d.ts.map +1 -1
  174. package/dest/kernel/nullifier.d.ts +0 -2
  175. package/dest/kernel/nullifier.d.ts.map +1 -1
  176. package/dest/kernel/private_accumulated_data.d.ts +4 -6
  177. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  178. package/dest/kernel/private_accumulated_data.js +3 -3
  179. package/dest/kernel/private_call_data.d.ts +0 -2
  180. package/dest/kernel/private_call_data.d.ts.map +1 -1
  181. package/dest/kernel/private_call_request.d.ts +1 -3
  182. package/dest/kernel/private_call_request.d.ts.map +1 -1
  183. package/dest/kernel/private_call_request.js +1 -1
  184. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
  185. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  187. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
  188. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  189. package/dest/kernel/private_kernel_data.d.ts +1 -3
  190. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  191. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
  192. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  193. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
  194. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_kernel_prover_output.d.ts +5 -7
  196. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  197. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
  198. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  199. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
  200. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  201. package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
  202. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  203. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
  204. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  205. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -8
  206. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  207. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -2
  208. package/dest/kernel/private_log_data.d.ts +1 -4
  209. package/dest/kernel/private_log_data.d.ts.map +1 -1
  210. package/dest/kernel/private_log_data.js +4 -2
  211. package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
  212. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  213. package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
  214. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
  215. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  216. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
  217. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  218. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
  219. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  220. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
  221. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  222. package/dest/kernel/private_validation_requests.d.ts +1 -4
  223. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  224. package/dest/kernel/private_validation_requests.js +1 -1
  225. package/dest/kernel/public_call_request.d.ts +2 -5
  226. package/dest/kernel/public_call_request.d.ts.map +1 -1
  227. package/dest/kernel/utils/optional_number.d.ts +1 -3
  228. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  229. package/dest/keys/public_keys.d.ts +0 -2
  230. package/dest/keys/public_keys.d.ts.map +1 -1
  231. package/dest/keys/public_keys.js +0 -1
  232. package/dest/logs/contract_class_log.d.ts +53 -12
  233. package/dest/logs/contract_class_log.d.ts.map +1 -1
  234. package/dest/logs/contract_class_log.js +129 -66
  235. package/dest/logs/extended_contract_class_log.d.ts +0 -2
  236. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  237. package/dest/logs/extended_public_log.d.ts +0 -2
  238. package/dest/logs/extended_public_log.d.ts.map +1 -1
  239. package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
  240. package/dest/logs/log_id.d.ts +0 -2
  241. package/dest/logs/log_id.d.ts.map +1 -1
  242. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  243. package/dest/logs/log_with_tx_data.js +8 -3
  244. package/dest/logs/private_log.d.ts +13 -7
  245. package/dest/logs/private_log.d.ts.map +1 -1
  246. package/dest/logs/private_log.js +44 -30
  247. package/dest/logs/public_log.d.ts +9 -9
  248. package/dest/logs/public_log.d.ts.map +1 -1
  249. package/dest/logs/public_log.js +45 -32
  250. package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
  251. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  252. package/dest/logs/tx_scoped_l2_log.js +1 -2
  253. package/dest/messaging/inbox_leaf.d.ts +5 -2
  254. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  255. package/dest/messaging/inbox_leaf.js +11 -0
  256. package/dest/messaging/l1_actor.d.ts +0 -2
  257. package/dest/messaging/l1_actor.d.ts.map +1 -1
  258. package/dest/messaging/l1_to_l2_message.d.ts +0 -2
  259. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  260. package/dest/messaging/l2_actor.d.ts +0 -2
  261. package/dest/messaging/l2_actor.d.ts.map +1 -1
  262. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  263. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  264. package/dest/note/extended_note.d.ts +3 -5
  265. package/dest/note/extended_note.d.ts.map +1 -1
  266. package/dest/note/note.d.ts +5 -13
  267. package/dest/note/note.d.ts.map +1 -1
  268. package/dest/p2p/block_attestation.d.ts +1 -3
  269. package/dest/p2p/block_attestation.d.ts.map +1 -1
  270. package/dest/p2p/block_attestation.js +1 -1
  271. package/dest/p2p/block_proposal.d.ts +12 -6
  272. package/dest/p2p/block_proposal.d.ts.map +1 -1
  273. package/dest/p2p/block_proposal.js +25 -9
  274. package/dest/p2p/consensus_payload.d.ts +2 -3
  275. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  276. package/dest/p2p/consensus_payload.js +3 -0
  277. package/dest/p2p/gossipable.d.ts +14 -4
  278. package/dest/p2p/gossipable.d.ts.map +1 -1
  279. package/dest/p2p/gossipable.js +43 -0
  280. package/dest/p2p/signature_utils.d.ts +0 -2
  281. package/dest/p2p/signature_utils.d.ts.map +1 -1
  282. package/dest/p2p/topic_type.d.ts.map +1 -1
  283. package/dest/p2p/topic_type.js +5 -0
  284. package/dest/parity/base_parity_inputs.d.ts +2 -4
  285. package/dest/parity/base_parity_inputs.d.ts.map +1 -1
  286. package/dest/parity/parity_public_inputs.d.ts +2 -4
  287. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  288. package/dest/parity/root_parity_input.d.ts +4 -6
  289. package/dest/parity/root_parity_input.d.ts.map +1 -1
  290. package/dest/parity/root_parity_inputs.d.ts +2 -4
  291. package/dest/parity/root_parity_inputs.d.ts.map +1 -1
  292. package/dest/proofs/client_ivc_proof.d.ts +2 -4
  293. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  294. package/dest/proofs/proof.d.ts +1 -3
  295. package/dest/proofs/proof.d.ts.map +1 -1
  296. package/dest/proofs/recursive_proof.d.ts +4 -6
  297. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  298. package/dest/rollup/avm_proof_data.d.ts +1 -3
  299. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  300. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
  301. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  302. package/dest/rollup/base_rollup_hints.d.ts +9 -11
  303. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  304. package/dest/rollup/base_rollup_hints.js +5 -5
  305. package/dest/rollup/block_merge_rollup.d.ts +2 -4
  306. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  307. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +3 -5
  308. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/block_root_rollup.d.ts +8 -10
  310. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  311. package/dest/rollup/constant_rollup_data.d.ts +1 -3
  312. package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
  313. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
  314. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  315. package/dest/rollup/merge_rollup.d.ts +2 -4
  316. package/dest/rollup/merge_rollup.d.ts.map +1 -1
  317. package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
  318. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  319. package/dest/rollup/previous_rollup_data.d.ts +0 -2
  320. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  321. package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
  322. package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
  323. package/dest/rollup/private_tube_data.d.ts +1 -3
  324. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  325. package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
  326. package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
  327. package/dest/rollup/public_tube_data.d.ts +1 -3
  328. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  329. package/dest/rollup/root_rollup.d.ts +4 -6
  330. package/dest/rollup/root_rollup.d.ts.map +1 -1
  331. package/dest/rollup/state_diff_hints.d.ts +0 -2
  332. package/dest/rollup/state_diff_hints.d.ts.map +1 -1
  333. package/dest/rollup/tube_inputs.d.ts +2 -4
  334. package/dest/rollup/tube_inputs.d.ts.map +1 -1
  335. package/dest/schemas/schemas.d.ts +4 -6
  336. package/dest/schemas/schemas.d.ts.map +1 -1
  337. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  338. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  339. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
  340. package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
  341. package/dest/tests/factories.d.ts +0 -2
  342. package/dest/tests/factories.d.ts.map +1 -1
  343. package/dest/tests/factories.js +17 -14
  344. package/dest/tests/mocks.d.ts +1 -0
  345. package/dest/tests/mocks.d.ts.map +1 -1
  346. package/dest/tests/mocks.js +1 -1
  347. package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
  348. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  349. package/dest/trees/nullifier_leaf.d.ts +0 -2
  350. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  351. package/dest/trees/nullifier_membership_witness.d.ts +4 -6
  352. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  353. package/dest/trees/protocol_contract_leaf.d.ts +0 -2
  354. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  355. package/dest/trees/public_data_leaf.d.ts +1 -3
  356. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  357. package/dest/trees/public_data_witness.d.ts +4 -6
  358. package/dest/trees/public_data_witness.d.ts.map +1 -1
  359. package/dest/tx/block_header.d.ts +1 -4
  360. package/dest/tx/block_header.d.ts.map +1 -1
  361. package/dest/tx/call_context.d.ts +1 -4
  362. package/dest/tx/call_context.d.ts.map +1 -1
  363. package/dest/tx/capsule.d.ts +1 -3
  364. package/dest/tx/capsule.d.ts.map +1 -1
  365. package/dest/tx/content_commitment.d.ts +10 -12
  366. package/dest/tx/content_commitment.d.ts.map +1 -1
  367. package/dest/tx/function_data.d.ts +0 -2
  368. package/dest/tx/function_data.d.ts.map +1 -1
  369. package/dest/tx/global_variables.d.ts +1 -4
  370. package/dest/tx/global_variables.d.ts.map +1 -1
  371. package/dest/tx/hashed_values.d.ts +1 -3
  372. package/dest/tx/hashed_values.d.ts.map +1 -1
  373. package/dest/tx/max_block_number.d.ts +1 -3
  374. package/dest/tx/max_block_number.d.ts.map +1 -1
  375. package/dest/tx/partial_state_reference.d.ts +1 -3
  376. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  377. package/dest/tx/private_execution_result.d.ts +8 -8
  378. package/dest/tx/private_execution_result.d.ts.map +1 -1
  379. package/dest/tx/private_execution_result.js +3 -2
  380. package/dest/tx/profiling.d.ts +8 -0
  381. package/dest/tx/profiling.d.ts.map +1 -1
  382. package/dest/tx/profiling.js +31 -0
  383. package/dest/tx/proposed_block_header.d.ts +1 -4
  384. package/dest/tx/proposed_block_header.d.ts.map +1 -1
  385. package/dest/tx/proposed_block_header.js +2 -1
  386. package/dest/tx/proven_tx.d.ts.map +1 -1
  387. package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
  388. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  389. package/dest/tx/simulated_tx.d.ts.map +1 -1
  390. package/dest/tx/state_reference.d.ts +1 -4
  391. package/dest/tx/state_reference.d.ts.map +1 -1
  392. package/dest/tx/tree_snapshots.d.ts +1 -4
  393. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  394. package/dest/tx/tx.d.ts +6 -11
  395. package/dest/tx/tx.d.ts.map +1 -1
  396. package/dest/tx/tx.js +18 -15
  397. package/dest/tx/tx_constant_data.d.ts +1 -3
  398. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  399. package/dest/tx/tx_context.d.ts +1 -3
  400. package/dest/tx/tx_context.d.ts.map +1 -1
  401. package/dest/tx/tx_effect.d.ts +1 -4
  402. package/dest/tx/tx_effect.d.ts.map +1 -1
  403. package/dest/tx/tx_effect.js +33 -63
  404. package/dest/tx/tx_execution_request.d.ts +13 -6
  405. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  406. package/dest/tx/tx_execution_request.js +14 -7
  407. package/dest/tx/tx_hash.d.ts +2 -4
  408. package/dest/tx/tx_hash.d.ts.map +1 -1
  409. package/dest/tx/tx_receipt.d.ts.map +1 -1
  410. package/dest/tx/tx_receipt.js +1 -1
  411. package/dest/tx/tx_request.d.ts +7 -5
  412. package/dest/tx/tx_request.d.ts.map +1 -1
  413. package/dest/tx/tx_request.js +8 -5
  414. package/dest/tx/validator/error_texts.d.ts +1 -1
  415. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  416. package/dest/tx/validator/error_texts.js +1 -1
  417. package/dest/types/shared.d.ts +1 -3
  418. package/dest/types/shared.d.ts.map +1 -1
  419. package/dest/update-checker/index.d.ts +2 -0
  420. package/dest/update-checker/index.d.ts.map +1 -0
  421. package/dest/update-checker/index.js +1 -0
  422. package/dest/update-checker/update-checker.d.ts +48 -0
  423. package/dest/update-checker/update-checker.d.ts.map +1 -0
  424. package/dest/update-checker/update-checker.js +121 -0
  425. package/dest/versioning/versioning.d.ts +1 -1
  426. package/dest/versioning/versioning.d.ts.map +1 -1
  427. package/dest/vks/verification_key.d.ts +7 -9
  428. package/dest/vks/verification_key.d.ts.map +1 -1
  429. package/dest/vks/vk_witness_data.d.ts +1 -3
  430. package/dest/vks/vk_witness_data.d.ts.map +1 -1
  431. package/package.json +16 -13
  432. package/src/abi/abi.ts +2 -2
  433. package/src/abi/contract_artifact.ts +3 -17
  434. package/src/abi/decoder.ts +10 -3
  435. package/src/abi/encoder.ts +5 -2
  436. package/src/avm/avm.ts +13 -7
  437. package/src/avm/avm_accumulated_data.ts +30 -2
  438. package/src/avm/avm_circuit_public_inputs.ts +26 -0
  439. package/src/avm/message_pack.ts +7 -1
  440. package/src/avm/public_data_write.ts +21 -1
  441. package/src/avm/public_inner_call_request.ts +1 -1
  442. package/src/avm/revert_code.ts +5 -5
  443. package/src/block/body.ts +5 -11
  444. package/src/block/l2_block.ts +1 -1
  445. package/src/config/index.ts +2 -1
  446. package/src/config/node-rpc-config.ts +14 -0
  447. package/src/contract/artifact_hash.ts +5 -3
  448. package/src/contract/private_function.ts +4 -2
  449. package/src/errors/proving_error.ts +5 -1
  450. package/src/file-store/factory.ts +1 -1
  451. package/src/file-store/http.ts +27 -18
  452. package/src/gas/gas.ts +4 -1
  453. package/src/interfaces/aztec-node-admin.ts +16 -0
  454. package/src/interfaces/aztec-node.ts +4 -2
  455. package/src/interfaces/configs.ts +3 -0
  456. package/src/interfaces/p2p.ts +4 -0
  457. package/src/interfaces/prover-client.ts +4 -1
  458. package/src/interfaces/pxe.ts +3 -4
  459. package/src/interfaces/service.ts +2 -3
  460. package/src/interfaces/world_state.ts +6 -1
  461. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
  462. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
  463. package/src/kernel/hints/read_request.ts +4 -1
  464. package/src/kernel/hints/read_request_hints.ts +12 -3
  465. package/src/kernel/hints/transient_data_index_hint.ts +4 -1
  466. package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
  467. package/src/kernel/log_hash.ts +86 -14
  468. package/src/kernel/note_hash.ts +8 -2
  469. package/src/kernel/nullifier.ts +9 -2
  470. package/src/kernel/private_accumulated_data.ts +4 -4
  471. package/src/kernel/private_call_request.ts +1 -1
  472. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  473. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
  474. package/src/kernel/private_log_data.ts +13 -4
  475. package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
  476. package/src/kernel/private_validation_requests.ts +1 -1
  477. package/src/kernel/public_call_request.ts +4 -1
  478. package/src/keys/public_keys.ts +1 -1
  479. package/src/logs/contract_class_log.ts +156 -57
  480. package/src/logs/indexed_tagging_secret.ts +4 -1
  481. package/src/logs/log_with_tx_data.ts +7 -2
  482. package/src/logs/private_log.ts +52 -30
  483. package/src/logs/public_log.ts +62 -38
  484. package/src/logs/tx_scoped_l2_log.ts +1 -2
  485. package/src/messaging/inbox_leaf.ts +10 -0
  486. package/src/messaging/l2_to_l1_message.ts +9 -2
  487. package/src/p2p/block_attestation.ts +1 -1
  488. package/src/p2p/block_proposal.ts +36 -5
  489. package/src/p2p/consensus_payload.ts +4 -0
  490. package/src/p2p/gossipable.ts +44 -2
  491. package/src/p2p/topic_type.ts +2 -0
  492. package/src/rollup/base_rollup_hints.ts +7 -7
  493. package/src/rollup/block_root_or_block_merge_public_inputs.ts +4 -1
  494. package/src/rollup/private_base_rollup_inputs.ts +4 -1
  495. package/src/rollup/tube_inputs.ts +4 -1
  496. package/src/shared_mutable/scheduled_delay_change.ts +5 -1
  497. package/src/shared_mutable/scheduled_value_change.ts +5 -1
  498. package/src/shared_mutable/shared_mutable_values.ts +4 -1
  499. package/src/tests/factories.ts +31 -18
  500. package/src/tests/mocks.ts +2 -1
  501. package/src/tx/content_commitment.ts +6 -1
  502. package/src/tx/private_execution_result.ts +9 -5
  503. package/src/tx/profiling.ts +39 -1
  504. package/src/tx/proposed_block_header.ts +2 -1
  505. package/src/tx/tx.ts +18 -17
  506. package/src/tx/tx_effect.ts +36 -76
  507. package/src/tx/tx_execution_request.ts +11 -0
  508. package/src/tx/tx_receipt.ts +1 -1
  509. package/src/tx/tx_request.ts +12 -3
  510. package/src/tx/validator/error_texts.ts +1 -1
  511. package/src/update-checker/index.ts +1 -0
  512. package/src/update-checker/update-checker.ts +152 -0
  513. package/src/versioning/versioning.ts +1 -1
  514. package/src/vks/verification_key.ts +8 -2
  515. package/dest/config/config.d.ts.map +0 -1
  516. /package/dest/config/{config.js → chain-config.js} +0 -0
  517. /package/src/config/{config.ts → chain-config.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"public_keys.d.ts","sourceRoot":"","sources":["../../src/keys/public_keys.ts"],"names":[],"mappings":";;AAYA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;IAEnB,kCAAkC;IAC3B,wBAAwB,EAAE,SAAS;IAC1C,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,wCAAwC;IACjC,sBAAsB,EAAE,SAAS;;IAPxC,kCAAkC;IAC3B,wBAAwB,EAAE,SAAS;IAC1C,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,wCAAwC;IACjC,sBAAsB,EAAE,SAAS;IAG1C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IASxC,IAAI;IAcJ,OAAO;IASP,MAAM,CAAC,OAAO,IAAI,UAAU;WASf,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASlC;;;;;OAKG;IACH,QAAQ,IAAI,MAAM;IASlB;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU;IAc5D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcZ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAWhB,YAAY,IAAI,EAAE,EAAE;IAIpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU;IAUzD,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAG/B"}
1
+ {"version":3,"file":"public_keys.d.ts","sourceRoot":"","sources":["../../src/keys/public_keys.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;IAEnB,kCAAkC;IAC3B,wBAAwB,EAAE,SAAS;IAC1C,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,wCAAwC;IACjC,sBAAsB,EAAE,SAAS;;IAPxC,kCAAkC;IAC3B,wBAAwB,EAAE,SAAS;IAC1C,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,yCAAyC;IAClC,8BAA8B,EAAE,SAAS;IAChD,wCAAwC;IACjC,sBAAsB,EAAE,SAAS;IAG1C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IASxC,IAAI;IAcJ,OAAO;IASP,MAAM,CAAC,OAAO,IAAI,UAAU;WASf,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASlC;;;;;OAKG;IACH,QAAQ,IAAI,MAAM;IASlB;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU;IAc5D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcZ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAWhB,YAAY,IAAI,EAAE,EAAE;IAIpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU;IAUzD,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAG/B"}
@@ -83,7 +83,6 @@ export class PublicKeys {
83
83
  }
84
84
  toNoirStruct() {
85
85
  // We need to use lowercase identifiers as those are what the noir interface expects
86
- // eslint-disable-next-line camelcase
87
86
  return {
88
87
  // TODO(#6337): Directly dump account.publicKeys here
89
88
  /* eslint-disable camelcase */ npk_m: this.masterNullifierPublicKey.toWrappedNoirStruct(),
@@ -1,43 +1,84 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- /// <reference types="node" resolution-mode="require"/>
4
1
  import { Fr } from '@aztec/foundation/fields';
5
2
  import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
3
+ import type { FieldsOf } from '@aztec/foundation/types';
6
4
  import { inspect } from 'util';
7
5
  import { z } from 'zod';
8
6
  import { AztecAddress } from '../aztec-address/index.js';
7
+ export declare class ContractClassLogFields {
8
+ fields: Fr[];
9
+ constructor(fields: Fr[]);
10
+ static get schema(): z.ZodEffects<z.ZodObject<{
11
+ fields: z.ZodEffects<z.ZodArray<z.ZodType<Fr, any, string>, "many">, Fr[], string[]>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ fields: Fr[];
14
+ }, {
15
+ fields: string[];
16
+ }>, ContractClassLogFields, {
17
+ fields: string[];
18
+ }>;
19
+ toFields(): Fr[];
20
+ static fromFields(fields: Fr[] | FieldReader): ContractClassLogFields;
21
+ toBuffer(): Buffer<ArrayBufferLike>;
22
+ static fromBuffer(buffer: Buffer | BufferReader): ContractClassLogFields;
23
+ equals(other: ContractClassLogFields): boolean;
24
+ getEmittedFields(emittedLength: number): Fr[];
25
+ static fromEmittedFields(emittedFields: Fr[]): ContractClassLogFields;
26
+ isEmpty(): boolean;
27
+ static empty(): ContractClassLogFields;
28
+ static random(emittedLength?: number): ContractClassLogFields;
29
+ hash(): Promise<Fr>;
30
+ clone(): ContractClassLogFields;
31
+ }
9
32
  export declare class ContractClassLog {
10
33
  contractAddress: AztecAddress;
11
- fields: Fr[];
34
+ fields: ContractClassLogFields;
35
+ emittedLength: number;
12
36
  static SIZE_IN_BYTES: number;
13
37
  unsiloedFirstField?: Fr | undefined;
14
- constructor(contractAddress: AztecAddress, fields: Fr[]);
38
+ constructor(contractAddress: AztecAddress, fields: ContractClassLogFields, emittedLength: number);
39
+ static from(fields: FieldsOf<ContractClassLog>): ContractClassLog;
15
40
  toFields(): Fr[];
16
41
  equals(other: ContractClassLog): boolean;
17
42
  static fromFields(fields: Fr[] | FieldReader): ContractClassLog;
43
+ getEmittedFields(): Fr[];
44
+ toBlobFields(): Fr[];
45
+ static fromBlobFields(fields: Fr[] | FieldReader): ContractClassLog;
18
46
  isEmpty(): boolean;
19
47
  static empty(): ContractClassLog;
20
48
  toBuffer(): Buffer;
21
49
  static fromBuffer(buffer: Buffer | BufferReader): ContractClassLog;
22
- clone(): ContractClassLog;
23
50
  static random(): Promise<ContractClassLog>;
24
- getEmittedLength(): number;
25
- getEmittedFields(): Fr[];
26
51
  setUnsiloedFirstField(field: Fr): void;
27
52
  toUnsiloed(): ContractClassLog;
28
53
  silo(): Promise<ContractClassLog>;
29
54
  hash(): Promise<Fr>;
30
55
  static get schema(): z.ZodEffects<z.ZodObject<{
31
56
  contractAddress: import("@aztec/foundation/schemas").ZodFor<AztecAddress>;
32
- fields: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
57
+ fields: z.ZodEffects<z.ZodObject<{
58
+ fields: z.ZodEffects<z.ZodArray<z.ZodType<Fr, any, string>, "many">, Fr[], string[]>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ fields: Fr[];
61
+ }, {
62
+ fields: string[];
63
+ }>, ContractClassLogFields, {
64
+ fields: string[];
65
+ }>;
66
+ emittedLength: z.ZodNumber;
33
67
  }, "strip", z.ZodTypeAny, {
34
- fields: Fr[];
68
+ fields: ContractClassLogFields;
35
69
  contractAddress: AztecAddress;
70
+ emittedLength: number;
36
71
  }, {
37
- fields: string[];
72
+ fields: {
73
+ fields: string[];
74
+ };
75
+ emittedLength: number;
38
76
  contractAddress?: any;
39
77
  }>, ContractClassLog, {
40
- fields: string[];
78
+ fields: {
79
+ fields: string[];
80
+ };
81
+ emittedLength: number;
41
82
  contractAddress?: any;
42
83
  }>;
43
84
  [inspect.custom](): string;
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/contract_class_log.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,gBAAgB;IAOR,eAAe,EAAE,YAAY;IAAS,MAAM,EAAE,EAAE,EAAE;IANrE,MAAM,CAAC,aAAa,SAAwD;IAErE,kBAAkB,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;gBAIxB,eAAe,EAAE,YAAY,EAAS,MAAM,EAAE,EAAE,EAAE;IAQrE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,KAAK,EAAE,gBAAgB;IAQ9B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAU5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAW/C,KAAK;WAIQ,MAAM;IAWnB,gBAAgB;IAOhB,gBAAgB;IAKhB,qBAAqB,CAAC,KAAK,EAAE,EAAE;IAI/B,UAAU;IAQJ,IAAI;IAUJ,IAAI;IAIV,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAK3B"}
1
+ {"version":3,"file":"contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/contract_class_log.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAC9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,sBAAsB;IAGd,MAAM,EAAE,EAAE,EAAE;gBAAZ,MAAM,EAAE,EAAE,EAAE;IAQ/B,MAAM,KAAK,MAAM;;;;;;;;OAMhB;IAED,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAS5C,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,MAAM,CAAC,KAAK,EAAE,sBAAsB;IAIpC,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,EAAE,EAAE;IAM5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,MAAM,CAAC,aAAa,SAAoC;IAQzD,IAAI;IAIV,KAAK;CAGN;AAED,qBAAa,gBAAgB;IAMlB,eAAe,EAAE,YAAY;IAC7B,MAAM,EAAE,sBAAsB;IAC9B,aAAa,EAAE,MAAM;IAP9B,MAAM,CAAC,aAAa,SAAgD;IAE7D,kBAAkB,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;gBAGlC,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,MAAM;IAG9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAI9C,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,KAAK,EAAE,gBAAgB;IAQ9B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAS5C,gBAAgB;IAIhB,YAAY,IAAI,EAAE,EAAE;IAIpB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAYhD,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;WAQlC,MAAM;IAUnB,qBAAqB,CAAC,KAAK,EAAE,EAAE;IAI/B,UAAU;IAgBJ,IAAI;IAcJ,IAAI;IAIV,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAO3B"}
@@ -1,128 +1,191 @@
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
6
  import { inspect } from 'util';
7
7
  import { z } from 'zod';
8
8
  import { AztecAddress } from '../aztec-address/index.js';
9
+ export class ContractClassLogFields {
10
+ fields;
11
+ // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
12
+ // public fields: Tuple<Fr, typeof CONTRACT_CLASS_LOG_SIZE_IN_FIELDS>
13
+ constructor(fields){
14
+ this.fields = fields;
15
+ if (fields.length !== CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
16
+ throw new Error(`Invalid number of fields for ContractClassLog. Expected ${CONTRACT_CLASS_LOG_SIZE_IN_FIELDS}, got ${fields.length}`);
17
+ }
18
+ }
19
+ static get schema() {
20
+ return z.object({
21
+ fields: z.array(schemas.Fr).refine((arr)=>arr.length === CONTRACT_CLASS_LOG_SIZE_IN_FIELDS)
22
+ }).transform(({ fields })=>new ContractClassLogFields(fields));
23
+ }
24
+ toFields() {
25
+ return this.fields;
26
+ }
27
+ static fromFields(fields) {
28
+ const reader = FieldReader.asReader(fields);
29
+ // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
30
+ // reader.readFieldArray(CONTRACT_CLASS_LOG_LENGTH);
31
+ return new ContractClassLogFields(Array.from({
32
+ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS
33
+ }, ()=>reader.readField()));
34
+ }
35
+ toBuffer() {
36
+ return serializeToBuffer(this.fields);
37
+ }
38
+ static fromBuffer(buffer) {
39
+ const reader = BufferReader.asReader(buffer);
40
+ // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
41
+ // reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr)
42
+ return new ContractClassLogFields(Array.from({
43
+ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS
44
+ }, ()=>reader.readObject(Fr)));
45
+ }
46
+ equals(other) {
47
+ return this.fields.every((f, i)=>f.equals(other.fields[i]));
48
+ }
49
+ getEmittedFields(emittedLength) {
50
+ return this.fields.slice(0, emittedLength);
51
+ }
52
+ static fromEmittedFields(emittedFields) {
53
+ return new ContractClassLogFields(emittedFields.concat(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedFields.length).fill(Fr.ZERO)));
54
+ }
55
+ isEmpty() {
56
+ return this.fields.every((f)=>f.isZero());
57
+ }
58
+ static empty() {
59
+ return new ContractClassLogFields(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS).fill(Fr.ZERO));
60
+ }
61
+ static random(emittedLength = CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
62
+ return new ContractClassLogFields(Array.from({
63
+ length: emittedLength
64
+ }, ()=>Fr.random()).concat(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedLength).fill(Fr.ZERO)));
65
+ }
66
+ async hash() {
67
+ return await poseidon2Hash(this.fields);
68
+ }
69
+ clone() {
70
+ return ContractClassLogFields.fromBuffer(this.toBuffer());
71
+ }
72
+ }
9
73
  export class ContractClassLog {
10
74
  contractAddress;
11
75
  fields;
12
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_SIZE_IN_FIELDS;
76
+ emittedLength;
77
+ static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_LENGTH;
13
78
  // Keeps original first field pre-siloing. Only set by silo().
14
79
  unsiloedFirstField;
15
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
16
- // public fields: Tuple<Fr, typeof CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS>
17
- constructor(contractAddress, fields){
80
+ constructor(contractAddress, fields, emittedLength){
18
81
  this.contractAddress = contractAddress;
19
82
  this.fields = fields;
20
- if (fields.length !== CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS) {
21
- throw new Error(`Invalid number of fields for ContractClassLog. Expected ${CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS}, got ${fields.length}`);
22
- }
83
+ this.emittedLength = emittedLength;
84
+ }
85
+ static from(fields) {
86
+ return new ContractClassLog(fields.contractAddress, fields.fields, fields.emittedLength);
23
87
  }
24
88
  toFields() {
25
- return [
26
- this.contractAddress.toField(),
27
- ...this.fields
28
- ];
89
+ return serializeToFields([
90
+ this.contractAddress,
91
+ this.fields,
92
+ this.emittedLength
93
+ ]);
29
94
  }
30
95
  equals(other) {
31
- return this.contractAddress.equals(other.contractAddress) && this.fields.length === other.fields.length && this.fields.every((f, i)=>f.equals(other.fields[i]));
96
+ return this.contractAddress.equals(other.contractAddress) && this.fields.equals(other.fields) && this.emittedLength === other.emittedLength;
32
97
  }
33
98
  static fromFields(fields) {
34
99
  const reader = FieldReader.asReader(fields);
35
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
36
- // return new ContractClassLog(reader.readFieldArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS));
37
- return new ContractClassLog(reader.readObject(AztecAddress), Array.from({
38
- length: CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS
39
- }, ()=>reader.readField()));
100
+ return new ContractClassLog(reader.readObject(AztecAddress), reader.readObject(ContractClassLogFields), reader.readU32());
101
+ }
102
+ getEmittedFields() {
103
+ return this.fields.getEmittedFields(this.emittedLength);
104
+ }
105
+ toBlobFields() {
106
+ return [
107
+ new Fr(this.emittedLength),
108
+ this.contractAddress.toField()
109
+ ].concat(this.getEmittedFields());
110
+ }
111
+ static fromBlobFields(fields) {
112
+ const reader = FieldReader.asReader(fields);
113
+ const emittedLength = reader.readU32();
114
+ const contractAddress = reader.readObject(AztecAddress);
115
+ const emittedFields = reader.readFieldArray(emittedLength);
116
+ return new ContractClassLog(contractAddress, ContractClassLogFields.fromEmittedFields(emittedFields), emittedLength);
40
117
  }
41
118
  isEmpty() {
42
- return this.fields.every((f)=>f.isZero());
119
+ return this.contractAddress.isZero() && this.fields.isEmpty() && this.emittedLength === 0;
43
120
  }
44
121
  static empty() {
45
- return new ContractClassLog(AztecAddress.ZERO, new Array(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS).fill(Fr.ZERO));
122
+ return new ContractClassLog(AztecAddress.ZERO, ContractClassLogFields.empty(), 0);
46
123
  }
47
124
  toBuffer() {
48
125
  return serializeToBuffer([
49
126
  this.contractAddress,
50
- this.fields
127
+ this.fields,
128
+ this.emittedLength
51
129
  ]);
52
130
  }
53
131
  static fromBuffer(buffer) {
54
132
  const reader = BufferReader.asReader(buffer);
55
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
56
- // reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr);
57
133
  const address = reader.readObject(AztecAddress);
58
- const fields = Array.from({
59
- length: CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS
60
- }, ()=>reader.remainingBytes() == 0 ? Fr.ZERO : Fr.fromBuffer(reader));
61
- return new ContractClassLog(address, fields);
62
- }
63
- clone() {
64
- return ContractClassLog.fromBuffer(this.toBuffer());
134
+ const fields = ContractClassLogFields.fromBuffer(reader);
135
+ const emittedLength = reader.readNumber();
136
+ return new ContractClassLog(address, fields, emittedLength);
65
137
  }
66
138
  static async random() {
67
139
  // NB: Using half the maximum number of fields per log because max fields keeps overfilling blobs in tests.
68
- // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
69
- // makeTuple(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS, Fr.random);
70
- const fields = Array.from({
71
- length: Math.ceil(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS / 2)
72
- }, ()=>Fr.random());
73
- return new ContractClassLog(await AztecAddress.random(), fields.concat(Array.from({
74
- length: Math.floor(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS / 2)
75
- }, ()=>Fr.ZERO)));
76
- }
77
- getEmittedLength() {
78
- // This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
79
- // Does not include address or length prefix.
80
- // Note: Unlike public logs, address is not included here because it is not included in the log itself.
81
- return this.getEmittedFields().length;
82
- }
83
- getEmittedFields() {
84
- const lastNonZeroIndex = this.fields.findLastIndex((f)=>!f.isZero());
85
- return this.fields.slice(0, lastNonZeroIndex + 1);
140
+ const emittedLength = Math.ceil(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS / 2);
141
+ return new ContractClassLog(await AztecAddress.random(), ContractClassLogFields.random(emittedLength), emittedLength);
86
142
  }
87
143
  setUnsiloedFirstField(field) {
88
144
  this.unsiloedFirstField = field;
89
145
  }
90
146
  toUnsiloed() {
147
+ if (this.contractAddress.isZero()) {
148
+ return this;
149
+ }
91
150
  if (this.unsiloedFirstField) {
92
- return new ContractClassLog(this.contractAddress, [
151
+ return new ContractClassLog(this.contractAddress, new ContractClassLogFields([
93
152
  this.unsiloedFirstField
94
- ].concat(this.fields.slice(1)));
153
+ ].concat(this.fields.fields.slice(1))), this.emittedLength);
95
154
  } else {
96
155
  return this;
97
156
  }
98
157
  }
158
+ // TODO(#13914): Don't need to silo the contract class logs.
99
159
  async silo() {
100
- const innerLog = this.clone();
101
- if (innerLog.contractAddress.isZero()) {
102
- return innerLog;
160
+ if (this.contractAddress.isZero()) {
161
+ return this;
103
162
  }
104
- innerLog.setUnsiloedFirstField(innerLog.fields[0]);
105
- innerLog.fields[0] = await poseidon2Hash([
106
- innerLog.contractAddress,
107
- innerLog.fields[0]
163
+ const fields = this.fields.clone();
164
+ const unsiloedField = fields.fields[0];
165
+ const siloedField = await poseidon2Hash([
166
+ this.contractAddress,
167
+ unsiloedField
108
168
  ]);
109
- return innerLog;
169
+ fields.fields[0] = siloedField;
170
+ const cloned = new ContractClassLog(this.contractAddress, fields, this.emittedLength);
171
+ cloned.setUnsiloedFirstField(unsiloedField);
172
+ return cloned;
110
173
  }
111
174
  async hash() {
112
- return await poseidon2Hash(this.fields);
175
+ return await this.fields.hash();
113
176
  }
114
177
  static get schema() {
115
178
  return z.object({
116
179
  contractAddress: AztecAddress.schema,
117
- fields: z.array(schemas.Fr)
118
- }).transform(({ contractAddress, fields })=>ContractClassLog.fromFields([
119
- contractAddress.toField(),
120
- ...fields
121
- ]));
180
+ fields: ContractClassLogFields.schema,
181
+ emittedLength: z.number()
182
+ }).transform(ContractClassLog.from);
122
183
  }
123
184
  [inspect.custom]() {
124
185
  return `ContractClassLog {
125
- fields: [${this.fields.map((x)=>inspect(x)).join(', ')}],
186
+ contractAddress: ${this.contractAddress.toString()},
187
+ emittedLength: ${this.emittedLength},
188
+ fields: [${this.fields.fields.map((x)=>inspect(x)).join(', ')}],
126
189
  }`;
127
190
  }
128
191
  }
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import type { ZodFor } from '@aztec/foundation/schemas';
4
2
  import { BufferReader } from '@aztec/foundation/serialize';
5
3
  import type { FieldsOf } from '@aztec/foundation/types';
@@ -1 +1 @@
1
- {"version":3,"file":"extended_contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/extended_contract_class_log.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,qCAAqC;aACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;aACpB,GAAG,EAAE,gBAAgB;;IAHrC,qCAAqC;IACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;IACpB,GAAG,EAAE,gBAAgB;WAG1B,MAAM;IAInB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAOpD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAItD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO;IAIvD;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,wBAAwB;IASjF;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB;CAGjE"}
1
+ {"version":3,"file":"extended_contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/extended_contract_class_log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,qCAAqC;aACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;aACpB,GAAG,EAAE,gBAAgB;;IAHrC,qCAAqC;IACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;IACpB,GAAG,EAAE,gBAAgB;WAG1B,MAAM;IAInB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAOpD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAItD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO;IAIvD;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,wBAAwB;IASjF;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB;CAGjE"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { BufferReader } from '@aztec/foundation/serialize';
4
2
  import type { FieldsOf } from '@aztec/foundation/types';
5
3
  import { z } from 'zod';
@@ -1 +1 @@
1
- {"version":3,"file":"extended_public_log.d.ts","sourceRoot":"","sources":["../../src/logs/extended_public_log.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,qCAAqC;aACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;aACpB,GAAG,EAAE,SAAS;;IAH9B,qCAAqC;IACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;IACpB,GAAG,EAAE,SAAS;WAGnB,MAAM;IAInB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IAI/C;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAIhD;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB;IAS1E;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAG1D"}
1
+ {"version":3,"file":"extended_public_log.d.ts","sourceRoot":"","sources":["../../src/logs/extended_public_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,qCAAqC;aACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;aACpB,GAAG,EAAE,SAAS;;IAH9B,qCAAqC;IACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;IACpB,GAAG,EAAE,SAAS;WAGnB,MAAM;IAInB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IAI/C;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAIhD;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB;IAS1E;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAG1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/indexed_tagging_secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,qBAAa,oBAAoB;IACZ,gBAAgB,EAAE,EAAE;IAAS,KAAK,EAAE,MAAM;gBAA1C,gBAAgB,EAAE,EAAE,EAAS,KAAK,EAAE,MAAM;IAM7D,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE;IAIlC;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,YAAY;IAIlC;;;;;;;;OAQG;IACG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAIlE"}
1
+ {"version":3,"file":"indexed_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/indexed_tagging_secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,qBAAa,oBAAoB;IAEtB,gBAAgB,EAAE,EAAE;IACpB,KAAK,EAAE,MAAM;gBADb,gBAAgB,EAAE,EAAE,EACpB,KAAK,EAAE,MAAM;IAOtB,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE;IAIlC;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,YAAY;IAIlC;;;;;;;;OAQG;IACG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;CAIlE"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { BufferReader } from '@aztec/foundation/serialize';
4
2
  import { z } from 'zod';
5
3
  /** A globally unique log id. */
@@ -1 +1 @@
1
- {"version":3,"file":"log_id.d.ts","sourceRoot":"","sources":["../../src/logs/log_id.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,gCAAgC;AAChC,qBAAa,KAAK;IAQd,+CAA+C;aAC/B,WAAW,EAAE,MAAM;IACnC,2DAA2D;aAC3C,OAAO,EAAE,MAAM;IAC/B,gDAAgD;aAChC,QAAQ,EAAE,MAAM;IAZlC;;;;;OAKG;;IAED,+CAA+C;IAC/B,WAAW,EAAE,MAAM;IACnC,2DAA2D;IAC3C,OAAO,EAAE,MAAM;IAC/B,gDAAgD;IAChC,QAAQ,EAAE,MAAM;IAalC,MAAM,CAAC,MAAM;IAQb,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAQzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK;IAUvD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAStC;;;OAGG;IACI,eAAe,IAAI,MAAM;CAGjC"}
1
+ {"version":3,"file":"log_id.d.ts","sourceRoot":"","sources":["../../src/logs/log_id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,gCAAgC;AAChC,qBAAa,KAAK;IAQd,+CAA+C;aAC/B,WAAW,EAAE,MAAM;IACnC,2DAA2D;aAC3C,OAAO,EAAE,MAAM;IAC/B,gDAAgD;aAChC,QAAQ,EAAE,MAAM;IAZlC;;;;;OAKG;;IAED,+CAA+C;IAC/B,WAAW,EAAE,MAAM;IACnC,2DAA2D;IAC3C,OAAO,EAAE,MAAM;IAC/B,gDAAgD;IAChC,QAAQ,EAAE,MAAM;IAalC,MAAM,CAAC,MAAM;IAQb,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAQzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK;IAUvD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAStC;;;OAGG;IACI,eAAe,IAAI,MAAM;CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"log_with_tx_data.d.ts","sourceRoot":"","sources":["../../src/logs/log_with_tx_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,qBAAa,aAAa;IAEf,UAAU,EAAE,EAAE,EAAE;IAChB,MAAM,EAAE,MAAM;IACd,oBAAoB,EAAE,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;gBAHtB,UAAU,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE;IAG/B,mBAAmB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;IASpC,MAAM,CAAC,wBAAwB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;CAGjD"}
1
+ {"version":3,"file":"log_with_tx_data.d.ts","sourceRoot":"","sources":["../../src/logs/log_with_tx_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,qBAAa,aAAa;IAIf,UAAU,EAAE,EAAE,EAAE;IAChB,MAAM,EAAE,MAAM;IACd,oBAAoB,EAAE,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;gBAHtB,UAAU,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE;IAG/B,mBAAmB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;IAYpC,MAAM,CAAC,wBAAwB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;CAGjD"}
@@ -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
  // TypeScript representation of the Noir aztec::oracle::message_discovery::LogWithTxData struct. This is used as a
@@ -8,7 +8,9 @@ export class LogWithTxData {
8
8
  txHash;
9
9
  uniqueNoteHashesInTx;
10
10
  firstNullifierInTx;
11
- constructor(logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
11
+ constructor(// The emitted fields of a log.
12
+ // For public logs, the contract address is prepended to the content.
13
+ logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
12
14
  this.logContent = logContent;
13
15
  this.txHash = txHash;
14
16
  this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
@@ -16,7 +18,10 @@ export class LogWithTxData {
16
18
  }
17
19
  toNoirSerialization() {
18
20
  return [
19
- ...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_DATA_SIZE_IN_FIELDS),
21
+ // The log fields length is PUBLIC_LOG_SIZE_IN_FIELDS. + 1 because the contract address is prepended to the content.
22
+ // This is only used for public logs currently, so the maxLength is PUBLIC_LOG_SIZE_IN_FIELDS + 1.
23
+ // TODO(#11639): this could also be used for private logs.
24
+ ...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_SIZE_IN_FIELDS + 1),
20
25
  this.txHash.hash,
21
26
  ...toBoundedVecSerialization(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
22
27
  this.firstNullifierInTx
@@ -1,32 +1,38 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- /// <reference types="node" resolution-mode="require"/>
4
1
  import { PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
+ import { type FieldsOf } from '@aztec/foundation/array';
5
3
  import { Fr } from '@aztec/foundation/fields';
6
4
  import { BufferReader, FieldReader, type Tuple } from '@aztec/foundation/serialize';
7
5
  import { inspect } from 'util';
8
6
  import { z } from 'zod';
9
7
  export declare class PrivateLog {
10
8
  fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>;
9
+ emittedLength: number;
11
10
  static SIZE_IN_BYTES: number;
12
- constructor(fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>);
11
+ constructor(fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>, emittedLength: number);
12
+ static from(fields: FieldsOf<PrivateLog>): PrivateLog;
13
+ static getFields(fields: FieldsOf<PrivateLog>): readonly [[Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], number];
13
14
  toFields(): Fr[];
14
15
  static fromFields(fields: Fr[] | FieldReader): PrivateLog;
16
+ getEmittedFields(): Fr[];
17
+ toBlobFields(): Fr[];
18
+ static fromBlobFields(fields: Fr[] | FieldReader): PrivateLog;
15
19
  isEmpty(): boolean;
16
20
  static empty(): PrivateLog;
17
21
  toBuffer(): Buffer;
18
22
  static fromBuffer(buffer: Buffer | BufferReader): PrivateLog;
19
23
  static random(tag?: Fr): PrivateLog;
20
- getEmittedLength(): number;
21
- getEmittedFields(): Fr[];
22
24
  static get schema(): z.ZodEffects<z.ZodObject<{
23
25
  fields: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
24
- }, "strip", z.ZodTypeAny, {
26
+ emittedLength: z.ZodNumber;
27
+ }, "strict", z.ZodTypeAny, {
25
28
  fields: Fr[];
29
+ emittedLength: number;
26
30
  }, {
27
31
  fields: string[];
32
+ emittedLength: number;
28
33
  }>, PrivateLog, {
29
34
  fields: string[];
35
+ emittedLength: number;
30
36
  }>;
31
37
  equals(other: PrivateLog): boolean;
32
38
  [inspect.custom](): string;
@@ -1 +1 @@
1
- {"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,0BAA0B,EAAkC,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAGF,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAFvE,MAAM,CAAC,aAAa,SAAiD;gBAElD,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEvE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc;IAI/B,gBAAgB;IAMhB,gBAAgB;IAKhB,MAAM,KAAK,MAAM;;;;;;;;OAYhB;IAED,MAAM,CAAC,KAAK,EAAE,UAAU;IAIxB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAK3B"}
1
+ {"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAIZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEpD,aAAa,EAAE,MAAM;IAL9B,MAAM,CAAC,aAAa,SAAyC;gBAGpD,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC,EAEpD,aAAa,EAAE,MAAM;IAG9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IAIxC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,gBAAgB;IAIhB,YAAY,IAAI,EAAE,EAAE;IAIpB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAOhD,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc;IAM/B,MAAM,KAAK,MAAM;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,KAAK,EAAE,UAAU;IAIxB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAM3B"}
@@ -1,67 +1,81 @@
1
- import { PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_LOG_DATA_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { PRIVATE_LOG_LENGTH, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { 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, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
6
7
  import { inspect } from 'util';
7
8
  import { z } from 'zod';
8
9
  export class PrivateLog {
9
10
  fields;
10
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PRIVATE_LOG_SIZE_IN_FIELDS;
11
- constructor(fields){
11
+ emittedLength;
12
+ static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PRIVATE_LOG_LENGTH;
13
+ constructor(fields, // Named `emittedLength` instead of `length` to avoid being confused with fields.length.
14
+ emittedLength){
12
15
  this.fields = fields;
16
+ this.emittedLength = emittedLength;
17
+ }
18
+ static from(fields) {
19
+ return new PrivateLog(...PrivateLog.getFields(fields));
20
+ }
21
+ static getFields(fields) {
22
+ return [
23
+ fields.fields,
24
+ fields.emittedLength
25
+ ];
13
26
  }
14
27
  toFields() {
15
- return this.fields;
28
+ return serializeToFields(...PrivateLog.getFields(this));
16
29
  }
17
30
  static fromFields(fields) {
18
31
  const reader = FieldReader.asReader(fields);
19
- return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS));
32
+ return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS), reader.readU32());
33
+ }
34
+ getEmittedFields() {
35
+ return this.fields.slice(0, this.emittedLength);
36
+ }
37
+ toBlobFields() {
38
+ return [
39
+ new Fr(this.emittedLength)
40
+ ].concat(this.getEmittedFields());
41
+ }
42
+ static fromBlobFields(fields) {
43
+ const reader = FieldReader.asReader(fields);
44
+ const emittedLength = reader.readU32();
45
+ const emittedFields = reader.readFieldArray(emittedLength);
46
+ return new PrivateLog(padArrayEnd(emittedFields, Fr.ZERO, PRIVATE_LOG_SIZE_IN_FIELDS), emittedLength);
20
47
  }
21
48
  isEmpty() {
22
49
  return this.fields.every((f)=>f.isZero());
23
50
  }
24
51
  static empty() {
25
- return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero));
52
+ return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
26
53
  }
27
54
  toBuffer() {
28
- return serializeToBuffer(this.fields);
55
+ return serializeToBuffer(this.fields, this.emittedLength);
29
56
  }
30
57
  static fromBuffer(buffer) {
31
58
  const reader = BufferReader.asReader(buffer);
32
- return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr));
59
+ return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
33
60
  }
34
61
  static random(tag = Fr.random()) {
35
- return PrivateLog.fromFields([
36
- tag,
37
- ...Array.from({
38
- length: PRIVATE_LOG_SIZE_IN_FIELDS - 1
39
- }, ()=>Fr.random())
40
- ]);
41
- }
42
- getEmittedLength() {
43
- // This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
44
- // Does not include length prefix.
45
- return this.getEmittedFields().length;
46
- }
47
- getEmittedFields() {
48
- const lastNonZeroIndex = this.fields.findLastIndex((f)=>!f.isZero());
49
- return this.fields.slice(0, lastNonZeroIndex + 1);
62
+ const fields = makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random);
63
+ fields[0] = tag;
64
+ return new PrivateLog(fields, PRIVATE_LOG_SIZE_IN_FIELDS);
50
65
  }
51
66
  static get schema() {
52
- if (PUBLIC_LOG_DATA_SIZE_IN_FIELDS + 1 == PRIVATE_LOG_SIZE_IN_FIELDS) {
53
- throw new Error('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.');
54
- }
55
67
  return z.object({
56
- fields: z.array(schemas.Fr)
57
- }).transform(({ fields })=>PrivateLog.fromFields(fields));
68
+ fields: z.array(schemas.Fr),
69
+ emittedLength: z.number()
70
+ }).strict().transform(({ fields, emittedLength })=>PrivateLog.fromFields(fields.concat(new Fr(emittedLength))));
58
71
  }
59
72
  equals(other) {
60
- return this.fields.every((field, i)=>field.equals(other.fields[i]));
73
+ return this.fields.every((field, i)=>field.equals(other.fields[i])) && this.emittedLength === other.emittedLength;
61
74
  }
62
75
  [inspect.custom]() {
63
76
  return `PrivateLog {
64
77
  fields: [${this.fields.map((x)=>inspect(x)).join(', ')}],
78
+ emittedLength: ${this.emittedLength},
65
79
  }`;
66
80
  }
67
81
  }