@aztec/stdlib 2.1.0-rc.9 → 3.0.0-devnet.2

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 (550) hide show
  1. package/dest/abi/abi.d.ts +8 -8
  2. package/dest/abi/abi.js +1 -1
  3. package/dest/abi/contract_artifact.js +3 -0
  4. package/dest/abi/event_metadata_definition.d.ts +8 -0
  5. package/dest/abi/event_metadata_definition.d.ts.map +1 -0
  6. package/dest/abi/event_metadata_definition.js +1 -0
  7. package/dest/abi/function_call.d.ts +7 -2
  8. package/dest/abi/function_call.d.ts.map +1 -1
  9. package/dest/abi/function_call.js +6 -2
  10. package/dest/abi/index.d.ts +1 -0
  11. package/dest/abi/index.d.ts.map +1 -1
  12. package/dest/abi/index.js +1 -0
  13. package/dest/avm/avm.d.ts +131 -72
  14. package/dest/avm/avm.d.ts.map +1 -1
  15. package/dest/avm/avm.js +8 -4
  16. package/dest/avm/avm_accumulated_data.d.ts +10 -21
  17. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  18. package/dest/avm/avm_accumulated_data.js +19 -22
  19. package/dest/avm/avm_circuit_public_inputs.d.ts +30 -13
  20. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  21. package/dest/avm/avm_circuit_public_inputs.js +17 -6
  22. package/dest/avm/avm_proving_request.d.ts +96 -48
  23. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  24. package/dest/avm/index.d.ts +1 -1
  25. package/dest/avm/index.d.ts.map +1 -1
  26. package/dest/avm/index.js +1 -1
  27. package/dest/avm/message_pack.d.ts +1 -0
  28. package/dest/avm/message_pack.d.ts.map +1 -1
  29. package/dest/avm/message_pack.js +28 -5
  30. package/dest/block/attestation_info.d.ts +30 -0
  31. package/dest/block/attestation_info.d.ts.map +1 -0
  32. package/dest/block/attestation_info.js +39 -0
  33. package/dest/block/body.d.ts +4 -1
  34. package/dest/block/body.d.ts.map +1 -1
  35. package/dest/block/body.js +17 -15
  36. package/dest/block/index.d.ts +2 -0
  37. package/dest/block/index.d.ts.map +1 -1
  38. package/dest/block/index.js +2 -0
  39. package/dest/block/l2_block.d.ts +19 -5
  40. package/dest/block/l2_block.d.ts.map +1 -1
  41. package/dest/block/l2_block.js +28 -7
  42. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  43. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  44. package/dest/block/l2_block_code_to_purge.js +23 -13
  45. package/dest/block/l2_block_header.d.ts +100 -0
  46. package/dest/block/l2_block_header.d.ts.map +1 -0
  47. package/dest/block/l2_block_header.js +146 -0
  48. package/dest/block/l2_block_source.d.ts +29 -0
  49. package/dest/block/l2_block_source.d.ts.map +1 -1
  50. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  51. package/dest/block/proposal/attestations_and_signers.d.ts +1 -1
  52. package/dest/block/proposal/attestations_and_signers.js +1 -1
  53. package/dest/block/proposal/committee_attestation.d.ts +0 -1
  54. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  55. package/dest/block/proposal/committee_attestation.js +0 -3
  56. package/dest/block/published_l2_block.d.ts +2 -8
  57. package/dest/block/published_l2_block.d.ts.map +1 -1
  58. package/dest/block/published_l2_block.js +0 -9
  59. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.js +1 -3
  61. package/dest/checkpoint/checkpoint_body.d.ts +4 -0
  62. package/dest/checkpoint/checkpoint_body.d.ts.map +1 -0
  63. package/dest/checkpoint/checkpoint_body.js +9 -0
  64. package/dest/checkpoint/index.d.ts +2 -0
  65. package/dest/checkpoint/index.d.ts.map +1 -0
  66. package/dest/checkpoint/index.js +1 -0
  67. package/dest/config/node-rpc-config.d.ts +2 -0
  68. package/dest/config/node-rpc-config.d.ts.map +1 -1
  69. package/dest/config/node-rpc-config.js +6 -0
  70. package/dest/contract/contract_address.d.ts +1 -1
  71. package/dest/contract/contract_address.js +1 -1
  72. package/dest/contract/contract_class_metadata.d.ts +8 -0
  73. package/dest/contract/contract_class_metadata.d.ts.map +1 -0
  74. package/dest/contract/contract_class_metadata.js +1 -0
  75. package/dest/contract/contract_instance.d.ts +9 -8
  76. package/dest/contract/contract_instance.d.ts.map +1 -1
  77. package/dest/contract/contract_instance.js +1 -2
  78. package/dest/contract/contract_metadata.d.ts +7 -0
  79. package/dest/contract/contract_metadata.d.ts.map +1 -0
  80. package/dest/contract/contract_metadata.js +1 -0
  81. package/dest/contract/index.d.ts +2 -0
  82. package/dest/contract/index.d.ts.map +1 -1
  83. package/dest/contract/index.js +2 -0
  84. package/dest/contract/interfaces/contract_class.d.ts +1 -1
  85. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  86. package/dest/hash/hash.d.ts.map +1 -1
  87. package/dest/hash/hash.js +0 -3
  88. package/dest/interfaces/archiver.d.ts +1 -1
  89. package/dest/interfaces/archiver.d.ts.map +1 -1
  90. package/dest/interfaces/archiver.js +7 -0
  91. package/dest/interfaces/aztec-node-admin.d.ts +40 -36
  92. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  93. package/dest/interfaces/aztec-node-admin.js +2 -2
  94. package/dest/interfaces/aztec-node.d.ts +30 -0
  95. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  96. package/dest/interfaces/aztec-node.js +7 -1
  97. package/dest/interfaces/block-builder.d.ts +1 -2
  98. package/dest/interfaces/block-builder.d.ts.map +1 -1
  99. package/dest/interfaces/client.d.ts +0 -1
  100. package/dest/interfaces/client.d.ts.map +1 -1
  101. package/dest/interfaces/client.js +0 -1
  102. package/dest/interfaces/configs.d.ts +5 -0
  103. package/dest/interfaces/configs.d.ts.map +1 -1
  104. package/dest/interfaces/configs.js +1 -0
  105. package/dest/interfaces/epoch-prover.d.ts +26 -9
  106. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  107. package/dest/interfaces/merkle_tree_operations.d.ts +5 -0
  108. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  109. package/dest/interfaces/p2p.d.ts +2 -0
  110. package/dest/interfaces/p2p.d.ts.map +1 -1
  111. package/dest/interfaces/p2p.js +2 -1
  112. package/dest/interfaces/private_kernel_prover.d.ts +2 -2
  113. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  114. package/dest/interfaces/proving-job.d.ts +343 -194
  115. package/dest/interfaces/proving-job.d.ts.map +1 -1
  116. package/dest/interfaces/proving-job.js +131 -113
  117. package/dest/interfaces/server_circuit_prover.d.ts +34 -34
  118. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  119. package/dest/interfaces/tx_provider.d.ts +1 -1
  120. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  121. package/dest/interfaces/validator.d.ts +99 -3
  122. package/dest/interfaces/validator.d.ts.map +1 -1
  123. package/dest/interfaces/validator.js +7 -0
  124. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -2
  125. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  126. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +4 -3
  127. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  128. package/dest/kernel/nullifier.d.ts +2 -2
  129. package/dest/kernel/nullifier.d.ts.map +1 -1
  130. package/dest/kernel/nullifier.js +11 -11
  131. package/dest/kernel/private_call_data.d.ts +4 -24
  132. package/dest/kernel/private_call_data.d.ts.map +1 -1
  133. package/dest/kernel/private_call_data.js +4 -16
  134. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -5
  135. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  136. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  137. package/dest/kernel/private_context_inputs.d.ts +2 -2
  138. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  139. package/dest/kernel/private_context_inputs.js +4 -4
  140. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  141. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  142. package/dest/kernel/private_kernel_circuit_public_inputs.js +3 -3
  143. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
  144. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  145. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
  146. package/dest/kernel/private_kernel_prover_output.d.ts +1 -1
  147. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  148. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
  149. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  150. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
  151. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
  152. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
  153. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  154. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
  155. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
  156. package/dest/keys/derivation.d.ts +0 -2
  157. package/dest/keys/derivation.d.ts.map +1 -1
  158. package/dest/keys/derivation.js +1 -21
  159. package/dest/logs/contract_class_log.d.ts +1 -1
  160. package/dest/logs/contract_class_log.d.ts.map +1 -1
  161. package/dest/logs/contract_class_log.js +1 -3
  162. package/dest/logs/debug_log.d.ts +13 -0
  163. package/dest/logs/debug_log.d.ts.map +1 -0
  164. package/dest/logs/debug_log.js +26 -0
  165. package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
  166. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
  167. package/dest/logs/directional_app_tagging_secret.js +64 -0
  168. package/dest/logs/index.d.ts +3 -1
  169. package/dest/logs/index.d.ts.map +1 -1
  170. package/dest/logs/index.js +3 -1
  171. package/dest/logs/log_with_tx_data.d.ts +9 -12
  172. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  173. package/dest/logs/log_with_tx_data.js +18 -23
  174. package/dest/logs/pre_tag.d.ts +34 -0
  175. package/dest/logs/pre_tag.d.ts.map +1 -0
  176. package/dest/logs/pre_tag.js +7 -0
  177. package/dest/logs/public_log.d.ts +23 -10
  178. package/dest/logs/public_log.d.ts.map +1 -1
  179. package/dest/logs/public_log.js +117 -42
  180. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  181. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  182. package/dest/messaging/l2_to_l1_membership.js +16 -18
  183. package/dest/noir/index.d.ts +11 -0
  184. package/dest/noir/index.d.ts.map +1 -1
  185. package/dest/note/index.d.ts +1 -1
  186. package/dest/note/index.d.ts.map +1 -1
  187. package/dest/note/index.js +1 -1
  188. package/dest/note/notes_filter.d.ts +0 -5
  189. package/dest/note/notes_filter.d.ts.map +1 -1
  190. package/dest/note/notes_filter.js +0 -3
  191. package/dest/note/unique_note.d.ts +43 -0
  192. package/dest/note/unique_note.d.ts.map +1 -0
  193. package/dest/note/{extended_note.js → unique_note.js} +9 -48
  194. package/dest/p2p/block_attestation.d.ts +13 -13
  195. package/dest/p2p/block_attestation.d.ts.map +1 -1
  196. package/dest/p2p/block_attestation.js +27 -25
  197. package/dest/p2p/block_proposal.d.ts +6 -8
  198. package/dest/p2p/block_proposal.d.ts.map +1 -1
  199. package/dest/p2p/block_proposal.js +10 -13
  200. package/dest/p2p/consensus_payload.d.ts +7 -6
  201. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  202. package/dest/p2p/consensus_payload.js +7 -6
  203. package/dest/parity/index.d.ts +2 -3
  204. package/dest/parity/index.d.ts.map +1 -1
  205. package/dest/parity/index.js +2 -3
  206. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
  207. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  208. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
  209. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  210. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  211. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  212. package/dest/proofs/client_ivc_proof.d.ts +17 -7
  213. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  214. package/dest/proofs/client_ivc_proof.js +78 -19
  215. package/dest/proofs/index.d.ts +1 -0
  216. package/dest/proofs/index.d.ts.map +1 -1
  217. package/dest/proofs/index.js +1 -0
  218. package/dest/proofs/proof_data.d.ts +21 -0
  219. package/dest/proofs/proof_data.d.ts.map +1 -0
  220. package/dest/proofs/proof_data.js +22 -0
  221. package/dest/proofs/proving_request_type.d.ts +17 -13
  222. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  223. package/dest/proofs/proving_request_type.js +17 -12
  224. package/dest/rollup/avm_proof_data.d.ts +2 -12
  225. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  226. package/dest/rollup/avm_proof_data.js +0 -24
  227. package/dest/rollup/base_rollup_hints.d.ts +17 -17
  228. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  229. package/dest/rollup/base_rollup_hints.js +26 -26
  230. package/dest/rollup/block_constant_data.d.ts +24 -10
  231. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  232. package/dest/rollup/block_constant_data.js +18 -10
  233. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  234. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  235. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  236. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  237. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  238. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  239. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  240. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  241. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  242. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  243. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  244. package/dest/rollup/checkpoint_constant_data.js +55 -0
  245. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -13
  246. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  247. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
  248. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  249. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  250. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  251. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
  252. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  253. package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
  254. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  255. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  256. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  257. package/dest/rollup/epoch_constant_data.d.ts +23 -6
  258. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  259. package/dest/rollup/epoch_constant_data.js +25 -12
  260. package/dest/rollup/index.d.ts +17 -16
  261. package/dest/rollup/index.d.ts.map +1 -1
  262. package/dest/rollup/index.js +17 -16
  263. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
  264. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  265. package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
  266. package/dest/rollup/public_tube_private_inputs.d.ts +21 -0
  267. package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -0
  268. package/dest/rollup/public_tube_private_inputs.js +42 -0
  269. package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
  270. package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
  271. package/dest/rollup/public_tube_public_inputs.js +41 -0
  272. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
  273. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  274. package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
  275. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  276. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  277. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  278. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  279. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  280. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  281. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  282. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  283. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  284. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  285. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  286. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  287. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
  288. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  289. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
  290. package/dest/stats/stats.d.ts +1 -1
  291. package/dest/stats/stats.d.ts.map +1 -1
  292. package/dest/tests/factories.d.ts +42 -74
  293. package/dest/tests/factories.d.ts.map +1 -1
  294. package/dest/tests/factories.js +144 -167
  295. package/dest/tests/mocks.d.ts +11 -7
  296. package/dest/tests/mocks.d.ts.map +1 -1
  297. package/dest/tests/mocks.js +44 -23
  298. package/dest/trees/index.d.ts +0 -1
  299. package/dest/trees/index.d.ts.map +1 -1
  300. package/dest/trees/index.js +0 -1
  301. package/dest/trees/merkle_tree_id.d.ts +4 -4
  302. package/dest/trees/nullifier_membership_witness.d.ts +3 -3
  303. package/dest/tx/block_header.d.ts +12 -13
  304. package/dest/tx/block_header.d.ts.map +1 -1
  305. package/dest/tx/block_header.js +16 -21
  306. package/dest/tx/global_variables.d.ts.map +1 -1
  307. package/dest/tx/global_variables.js +0 -1
  308. package/dest/tx/index.d.ts +2 -1
  309. package/dest/tx/index.d.ts.map +1 -1
  310. package/dest/tx/index.js +2 -1
  311. package/dest/tx/private_execution_result.d.ts +7 -2
  312. package/dest/tx/private_execution_result.d.ts.map +1 -1
  313. package/dest/tx/private_execution_result.js +10 -6
  314. package/dest/tx/private_tx_constant_data.d.ts +60 -0
  315. package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
  316. package/dest/tx/private_tx_constant_data.js +69 -0
  317. package/dest/tx/processed_tx.d.ts +0 -1
  318. package/dest/tx/processed_tx.d.ts.map +1 -1
  319. package/dest/tx/processed_tx.js +1 -6
  320. package/dest/tx/profiling.d.ts.map +1 -1
  321. package/dest/tx/profiling.js +0 -2
  322. package/dest/tx/protocol_contracts.d.ts +29 -0
  323. package/dest/tx/protocol_contracts.d.ts.map +1 -0
  324. package/dest/tx/protocol_contracts.js +49 -0
  325. package/dest/tx/simulated_tx.d.ts +3 -3
  326. package/dest/tx/tx.d.ts +6 -2
  327. package/dest/tx/tx.d.ts.map +1 -1
  328. package/dest/tx/tx.js +10 -3
  329. package/dest/tx/tx_constant_data.d.ts +6 -38
  330. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  331. package/dest/tx/tx_constant_data.js +11 -20
  332. package/dest/tx/tx_effect.d.ts +3 -36
  333. package/dest/tx/tx_effect.d.ts.map +1 -1
  334. package/dest/tx/tx_effect.js +63 -202
  335. package/dest/tx/validator/error_texts.d.ts +1 -1
  336. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  337. package/dest/tx/validator/error_texts.js +1 -1
  338. package/dest/versioning/versioning.d.ts +2 -2
  339. package/dest/versioning/versioning.d.ts.map +1 -1
  340. package/dest/versioning/versioning.js +18 -13
  341. package/dest/world-state/index.d.ts +2 -0
  342. package/dest/world-state/index.d.ts.map +1 -0
  343. package/dest/world-state/index.js +1 -0
  344. package/dest/world-state/world_state_revision.d.ts +22 -0
  345. package/dest/world-state/world_state_revision.d.ts.map +1 -0
  346. package/dest/world-state/world_state_revision.js +21 -0
  347. package/dest/zkpassport/index.d.ts +15 -9
  348. package/dest/zkpassport/index.d.ts.map +1 -1
  349. package/dest/zkpassport/index.js +17 -11
  350. package/package.json +12 -10
  351. package/src/abi/abi.ts +1 -1
  352. package/src/abi/contract_artifact.ts +3 -0
  353. package/src/abi/event_metadata_definition.ts +8 -0
  354. package/src/abi/function_call.ts +5 -1
  355. package/src/abi/index.ts +1 -0
  356. package/src/avm/avm.ts +13 -2
  357. package/src/avm/avm_accumulated_data.ts +25 -29
  358. package/src/avm/avm_circuit_public_inputs.ts +21 -0
  359. package/src/avm/index.ts +1 -1
  360. package/src/avm/message_pack.ts +25 -1
  361. package/src/block/attestation_info.ts +62 -0
  362. package/src/block/body.ts +25 -23
  363. package/src/block/index.ts +2 -0
  364. package/src/block/l2_block.ts +33 -8
  365. package/src/block/l2_block_code_to_purge.ts +30 -31
  366. package/src/block/l2_block_header.ts +232 -0
  367. package/src/block/l2_block_source.ts +32 -0
  368. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  369. package/src/block/proposal/attestations_and_signers.ts +1 -1
  370. package/src/block/proposal/committee_attestation.ts +0 -4
  371. package/src/block/published_l2_block.ts +0 -17
  372. package/src/block/test/l2_tips_store_test_suite.ts +1 -2
  373. package/src/checkpoint/checkpoint_body.ts +10 -0
  374. package/src/checkpoint/index.ts +1 -0
  375. package/src/config/node-rpc-config.ts +9 -0
  376. package/src/contract/contract_address.ts +1 -1
  377. package/src/contract/contract_class_metadata.ts +8 -0
  378. package/src/contract/contract_instance.ts +11 -10
  379. package/src/contract/contract_metadata.ts +7 -0
  380. package/src/contract/index.ts +2 -0
  381. package/src/contract/interfaces/contract_class.ts +1 -1
  382. package/src/hash/hash.ts +0 -4
  383. package/src/interfaces/archiver.ts +9 -1
  384. package/src/interfaces/aztec-node-admin.ts +2 -2
  385. package/src/interfaces/aztec-node.ts +45 -0
  386. package/src/interfaces/block-builder.ts +1 -6
  387. package/src/interfaces/client.ts +0 -1
  388. package/src/interfaces/configs.ts +3 -0
  389. package/src/interfaces/epoch-prover.ts +35 -11
  390. package/src/interfaces/merkle_tree_operations.ts +6 -0
  391. package/src/interfaces/p2p.ts +4 -0
  392. package/src/interfaces/private_kernel_prover.ts +2 -2
  393. package/src/interfaces/proving-job.ts +215 -134
  394. package/src/interfaces/server_circuit_prover.ts +87 -61
  395. package/src/interfaces/tx_provider.ts +1 -0
  396. package/src/interfaces/validator.ts +19 -4
  397. package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
  398. package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
  399. package/src/kernel/nullifier.ts +8 -8
  400. package/src/kernel/private_call_data.ts +2 -21
  401. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  402. package/src/kernel/private_context_inputs.ts +2 -2
  403. package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
  404. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
  405. package/src/kernel/private_kernel_prover_output.ts +1 -1
  406. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
  407. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
  408. package/src/keys/derivation.ts +1 -26
  409. package/src/logs/contract_class_log.ts +2 -3
  410. package/src/logs/debug_log.ts +32 -0
  411. package/src/logs/directional_app_tagging_secret.ts +78 -0
  412. package/src/logs/index.ts +3 -1
  413. package/src/logs/log_with_tx_data.ts +14 -24
  414. package/src/logs/pre_tag.ts +25 -0
  415. package/src/logs/public_log.ts +120 -58
  416. package/src/messaging/l2_to_l1_membership.ts +20 -26
  417. package/src/noir/index.ts +11 -0
  418. package/src/note/index.ts +1 -1
  419. package/src/note/notes_filter.ts +0 -7
  420. package/src/note/{extended_note.ts → unique_note.ts} +14 -75
  421. package/src/p2p/block_attestation.ts +31 -24
  422. package/src/p2p/block_proposal.ts +11 -16
  423. package/src/p2p/consensus_payload.ts +8 -7
  424. package/src/parity/index.ts +2 -3
  425. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
  426. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  427. package/src/proofs/client_ivc_proof.ts +86 -20
  428. package/src/proofs/index.ts +1 -0
  429. package/src/proofs/proof_data.ts +36 -0
  430. package/src/proofs/proving_request_type.ts +14 -10
  431. package/src/rollup/avm_proof_data.ts +2 -31
  432. package/src/rollup/base_rollup_hints.ts +22 -22
  433. package/src/rollup/block_constant_data.ts +16 -6
  434. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  435. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  436. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  437. package/src/rollup/checkpoint_constant_data.ts +84 -0
  438. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +17 -18
  439. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  440. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
  441. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  442. package/src/rollup/epoch_constant_data.ts +28 -10
  443. package/src/rollup/index.ts +17 -16
  444. package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
  445. package/src/rollup/public_tube_private_inputs.ts +53 -0
  446. package/src/rollup/public_tube_public_inputs.ts +52 -0
  447. package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
  448. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  449. package/src/rollup/root_rollup_public_inputs.ts +99 -0
  450. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  451. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  452. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
  453. package/src/stats/stats.ts +19 -13
  454. package/src/tests/factories.ts +217 -275
  455. package/src/tests/mocks.ts +71 -53
  456. package/src/trees/index.ts +0 -1
  457. package/src/tx/block_header.ts +17 -32
  458. package/src/tx/global_variables.ts +0 -1
  459. package/src/tx/index.ts +2 -1
  460. package/src/tx/private_execution_result.ts +9 -3
  461. package/src/tx/private_tx_constant_data.ts +94 -0
  462. package/src/tx/processed_tx.ts +1 -7
  463. package/src/tx/profiling.ts +0 -2
  464. package/src/tx/protocol_contracts.ts +70 -0
  465. package/src/tx/tx.ts +12 -3
  466. package/src/tx/tx_constant_data.ts +8 -21
  467. package/src/tx/tx_effect.ts +64 -213
  468. package/src/tx/validator/error_texts.ts +1 -1
  469. package/src/versioning/versioning.ts +20 -15
  470. package/src/world-state/index.ts +1 -0
  471. package/src/world-state/world_state_revision.ts +21 -0
  472. package/src/zkpassport/index.ts +40 -28
  473. package/dest/avm/public_data_hint.d.ts +0 -16
  474. package/dest/avm/public_data_hint.d.ts.map +0 -1
  475. package/dest/avm/public_data_hint.js +0 -27
  476. package/dest/interfaces/pxe.d.ts +0 -336
  477. package/dest/interfaces/pxe.d.ts.map +0 -1
  478. package/dest/interfaces/pxe.js +0 -101
  479. package/dest/logs/indexed_tagging_secret.d.ts +0 -28
  480. package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
  481. package/dest/logs/indexed_tagging_secret.js +0 -50
  482. package/dest/note/extended_note.d.ts +0 -111
  483. package/dest/note/extended_note.d.ts.map +0 -1
  484. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  485. package/dest/parity/root_parity_input.d.ts +0 -52
  486. package/dest/parity/root_parity_input.d.ts.map +0 -1
  487. package/dest/parity/root_parity_input.js +0 -50
  488. package/dest/parity/root_parity_inputs.d.ts +0 -37
  489. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  490. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  491. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  492. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  493. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  494. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  495. package/dest/rollup/block_root_rollup.d.ts +0 -283
  496. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  497. package/dest/rollup/block_root_rollup.js +0 -306
  498. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  499. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  500. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  501. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  502. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  503. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  504. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  505. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  506. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  507. package/dest/rollup/previous_rollup_block_data.js +0 -37
  508. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  509. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  510. package/dest/rollup/previous_rollup_data.js +0 -37
  511. package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
  512. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  513. package/dest/rollup/private_base_rollup_inputs.js +0 -44
  514. package/dest/rollup/private_tube_data.d.ts +0 -15
  515. package/dest/rollup/private_tube_data.d.ts.map +0 -1
  516. package/dest/rollup/private_tube_data.js +0 -25
  517. package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
  518. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  519. package/dest/rollup/public_base_rollup_inputs.js +0 -48
  520. package/dest/rollup/public_tube_data.d.ts +0 -15
  521. package/dest/rollup/public_tube_data.d.ts.map +0 -1
  522. package/dest/rollup/public_tube_data.js +0 -25
  523. package/dest/rollup/root_rollup.d.ts +0 -106
  524. package/dest/rollup/root_rollup.d.ts.map +0 -1
  525. package/dest/rollup/root_rollup.js +0 -147
  526. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  527. package/dest/rollup/state_diff_hints.js +0 -85
  528. package/dest/rollup/tube_inputs.d.ts +0 -43
  529. package/dest/rollup/tube_inputs.d.ts.map +0 -1
  530. package/dest/rollup/tube_inputs.js +0 -63
  531. package/dest/trees/protocol_contract_leaf.d.ts +0 -84
  532. package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
  533. package/dest/trees/protocol_contract_leaf.js +0 -100
  534. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  535. package/src/avm/public_data_hint.ts +0 -38
  536. package/src/interfaces/pxe.ts +0 -541
  537. package/src/logs/indexed_tagging_secret.ts +0 -48
  538. package/src/parity/root_parity_input.ts +0 -71
  539. package/src/rollup/block_root_rollup.ts +0 -380
  540. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  541. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  542. package/src/rollup/previous_rollup_block_data.ts +0 -48
  543. package/src/rollup/previous_rollup_data.ts +0 -48
  544. package/src/rollup/private_base_rollup_inputs.ts +0 -53
  545. package/src/rollup/private_tube_data.ts +0 -35
  546. package/src/rollup/public_base_rollup_inputs.ts +0 -59
  547. package/src/rollup/public_tube_data.ts +0 -35
  548. package/src/rollup/root_rollup.ts +0 -195
  549. package/src/rollup/tube_inputs.ts +0 -77
  550. package/src/trees/protocol_contract_leaf.ts +0 -128
