@aztec/stdlib 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a

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 (700) hide show
  1. package/dest/abi/abi.d.ts +121 -1197
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +31 -16
  4. package/dest/abi/authorization_selector.d.ts +2 -2
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.d.ts +1 -1
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +14 -7
  9. package/dest/abi/event_selector.d.ts +2 -2
  10. package/dest/abi/event_selector.d.ts.map +1 -1
  11. package/dest/abi/function_call.d.ts +7 -25
  12. package/dest/abi/function_call.d.ts.map +1 -1
  13. package/dest/abi/note_selector.d.ts +2 -2
  14. package/dest/abi/note_selector.d.ts.map +1 -1
  15. package/dest/abi/utils.d.ts +1 -1
  16. package/dest/abi/utils.d.ts.map +1 -1
  17. package/dest/abi/utils.js +1 -1
  18. package/dest/auth_witness/auth_witness.d.ts +2 -2
  19. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  20. package/dest/avm/avm.d.ts +1756 -10463
  21. package/dest/avm/avm.d.ts.map +1 -1
  22. package/dest/avm/avm.js +6 -3
  23. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  24. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  25. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  26. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  27. package/dest/avm/avm_proving_request.d.ts +653 -5446
  28. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  29. package/dest/avm/message_pack.js +12 -3
  30. package/dest/avm/public_data_write.d.ts +6 -12
  31. package/dest/avm/public_data_write.d.ts.map +1 -1
  32. package/dest/avm/revert_code.d.ts +1 -7
  33. package/dest/avm/revert_code.d.ts.map +1 -1
  34. package/dest/avm/revert_code.js +0 -3
  35. package/dest/aztec-address/index.d.ts +6 -3
  36. package/dest/aztec-address/index.d.ts.map +1 -1
  37. package/dest/aztec-address/index.js +7 -2
  38. package/dest/block/attestation_info.d.ts +3 -2
  39. package/dest/block/attestation_info.d.ts.map +1 -1
  40. package/dest/block/attestation_info.js +7 -5
  41. package/dest/block/block_data.d.ts +9 -34
  42. package/dest/block/block_data.d.ts.map +1 -1
  43. package/dest/block/block_parameter.d.ts +37 -4
  44. package/dest/block/block_parameter.d.ts.map +1 -1
  45. package/dest/block/block_parameter.js +53 -2
  46. package/dest/block/in_block.d.ts +5 -24
  47. package/dest/block/in_block.d.ts.map +1 -1
  48. package/dest/block/index.d.ts +1 -2
  49. package/dest/block/index.d.ts.map +1 -1
  50. package/dest/block/index.js +0 -1
  51. package/dest/block/l2_block.d.ts +13 -41
  52. package/dest/block/l2_block.d.ts.map +1 -1
  53. package/dest/block/l2_block_info.d.ts +7 -27
  54. package/dest/block/l2_block_info.d.ts.map +1 -1
  55. package/dest/block/l2_block_source.d.ts +199 -425
  56. package/dest/block/l2_block_source.d.ts.map +1 -1
  57. package/dest/block/l2_block_source.js +66 -1
  58. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  59. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  60. package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
  61. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  62. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  63. package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
  64. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  65. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  66. package/dest/block/l2_block_stream/l2_tips_store_base.js +26 -7
  67. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  68. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  69. package/dest/block/proposal/attestations_and_signers.js +26 -18
  70. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  71. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  72. package/dest/block/test/l2_tips_store_test_suite.js +1 -1
  73. package/dest/checkpoint/checkpoint.d.ts +24 -96
  74. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  75. package/dest/checkpoint/checkpoint_data.d.ts +40 -129
  76. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  77. package/dest/checkpoint/checkpoint_data.js +2 -0
  78. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  79. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  80. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  81. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  82. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  83. package/dest/checkpoint/digest.d.ts +18 -0
  84. package/dest/checkpoint/digest.d.ts.map +1 -0
  85. package/dest/checkpoint/digest.js +12 -0
  86. package/dest/checkpoint/index.d.ts +4 -1
  87. package/dest/checkpoint/index.d.ts.map +1 -1
  88. package/dest/checkpoint/index.js +3 -0
  89. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  90. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  91. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  92. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  93. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  94. package/dest/config/chain-config.d.ts +4 -9
  95. package/dest/config/chain-config.d.ts.map +1 -1
  96. package/dest/config/chain-config.js +6 -11
  97. package/dest/config/index.d.ts +1 -2
  98. package/dest/config/index.d.ts.map +1 -1
  99. package/dest/config/index.js +0 -1
  100. package/dest/config/sequencer-config.d.ts +5 -3
  101. package/dest/config/sequencer-config.d.ts.map +1 -1
  102. package/dest/config/sequencer-config.js +13 -6
  103. package/dest/contract/complete_address.d.ts +3 -2
  104. package/dest/contract/complete_address.d.ts.map +1 -1
  105. package/dest/contract/complete_address.js +6 -2
  106. package/dest/contract/contract_address.d.ts +5 -5
  107. package/dest/contract/contract_address.d.ts.map +1 -1
  108. package/dest/contract/contract_address.js +5 -4
  109. package/dest/contract/contract_deployment_data.d.ts +15 -61
  110. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  111. package/dest/contract/contract_instance.d.ts +4 -2
  112. package/dest/contract/contract_instance.d.ts.map +1 -1
  113. package/dest/contract/contract_instance.js +10 -3
  114. package/dest/contract/interfaces/contract_class.d.ts +15 -86
  115. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  116. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  117. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  118. package/dest/contract/interfaces/contract_instance.js +4 -2
  119. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  120. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  121. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  122. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  123. package/dest/database-version/database_version.d.ts +5 -11
  124. package/dest/database-version/database_version.d.ts.map +1 -1
  125. package/dest/database-version/version_manager.d.ts +6 -2
  126. package/dest/database-version/version_manager.d.ts.map +1 -1
  127. package/dest/database-version/version_manager.js +12 -1
  128. package/dest/epoch-helpers/index.d.ts +4 -22
  129. package/dest/epoch-helpers/index.d.ts.map +1 -1
  130. package/dest/gas/gas.d.ts +9 -14
  131. package/dest/gas/gas.d.ts.map +1 -1
  132. package/dest/gas/gas.js +6 -3
  133. package/dest/gas/gas_fees.d.ts +9 -14
  134. package/dest/gas/gas_fees.d.ts.map +1 -1
  135. package/dest/gas/gas_fees.js +7 -3
  136. package/dest/gas/gas_settings.d.ts +27 -84
  137. package/dest/gas/gas_settings.d.ts.map +1 -1
  138. package/dest/gas/gas_settings.js +6 -3
  139. package/dest/ha-signing/config.d.ts +9 -73
  140. package/dest/ha-signing/config.d.ts.map +1 -1
  141. package/dest/ha-signing/config.js +5 -15
  142. package/dest/ha-signing/local_config.d.ts +3 -34
  143. package/dest/ha-signing/local_config.d.ts.map +1 -1
  144. package/dest/ha-signing/local_config.js +2 -2
  145. package/dest/hash/hash.d.ts +1 -1
  146. package/dest/hash/hash.d.ts.map +1 -1
  147. package/dest/hash/hash.js +2 -2
  148. package/dest/interfaces/allowed_element.d.ts +4 -28
  149. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  150. package/dest/interfaces/api_limit.d.ts +1 -1
  151. package/dest/interfaces/api_limit.js +1 -1
  152. package/dest/interfaces/archiver.d.ts +16 -36
  153. package/dest/interfaces/archiver.d.ts.map +1 -1
  154. package/dest/interfaces/archiver.js +211 -71
  155. package/dest/interfaces/aztec-node-admin.d.ts +62 -292
  156. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  157. package/dest/interfaces/aztec-node-admin.js +57 -14
  158. package/dest/interfaces/aztec-node-debug.js +4 -1
  159. package/dest/interfaces/aztec-node.d.ts +100 -106
  160. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  161. package/dest/interfaces/aztec-node.js +308 -70
  162. package/dest/interfaces/block-builder.d.ts +3 -1
  163. package/dest/interfaces/block-builder.d.ts.map +1 -1
  164. package/dest/interfaces/block_response.d.ts +90 -0
  165. package/dest/interfaces/block_response.d.ts.map +1 -0
  166. package/dest/interfaces/block_response.js +30 -0
  167. package/dest/interfaces/chain_tips.d.ts +50 -0
  168. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  169. package/dest/interfaces/chain_tips.js +11 -0
  170. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  171. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  172. package/dest/interfaces/checkpoint_parameter.js +18 -0
  173. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  174. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  175. package/dest/interfaces/checkpoint_response.js +26 -0
  176. package/dest/interfaces/client.d.ts +7 -2
  177. package/dest/interfaces/client.d.ts.map +1 -1
  178. package/dest/interfaces/client.js +6 -1
  179. package/dest/interfaces/configs.d.ts +41 -130
  180. package/dest/interfaces/configs.d.ts.map +1 -1
  181. package/dest/interfaces/configs.js +9 -1
  182. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  183. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  184. package/dest/interfaces/l1_publish_info.js +26 -0
  185. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  186. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  187. package/dest/interfaces/l2_logs_source.js +5 -0
  188. package/dest/interfaces/merkle_tree_operations.d.ts +9 -3
  189. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  190. package/dest/interfaces/p2p-bootstrap.js +8 -2
  191. package/dest/interfaces/p2p.d.ts +15 -5
  192. package/dest/interfaces/p2p.d.ts.map +1 -1
  193. package/dest/interfaces/p2p.js +28 -5
  194. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  195. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  196. package/dest/interfaces/prover-agent.d.ts +5 -23
  197. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  198. package/dest/interfaces/prover-agent.js +4 -1
  199. package/dest/interfaces/prover-client.d.ts +6 -27
  200. package/dest/interfaces/prover-client.d.ts.map +1 -1
  201. package/dest/interfaces/prover-node.js +22 -8
  202. package/dest/interfaces/proving-job-source.js +24 -4
  203. package/dest/interfaces/proving-job.d.ts +725 -5776
  204. package/dest/interfaces/proving-job.d.ts.map +1 -1
  205. package/dest/interfaces/proving-job.js +1 -1
  206. package/dest/interfaces/public_storage_override.d.ts +22 -0
  207. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  208. package/dest/interfaces/public_storage_override.js +7 -0
  209. package/dest/interfaces/server.d.ts +6 -1
  210. package/dest/interfaces/server.d.ts.map +1 -1
  211. package/dest/interfaces/server.js +5 -0
  212. package/dest/interfaces/slasher.d.ts +25 -56
  213. package/dest/interfaces/slasher.d.ts.map +1 -1
  214. package/dest/interfaces/slasher.js +8 -2
  215. package/dest/interfaces/tx_provider.d.ts +6 -1
  216. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  217. package/dest/interfaces/validator.d.ts +40 -229
  218. package/dest/interfaces/validator.d.ts.map +1 -1
  219. package/dest/interfaces/validator.js +5 -0
  220. package/dest/interfaces/world_state.d.ts +2 -2
  221. package/dest/interfaces/world_state.d.ts.map +1 -1
  222. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  223. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  224. package/dest/kernel/hints/key_validation_request.js +20 -18
  225. package/dest/kernel/index.d.ts +5 -1
  226. package/dest/kernel/index.d.ts.map +1 -1
  227. package/dest/kernel/index.js +4 -0
  228. package/dest/kernel/log_hash.d.ts +6 -2
  229. package/dest/kernel/log_hash.d.ts.map +1 -1
  230. package/dest/kernel/log_hash.js +21 -9
  231. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  232. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  233. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  234. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  235. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  236. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  237. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  238. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  239. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  240. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  241. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  242. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  243. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  244. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  245. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  246. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  247. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  248. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  249. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  250. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  251. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  252. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  253. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  254. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  255. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  256. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  257. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  258. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  259. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  260. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  261. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  262. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  263. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  264. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  265. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  266. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  267. package/dest/kernel/public_call_request.d.ts +15 -30
  268. package/dest/kernel/public_call_request.d.ts.map +1 -1
  269. package/dest/kernel/public_call_request.js +16 -7
  270. package/dest/keys/derivation.d.ts +6 -2
  271. package/dest/keys/derivation.d.ts.map +1 -1
  272. package/dest/keys/derivation.js +16 -6
  273. package/dest/keys/public_key.d.ts +22 -3
  274. package/dest/keys/public_key.d.ts.map +1 -1
  275. package/dest/keys/public_key.js +20 -1
  276. package/dest/keys/public_keys.d.ts +55 -82
  277. package/dest/keys/public_keys.d.ts.map +1 -1
  278. package/dest/keys/public_keys.js +102 -74
  279. package/dest/kv-store/config.d.ts +3 -6
  280. package/dest/kv-store/config.d.ts.map +1 -1
  281. package/dest/kv-store/config.js +2 -7
  282. package/dest/logs/app_tagging_secret.d.ts +46 -0
  283. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  284. package/dest/logs/{extended_directional_app_tagging_secret.js → app_tagging_secret.js} +51 -21
  285. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  286. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  287. package/dest/logs/app_tagging_secret_kind.js +17 -0
  288. package/dest/logs/contract_class_log.d.ts +16 -34
  289. package/dest/logs/contract_class_log.d.ts.map +1 -1
  290. package/dest/logs/contract_class_log.js +11 -9
  291. package/dest/logs/index.d.ts +7 -7
  292. package/dest/logs/index.d.ts.map +1 -1
  293. package/dest/logs/index.js +6 -6
  294. package/dest/logs/log_cursor.d.ts +51 -0
  295. package/dest/logs/log_cursor.d.ts.map +1 -0
  296. package/dest/logs/log_cursor.js +82 -0
  297. package/dest/logs/log_result.d.ts +54 -0
  298. package/dest/logs/log_result.d.ts.map +1 -0
  299. package/dest/logs/log_result.js +56 -0
  300. package/dest/logs/logs_query.d.ts +82 -0
  301. package/dest/logs/logs_query.d.ts.map +1 -0
  302. package/dest/logs/logs_query.js +50 -0
  303. package/dest/logs/message_context.d.ts +3 -2
  304. package/dest/logs/message_context.d.ts.map +1 -1
  305. package/dest/logs/message_context.js +4 -0
  306. package/dest/logs/pre_tag.d.ts +11 -24
  307. package/dest/logs/pre_tag.d.ts.map +1 -1
  308. package/dest/logs/pre_tag.js +2 -2
  309. package/dest/logs/private_log.d.ts +7 -12
  310. package/dest/logs/private_log.d.ts.map +1 -1
  311. package/dest/logs/private_log.js +6 -3
  312. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  313. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  314. package/dest/logs/query_all_logs_by_tags.js +64 -0
  315. package/dest/logs/siloed_tag.d.ts +1 -1
  316. package/dest/logs/siloed_tag.d.ts.map +1 -1
  317. package/dest/logs/siloed_tag.js +3 -1
  318. package/dest/logs/tagging_index_range.d.ts +13 -31
  319. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  320. package/dest/logs/tagging_index_range.js +2 -2
  321. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  322. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  323. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  324. package/dest/messaging/index.d.ts +2 -1
  325. package/dest/messaging/index.d.ts.map +1 -1
  326. package/dest/messaging/index.js +1 -0
  327. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  328. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  329. package/dest/messaging/l2_to_l1_membership.js +72 -12
  330. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  331. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  332. package/dest/messaging/l2_to_l1_message.js +21 -12
  333. package/dest/noir/index.d.ts +3 -1
  334. package/dest/noir/index.d.ts.map +1 -1
  335. package/dest/note/note.d.ts +2 -2
  336. package/dest/note/note.d.ts.map +1 -1
  337. package/dest/p2p/block_proposal.d.ts +29 -10
  338. package/dest/p2p/block_proposal.d.ts.map +1 -1
  339. package/dest/p2p/block_proposal.js +56 -33
  340. package/dest/p2p/checkpoint_attestation.d.ts +14 -6
  341. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  342. package/dest/p2p/checkpoint_attestation.js +24 -20
  343. package/dest/p2p/checkpoint_proposal.d.ts +31 -10
  344. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  345. package/dest/p2p/checkpoint_proposal.js +58 -31
  346. package/dest/p2p/consensus_payload.d.ts +26 -20
  347. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  348. package/dest/p2p/consensus_payload.js +38 -19
  349. package/dest/p2p/signature_utils.d.ts +28 -19
  350. package/dest/p2p/signature_utils.d.ts.map +1 -1
  351. package/dest/p2p/signature_utils.js +118 -21
  352. package/dest/p2p/signed_txs.d.ts +15 -13
  353. package/dest/p2p/signed_txs.d.ts.map +1 -1
  354. package/dest/p2p/signed_txs.js +26 -24
  355. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  356. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  357. package/dest/parity/parity_base_private_inputs.js +7 -5
  358. package/dest/parity/parity_public_inputs.d.ts +8 -4
  359. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  360. package/dest/parity/parity_public_inputs.js +6 -3
  361. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  362. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  363. package/dest/proofs/chonk_proof.d.ts +17 -11
  364. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  365. package/dest/proofs/chonk_proof.js +44 -22
  366. package/dest/proofs/recursive_proof.d.ts +2 -2
  367. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  368. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  369. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  370. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  371. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  372. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  373. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  374. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  375. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  376. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  377. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  378. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  379. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  380. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  381. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  382. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  383. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  384. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  385. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  386. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  387. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  388. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  389. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  390. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  391. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  392. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  393. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  394. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  395. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  396. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  397. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  398. package/dest/schemas/schemas.d.ts +32 -78
  399. package/dest/schemas/schemas.d.ts.map +1 -1
  400. package/dest/schemas/schemas.js +2 -2
  401. package/dest/slashing/helpers.d.ts +2 -2
  402. package/dest/slashing/helpers.d.ts.map +1 -1
  403. package/dest/slashing/helpers.js +10 -7
  404. package/dest/slashing/types.d.ts +15 -23
  405. package/dest/slashing/types.d.ts.map +1 -1
  406. package/dest/slashing/types.js +16 -10
  407. package/dest/snapshots/types.d.ts +15 -78
  408. package/dest/snapshots/types.d.ts.map +1 -1
  409. package/dest/stats/stats.d.ts +2 -2
  410. package/dest/stats/stats.d.ts.map +1 -1
  411. package/dest/tests/factories.d.ts +23 -23
  412. package/dest/tests/factories.d.ts.map +1 -1
  413. package/dest/tests/factories.js +70 -47
  414. package/dest/tests/mocks.d.ts +8 -5
  415. package/dest/tests/mocks.d.ts.map +1 -1
  416. package/dest/tests/mocks.js +31 -38
  417. package/dest/timetable/index.d.ts +7 -10
  418. package/dest/timetable/index.d.ts.map +1 -1
  419. package/dest/timetable/index.js +60 -80
  420. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  421. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  422. package/dest/trees/append_only_tree_snapshot.js +6 -3
  423. package/dest/trees/nullifier_leaf.d.ts +18 -42
  424. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  425. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  426. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  427. package/dest/trees/nullifier_membership_witness.js +2 -14
  428. package/dest/trees/public_data_leaf.d.ts +21 -53
  429. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  430. package/dest/trees/public_data_witness.d.ts +16 -58
  431. package/dest/trees/public_data_witness.d.ts.map +1 -1
  432. package/dest/tx/block_header.d.ts +4 -3
  433. package/dest/tx/block_header.d.ts.map +1 -1
  434. package/dest/tx/block_header.js +6 -3
  435. package/dest/tx/call_context.d.ts +4 -14
  436. package/dest/tx/call_context.d.ts.map +1 -1
  437. package/dest/tx/capsule.d.ts +2 -2
  438. package/dest/tx/capsule.d.ts.map +1 -1
  439. package/dest/tx/function_data.d.ts +4 -10
  440. package/dest/tx/function_data.d.ts.map +1 -1
  441. package/dest/tx/global_variables.d.ts +16 -49
  442. package/dest/tx/global_variables.d.ts.map +1 -1
  443. package/dest/tx/global_variables.js +8 -12
  444. package/dest/tx/hashed_values.d.ts +4 -3
  445. package/dest/tx/hashed_values.d.ts.map +1 -1
  446. package/dest/tx/hashed_values.js +6 -3
  447. package/dest/tx/in_tx.d.ts +5 -17
  448. package/dest/tx/in_tx.d.ts.map +1 -1
  449. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  450. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  451. package/dest/tx/indexed_tx_effect.js +8 -4
  452. package/dest/tx/partial_state_reference.d.ts +22 -65
  453. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  454. package/dest/tx/partial_state_reference.js +6 -3
  455. package/dest/tx/private_execution_result.d.ts +6 -16
  456. package/dest/tx/private_execution_result.d.ts.map +1 -1
  457. package/dest/tx/profiling.d.ts +54 -352
  458. package/dest/tx/profiling.d.ts.map +1 -1
  459. package/dest/tx/profiling.js +4 -4
  460. package/dest/tx/protocol_contracts.d.ts +5 -9
  461. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  462. package/dest/tx/proven_tx.d.ts +30 -74
  463. package/dest/tx/proven_tx.d.ts.map +1 -1
  464. package/dest/tx/proven_tx.js +6 -0
  465. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  466. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  467. package/dest/tx/public_call_request_with_calldata.js +6 -3
  468. package/dest/tx/simulated_tx.d.ts +62 -1249
  469. package/dest/tx/simulated_tx.d.ts.map +1 -1
  470. package/dest/tx/simulated_tx.js +12 -10
  471. package/dest/tx/state_reference.d.ts +30 -117
  472. package/dest/tx/state_reference.d.ts.map +1 -1
  473. package/dest/tx/state_reference.js +6 -4
  474. package/dest/tx/tree_snapshots.d.ts +27 -84
  475. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  476. package/dest/tx/tree_snapshots.js +6 -4
  477. package/dest/tx/tx.d.ts +12 -11
  478. package/dest/tx/tx.d.ts.map +1 -1
  479. package/dest/tx/tx.js +30 -23
  480. package/dest/tx/tx_constant_data.d.ts +4 -3
  481. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  482. package/dest/tx/tx_constant_data.js +6 -3
  483. package/dest/tx/tx_context.d.ts +32 -131
  484. package/dest/tx/tx_context.d.ts.map +1 -1
  485. package/dest/tx/tx_context.js +6 -6
  486. package/dest/tx/tx_hash.d.ts +6 -4
  487. package/dest/tx/tx_hash.d.ts.map +1 -1
  488. package/dest/tx/tx_hash.js +13 -5
  489. package/dest/tx/tx_receipt.d.ts +144 -67
  490. package/dest/tx/tx_receipt.d.ts.map +1 -1
  491. package/dest/tx/tx_receipt.js +141 -51
  492. package/dest/tx/validator/tx_validator.d.ts +5 -27
  493. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  494. package/dest/tx/validator/tx_validator.js +0 -4
  495. package/dest/types/shared.d.ts +4 -3
  496. package/dest/types/shared.d.ts.map +1 -1
  497. package/dest/types/shared.js +6 -3
  498. package/dest/update-checker/dev_version.d.ts +3 -0
  499. package/dest/update-checker/dev_version.d.ts.map +1 -0
  500. package/dest/update-checker/dev_version.js +1 -0
  501. package/dest/update-checker/index.d.ts +2 -1
  502. package/dest/update-checker/index.d.ts.map +1 -1
  503. package/dest/update-checker/index.js +1 -0
  504. package/dest/update-checker/package_version.d.ts +6 -3
  505. package/dest/update-checker/package_version.d.ts.map +1 -1
  506. package/dest/update-checker/package_version.js +8 -19
  507. package/dest/validators/schemas.d.ts +147 -614
  508. package/dest/validators/schemas.d.ts.map +1 -1
  509. package/dest/validators/schemas.js +6 -4
  510. package/dest/validators/types.d.ts +20 -3
  511. package/dest/validators/types.d.ts.map +1 -1
  512. package/dest/versioning/versioning.js +1 -1
  513. package/dest/vks/verification_key.d.ts +3 -3
  514. package/dest/vks/verification_key.d.ts.map +1 -1
  515. package/dest/world-state/genesis_data.d.ts +3 -1
  516. package/dest/world-state/genesis_data.d.ts.map +1 -1
  517. package/dest/world-state/genesis_data.js +3 -0
  518. package/dest/world-state/world_state_revision.d.ts +4 -39
  519. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  520. package/dest/world-state/world_state_revision.js +0 -20
  521. package/package.json +12 -11
  522. package/src/abi/abi.ts +53 -19
  523. package/src/abi/contract_artifact.ts +11 -6
  524. package/src/abi/utils.ts +6 -4
  525. package/src/avm/avm.ts +5 -0
  526. package/src/avm/message_pack.ts +12 -3
  527. package/src/avm/revert_code.ts +0 -6
  528. package/src/aztec-address/index.ts +12 -3
  529. package/src/block/attestation_info.ts +11 -11
  530. package/src/block/block_parameter.ts +72 -4
  531. package/src/block/index.ts +0 -1
  532. package/src/block/l2_block_source.ts +201 -149
  533. package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
  534. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  535. package/src/block/l2_block_stream/l2_tips_store_base.ts +29 -7
  536. package/src/block/proposal/attestations_and_signers.ts +32 -17
  537. package/src/block/test/l2_tips_store_test_suite.ts +1 -1
  538. package/src/checkpoint/checkpoint_data.ts +4 -0
  539. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  540. package/src/checkpoint/digest.ts +28 -0
  541. package/src/checkpoint/index.ts +3 -0
  542. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  543. package/src/config/chain-config.ts +6 -15
  544. package/src/config/index.ts +0 -1
  545. package/src/config/sequencer-config.ts +25 -7
  546. package/src/contract/complete_address.ts +7 -3
  547. package/src/contract/contract_address.ts +6 -6
  548. package/src/contract/contract_instance.ts +11 -2
  549. package/src/contract/interfaces/contract_instance.ts +6 -2
  550. package/src/database-version/version_manager.ts +17 -0
  551. package/src/gas/gas.ts +8 -3
  552. package/src/gas/gas_fees.ts +9 -9
  553. package/src/gas/gas_settings.ts +8 -3
  554. package/src/ha-signing/config.ts +9 -16
  555. package/src/ha-signing/local_config.ts +2 -2
  556. package/src/hash/hash.ts +2 -2
  557. package/src/interfaces/api_limit.ts +1 -1
  558. package/src/interfaces/archiver.ts +80 -94
  559. package/src/interfaces/aztec-node-admin.ts +32 -15
  560. package/src/interfaces/aztec-node-debug.ts +1 -1
  561. package/src/interfaces/aztec-node.ts +296 -262
  562. package/src/interfaces/block-builder.ts +2 -0
  563. package/src/interfaces/block_response.ts +92 -0
  564. package/src/interfaces/chain_tips.ts +24 -0
  565. package/src/interfaces/checkpoint_parameter.ts +20 -0
  566. package/src/interfaces/checkpoint_response.ts +84 -0
  567. package/src/interfaces/client.ts +6 -1
  568. package/src/interfaces/configs.ts +40 -1
  569. package/src/interfaces/l1_publish_info.ts +40 -0
  570. package/src/interfaces/l2_logs_source.ts +13 -42
  571. package/src/interfaces/merkle_tree_operations.ts +9 -2
  572. package/src/interfaces/p2p-bootstrap.ts +2 -2
  573. package/src/interfaces/p2p.ts +35 -15
  574. package/src/interfaces/private_kernel_prover.ts +88 -0
  575. package/src/interfaces/prover-agent.ts +1 -1
  576. package/src/interfaces/prover-node.ts +7 -7
  577. package/src/interfaces/proving-job-source.ts +4 -4
  578. package/src/interfaces/proving-job.ts +3 -3
  579. package/src/interfaces/public_storage_override.ts +26 -0
  580. package/src/interfaces/server.ts +5 -0
  581. package/src/interfaces/slasher.ts +17 -4
  582. package/src/interfaces/tx_provider.ts +6 -0
  583. package/src/interfaces/validator.ts +18 -2
  584. package/src/interfaces/world_state.ts +1 -1
  585. package/src/kernel/hints/key_validation_request.ts +18 -16
  586. package/src/kernel/index.ts +4 -0
  587. package/src/kernel/log_hash.ts +29 -9
  588. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  589. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  590. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  591. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  592. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  593. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  594. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  595. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  596. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  597. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  598. package/src/kernel/public_call_request.ts +22 -7
  599. package/src/keys/derivation.ts +21 -9
  600. package/src/keys/public_key.ts +26 -2
  601. package/src/keys/public_keys.ts +124 -110
  602. package/src/kv-store/config.ts +3 -10
  603. package/src/logs/{extended_directional_app_tagging_secret.ts → app_tagging_secret.ts} +62 -23
  604. package/src/logs/app_tagging_secret_kind.ts +21 -0
  605. package/src/logs/contract_class_log.ts +15 -5
  606. package/src/logs/index.ts +6 -6
  607. package/src/logs/log_cursor.ts +110 -0
  608. package/src/logs/log_result.ts +104 -0
  609. package/src/logs/logs_query.ts +138 -0
  610. package/src/logs/message_context.ts +5 -1
  611. package/src/logs/pre_tag.ts +3 -6
  612. package/src/logs/private_log.ts +9 -3
  613. package/src/logs/query_all_logs_by_tags.ts +98 -0
  614. package/src/logs/siloed_tag.ts +6 -1
  615. package/src/logs/tagging_index_range.ts +4 -10
  616. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  617. package/src/messaging/index.ts +1 -0
  618. package/src/messaging/l2_to_l1_membership.ts +108 -19
  619. package/src/messaging/l2_to_l1_message.ts +29 -9
  620. package/src/noir/index.ts +2 -0
  621. package/src/p2p/block_proposal.ts +99 -28
  622. package/src/p2p/checkpoint_attestation.ts +26 -26
  623. package/src/p2p/checkpoint_proposal.ts +109 -39
  624. package/src/p2p/consensus_payload.ts +59 -28
  625. package/src/p2p/signature_utils.ts +110 -25
  626. package/src/p2p/signed_txs.ts +46 -28
  627. package/src/parity/parity_base_private_inputs.ts +10 -4
  628. package/src/parity/parity_public_inputs.ts +9 -2
  629. package/src/proofs/chonk_proof.ts +49 -15
  630. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  631. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  632. package/src/schemas/schemas.ts +6 -1
  633. package/src/slashing/helpers.ts +13 -9
  634. package/src/slashing/types.ts +21 -14
  635. package/src/stats/stats.ts +4 -0
  636. package/src/tests/factories.ts +97 -68
  637. package/src/tests/mocks.ts +49 -57
  638. package/src/timetable/index.ts +63 -105
  639. package/src/trees/append_only_tree_snapshot.ts +8 -3
  640. package/src/trees/nullifier_membership_witness.ts +2 -12
  641. package/src/tx/block_header.ts +8 -3
  642. package/src/tx/global_variables.ts +10 -18
  643. package/src/tx/hashed_values.ts +8 -3
  644. package/src/tx/indexed_tx_effect.ts +17 -4
  645. package/src/tx/partial_state_reference.ts +8 -3
  646. package/src/tx/profiling.ts +4 -4
  647. package/src/tx/proven_tx.ts +6 -0
  648. package/src/tx/public_call_request_with_calldata.ts +8 -3
  649. package/src/tx/simulated_tx.ts +18 -21
  650. package/src/tx/state_reference.ts +9 -4
  651. package/src/tx/tree_snapshots.ts +9 -4
  652. package/src/tx/tx.ts +41 -22
  653. package/src/tx/tx_constant_data.ts +8 -3
  654. package/src/tx/tx_context.ts +8 -3
  655. package/src/tx/tx_hash.ts +20 -5
  656. package/src/tx/tx_receipt.ts +263 -80
  657. package/src/tx/validator/tx_validator.ts +1 -5
  658. package/src/types/shared.ts +8 -3
  659. package/src/update-checker/dev_version.ts +2 -0
  660. package/src/update-checker/index.ts +1 -0
  661. package/src/update-checker/package_version.ts +10 -23
  662. package/src/validators/schemas.ts +6 -4
  663. package/src/validators/types.ts +21 -2
  664. package/src/versioning/versioning.ts +1 -1
  665. package/src/world-state/genesis_data.ts +12 -0
  666. package/src/world-state/world_state_revision.ts +0 -33
  667. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  668. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  669. package/dest/block/checkpointed_l2_block.js +0 -46
  670. package/dest/config/pipelining-config.d.ts +0 -19
  671. package/dest/config/pipelining-config.d.ts.map +0 -1
  672. package/dest/config/pipelining-config.js +0 -18
  673. package/dest/interfaces/get_logs_response.d.ts +0 -97
  674. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  675. package/dest/interfaces/get_logs_response.js +0 -12
  676. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  677. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  678. package/dest/logs/extended_contract_class_log.js +0 -67
  679. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  680. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  681. package/dest/logs/extended_public_log.d.ts +0 -106
  682. package/dest/logs/extended_public_log.d.ts.map +0 -1
  683. package/dest/logs/extended_public_log.js +0 -73
  684. package/dest/logs/log_filter.d.ts +0 -25
  685. package/dest/logs/log_filter.d.ts.map +0 -1
  686. package/dest/logs/log_filter.js +0 -12
  687. package/dest/logs/log_id.d.ts +0 -85
  688. package/dest/logs/log_id.d.ts.map +0 -1
  689. package/dest/logs/log_id.js +0 -93
  690. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  691. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  692. package/dest/logs/tx_scoped_l2_log.js +0 -77
  693. package/src/block/checkpointed_l2_block.ts +0 -70
  694. package/src/config/pipelining-config.ts +0 -31
  695. package/src/interfaces/get_logs_response.ts +0 -35
  696. package/src/logs/extended_contract_class_log.ts +0 -87
  697. package/src/logs/extended_public_log.ts +0 -94
  698. package/src/logs/log_filter.ts +0 -36
  699. package/src/logs/log_id.ts +0 -124
  700. package/src/logs/tx_scoped_l2_log.ts +0 -114
@@ -1 +1 @@
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,gCAAgC,CAAC;AAEpD,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;IAE7D,YACS,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC,EAEpD,aAAa,EAAE,MAAM,EAC1B;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAEvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,uFAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED,gBAAgB,SAEf;IAED,0BAA0B,SAEzB;IAED,YAAY,IAAI,EAAE,EAAE,CAEnB;IAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAItE;IAED,OAAO,YAGN;IAED,MAAM,CAAC,KAAK,eAEX;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,cAG9C;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc,cAI9B;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQ3C;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,WAEvB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
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,gCAAgC,CAAC;AAEpD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,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;IAE7D,YACS,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC,EAEpD,aAAa,EAAE,MAAM,EAC1B;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAEvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,uFAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED,gBAAgB,SAEf;IAED,0BAA0B,SAEzB;IAED,YAAY,IAAI,EAAE,EAAE,CAEnB;IAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAItE;IAED,OAAO,YAGN;IAED,MAAM,CAAC,KAAK,eAEX;IAED,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAQjC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,cAG9C;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc,cAI9B;IAED,MAAM,KAAK,MAAM;;;;;;QAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQ3C;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,WAEvB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
@@ -4,7 +4,7 @@ import { makeTuple } from '@aztec/foundation/array';
4
4
  import { padArrayEnd } from '@aztec/foundation/collection';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { schemas } from '@aztec/foundation/schemas';