@@ -1,44 +1,39 @@
1
- import { MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN, PUBLIC_LOG_PLAINTEXT_LEN } from '@aztec/constants';
1
+ import { MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { TxHash } from '@aztec/stdlib/tx';
4
- // TypeScript representation of the Noir aztec::oracle::message_processing::LogWithTxData<N> struct. This is used as a
5
- // response for PXE's custom getPublicLogByTag and getPrivateLogByTag oracles.
6
- class LogWithTxData {
4
+ // This is used as a response for PXE's custom getPublicLogByTag oracle.
5
+ export class PublicLogWithTxData {
6
+ logPayload;
7
+ txHash;
8
+ uniqueNoteHashesInTx;
9
+ firstNullifierInTx;
10
+ constructor(logPayload, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
11
+ this.logPayload = logPayload;
12
+ this.txHash = txHash;
13
+ this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
14
+ this.firstNullifierInTx = firstNullifierInTx;
15
+ }
16
+ }
17
+ // This is used as a response for PXE's custom getPrivateLogByTag oracle.
18
+ export class PrivateLogWithTxData {
7
19
  logPayload;
8
20
  txHash;
9
21
  uniqueNoteHashesInTx;
10
22
  firstNullifierInTx;
11
- maxLogContentLength;
12
- constructor(logPayload, txHash, uniqueNoteHashesInTx, firstNullifierInTx, maxLogContentLength){
23
+ constructor(logPayload, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
13
24
  this.logPayload = logPayload;
14
25
  this.txHash = txHash;
15
26
  this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
16
27
  this.firstNullifierInTx = firstNullifierInTx;
17
- this.maxLogContentLength = maxLogContentLength;
18
28
  }
19
29
  toNoirSerialization() {
20
30
  return [
21
- ...toBoundedVecSerialization(this.logPayload, this.maxLogContentLength),
31
+ ...toBoundedVecSerialization(this.logPayload, PRIVATE_LOG_CIPHERTEXT_LEN),
22
32
  this.txHash.hash,
23
33
  ...toBoundedVecSerialization(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
24
34
  this.firstNullifierInTx
25
35
  ];
26
36
  }
27
- }
28
- // This is used as a response for PXE's custom getPublicLogByTag oracle.
29
- export class PublicLogWithTxData extends LogWithTxData {
30
- constructor(logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
31
- super(logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx, PUBLIC_LOG_PLAINTEXT_LEN);
32
- }
33
- static noirSerializationOfEmpty() {
34
- return new PublicLogWithTxData([], TxHash.zero(), [], new Fr(0)).toNoirSerialization();
35
- }
36
- }
37
- // This is used as a response for PXE's custom getPrivateLogByTag oracle.
38
- export class PrivateLogWithTxData extends LogWithTxData {
39
- constructor(logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
40
- super(logContent, txHash, uniqueNoteHashesInTx, firstNullifierInTx, PRIVATE_LOG_CIPHERTEXT_LEN);
41
- }
42
37
  static noirSerializationOfEmpty() {
43
38
  return new PrivateLogWithTxData([], TxHash.zero(), [], new Fr(0)).toNoirSerialization();
44
39
  }
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ import { type DirectionalAppTaggingSecret } from './directional_app_tagging_secret.js';
3
+ /**
4
+ * Represents a preimage of a private log tag (see `Tag` in `pxe/src/tagging`).
5
+ *
6
+ * Note: It's a bit unfortunate that this type resides in `stdlib` as the rest of the tagging functionality resides
7
+ * in `pxe/src/tagging`. But this type is used by other types in stdlib hence there doesn't seem to be a good way
8
+ * around this.
9
+ */
10
+ export type PreTag = {
11
+ secret: DirectionalAppTaggingSecret;
12
+ index: number;
13
+ };
14
+ export declare const PreTagSchema: z.ZodObject<{
15
+ secret: z.ZodObject<{
16
+ value: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ value: import("@aztec/foundation/schemas").Fr;
19
+ }, {
20
+ value: string;
21
+ }>;
22
+ index: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ secret: {
25
+ value: import("@aztec/foundation/schemas").Fr;
26
+ };
27
+ index: number;
28
+ }, {
29
+ secret: {
30
+ value: string;
31
+ };
32
+ index: string | number | bigint;
33
+ }>;
34
+ //# sourceMappingURL=pre_tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre_tag.d.ts","sourceRoot":"","sources":["../../src/logs/pre_tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,qCAAqC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,2BAA2B,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;EAGvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { schemas } from '@aztec/foundation/schemas';
2
+ import { z } from 'zod';
3
+ import { DirectionalAppTaggingSecretSchema } from './directional_app_tagging_secret.js';
4
+ export const PreTagSchema = z.object({
5
+ secret: DirectionalAppTaggingSecretSchema,
6
+ index: schemas.Integer
7
+ });
@@ -1,24 +1,37 @@
1
- import { PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { type FieldsOf } from '@aztec/foundation/array';
1
+ import type { FieldsOf } from '@aztec/foundation/array';
3
2
  import { Fr } from '@aztec/foundation/fields';
4
3
  import { type ZodFor } from '@aztec/foundation/schemas';
5
- import { BufferReader, FieldReader, type Tuple } from '@aztec/foundation/serialize';
4
+ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
6
5
  import { inspect } from 'util';
7
6
  import { AztecAddress } from '../aztec-address/index.js';
7
+ export declare class FlatPublicLogs {
8
+ length: number;
9
+ payload: Fr[];
10
+ constructor(length: number, payload: Fr[]);
11
+ private static fromUnpaddedPayload;
12
+ static fromBlobFields(length: number, fields: Fr[] | FieldReader): FlatPublicLogs;
13
+ toBlobFields(): Fr[];
14
+ static fromLogs(logs: PublicLog[]): FlatPublicLogs;
15
+ toLogs(): PublicLog[];
16
+ static get schema(): ZodFor<FlatPublicLogs>;
17
+ toBuffer(): Buffer;
18
+ static fromBuffer(buffer: Buffer | BufferReader): FlatPublicLogs;
19
+ toFields(): Fr[];
20
+ static fromFields(fields: Fr[] | FieldReader): FlatPublicLogs;
21
+ static empty(): FlatPublicLogs;
22
+ isEmpty(): boolean;
23
+ }
8
24
  export declare class PublicLog {
9
25
  contractAddress: AztecAddress;
10
- fields: Tuple<Fr, typeof PUBLIC_LOG_SIZE_IN_FIELDS>;
11
- emittedLength: number;
12
- static SIZE_IN_BYTES: number;
13
- constructor(contractAddress: AztecAddress, fields: Tuple<Fr, typeof PUBLIC_LOG_SIZE_IN_FIELDS>, emittedLength: number);
26
+ fields: Fr[];
27
+ constructor(contractAddress: AztecAddress, fields: Fr[]);
14
28
  static from(fields: FieldsOf<PublicLog>): PublicLog;
15
- static getFields(fields: FieldsOf<PublicLog>): readonly [AztecAddress, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], number];
29
+ static getFields(fields: FieldsOf<PublicLog>): readonly [AztecAddress, Fr[]];
16
30
  toFields(): Fr[];
17
31
  static fromFields(fields: Fr[] | FieldReader): PublicLog;
32
+ sizeInFields(): number;
18
33
  getEmittedFields(): Fr[];
19
34
  getEmittedFieldsWithoutTag(): Fr[];
20
- toBlobFields(): Fr[];
21
- static fromBlobFields(fields: Fr[] | FieldReader): PublicLog;
22
35
  isEmpty(): boolean;
23
36
  static empty(): PublicLog;
24
37
  toBuffer(): Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,SAAS;IAIX,eAAe,EAAE,YAAY;IAC7B,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,yBAAyB,CAAC;IACnD,aAAa,EAAE,MAAM;IAL9B,MAAM,CAAC,aAAa,SAAwC;gBAGnD,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,yBAAyB,CAAC,EACnD,aAAa,EAAE,MAAM;IAG9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAIvC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAI5C,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAS5C,gBAAgB;IAIhB,0BAA0B;IAI1B,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;WASlC,MAAM;IAQnB,MAAM,CAAC,KAAK,EAAE,IAAI;IAQlB,eAAe,IAAI,MAAM;IAIzB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAUrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAO3B"}
1
+ {"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,qBAAa,cAAc;IAGhB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,EAAE;gBADb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,EAAE,EAAE;IAUtB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAMhE,YAAY;IAIZ,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE;IAIjC,MAAM;IAYN,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,CAO1C;IAED,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAO/C,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAW5C,MAAM,CAAC,KAAK;IAIZ,OAAO;CAGR;AAED,qBAAa,SAAS;IAEX,eAAe,EAAE,YAAY;IAC7B,MAAM,EAAE,EAAE,EAAE;gBADZ,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,EAAE,EAAE;IAGrB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAIvC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAI5C,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAM5C,YAAY;IAIZ,gBAAgB;IAIhB,0BAA0B;IAI1B,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;WAMlC,MAAM;IAOnB,MAAM,CAAC,KAAK,EAAE,IAAI;IAQlB,eAAe,IAAI,MAAM;IAIzB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAOrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAM3B"}
@@ -1,21 +1,102 @@
1
- import { PUBLIC_LOG_LENGTH, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { makeTuple } from '@aztec/foundation/array';
3
- import { padArrayEnd } from '@aztec/foundation/collection';
1
+ import { FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH, PUBLIC_LOG_HEADER_LENGTH } from '@aztec/constants';
4
2
  import { Fr } from '@aztec/foundation/fields';
5
3
  import { schemas } from '@aztec/foundation/schemas';
6
- import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
4
+ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
7
5
  import { inspect } from 'util';
8
6
  import { z } from 'zod';
9
7
  import { AztecAddress } from '../aztec-address/index.js';
8
+ function totalSizeInFields(logs) {
9
+ return logs.reduce((acc, log)=>acc + log.sizeInFields(), 0);
10
+ }
11
+ // This class represents logs in the same format as noir does, with a bounded maximum length.
12
+ export class FlatPublicLogs {
13
+ length;
14
+ payload;
15
+ // We don't use tuple here because FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH is too large
16
+ constructor(length, payload){
17
+ this.length = length;
18
+ this.payload = payload;
19
+ if (payload.length !== FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH) {
20
+ throw new Error('Invalid payload given to FlatPublicLogs');
21
+ }
22
+ if (length > payload.length) {
23
+ throw new Error('Invalid length given to FlatPublicLogs');
24
+ }
25
+ }
26
+ static fromUnpaddedPayload(payload) {
27
+ const length = payload.length;
28
+ return new FlatPublicLogs(length, [
29
+ ...payload,
30
+ ...Array(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH - length).fill(Fr.ZERO)
31
+ ]);
32
+ }
33
+ // In blobs, the actual nonempty length of the logs is encoded with the prefix, and then we have the non-padded payload.
34
+ static fromBlobFields(length, fields) {
35
+ const reader = FieldReader.asReader(fields);
36
+ const payload = reader.readFieldArray(length);
37
+ return this.fromUnpaddedPayload(payload);
38
+ }
39
+ toBlobFields() {
40
+ return this.payload.slice(0, this.length);
41
+ }
42
+ static fromLogs(logs) {
43
+ return this.fromUnpaddedPayload(logs.flatMap((log)=>log.toFields()));
44
+ }
45
+ toLogs() {
46
+ const reader = FieldReader.asReader(this.payload);
47
+ const logs = [];
48
+ while(totalSizeInFields(logs) < this.length){
49
+ logs.push(PublicLog.fromFields(reader));
50
+ }
51
+ if (totalSizeInFields(logs) !== this.length) {
52
+ throw new Error('Wrong length in FlatPublicLogs');
53
+ }
54
+ return logs;
55
+ }
56
+ static get schema() {
57
+ return z.object({
58
+ length: z.number(),
59
+ payload: z.array(schemas.Fr).min(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH).max(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH)
60
+ }).transform(({ length, payload })=>new FlatPublicLogs(length, payload));
61
+ }
62
+ toBuffer() {
63
+ return serializeToBuffer(this.length, this.payload.slice(0, this.length));
64
+ }
65
+ static fromBuffer(buffer) {
66
+ const reader = BufferReader.asReader(buffer);
67
+ const length = reader.readNumber();
68
+ return this.fromUnpaddedPayload(reader.readArray(length, Fr));
69
+ }
70
+ // ToFields and fromFields expect the noir style representation, with constant length payload.
71
+ toFields() {
72
+ return [
73
+ new Fr(this.length),
74
+ ...this.payload
75
+ ];
76
+ }
77
+ static fromFields(fields) {
78
+ const reader = FieldReader.asReader(fields);
79
+ // We need to do this because field reader returns tuples, which break the type system on these sizes.
80
+ const length = reader.readU32();
81
+ const payload = [];
82
+ for(let i = 0; i < FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH; ++i){
83
+ payload.push(reader.readField());
84
+ }
85
+ return new FlatPublicLogs(length, payload);
86
+ }
87
+ static empty() {
88
+ return new FlatPublicLogs(0, Array(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH).fill(Fr.ZERO));
89
+ }
90
+ isEmpty() {
91
+ return this.length === 0;
92
+ }
93
+ }
10
94
  export class PublicLog {
11
95
  contractAddress;
12
96
  fields;
13
- emittedLength;
14
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PUBLIC_LOG_LENGTH;
15
- constructor(contractAddress, fields, emittedLength){
97
+ constructor(contractAddress, fields){
16
98
  this.contractAddress = contractAddress;
17
99
  this.fields = fields;
18
- this.emittedLength = emittedLength;
19
100
  }
20
101
  static from(fields) {
21
102
  return new PublicLog(...PublicLog.getFields(fields));
@@ -23,74 +104,68 @@ export class PublicLog {
23
104
  static getFields(fields) {
24
105
  return [
25
106
  fields.contractAddress,
26
- fields.fields,
27
- fields.emittedLength
107
+ fields.fields
28
108
  ];
29
109
  }
30
110
  toFields() {
31
- return serializeToFields(...PublicLog.getFields(this));
111
+ return [
112
+ new Fr(this.fields.length),
113
+ this.contractAddress.toField(),
114
+ ...this.fields
115
+ ];
32
116
  }
33
117
  static fromFields(fields) {
34
118
  const reader = FieldReader.asReader(fields);
35
- return new PublicLog(reader.readObject(AztecAddress), reader.readFieldArray(PUBLIC_LOG_SIZE_IN_FIELDS), reader.readU32());
119
+ const fieldsLength = reader.readU32();
120
+ return new PublicLog(reader.readObject(AztecAddress), reader.readFieldArray(fieldsLength));
121
+ }
122
+ sizeInFields() {
123
+ return this.fields.length + PUBLIC_LOG_HEADER_LENGTH;
36
124
  }
37
125
  getEmittedFields() {
38
- return this.fields.slice(0, this.emittedLength);
126
+ return this.fields.slice(0);
39
127
  }
40
128
  getEmittedFieldsWithoutTag() {
41
- return this.fields.slice(1, this.emittedLength);
42
- }
43
- toBlobFields() {
44
- return [
45
- new Fr(this.emittedLength),
46
- this.contractAddress.toField()
47
- ].concat(this.getEmittedFields());
48
- }
49
- static fromBlobFields(fields) {
50
- const reader = FieldReader.asReader(fields);
51
- const emittedLength = reader.readU32();
52
- const contractAddress = reader.readObject(AztecAddress);
53
- const emittedFields = reader.readFieldArray(emittedLength);
54
- return new PublicLog(contractAddress, padArrayEnd(emittedFields, Fr.ZERO, PUBLIC_LOG_SIZE_IN_FIELDS), emittedLength);
129
+ return this.fields.slice(1);
55
130
  }
56
131
  isEmpty() {
57
- return this.contractAddress.isZero() && this.fields.every((f)=>f.isZero()) && this.emittedLength === 0;
132
+ return this.contractAddress.isZero() && this.fields.length === 0;
58
133
  }
59
134
  static empty() {
60
- return new PublicLog(AztecAddress.ZERO, makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
135
+ return new PublicLog(AztecAddress.ZERO, []);
61
136
  }
62
137
  toBuffer() {
63
- return serializeToBuffer(...PublicLog.getFields(this));
138
+ return serializeToBuffer(this.fields.length, this.contractAddress, this.fields);
64
139
  }
65
140
  static fromBuffer(buffer) {
66
141
  const reader = BufferReader.asReader(buffer);
67
- return new PublicLog(reader.readObject(AztecAddress), reader.readArray(PUBLIC_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
142
+ const fieldsLength = reader.readNumber();
143
+ return new PublicLog(reader.readObject(AztecAddress), reader.readArray(fieldsLength, Fr));
68
144
  }
69
145
  static async random() {
70
- return new PublicLog(await AztecAddress.random(), makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.random), PUBLIC_LOG_SIZE_IN_FIELDS);
146
+ return new PublicLog(await AztecAddress.random(), Array.from({
147
+ length: 10
148
+ }, ()=>Fr.random()));
71
149
  }
72
150
  equals(other) {
73
- return this.contractAddress.equals(other.contractAddress) && this.fields.every((field, i)=>field.equals(other.fields[i])) && this.emittedLength === other.emittedLength;
151
+ return this.fields.length === other.fields.length && this.contractAddress.equals(other.contractAddress) && this.fields.every((field, i)=>field.equals(other.fields[i]));
74
152
  }
75
153
  toHumanReadable() {
76
- return `PublicLog: (contractAddress: ${this.contractAddress} fields: ${this.fields}) emittedLength: ${this.emittedLength}`;
154
+ return `PublicLog: (contractAddress: ${this.contractAddress} fields: ${this.fields})`;
77
155
  }
78
156
  static get schema() {
79
157
  return z.object({
80
158
  contractAddress: AztecAddress.schema,
81
- fields: z.array(schemas.Fr).refine((arr)=>arr.length === PUBLIC_LOG_SIZE_IN_FIELDS),
82
- emittedLength: z.number()
83
- }).transform(({ contractAddress, fields, emittedLength })=>PublicLog.fromFields([
84
- contractAddress.toField(),
85
- ...fields,
86
- new Fr(emittedLength)
87
- ]));
159
+ fields: z.array(schemas.Fr)
160
+ }).transform(({ contractAddress, fields })=>PublicLog.from({
161
+ contractAddress,
162
+ fields
163
+ }));
88
164
  }
89
165
  [inspect.custom]() {
90
166
  return `PublicLog {
91
167
  contractAddress: ${inspect(this.contractAddress)},
92
168
  fields: [${this.fields.map((x)=>inspect(x)).join(', ')}],
93
- emittedLength: ${this.emittedLength},
94
169
  }`;
95
170
  }
96
171
  }
@@ -9,6 +9,6 @@ export type L2ToL1MembershipWitness = {
9
9
  siblingPath: SiblingPath<number>;
10
10
  };
11
11
  export declare function computeL2ToL1MembershipWitness(messageRetriever: MessageRetrieval, l2BlockNumber: number, message: Fr): Promise<L2ToL1MembershipWitness | undefined>;
12
- export declare function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForAllTxs: Fr[][], message: Fr): Promise<L2ToL1MembershipWitness>;
12
+ export declare function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForAllTxs: Fr[][], message: Fr): L2ToL1MembershipWitness;
13
13
  export declare function getL2ToL1MessageLeafId(membershipWitness: Pick<L2ToL1MembershipWitness, 'leafIndex' | 'siblingPath'>): bigint;
14
14
  //# sourceMappingURL=l2_to_l1_membership.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EACL,WAAW,EAKZ,MAAM,yBAAyB,CAAC;AASjC,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAED,wBAAsB,mDAAmD,CACvE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EACzB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,CAAC,CAuDlC;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER"}
1
+ {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,yBAAyB,CAAC;AAEvH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAID,wBAAgB,mDAAmD,CACjE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EACzB,OAAO,EAAE,EAAE,GACV,uBAAuB,CA4DzB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER"}
@@ -1,11 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
- import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedMerkleTreeRoot, findLeafLevelAndIndex, getMaxUnbalancedTreeDepth } from '@aztec/foundation/trees';
3
- async function createOutHashTree(messages) {
4
- const messageSubtreeHeight = getMaxUnbalancedTreeDepth(messages.length);
5
- const calculator = UnbalancedMerkleTreeCalculator.create(messageSubtreeHeight);
6
- await calculator.appendLeaves(messages.map((msg)=>msg.toBuffer()));
7
- return calculator;
8
- }
2
+ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedMerkleTreeRoot } from '@aztec/foundation/trees';
9
3
  export async function computeL2ToL1MembershipWitness(messageRetriever, l2BlockNumber, message) {
10
4
  const messagesForAllTxs = await messageRetriever.getL2ToL1Messages(l2BlockNumber);
11
5
  if (!messagesForAllTxs) {
@@ -13,7 +7,9 @@ export async function computeL2ToL1MembershipWitness(messageRetriever, l2BlockNu
13
7
  }
14
8
  return computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForAllTxs, message);
15
9
  }
16
- export async function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForAllTxs, message) {
10
+ // TODO: Allow to specify the message to consume by its index or by an offset, in case there are multiple messages with
11
+ // the same value.
12
+ export function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForAllTxs, message) {
17
13
  // Find index of message in subtree and index of tx in a block.
18
14
  let messageIndexInTx = -1;
19
15
  const txIndex = messagesForAllTxs.findIndex((messages)=>{
@@ -25,9 +21,9 @@ export async function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messag
25
21
  }
26
22
  // Get the txOutHash and the sibling path of the message in the tx subtree.
27
23
  const txMessages = messagesForAllTxs[txIndex];
28
- const txOutHashTree = await createOutHashTree(txMessages);
24
+ const txOutHashTree = UnbalancedMerkleTreeCalculator.create(txMessages.map((msg)=>msg.toBuffer()));
29
25
  const txOutHash = txOutHashTree.getRoot();
30
- const messagePathInSubtree = await txOutHashTree.getSiblingPath(message);
26
+ const messagePathInSubtree = txOutHashTree.getSiblingPath(message.toBuffer());
31
27
  // Calculate txOutHash for all txs.
32
28
  const txSubtreeRoots = messagesForAllTxs.map((messages, i)=>{
33
29
  // For a tx with no messages, we have to set an out hash of 0 to match what the circuit does.
@@ -41,19 +37,21 @@ export async function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messag
41
37
  return Fr.fromBuffer(root);
42
38
  });
43
39
  // Construct the top tree.
44
- // The leaves of this tree are the txOutHashes.
45
- // The root of this tree is the out_hash calculated in the circuit.
46
- const topTree = await createOutHashTree(txSubtreeRoots);
40
+ // The leaves of this tree are the `txOutHashes`.
41
+ // The root of this tree should match the `out_hash` calculated in the circuits. Zero hashes are compressed to reduce
42
+ // cost if the non-zero leaves result in a shorter path.
43
+ const valueToCompress = Buffer.alloc(32);
44
+ const topTree = UnbalancedMerkleTreeCalculator.create(txSubtreeRoots.map((root)=>root.toBuffer()), valueToCompress);
47
45
  const root = Fr.fromBuffer(topTree.getRoot());
48
46
  // Compute the combined sibling path by appending the tx subtree path to the top tree path.
49
- const txPathInTopTree = await topTree.getSiblingPath(txOutHash);
47
+ const txPathInTopTree = topTree.getSiblingPath(txOutHash);
50
48
  const combinedPath = messagePathInSubtree.toBufferArray().concat(txPathInTopTree.toBufferArray());
51
49
  // Compute the combined index.
52
50
  // It is the index of the message in the balanced tree at its current height.
53
- const txLeafPosition = findLeafLevelAndIndex(messagesForAllTxs.length, txIndex);
54
- const messageLeafPosition = findLeafLevelAndIndex(txMessages.length, messageIndexInTx);
55
- const numLeavesInLeftSubtrees = txLeafPosition.indexAtLevel * (1 << messageLeafPosition.level);
56
- const combinedIndex = numLeavesInLeftSubtrees + messageLeafPosition.indexAtLevel;
51
+ const txLeafIndexAtLevel = topTree.getLeafLocation(txIndex).index;
52
+ const messageLeafPosition = txOutHashTree.getLeafLocation(messageIndexInTx);
53
+ const numLeavesInLeftSubtrees = txLeafIndexAtLevel * (1 << messageLeafPosition.level);
54
+ const combinedIndex = numLeavesInLeftSubtrees + messageLeafPosition.index;
57
55
  return {
58
56
  root,
59
57
  leafIndex: BigInt(combinedIndex),
@@ -52,6 +52,8 @@ interface NoirFunctionEntry {
52
52
  export interface NoirCompiledContract {
53
53
  /** The name of the contract. */
54
54
  name: string;
55
+ /** Is the contract's public bytecode transpiled? */
56
+ transpiled?: boolean;
55
57
  /** The functions of the contract. */
56
58
  functions: NoirFunctionEntry[];
57
59
  /** The events of the contract */
@@ -74,6 +76,15 @@ export interface NoirCompiledCircuit {
74
76
  abi: NoirFunctionAbi;
75
77
  /** The bytecode of the circuit in base64. */
76
78
  bytecode: string;
79
+ /** The verification key of the circuit. */
80
+ verificationKey: {
81
+ /** hex-encoded binary */
82
+ bytes: string;
83
+ /** list of hex-encoded fields */
84
+ fields: string[];
85
+ /** The hex-encoded hash. */
86
+ hash: string;
87
+ };
77
88
  /** The debug information, compressed and base64 encoded. */
78
89
  debug_symbols: string;
79
90
  /** The map of file ID to the source code and path of the file. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export * from './comparator.js';
2
- export * from './extended_note.js';
2
+ export * from './unique_note.js';
3
3
  export * from './notes_filter.js';
4
4
  export * from './note_status.js';
5
5
  export * from './note.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/note/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/note/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export * from './comparator.js';
2
- export * from './extended_note.js';
2
+ export * from './unique_note.js';
3
3
  export * from './notes_filter.js';
4
4
  export * from './note_status.js';
5
5
  export * from './note.js';
@@ -1,7 +1,6 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
2
  import type { AztecAddress } from '../aztec-address/index.js';
3
3
  import { type ZodFor } from '../schemas/index.js';
4
- import { TxHash } from '../tx/tx_hash.js';
5
4
  import { NoteStatus } from './note_status.js';
6
5
  /**
7
6
  * A filter used to fetch notes.
@@ -13,12 +12,8 @@ export type NotesFilter = {
13
12
  * @remarks Providing a contract address is required as we need that information to trigger private state sync.
14
13
  */
15
14
  contractAddress: AztecAddress;
16
- /** Hash of a transaction from which to fetch the notes. */
17
- txHash?: TxHash;
18
15
  /** The specific storage location of the note on the contract. */
19
16
  storageSlot?: Fr;
20
- /** The recipient of the note (whose public key was used to encrypt the note). */
21
- recipient?: AztecAddress;
22
17
  /** The status of the note. Defaults to 'ACTIVE'. */
23
18
  status?: NoteStatus;
24
19
  /** The siloed nullifier for the note. */
@@ -1 +1 @@
1
- {"version":3,"file":"notes_filter.d.ts","sourceRoot":"","sources":["../../src/note/notes_filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,eAAe,EAAE,YAAY,CAAC;IAC9B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,CAAC;IACjB,iFAAiF;IACjF,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,oDAAoD;IACpD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,EAAE,CAAC;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAQhD,CAAC"}
1
+ {"version":3,"file":"notes_filter.d.ts","sourceRoot":"","sources":["../../src/note/notes_filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,eAAe,EAAE,YAAY,CAAC;IAC9B,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,CAAC;IACjB,oDAAoD;IACpD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,EAAE,CAAC;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAMhD,CAAC"}
@@ -1,12 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { schemas } from '../schemas/index.js';
3
- import { TxHash } from '../tx/tx_hash.js';
4
3
  import { NoteStatus } from './note_status.js';
5
4
  export const NotesFilterSchema = z.object({
6
5
  contractAddress: schemas.AztecAddress,
7
- txHash: TxHash.schema.optional(),
8
6
  storageSlot: schemas.Fr.optional(),
9
- recipient: schemas.AztecAddress.optional(),
10
7
  status: z.nativeEnum(NoteStatus).optional(),
11
8
  siloedNullifier: schemas.Fr.optional(),
12
9
  scopes: z.array(schemas.AztecAddress).optional()
@@ -0,0 +1,43 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { BufferReader } from '@aztec/foundation/serialize';
3
+ import { AztecAddress } from '../aztec-address/index.js';
4
+ import { type ZodFor } from '../schemas/index.js';
5
+ import { TxHash } from '../tx/tx_hash.js';
6
+ import { Note } from './note.js';
7
+ /**
8
+ * A note with contextual data and a nonce that makes it unique.
9
+ */
10
+ export declare class UniqueNote {
11
+ /** The note as emitted from the Noir contract. */
12
+ note: Note;
13
+ /** The recipient whose public key was used to encrypt the note. */
14
+ recipient: AztecAddress;
15
+ /** The contract address this note is created in. */
16
+ contractAddress: AztecAddress;
17
+ /** The specific storage location of the note on the contract. */
18
+ storageSlot: Fr;
19
+ /** The hash of the tx the note was created in. */
20
+ txHash: TxHash;
21
+ /** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
22
+ noteNonce: Fr;
23
+ constructor(
24
+ /** The note as emitted from the Noir contract. */
25
+ note: Note,
26
+ /** The recipient whose public key was used to encrypt the note. */
27
+ recipient: AztecAddress,
28
+ /** The contract address this note is created in. */
29
+ contractAddress: AztecAddress,
30
+ /** The specific storage location of the note on the contract. */
31
+ storageSlot: Fr,
32
+ /** The hash of the tx the note was created in. */
33
+ txHash: TxHash,
34
+ /** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
35
+ noteNonce: Fr);
36
+ static get schema(): ZodFor<UniqueNote>;
37
+ toBuffer(): Buffer;
38
+ static random(): Promise<UniqueNote>;
39
+ static fromBuffer(buffer: Buffer | BufferReader): UniqueNote;
40
+ static fromString(str: string): UniqueNote;
41
+ toString(): `0x${string}`;
42
+ }
43
+ //# sourceMappingURL=unique_note.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique_note.d.ts","sourceRoot":"","sources":["../../src/note/unique_note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAK9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,qBAAa,UAAU;IAEnB,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,mEAAmE;IAC5D,SAAS,EAAE,YAAY;IAC9B,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,kDAAkD;IAC3C,MAAM,EAAE,MAAM;IACrB,gGAAgG;IACzF,SAAS,EAAE,EAAE;;IAXpB,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,mEAAmE;IAC5D,SAAS,EAAE,YAAY;IAC9B,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,kDAAkD;IAC3C,MAAM,EAAE,MAAM;IACrB,gGAAgG;IACzF,SAAS,EAAE,EAAE;IAGtB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAatC;IAED,QAAQ,IAAI,MAAM;WAWL,MAAM;IAWnB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAa/C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;CAGT"}