7
- import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
7
+ import { BufferReader, BufferSink, FieldReader, serializeToFields, serializeToSink } from '@aztec/foundation/serialize';
8
8
  import { inspect } from 'util';
9
9
  import { z } from 'zod';
10
10
  _computedKey = inspect.custom;
@@ -54,8 +54,11 @@ export class PrivateLog {
54
54
  static empty() {
55
55
  return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
56
56
  }
57
- toBuffer() {
58
- return serializeToBuffer(this.fields, this.emittedLength);
57
+ toBuffer(sink) {
58
+ if (!sink) {
59
+ return BufferSink.serialize(this);
60
+ }
61
+ serializeToSink(sink, this.fields, this.emittedLength);
59
62
  }
60
63
  static fromBuffer(buffer) {
61
64
  const reader = BufferReader.asReader(buffer);
@@ -0,0 +1,24 @@
1
+ import type { LogResult } from './log_result.js';
2
+ import type { PrivateLogsQuery, PublicLogsQuery } from './logs_query.js';
3
+ /** Minimal node surface needed by {@link queryAllPrivateLogsByTags}. */
4
+ export type PrivateLogsByTagsFetcher = {
5
+ getPrivateLogsByTags(query: PrivateLogsQuery): Promise<LogResult[][]>;
6
+ };
7
+ /** Minimal node surface needed by {@link queryAllPublicLogsByTags}. */
8
+ export type PublicLogsByTagsFetcher = {
9
+ getPublicLogsByTags(query: PublicLogsQuery): Promise<LogResult[][]>;
10
+ };
11
+ /**
12
+ * Drives the per-tag `afterLog` cursor loop for {@link PrivateLogsByTagsFetcher.getPrivateLogsByTags}.
13
+ *
14
+ * Each round re-queries only the tags whose previous page was full (`length === effective limit`), passing
15
+ * the cursor of the last seen log. Tags drop out as soon as they return a short page. Results are stitched
16
+ * back into one inner array per input tag, preserving the original input order.
17
+ *
18
+ * Honors {@link PrivateLogsQuery.limitPerTag} when set (caller is responsible for keeping it `<=`
19
+ * {@link MAX_LOGS_PER_TAG}; the query schema enforces this on the RPC boundary).
20
+ */
21
+ export declare function queryAllPrivateLogsByTags(node: PrivateLogsByTagsFetcher, query: PrivateLogsQuery): Promise<LogResult[][]>;
22
+ /** {@inheritDoc queryAllPrivateLogsByTags} */
23
+ export declare function queryAllPublicLogsByTags(node: PublicLogsByTagsFetcher, query: PublicLogsQuery): Promise<LogResult[][]>;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlfYWxsX2xvZ3NfYnlfdGFncy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvcXVlcnlfYWxsX2xvZ3NfYnlfdGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQVksTUFBTSxpQkFBaUIsQ0FBQztBQUluRix3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQ3JDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0NBQ3ZFLENBQUM7QUFFRix1RUFBdUU7QUFDdkUsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztDQUNyRSxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxJQUFJLEVBQUUsd0JBQXdCLEVBQzlCLEtBQUssRUFBRSxnQkFBZ0IsR0FDdEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FNeEI7QUFFRCw4Q0FBOEM7QUFDOUMsd0JBQWdCLHdCQUF3QixDQUN0QyxJQUFJLEVBQUUsdUJBQXVCLEVBQzdCLEtBQUssRUFBRSxlQUFlLEdBQ3JCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBTXhCIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_all_logs_by_tags.d.ts","sourceRoot":"","sources":["../../src/logs/query_all_logs_by_tags.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAY,MAAM,iBAAiB,CAAC;AAInF,wEAAwE;AACxE,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;CACvE,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,uBAAuB,GAAG;IACpC,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;CACrE,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,wBAAwB,EAC9B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAMxB;AAED,8CAA8C;AAC9C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,uBAAuB,EAC7B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAMxB"}
@@ -0,0 +1,64 @@
1
+ import { MAX_LOGS_PER_TAG } from '../interfaces/api_limit.js';
2
+ import { LogCursor } from './log_cursor.js';
3
+ /**
4
+ * Drives the per-tag `afterLog` cursor loop for {@link PrivateLogsByTagsFetcher.getPrivateLogsByTags}.
5
+ *
6
+ * Each round re-queries only the tags whose previous page was full (`length === effective limit`), passing
7
+ * the cursor of the last seen log. Tags drop out as soon as they return a short page. Results are stitched
8
+ * back into one inner array per input tag, preserving the original input order.
9
+ *
10
+ * Honors {@link PrivateLogsQuery.limitPerTag} when set (caller is responsible for keeping it `<=`
11
+ * {@link MAX_LOGS_PER_TAG}; the query schema enforces this on the RPC boundary).
12
+ */ export function queryAllPrivateLogsByTags(node, query) {
13
+ return queryAllByTags(query.tags, (tagQueries)=>node.getPrivateLogsByTags({
14
+ ...query,
15
+ tags: tagQueries
16
+ }), query.limitPerTag);
17
+ }
18
+ /** {@inheritDoc queryAllPrivateLogsByTags} */ export function queryAllPublicLogsByTags(node, query) {
19
+ return queryAllByTags(query.tags, (tagQueries)=>node.getPublicLogsByTags({
20
+ ...query,
21
+ tags: tagQueries
22
+ }), query.limitPerTag);
23
+ }
24
+ /**
25
+ * Generic per-tag pagination loop, abstracted over the query shape (private vs public). Caller supplies
26
+ * a `fetchPage` that runs one round against the node with the still-active subset of tag queries.
27
+ *
28
+ * @param tags - Input tag queries in original order. Returned outer array has the same length and order.
29
+ * @param fetchPage - Per-round fetch hook; receives the active subset and returns one page per active tag.
30
+ * @param limitPerTag - Effective page cap used to detect "full page" → keep paginating; defaults to
31
+ * {@link MAX_LOGS_PER_TAG} (the server-side cap when the query doesn't override).
32
+ */ async function queryAllByTags(tags, fetchPage, limitPerTag) {
33
+ const effectiveLimit = limitPerTag ?? MAX_LOGS_PER_TAG;
34
+ const allResultsPerTag = tags.map(()=>[]);
35
+ let activeIndexes = tags.map((_, i)=>i);
36
+ let nextQueries = tags.slice();
37
+ while(activeIndexes.length > 0){
38
+ const pageResults = await fetchPage(nextQueries);
39
+ const stillActive = [];
40
+ const followups = [];
41
+ for(let i = 0; i < activeIndexes.length; i++){
42
+ const originalIdx = activeIndexes[i];
43
+ const pageForTag = pageResults[i];
44
+ allResultsPerTag[originalIdx].push(...pageForTag);
45
+ if (pageForTag.length === effectiveLimit) {
46
+ const lastLog = pageForTag[pageForTag.length - 1];
47
+ stillActive.push(originalIdx);
48
+ followups.push({
49
+ tag: tagOf(tags[originalIdx]),
50
+ afterLog: LogCursor.fromLog(lastLog)
51
+ });
52
+ }
53
+ }
54
+ activeIndexes = stillActive;
55
+ nextQueries = followups;
56
+ }
57
+ return allResultsPerTag;
58
+ }
59
+ /** Unwraps a `TagQuery` to its underlying `Tag` / `SiloedTag` regardless of the bare-vs-object form. */ function tagOf(entry) {
60
+ if (typeof entry === 'object' && entry !== null && 'tag' in entry) {
61
+ return entry.tag;
62
+ }
63
+ return entry;
64
+ }
@@ -23,4 +23,4 @@ export declare class SiloedTag {
23
23
  static random(): SiloedTag;
24
24
  static get schema(): ZodFor<SiloedTag>;
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsb2VkX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3Mvc2lsb2VkX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gscUJBQWEsU0FBUzthQUlRLEtBQUssRUFBRSxFQUFFO0lBSHJDLG1DQUFtQztJQUNuQyxpQkFBeUIsU0FBUyxDQUFjO0lBRWhELFlBQTRCLEtBQUssRUFBRSxFQUFFLEVBQUk7SUFFekMsT0FBYSxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBSXZEO0lBRUQ7O09BRUc7SUFDSCxPQUFhLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBR2pGO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLElBQUksTUFBTSxDQUVmO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUV6QjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUVyQztDQUNGIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsb2VkX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3Mvc2lsb2VkX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gscUJBQWEsU0FBUzthQUlRLEtBQUssRUFBRSxFQUFFO0lBSHJDLG1DQUFtQztJQUNuQyxpQkFBeUIsU0FBUyxDQUFjO0lBRWhELFlBQTRCLEtBQUssRUFBRSxFQUFFLEVBQUk7SUFFekMsT0FBYSxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBUXZEO0lBRUQ7O09BRUc7SUFDSCxPQUFhLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBR2pGO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLElBQUksTUFBTSxDQUVmO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUV6QjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUVyQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;GAGG;AACH,qBAAa,SAAS;aAIQ,KAAK,EAAE,EAAE;IAHrC,mCAAmC;IACnC,iBAAyB,SAAS,CAAc;IAEhD,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIvD;IAED;;OAEG;IACH,OAAa,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAGjF;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAErC;CACF"}
1
+ {"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;GAGG;AACH,qBAAa,SAAS;aAIQ,KAAK,EAAE,EAAE;IAHrC,mCAAmC;IACnC,iBAAyB,SAAS,CAAc;IAEhD,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQvD;IAED;;OAEG;IACH,OAAa,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAGjF;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAErC;CACF"}
@@ -2,6 +2,7 @@ import { DomainSeparator } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { computeLogTag, computeSiloedPrivateLogFirstField } from '../hash/hash.js';
4
4
  import { schemas } from '../schemas/schemas.js';
5
+ import { AppTaggingSecretKind } from './app_tagging_secret_kind.js';
5
6
  import { Tag } from './tag.js';
6
7
  /**
7
8
  * Represents a tag used in private log as it "appears on the chain" - that is the tag is siloed with a contract
@@ -13,7 +14,8 @@ import { Tag } from './tag.js';
13
14
  }
14
15
  static async compute(preTag) {
15
16
  const tag = await Tag.compute(preTag);
16
- const logTag = await computeLogTag(tag.value, DomainSeparator.UNCONSTRAINED_MSG_LOG_TAG);
17
+ const domainSeparator = preTag.extendedSecret.kind === AppTaggingSecretKind.CONSTRAINED ? DomainSeparator.CONSTRAINED_MSG_LOG_TAG : DomainSeparator.UNCONSTRAINED_MSG_LOG_TAG;
18
+ const logTag = await computeLogTag(tag.value, domainSeparator);
17
19
  return SiloedTag.computeFromTagAndApp(new Tag(logTag), preTag.extendedSecret.app);
18
20
  }
19
21
  /**
@@ -1,40 +1,22 @@
1
1
  import { z } from 'zod';
2
- import { type ExtendedDirectionalAppTaggingSecret } from './extended_directional_app_tagging_secret.js';
3
- /**
4
- * Represents a range of tagging indexes for a given extended directional app tagging secret. Used to track the lowest
5
- * and highest indexes used in a transaction for a given (sender, recipient, app/contract) tuple.
6
- */
2
+ import { type AppTaggingSecret } from './app_tagging_secret.js';
3
+ /** Represents a range of tagging indexes for a given app tagging secret. */
7
4
  export type TaggingIndexRange = {
8
- extendedSecret: ExtendedDirectionalAppTaggingSecret;
5
+ extendedSecret: AppTaggingSecret;
9
6
  lowestIndex: number;
10
7
  highestIndex: number;
11
8
  };
12
9
  export declare const TaggingIndexRangeSchema: z.ZodObject<{
13
- extendedSecret: z.ZodObject<{
14
- secret: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
10
+ extendedSecret: z.ZodPipe<z.ZodObject<{
11
+ kind: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"unconstrained">, z.ZodLiteral<"constrained">]>>;
12
+ secret: z.ZodType<import("@aztec/foundation/schemas").Fr, string, z.core.$ZodTypeInternals<import("@aztec/foundation/schemas").Fr, string>>;
15
13
  app: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
16
- }, "strip", z.ZodTypeAny, {
14
+ }, z.core.$strip>, z.ZodTransform<AppTaggingSecret, {
15
+ kind: "constrained" | "unconstrained";
17
16
  secret: import("@aztec/foundation/schemas").Fr;
18
17
  app: import("../aztec-address/index.js").AztecAddress;
19
- }, {
20
- secret: string;
21
- app?: any;
22
- }>;
23
- lowestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
24
- highestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
25
- }, "strip", z.ZodTypeAny, {
26
- extendedSecret: {
27
- secret: import("@aztec/foundation/schemas").Fr;
28
- app: import("../aztec-address/index.js").AztecAddress;
29
- };
30
- lowestIndex: number;
31
- highestIndex: number;
32
- }, {
33
- extendedSecret: {
34
- secret: string;
35
- app?: any;
36
- };
37
- lowestIndex: string | number | bigint;
38
- highestIndex: string | number | bigint;
39
- }>;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnZ2luZ19pbmRleF9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdGFnZ2luZ19pbmRleF9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxLQUFLLG1DQUFtQyxFQUV6QyxNQUFNLDhDQUE4QyxDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixjQUFjLEVBQUUsbUNBQW1DLENBQUM7SUFDcEQsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFJbEMsQ0FBQyJ9
18
+ }>>;
19
+ lowestIndex: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
20
+ highestIndex: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
21
+ }, z.core.$strip>;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnZ2luZ19pbmRleF9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdGFnZ2luZ19pbmRleF9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBRXhGLDRFQUE0RTtBQUM1RSxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsY0FBYyxFQUFFLGdCQUFnQixDQUFDO0lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsWUFBWSxFQUFFLE1BQU0sQ0FBQztDQUN0QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7Ozs7Ozs7O2lCQUlsQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tagging_index_range.d.ts","sourceRoot":"","sources":["../../src/logs/tagging_index_range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,8CAA8C,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,mCAAmC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC"}
1
+ {"version":3,"file":"tagging_index_range.d.ts","sourceRoot":"","sources":["../../src/logs/tagging_index_range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,yBAAyB,CAAC;AAExF,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,gBAAgB,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAIlC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { schemas } from '@aztec/foundation/schemas';
2
2
  import { z } from 'zod';
3
- import { ExtendedDirectionalAppTaggingSecretSchema } from './extended_directional_app_tagging_secret.js';
3
+ import { AppTaggingSecretSchema } from './app_tagging_secret.js';
4
4
  export const TaggingIndexRangeSchema = z.object({
5
- extendedSecret: ExtendedDirectionalAppTaggingSecretSchema,
5
+ extendedSecret: AppTaggingSecretSchema,
6
6
  lowestIndex: schemas.Integer,
7
7
  highestIndex: schemas.Integer
8
8
  });
@@ -0,0 +1,9 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { MerkleTreeWriteOperations } from '../interfaces/merkle_tree_operations.js';
3
+ /**
4
+ * Pads `l1ToL2Messages` to `NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP` and appends them to the
5
+ * L1→L2 message tree of `db`. Use whenever a fork at "state before the first block of a
6
+ * checkpoint" needs to mirror what the world-state synchronizer inserts at sync time.
7
+ */
8
+ export declare function appendL1ToL2MessagesToTree(db: MerkleTreeWriteOperations, l1ToL2Messages: Fr[]): Promise<void>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kX2wxX3RvX2wyX21lc3NhZ2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnaW5nL2FwcGVuZF9sMV90b19sMl9tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd6Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFuSCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append_l1_to_l2_messages.d.ts","sourceRoot":"","sources":["../../src/messaging/append_l1_to_l2_messages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAGzF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,yBAAyB,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnH"}
@@ -0,0 +1,12 @@
1
+ import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { MerkleTreeId } from '../trees/merkle_tree_id.js';
5
+ /**
6
+ * Pads `l1ToL2Messages` to `NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP` and appends them to the
7
+ * L1→L2 message tree of `db`. Use whenever a fork at "state before the first block of a
8
+ * checkpoint" needs to mirror what the world-state synchronizer inserts at sync time.
9
+ */ export async function appendL1ToL2MessagesToTree(db, l1ToL2Messages) {
10
+ const padded = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, 'Too many L1 to L2 messages');
11
+ await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padded);
12
+ }
@@ -1,3 +1,4 @@
1
+ export * from './append_l1_to_l2_messages.js';
1
2
  export * from './in_hash.js';
2
3
  export * from './inbox_leaf.js';
3
4
  export * from './l1_to_l2_message.js';
@@ -7,4 +8,4 @@ export * from './l2_actor.js';
7
8
  export * from './l2_to_l1_message.js';
8
9
  export * from './l2_to_l1_membership.js';
9
10
  export * from './out_hash.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZUFBZSxDQUFDIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxlQUFlLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './append_l1_to_l2_messages.js';
1
2
  export * from './in_hash.js';
2
3
  export * from './inbox_leaf.js';
3
4
  export * from './l1_to_l2_message.js';
@@ -1,8 +1,23 @@
1
- import type { EpochNumber } from '@aztec/foundation/branded-types';
1
+ import { type EpochNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { SiblingPath } from '@aztec/foundation/trees';
4
+ import { z } from 'zod';
4
5
  import type { AztecNode } from '../interfaces/aztec-node.js';
5
6
  import { TxHash } from '../tx/tx_hash.js';
7
+ import type { TxReceipt } from '../tx/tx_receipt.js';
8
+ /**
9
+ * Provides access to the L1 Outbox's per-epoch roots so the witness helper can pick the smallest
10
+ * partial-proof root that covers a tx's checkpoint. Implemented by `OutboxContract` in the
11
+ * ethereum package.
12
+ */
13
+ export interface OutboxRootsReader {
14
+ /**
15
+ * Returns the array of roots stored for `epoch`. Slot `i` holds the root inserted for
16
+ * `numCheckpointsInEpoch = i + 1`, or `Fr.ZERO` if no proof of that depth has landed yet. The
17
+ * returned array length is `MAX_CHECKPOINTS_PER_EPOCH`.
18
+ */
19
+ getRoots(epoch: EpochNumber): Promise<Fr[]>;
20
+ }
6
21
  /**
7
22
  * # L2-to-L1 Message Tree Structure and Leaf IDs
8
23
  *
@@ -87,22 +102,44 @@ import { TxHash } from '../tx/tx_hash.js';
87
102
  */
88
103
  export declare function getL2ToL1MessageLeafId(membershipWitness: Pick<L2ToL1MembershipWitness, 'leafIndex' | 'siblingPath'>): bigint;
89
104
  export type L2ToL1MembershipWitness = {
105
+ epochNumber: EpochNumber;
106
+ /**
107
+ * The number of checkpoints covered by the partial-proof root this witness was built against
108
+ * (1-indexed; equal to `roots-array-index + 1` on the Outbox). Pass this through to
109
+ * `Outbox.consume` so the contract reads the matching root slot.
110
+ */
111
+ numCheckpointsInEpoch: number;
90
112
  root: Fr;
91
113
  leafIndex: bigint;
92
114
  siblingPath: SiblingPath<number>;
93
- epochNumber: EpochNumber;
94
115
  };
116
+ /**
117
+ * Zod schema for {@link L2ToL1MembershipWitness}. The sibling-path length varies with the shape of
118
+ * the per-epoch tree, so we use the unsized `SiblingPath.schema` here rather than a fixed-height
119
+ * `schemaFor`.
120
+ */
121
+ export declare const L2ToL1MembershipWitnessSchema: z.ZodType<L2ToL1MembershipWitness, unknown, z.core.$ZodTypeInternals<L2ToL1MembershipWitness, unknown>>;
95
122
  /**
96
123
  * Computes the L2 to L1 membership witness for a given message in a transaction.
97
124
  *
125
+ * Queries the L1 Outbox to find the smallest partial-proof root that covers the tx's checkpoint,
126
+ * then builds the witness against that root by including only the first `numCheckpointsInEpoch`
127
+ * checkpoints of the epoch in the tree (the remaining slots are zero-padded, matching the shape
128
+ * the rollup proved). Returns `undefined` if the tx is not yet in a block/epoch or if the Outbox
129
+ * holds no root yet that covers the tx's checkpoint.
130
+ *
98
131
  * @param node - The Aztec node to query for block/tx/epoch data.
132
+ * @param outboxOrRoots - Either an `OutboxRootsReader` (the helper will fetch the per-epoch roots),
133
+ * or an already-resolved roots array of length `MAX_CHECKPOINTS_PER_EPOCH`. Pass the array when
134
+ * you already read the outbox (e.g. inside a tight loop that resolves witnesses for many
135
+ * messages in the same epoch) to avoid redundant L1 reads.
99
136
  * @param message - The L2 to L1 message hash to prove membership of.
100
- * @param txHash - The hash of the transaction that emitted the message.
137
+ * @param txHashOrReceipt - Either the tx hash, or the already-fetched `TxReceipt`. Passing the
138
+ * receipt skips an internal `getTxReceipt` call.
101
139
  * @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
102
140
  * If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
103
- * @returns The membership witness and epoch number, or undefined if the tx is not yet in a block/epoch.
104
141
  */
105
- export declare function computeL2ToL1MembershipWitness(node: Pick<AztecNode, 'getL2ToL1Messages' | 'getTxReceipt' | 'getTxEffect' | 'getBlock' | 'getCheckpointsDataForEpoch'>, message: Fr, txHash: TxHash, messageIndexInTx?: number): Promise<L2ToL1MembershipWitness | undefined>;
142
+ export declare function computeL2ToL1MembershipWitness(node: Pick<AztecNode, 'getL2ToL1Messages' | 'getTxReceipt' | 'getBlock' | 'getCheckpointsData'>, outboxOrRoots: OutboxRootsReader | Fr[], message: Fr, txHashOrReceipt: TxHash | Pick<TxReceipt, 'txHash' | 'epochNumber' | 'blockNumber' | 'txIndexInBlock'>, messageIndexInTx?: number): Promise<L2ToL1MembershipWitness | undefined>;
106
143
  /**
107
144
  * Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
108
145
  *
@@ -120,4 +157,4 @@ export declare function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messag
120
157
  leafIndex: bigint;
121
158
  siblingPath: SiblingPath<number>;
122
159
  };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdG9fbDFfbWVtYmVyc2hpcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMl90b19sMV9tZW1iZXJzaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUE0RCxNQUFNLHlCQUF5QixDQUFDO0FBRWhILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0Isc0JBQXNCLENBQ3BDLGlCQUFpQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLEdBQUcsYUFBYSxDQUFDLEdBQzVFLE1BQU0sQ0FFUjtBQUVELE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxXQUFXLENBQUM7Q0FDMUIsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsSUFBSSxFQUFFLElBQUksQ0FDUixTQUFTLEVBQ1QsbUJBQW1CLEdBQUcsY0FBYyxHQUFHLGFBQWEsR0FBRyxVQUFVLEdBQUcsNEJBQTRCLENBQ2pHLEVBQ0QsT0FBTyxFQUFFLEVBQUUsRUFDWCxNQUFNLEVBQUUsTUFBTSxFQUNkLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxDQUFDLENBa0M5QztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCwyQ0FBMkM7QUFDM0Msd0JBQWdCLGlEQUFpRCxDQUMvRCxlQUFlLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzNCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsZUFBZSxFQUFFLE1BQU0sRUFDdkIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsT0FBTyxFQUFFLE1BQU0sRUFDZixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sR0FDeEI7SUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7Q0FBRSxDQW9FbkUifQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdG9fbDFfbWVtYmVyc2hpcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMl90b19sMV9tZW1iZXJzaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBNEQsTUFBTSx5QkFBeUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQzs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Q0FDN0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0Isc0JBQXNCLENBQ3BDLGlCQUFpQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLEdBQUcsYUFBYSxDQUFDLEdBQzVFLE1BQU0sQ0FFUjtBQUVELE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQ3pCOzs7O09BSUc7SUFDSCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNsQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSw2QkFBNkIseUdBTVMsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsY0FBYyxHQUFHLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxFQUMvRixhQUFhLEVBQUUsaUJBQWlCLEdBQUcsRUFBRSxFQUFFLEVBQ3ZDLE9BQU8sRUFBRSxFQUFFLEVBQ1gsZUFBZSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsR0FBRyxhQUFhLEdBQUcsYUFBYSxHQUFHLGdCQUFnQixDQUFDLEVBQ3RHLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxDQUFDLENBZ0U5QztBQWdCRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsMkNBQTJDO0FBQzNDLHdCQUFnQixpREFBaUQsQ0FDL0QsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzQixPQUFPLEVBQUUsRUFBRSxFQUNYLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQ3hCO0lBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0NBQUUsQ0FvRW5FIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,CACR,SAAS,EACT,mBAAmB,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,4BAA4B,CACjG,EACD,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAkC9C;AAED;;;;;;;;;;GAUG;AACH,2CAA2C;AAC3C,wBAAgB,iDAAiD,CAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAoEnE"}
1
+ {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,yGAMS,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,GAAG,cAAc,GAAG,UAAU,GAAG,oBAAoB,CAAC,EAC/F,aAAa,EAAE,iBAAiB,GAAG,EAAE,EAAE,EACvC,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAC,EACtG,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAgE9C;AAgBD;;;;;;;;;;GAUG;AACH,2CAA2C;AAC3C,wBAAgB,iDAAiD,CAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAoEnE"}
@@ -1,6 +1,9 @@
1
- import { OUT_HASH_TREE_LEAF_COUNT } from '@aztec/constants';
1
+ import { MAX_CHECKPOINTS_PER_EPOCH, OUT_HASH_TREE_LEAF_COUNT } from '@aztec/constants';
2
+ import { EpochNumberSchema } from '@aztec/foundation/branded-types';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot } from '@aztec/foundation/trees';
5
+ import { z } from 'zod';
6
+ import { schemas } from '../schemas/schemas.js';
4
7
  /**
5
8
  * # L2-to-L1 Message Tree Structure and Leaf IDs
6
9
  *
@@ -84,27 +87,52 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
84
87
  */ export function getL2ToL1MessageLeafId(membershipWitness) {
85
88
  return 2n ** BigInt(membershipWitness.siblingPath.pathSize) + membershipWitness.leafIndex;
86
89
  }
90
+ /**
91
+ * Zod schema for {@link L2ToL1MembershipWitness}. The sibling-path length varies with the shape of
92
+ * the per-epoch tree, so we use the unsized `SiblingPath.schema` here rather than a fixed-height
93
+ * `schemaFor`.
94
+ */ export const L2ToL1MembershipWitnessSchema = z.object({
95
+ epochNumber: EpochNumberSchema,
96
+ numCheckpointsInEpoch: schemas.Integer,
97
+ root: schemas.Fr,
98
+ leafIndex: schemas.BigInt,
99
+ siblingPath: SiblingPath.schema
100
+ });
87
101
  /**
88
102
  * Computes the L2 to L1 membership witness for a given message in a transaction.
89
103
  *
104
+ * Queries the L1 Outbox to find the smallest partial-proof root that covers the tx's checkpoint,
105
+ * then builds the witness against that root by including only the first `numCheckpointsInEpoch`
106
+ * checkpoints of the epoch in the tree (the remaining slots are zero-padded, matching the shape
107
+ * the rollup proved). Returns `undefined` if the tx is not yet in a block/epoch or if the Outbox
108
+ * holds no root yet that covers the tx's checkpoint.
109
+ *
90
110
  * @param node - The Aztec node to query for block/tx/epoch data.
111
+ * @param outboxOrRoots - Either an `OutboxRootsReader` (the helper will fetch the per-epoch roots),
112
+ * or an already-resolved roots array of length `MAX_CHECKPOINTS_PER_EPOCH`. Pass the array when
113
+ * you already read the outbox (e.g. inside a tight loop that resolves witnesses for many
114
+ * messages in the same epoch) to avoid redundant L1 reads.
91
115
  * @param message - The L2 to L1 message hash to prove membership of.
92
- * @param txHash - The hash of the transaction that emitted the message.
116
+ * @param txHashOrReceipt - Either the tx hash, or the already-fetched `TxReceipt`. Passing the
117
+ * receipt skips an internal `getTxReceipt` call.
93
118
  * @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
94
119
  * If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
95
- * @returns The membership witness and epoch number, or undefined if the tx is not yet in a block/epoch.
96
- */ export async function computeL2ToL1MembershipWitness(node, message, txHash, messageIndexInTx) {
97
- const { epochNumber, blockNumber } = await node.getTxReceipt(txHash);
98
- if (epochNumber === undefined || blockNumber === undefined) {
120
+ */ export async function computeL2ToL1MembershipWitness(node, outboxOrRoots, message, txHashOrReceipt, messageIndexInTx) {
121
+ const receipt = 'txHash' in txHashOrReceipt ? txHashOrReceipt : await node.getTxReceipt(txHashOrReceipt, {
122
+ includeTxEffect: true
123
+ });
124
+ const { epochNumber, blockNumber, txIndexInBlock } = receipt;
125
+ if (epochNumber === undefined || blockNumber === undefined || txIndexInBlock === undefined) {
99
126
  return undefined;
100
127
  }
101
- const [messagesInEpoch, block, txEffect, checkpointsData] = await Promise.all([
128
+ const [messagesInEpoch, block, checkpointsData] = await Promise.all([
102
129
  node.getL2ToL1Messages(epochNumber),
103
130
  node.getBlock(blockNumber),
104
- node.getTxEffect(txHash),
105
- node.getCheckpointsDataForEpoch(epochNumber)
131
+ node.getCheckpointsData({
132
+ epoch: epochNumber
133
+ })
106
134
  ]);
107
- if (messagesInEpoch.length === 0 || !block || !txEffect) {
135
+ if (messagesInEpoch.length === 0 || !block) {
108
136
  return undefined;
109
137
  }
110
138
  const checkpointIndex = checkpointsData.findIndex((c)=>c.checkpointNumber === block.checkpointNumber);
@@ -112,15 +140,47 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
112
140
  return undefined;
113
141
  }
114
142
  const blockIndex = block.indexWithinCheckpoint;
115
- const txIndex = txEffect.txIndexInBlock;
116
- const { root, leafIndex, siblingPath } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message, checkpointIndex, blockIndex, txIndex, messageIndexInTx);
143
+ const txIndex = txIndexInBlock;
144
+ // Pick the smallest partial-proof root on the Outbox that covers checkpointIndex. The Outbox
145
+ // stores roots keyed by `numCheckpointsInEpoch - 1`, so to cover a tx in checkpoint at index
146
+ // `checkpointIndex` we need a non-zero entry at array index >= checkpointIndex.
147
+ const roots = Array.isArray(outboxOrRoots) ? outboxOrRoots : await outboxOrRoots.getRoots(epochNumber);
148
+ const numCheckpointsInEpoch = findSmallestCoveringRootCount(roots, checkpointIndex);
149
+ if (numCheckpointsInEpoch === undefined) {
150
+ return undefined;
151
+ }
152
+ // Build the witness against the first `numCheckpointsInEpoch` checkpoints. The inner builder
153
+ // pads to OUT_HASH_TREE_LEAF_COUNT internally, so slicing the outer array narrows the real-leaf
154
+ // prefix and grows the zero suffix — exactly the shape the rollup proved against.
155
+ const messagesInPartialEpoch = messagesInEpoch.slice(0, numCheckpointsInEpoch);
156
+ const { root, leafIndex, siblingPath } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInPartialEpoch, message, checkpointIndex, blockIndex, txIndex, messageIndexInTx);
157
+ // Cross-check: the recomputed root must equal the root the Outbox is holding for this depth.
158
+ // A mismatch means the node and L1 disagree about the epoch's contents; fail loud rather than
159
+ // return a witness that will revert on chain.
160
+ const expected = roots[numCheckpointsInEpoch - 1];
161
+ if (!root.equals(expected)) {
162
+ throw new Error(`Local epoch out-hash does not match Outbox at epoch ${epochNumber} numCheckpointsInEpoch ` + `${numCheckpointsInEpoch}: local=${root.toString()} outbox=${expected.toString()}`);
163
+ }
117
164
  return {
118
165
  epochNumber,
166
+ numCheckpointsInEpoch,
119
167
  root,
120
168
  leafIndex,
121
169
  siblingPath
122
170
  };
123
171
  }
172
+ /**
173
+ * Returns the smallest `numCheckpointsInEpoch` (1-indexed) for which the Outbox holds a root that
174
+ * covers the message at `checkpointIndex` (0-indexed). Returns `undefined` if no covering root has
175
+ * been inserted yet.
176
+ */ function findSmallestCoveringRootCount(roots, checkpointIndex) {
177
+ for(let i = checkpointIndex; i < Math.min(roots.length, MAX_CHECKPOINTS_PER_EPOCH); i++){
178
+ if (!roots[i].isZero()) {
179
+ return i + 1;
180
+ }
181
+ }
182
+ return undefined;
183
+ }
124
184
  /**
125
185
  * Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
126
186
  *