@aztec/stdlib 0.0.1-commit.2eb6648a → 0.0.1-commit.2f68f620

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 (1094) hide show
  1. package/dest/abi/abi.d.ts +142 -1081
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +41 -18
  4. package/dest/abi/authorization_selector.d.ts +4 -7
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/contract_artifact.d.ts +1 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +14 -7
  12. package/dest/abi/decoder.d.ts +6 -45
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +17 -70
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +64 -7
  18. package/dest/abi/event_metadata_definition.d.ts +3 -1
  19. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  20. package/dest/abi/event_metadata_definition.js +1 -1
  21. package/dest/abi/event_selector.d.ts +4 -7
  22. package/dest/abi/event_selector.d.ts.map +1 -1
  23. package/dest/abi/function_call.d.ts +22 -10
  24. package/dest/abi/function_call.d.ts.map +1 -1
  25. package/dest/abi/function_call.js +20 -3
  26. package/dest/abi/function_selector.d.ts +3 -6
  27. package/dest/abi/function_selector.d.ts.map +1 -1
  28. package/dest/abi/function_selector.js +2 -4
  29. package/dest/abi/function_signature_decoder.d.ts +43 -0
  30. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  31. package/dest/abi/function_signature_decoder.js +66 -0
  32. package/dest/abi/index.d.ts +2 -1
  33. package/dest/abi/index.d.ts.map +1 -1
  34. package/dest/abi/index.js +1 -0
  35. package/dest/abi/note_selector.d.ts +4 -7
  36. package/dest/abi/note_selector.d.ts.map +1 -1
  37. package/dest/abi/note_selector.js +1 -3
  38. package/dest/abi/selector.d.ts +2 -2
  39. package/dest/abi/selector.d.ts.map +1 -1
  40. package/dest/abi/selector.js +1 -1
  41. package/dest/abi/utils.d.ts +14 -1
  42. package/dest/abi/utils.d.ts.map +1 -1
  43. package/dest/abi/utils.js +16 -1
  44. package/dest/auth_witness/auth_witness.d.ts +2 -2
  45. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  46. package/dest/auth_witness/auth_witness.js +3 -3
  47. package/dest/avm/avm.d.ts +1756 -10463
  48. package/dest/avm/avm.d.ts.map +1 -1
  49. package/dest/avm/avm.js +6 -3
  50. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  51. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  52. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  53. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  54. package/dest/avm/avm_proving_request.d.ts +674 -5467
  55. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  56. package/dest/avm/index.d.ts +1 -6
  57. package/dest/avm/index.d.ts.map +1 -1
  58. package/dest/avm/index.js +0 -5
  59. package/dest/avm/message_pack.js +12 -3
  60. package/dest/avm/public_data_write.d.ts +6 -12
  61. package/dest/avm/public_data_write.d.ts.map +1 -1
  62. package/dest/avm/revert_code.d.ts +6 -7
  63. package/dest/avm/revert_code.d.ts.map +1 -1
  64. package/dest/avm/revert_code.js +13 -21
  65. package/dest/aztec-address/index.d.ts +8 -8
  66. package/dest/aztec-address/index.d.ts.map +1 -1
  67. package/dest/aztec-address/index.js +9 -6
  68. package/dest/block/attestation_info.d.ts +3 -2
  69. package/dest/block/attestation_info.d.ts.map +1 -1
  70. package/dest/block/attestation_info.js +7 -5
  71. package/dest/block/block_data.d.ts +27 -0
  72. package/dest/block/block_data.d.ts.map +1 -0
  73. package/dest/block/block_data.js +12 -0
  74. package/dest/block/block_hash.d.ts +11 -10
  75. package/dest/block/block_hash.d.ts.map +1 -1
  76. package/dest/block/block_hash.js +10 -9
  77. package/dest/block/block_parameter.d.ts +37 -4
  78. package/dest/block/block_parameter.d.ts.map +1 -1
  79. package/dest/block/block_parameter.js +53 -2
  80. package/dest/block/in_block.d.ts +5 -24
  81. package/dest/block/in_block.d.ts.map +1 -1
  82. package/dest/block/index.d.ts +2 -2
  83. package/dest/block/index.d.ts.map +1 -1
  84. package/dest/block/index.js +1 -1
  85. package/dest/block/l2_block.d.ts +21 -41
  86. package/dest/block/l2_block.d.ts.map +1 -1
  87. package/dest/block/l2_block.js +12 -2
  88. package/dest/block/l2_block_info.d.ts +10 -29
  89. package/dest/block/l2_block_info.d.ts.map +1 -1
  90. package/dest/block/l2_block_info.js +6 -5
  91. package/dest/block/l2_block_source.d.ts +216 -338
  92. package/dest/block/l2_block_source.d.ts.map +1 -1
  93. package/dest/block/l2_block_source.js +67 -1
  94. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  95. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  96. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  97. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  98. package/dest/block/l2_block_stream/l2_block_stream.js +49 -12
  99. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  100. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  101. package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
  102. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  103. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  104. package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
  105. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  106. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  107. package/dest/block/proposal/attestations_and_signers.js +26 -18
  108. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  109. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  110. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  111. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  112. package/dest/block/test/l2_tips_store_test_suite.js +5 -4
  113. package/dest/checkpoint/checkpoint.d.ts +48 -99
  114. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  115. package/dest/checkpoint/checkpoint.js +41 -17
  116. package/dest/checkpoint/checkpoint_data.d.ts +97 -0
  117. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  118. package/dest/checkpoint/checkpoint_data.js +38 -0
  119. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  120. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  121. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  122. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  123. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  124. package/dest/checkpoint/digest.d.ts +18 -0
  125. package/dest/checkpoint/digest.d.ts.map +1 -0
  126. package/dest/checkpoint/digest.js +12 -0
  127. package/dest/checkpoint/index.d.ts +6 -1
  128. package/dest/checkpoint/index.d.ts.map +1 -1
  129. package/dest/checkpoint/index.js +5 -0
  130. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  131. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  132. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  133. package/dest/checkpoint/published_checkpoint.d.ts +53 -190
  134. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  135. package/dest/checkpoint/published_checkpoint.js +1 -2
  136. package/dest/checkpoint/validate.d.ts +36 -0
  137. package/dest/checkpoint/validate.d.ts.map +1 -0
  138. package/dest/checkpoint/validate.js +120 -0
  139. package/dest/config/chain-config.d.ts +4 -9
  140. package/dest/config/chain-config.d.ts.map +1 -1
  141. package/dest/config/chain-config.js +13 -12
  142. package/dest/config/index.d.ts +2 -1
  143. package/dest/config/index.d.ts.map +1 -1
  144. package/dest/config/index.js +1 -0
  145. package/dest/config/sequencer-config.d.ts +14 -0
  146. package/dest/config/sequencer-config.d.ts.map +1 -0
  147. package/dest/config/sequencer-config.js +38 -0
  148. package/dest/contract/complete_address.d.ts +3 -2
  149. package/dest/contract/complete_address.d.ts.map +1 -1
  150. package/dest/contract/complete_address.js +6 -2
  151. package/dest/contract/contract_address.d.ts +6 -6
  152. package/dest/contract/contract_address.d.ts.map +1 -1
  153. package/dest/contract/contract_address.js +9 -8
  154. package/dest/contract/contract_class.d.ts +2 -3
  155. package/dest/contract/contract_class.d.ts.map +1 -1
  156. package/dest/contract/contract_class_id.d.ts +3 -3
  157. package/dest/contract/contract_class_id.d.ts.map +1 -1
  158. package/dest/contract/contract_class_id.js +7 -6
  159. package/dest/contract/contract_deployment_data.d.ts +15 -61
  160. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  161. package/dest/contract/contract_instance.d.ts +4 -2
  162. package/dest/contract/contract_instance.d.ts.map +1 -1
  163. package/dest/contract/contract_instance.js +10 -3
  164. package/dest/contract/index.d.ts +1 -4
  165. package/dest/contract/index.d.ts.map +1 -1
  166. package/dest/contract/index.js +0 -3
  167. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  168. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  169. package/dest/contract/interfaces/contract_class.js +1 -28
  170. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  171. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  172. package/dest/contract/interfaces/contract_instance.js +4 -2
  173. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  174. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  175. package/dest/contract/interfaces/node-info.d.ts +3 -1
  176. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  177. package/dest/contract/interfaces/node-info.js +2 -1
  178. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  179. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  180. package/dest/contract/private_function.d.ts +1 -1
  181. package/dest/contract/private_function.d.ts.map +1 -1
  182. package/dest/contract/private_function.js +4 -6
  183. package/dest/database-version/database_version.d.ts +5 -11
  184. package/dest/database-version/database_version.d.ts.map +1 -1
  185. package/dest/database-version/version_manager.d.ts +6 -2
  186. package/dest/database-version/version_manager.d.ts.map +1 -1
  187. package/dest/database-version/version_manager.js +12 -1
  188. package/dest/epoch-helpers/index.d.ts +14 -18
  189. package/dest/epoch-helpers/index.d.ts.map +1 -1
  190. package/dest/epoch-helpers/index.js +18 -2
  191. package/dest/file-store/factory.d.ts +4 -3
  192. package/dest/file-store/factory.d.ts.map +1 -1
  193. package/dest/file-store/factory.js +2 -2
  194. package/dest/file-store/http.d.ts +9 -2
  195. package/dest/file-store/http.d.ts.map +1 -1
  196. package/dest/file-store/http.js +20 -9
  197. package/dest/file-store/index.d.ts +2 -1
  198. package/dest/file-store/index.d.ts.map +1 -1
  199. package/dest/file-store/local.d.ts +3 -3
  200. package/dest/file-store/local.d.ts.map +1 -1
  201. package/dest/file-store/local.js +13 -4
  202. package/dest/file-store/s3.d.ts +1 -1
  203. package/dest/file-store/s3.d.ts.map +1 -1
  204. package/dest/file-store/s3.js +11 -3
  205. package/dest/gas/fee_math.d.ts +49 -0
  206. package/dest/gas/fee_math.d.ts.map +1 -0
  207. package/dest/gas/fee_math.js +80 -0
  208. package/dest/gas/gas.d.ts +9 -14
  209. package/dest/gas/gas.d.ts.map +1 -1
  210. package/dest/gas/gas.js +6 -3
  211. package/dest/gas/gas_fees.d.ts +13 -14
  212. package/dest/gas/gas_fees.d.ts.map +1 -1
  213. package/dest/gas/gas_fees.js +20 -4
  214. package/dest/gas/gas_settings.d.ts +66 -86
  215. package/dest/gas/gas_settings.d.ts.map +1 -1
  216. package/dest/gas/gas_settings.js +56 -9
  217. package/dest/gas/index.d.ts +2 -1
  218. package/dest/gas/index.d.ts.map +1 -1
  219. package/dest/gas/index.js +1 -0
  220. package/dest/ha-signing/config.d.ts +72 -0
  221. package/dest/ha-signing/config.d.ts.map +1 -0
  222. package/dest/ha-signing/config.js +88 -0
  223. package/dest/ha-signing/index.d.ts +4 -0
  224. package/dest/ha-signing/index.d.ts.map +1 -0
  225. package/dest/ha-signing/index.js +3 -0
  226. package/dest/ha-signing/local_config.d.ts +32 -0
  227. package/dest/ha-signing/local_config.d.ts.map +1 -0
  228. package/dest/ha-signing/local_config.js +24 -0
  229. package/dest/ha-signing/types.d.ts +90 -0
  230. package/dest/ha-signing/types.d.ts.map +1 -0
  231. package/dest/ha-signing/types.js +39 -0
  232. package/dest/hash/hash.d.ts +35 -1
  233. package/dest/hash/hash.d.ts.map +1 -1
  234. package/dest/hash/hash.js +78 -11
  235. package/dest/hash/map_slot.js +2 -2
  236. package/dest/interfaces/allowed_element.d.ts +17 -35
  237. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  238. package/dest/interfaces/allowed_element.js +8 -8
  239. package/dest/interfaces/api_limit.d.ts +1 -1
  240. package/dest/interfaces/api_limit.js +1 -1
  241. package/dest/interfaces/archiver.d.ts +22 -32
  242. package/dest/interfaces/archiver.d.ts.map +1 -1
  243. package/dest/interfaces/archiver.js +215 -65
  244. package/dest/interfaces/aztec-node-admin.d.ts +105 -263
  245. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  246. package/dest/interfaces/aztec-node-admin.js +66 -17
  247. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  248. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  249. package/dest/interfaces/aztec-node-debug.js +21 -0
  250. package/dest/interfaces/aztec-node.d.ts +115 -106
  251. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  252. package/dest/interfaces/aztec-node.js +311 -68
  253. package/dest/interfaces/block-builder.d.ts +41 -12
  254. package/dest/interfaces/block-builder.d.ts.map +1 -1
  255. package/dest/interfaces/block-builder.js +13 -6
  256. package/dest/interfaces/block_response.d.ts +90 -0
  257. package/dest/interfaces/block_response.d.ts.map +1 -0
  258. package/dest/interfaces/block_response.js +30 -0
  259. package/dest/interfaces/chain_tips.d.ts +50 -0
  260. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  261. package/dest/interfaces/chain_tips.js +11 -0
  262. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  263. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  264. package/dest/interfaces/checkpoint_parameter.js +18 -0
  265. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  266. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  267. package/dest/interfaces/checkpoint_response.js +26 -0
  268. package/dest/interfaces/client.d.ts +8 -2
  269. package/dest/interfaces/client.d.ts.map +1 -1
  270. package/dest/interfaces/client.js +7 -1
  271. package/dest/interfaces/configs.d.ts +73 -117
  272. package/dest/interfaces/configs.d.ts.map +1 -1
  273. package/dest/interfaces/configs.js +18 -3
  274. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  275. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  276. package/dest/interfaces/l1_publish_info.js +26 -0
  277. package/dest/interfaces/l2_logs_source.d.ts +14 -34
  278. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  279. package/dest/interfaces/l2_logs_source.js +5 -0
  280. package/dest/interfaces/merkle_tree_operations.d.ts +21 -24
  281. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  282. package/dest/interfaces/p2p-bootstrap.js +8 -2
  283. package/dest/interfaces/p2p.d.ts +17 -12
  284. package/dest/interfaces/p2p.d.ts.map +1 -1
  285. package/dest/interfaces/p2p.js +28 -5
  286. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  287. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  288. package/dest/interfaces/prover-agent.d.ts +5 -23
  289. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  290. package/dest/interfaces/prover-agent.js +4 -1
  291. package/dest/interfaces/prover-client.d.ts +9 -25
  292. package/dest/interfaces/prover-client.d.ts.map +1 -1
  293. package/dest/interfaces/prover-client.js +7 -4
  294. package/dest/interfaces/prover-node.js +22 -8
  295. package/dest/interfaces/proving-job-source.js +24 -4
  296. package/dest/interfaces/proving-job.d.ts +763 -5814
  297. package/dest/interfaces/proving-job.d.ts.map +1 -1
  298. package/dest/interfaces/proving-job.js +1 -1
  299. package/dest/interfaces/public_storage_override.d.ts +22 -0
  300. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  301. package/dest/interfaces/public_storage_override.js +7 -0
  302. package/dest/interfaces/server.d.ts +6 -2
  303. package/dest/interfaces/server.d.ts.map +1 -1
  304. package/dest/interfaces/server.js +5 -1
  305. package/dest/interfaces/slasher.d.ts +26 -62
  306. package/dest/interfaces/slasher.d.ts.map +1 -1
  307. package/dest/interfaces/slasher.js +9 -4
  308. package/dest/interfaces/tx_provider.d.ts +6 -1
  309. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  310. package/dest/interfaces/validator.d.ts +74 -201
  311. package/dest/interfaces/validator.d.ts.map +1 -1
  312. package/dest/interfaces/validator.js +15 -5
  313. package/dest/interfaces/world_state.d.ts +6 -5
  314. package/dest/interfaces/world_state.d.ts.map +1 -1
  315. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  316. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  317. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  318. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  319. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  320. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  321. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  322. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  323. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  324. package/dest/kernel/hints/index.d.ts +3 -4
  325. package/dest/kernel/hints/index.d.ts.map +1 -1
  326. package/dest/kernel/hints/index.js +2 -3
  327. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  328. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  329. package/dest/kernel/hints/key_validation_request.js +20 -18
  330. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  331. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  332. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  333. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  334. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  335. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  336. package/dest/kernel/index.d.ts +5 -1
  337. package/dest/kernel/index.d.ts.map +1 -1
  338. package/dest/kernel/index.js +4 -0
  339. package/dest/kernel/log_hash.d.ts +6 -2
  340. package/dest/kernel/log_hash.d.ts.map +1 -1
  341. package/dest/kernel/log_hash.js +21 -9
  342. package/dest/kernel/private_circuit_public_inputs.d.ts +10 -10
  343. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  344. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  345. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +4 -4
  346. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  347. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  348. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  349. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  350. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  351. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  352. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  353. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  354. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  355. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  356. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  357. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  358. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  359. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  360. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  361. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  362. package/dest/kernel/private_kernel_simulated_output.d.ts +1 -7
  363. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  364. package/dest/kernel/private_kernel_simulated_output.js +2 -1
  365. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  366. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  367. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  368. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +12 -8
  369. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  370. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +32 -13
  371. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  372. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  373. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  374. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  375. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  376. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  377. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +7 -6
  378. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  379. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +13 -9
  380. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  381. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  382. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  383. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +7 -6
  384. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  385. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +13 -9
  386. package/dest/kernel/private_validation_requests.d.ts +3 -3
  387. package/dest/kernel/private_validation_requests.js +9 -9
  388. package/dest/kernel/public_call_request.d.ts +15 -30
  389. package/dest/kernel/public_call_request.d.ts.map +1 -1
  390. package/dest/kernel/public_call_request.js +16 -7
  391. package/dest/kernel/utils/index.d.ts +1 -2
  392. package/dest/kernel/utils/index.d.ts.map +1 -1
  393. package/dest/kernel/utils/index.js +0 -1
  394. package/dest/keys/derivation.d.ts +6 -2
  395. package/dest/keys/derivation.d.ts.map +1 -1
  396. package/dest/keys/derivation.js +21 -11
  397. package/dest/keys/key_types.d.ts +3 -3
  398. package/dest/keys/key_types.d.ts.map +1 -1
  399. package/dest/keys/public_key.d.ts +22 -3
  400. package/dest/keys/public_key.d.ts.map +1 -1
  401. package/dest/keys/public_key.js +20 -1
  402. package/dest/keys/public_keys.d.ts +55 -82
  403. package/dest/keys/public_keys.d.ts.map +1 -1
  404. package/dest/keys/public_keys.js +102 -74
  405. package/dest/keys/utils.js +5 -5
  406. package/dest/kv-store/config.d.ts +14 -0
  407. package/dest/kv-store/config.d.ts.map +1 -0
  408. package/dest/kv-store/config.js +21 -0
  409. package/dest/kv-store/index.d.ts +2 -0
  410. package/dest/kv-store/index.d.ts.map +1 -0
  411. package/dest/kv-store/index.js +1 -0
  412. package/dest/l1-contracts/index.d.ts +2 -2
  413. package/dest/l1-contracts/index.d.ts.map +1 -1
  414. package/dest/l1-contracts/index.js +1 -1
  415. package/dest/logs/app_tagging_secret.d.ts +46 -0
  416. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  417. package/dest/logs/app_tagging_secret.js +109 -0
  418. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  419. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  420. package/dest/logs/app_tagging_secret_kind.js +17 -0
  421. package/dest/logs/contract_class_log.d.ts +16 -34
  422. package/dest/logs/contract_class_log.d.ts.map +1 -1
  423. package/dest/logs/contract_class_log.js +11 -9
  424. package/dest/logs/debug_log_store.d.ts +30 -0
  425. package/dest/logs/debug_log_store.d.ts.map +1 -0
  426. package/dest/logs/debug_log_store.js +30 -0
  427. package/dest/logs/index.d.ts +9 -7
  428. package/dest/logs/index.d.ts.map +1 -1
  429. package/dest/logs/index.js +8 -6
  430. package/dest/logs/log_cursor.d.ts +51 -0
  431. package/dest/logs/log_cursor.d.ts.map +1 -0
  432. package/dest/logs/log_cursor.js +82 -0
  433. package/dest/logs/log_result.d.ts +54 -0
  434. package/dest/logs/log_result.d.ts.map +1 -0
  435. package/dest/logs/log_result.js +56 -0
  436. package/dest/logs/logs_query.d.ts +82 -0
  437. package/dest/logs/logs_query.d.ts.map +1 -0
  438. package/dest/logs/logs_query.js +50 -0
  439. package/dest/logs/message_context.d.ts +6 -8
  440. package/dest/logs/message_context.d.ts.map +1 -1
  441. package/dest/logs/message_context.js +27 -9
  442. package/dest/logs/pending_tagged_log.d.ts +2 -3
  443. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  444. package/dest/logs/pending_tagged_log.js +2 -2
  445. package/dest/logs/pre_tag.d.ts +14 -22
  446. package/dest/logs/pre_tag.d.ts.map +1 -1
  447. package/dest/logs/pre_tag.js +2 -2
  448. package/dest/logs/private_log.d.ts +8 -13
  449. package/dest/logs/private_log.d.ts.map +1 -1
  450. package/dest/logs/private_log.js +6 -3
  451. package/dest/logs/public_log.d.ts +4 -3
  452. package/dest/logs/public_log.d.ts.map +1 -1
  453. package/dest/logs/public_log.js +2 -1
  454. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  455. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  456. package/dest/logs/query_all_logs_by_tags.js +64 -0
  457. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  458. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  459. package/dest/logs/shared_secret_derivation.js +15 -9
  460. package/dest/logs/siloed_tag.d.ts +12 -9
  461. package/dest/logs/siloed_tag.d.ts.map +1 -1
  462. package/dest/logs/siloed_tag.js +18 -7
  463. package/dest/logs/tag.d.ts +5 -6
  464. package/dest/logs/tag.d.ts.map +1 -1
  465. package/dest/logs/tag.js +5 -1
  466. package/dest/logs/tagging_index_range.d.ts +22 -0
  467. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  468. package/dest/logs/tagging_index_range.js +8 -0
  469. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  470. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  471. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  472. package/dest/messaging/index.d.ts +2 -1
  473. package/dest/messaging/index.d.ts.map +1 -1
  474. package/dest/messaging/index.js +1 -0
  475. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  476. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  477. package/dest/messaging/l1_to_l2_message.js +11 -13
  478. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  479. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  480. package/dest/messaging/l2_to_l1_membership.d.ts +72 -9
  481. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  482. package/dest/messaging/l2_to_l1_membership.js +133 -30
  483. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  484. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  485. package/dest/messaging/l2_to_l1_message.js +21 -12
  486. package/dest/noir/index.d.ts +5 -3
  487. package/dest/noir/index.d.ts.map +1 -1
  488. package/dest/note/index.d.ts +1 -2
  489. package/dest/note/index.d.ts.map +1 -1
  490. package/dest/note/index.js +0 -1
  491. package/dest/note/note.d.ts +2 -2
  492. package/dest/note/note.d.ts.map +1 -1
  493. package/dest/note/note_dao.d.ts +1 -1
  494. package/dest/note/note_dao.d.ts.map +1 -1
  495. package/dest/note/note_dao.js +1 -4
  496. package/dest/p2p/attestation_utils.d.ts +11 -1
  497. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  498. package/dest/p2p/attestation_utils.js +45 -0
  499. package/dest/p2p/block_proposal.d.ts +32 -15
  500. package/dest/p2p/block_proposal.d.ts.map +1 -1
  501. package/dest/p2p/block_proposal.js +58 -42
  502. package/dest/p2p/checkpoint_attestation.d.ts +16 -9
  503. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  504. package/dest/p2p/checkpoint_attestation.js +23 -24
  505. package/dest/p2p/checkpoint_proposal.d.ts +44 -25
  506. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  507. package/dest/p2p/checkpoint_proposal.js +68 -65
  508. package/dest/p2p/client_type.d.ts +2 -5
  509. package/dest/p2p/client_type.d.ts.map +1 -1
  510. package/dest/p2p/client_type.js +0 -7
  511. package/dest/p2p/consensus_payload.d.ts +32 -17
  512. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  513. package/dest/p2p/consensus_payload.js +47 -21
  514. package/dest/p2p/constants.d.ts +3 -1
  515. package/dest/p2p/constants.d.ts.map +1 -1
  516. package/dest/p2p/constants.js +1 -0
  517. package/dest/p2p/gossipable.d.ts +4 -4
  518. package/dest/p2p/gossipable.d.ts.map +1 -1
  519. package/dest/p2p/index.d.ts +1 -3
  520. package/dest/p2p/index.d.ts.map +1 -1
  521. package/dest/p2p/index.js +0 -2
  522. package/dest/p2p/peer_error.d.ts +3 -1
  523. package/dest/p2p/peer_error.d.ts.map +1 -1
  524. package/dest/p2p/peer_error.js +5 -0
  525. package/dest/p2p/signature_utils.d.ts +28 -19
  526. package/dest/p2p/signature_utils.d.ts.map +1 -1
  527. package/dest/p2p/signature_utils.js +118 -21
  528. package/dest/p2p/signed_txs.d.ts +15 -13
  529. package/dest/p2p/signed_txs.d.ts.map +1 -1
  530. package/dest/p2p/signed_txs.js +26 -24
  531. package/dest/p2p/topic_type.d.ts +3 -4
  532. package/dest/p2p/topic_type.d.ts.map +1 -1
  533. package/dest/p2p/topic_type.js +7 -24
  534. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  535. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  536. package/dest/parity/parity_base_private_inputs.js +7 -5
  537. package/dest/parity/parity_public_inputs.d.ts +8 -4
  538. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  539. package/dest/parity/parity_public_inputs.js +6 -3
  540. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  541. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  542. package/dest/proofs/chonk_proof.d.ts +57 -7
  543. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  544. package/dest/proofs/chonk_proof.js +112 -15
  545. package/dest/proofs/recursive_proof.d.ts +2 -2
  546. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  547. package/dest/rollup/block_headers_hash.d.ts +1 -1
  548. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  549. package/dest/rollup/block_headers_hash.js +8 -2
  550. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  551. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  552. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  553. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  554. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  555. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  556. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  557. package/dest/rollup/checkpoint_header.d.ts +2 -2
  558. package/dest/rollup/checkpoint_header.js +2 -2
  559. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  560. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  561. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +14 -7
  562. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  563. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -2
  564. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +6 -6
  565. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  566. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  567. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  568. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  569. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  570. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  571. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  572. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  573. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  574. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  575. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  576. package/dest/rollup/root_rollup_public_inputs.d.ts +7 -7
  577. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  578. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  579. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  580. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  581. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  582. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  583. package/dest/schemas/schemas.d.ts +32 -78
  584. package/dest/schemas/schemas.d.ts.map +1 -1
  585. package/dest/schemas/schemas.js +2 -2
  586. package/dest/slashing/helpers.d.ts +2 -2
  587. package/dest/slashing/helpers.d.ts.map +1 -1
  588. package/dest/slashing/helpers.js +13 -7
  589. package/dest/slashing/index.d.ts +2 -3
  590. package/dest/slashing/index.d.ts.map +1 -1
  591. package/dest/slashing/index.js +1 -2
  592. package/dest/slashing/serialization.d.ts +2 -6
  593. package/dest/slashing/serialization.d.ts.map +1 -1
  594. package/dest/slashing/serialization.js +0 -60
  595. package/dest/slashing/types.d.ts +20 -112
  596. package/dest/slashing/types.d.ts.map +1 -1
  597. package/dest/slashing/types.js +22 -24
  598. package/dest/slashing/{tally.d.ts → votes.d.ts} +7 -2
  599. package/dest/slashing/votes.d.ts.map +1 -0
  600. package/dest/slashing/{tally.js → votes.js} +30 -2
  601. package/dest/snapshots/types.d.ts +15 -78
  602. package/dest/snapshots/types.d.ts.map +1 -1
  603. package/dest/stats/stats.d.ts +2 -2
  604. package/dest/stats/stats.d.ts.map +1 -1
  605. package/dest/tests/factories.d.ts +25 -56
  606. package/dest/tests/factories.d.ts.map +1 -1
  607. package/dest/tests/factories.js +94 -116
  608. package/dest/tests/mocks.d.ts +15 -7
  609. package/dest/tests/mocks.d.ts.map +1 -1
  610. package/dest/tests/mocks.js +68 -70
  611. package/dest/timetable/index.d.ts +84 -0
  612. package/dest/timetable/index.d.ts.map +1 -0
  613. package/dest/timetable/index.js +209 -0
  614. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  615. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  616. package/dest/trees/append_only_tree_snapshot.js +6 -3
  617. package/dest/trees/nullifier_leaf.d.ts +19 -42
  618. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  619. package/dest/trees/nullifier_leaf.js +3 -0
  620. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  621. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  622. package/dest/trees/nullifier_membership_witness.js +2 -14
  623. package/dest/trees/public_data_leaf.d.ts +22 -53
  624. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  625. package/dest/trees/public_data_leaf.js +7 -6
  626. package/dest/trees/public_data_witness.d.ts +16 -58
  627. package/dest/trees/public_data_witness.d.ts.map +1 -1
  628. package/dest/tx/block_header.d.ts +7 -4
  629. package/dest/tx/block_header.d.ts.map +1 -1
  630. package/dest/tx/block_header.js +13 -6
  631. package/dest/tx/call_context.d.ts +4 -14
  632. package/dest/tx/call_context.d.ts.map +1 -1
  633. package/dest/tx/capsule.d.ts +7 -3
  634. package/dest/tx/capsule.d.ts.map +1 -1
  635. package/dest/tx/capsule.js +9 -3
  636. package/dest/tx/fee_provider.d.ts +10 -0
  637. package/dest/tx/fee_provider.d.ts.map +1 -0
  638. package/dest/tx/fee_provider.js +1 -0
  639. package/dest/tx/function_data.d.ts +4 -10
  640. package/dest/tx/function_data.d.ts.map +1 -1
  641. package/dest/tx/global_variable_builder.d.ts +3 -4
  642. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  643. package/dest/tx/global_variables.d.ts +19 -52
  644. package/dest/tx/global_variables.d.ts.map +1 -1
  645. package/dest/tx/global_variables.js +8 -12
  646. package/dest/tx/hashed_values.d.ts +4 -3
  647. package/dest/tx/hashed_values.d.ts.map +1 -1
  648. package/dest/tx/hashed_values.js +6 -3
  649. package/dest/tx/in_tx.d.ts +5 -17
  650. package/dest/tx/in_tx.d.ts.map +1 -1
  651. package/dest/tx/index.d.ts +2 -2
  652. package/dest/tx/index.d.ts.map +1 -1
  653. package/dest/tx/index.js +1 -1
  654. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  655. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  656. package/dest/tx/indexed_tx_effect.js +9 -6
  657. package/dest/tx/partial_state_reference.d.ts +22 -65
  658. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  659. package/dest/tx/partial_state_reference.js +6 -3
  660. package/dest/tx/private_execution_result.d.ts +11 -21
  661. package/dest/tx/private_execution_result.d.ts.map +1 -1
  662. package/dest/tx/private_execution_result.js +6 -6
  663. package/dest/tx/profiling.d.ts +70 -356
  664. package/dest/tx/profiling.d.ts.map +1 -1
  665. package/dest/tx/profiling.js +19 -9
  666. package/dest/tx/protocol_contracts.d.ts +5 -9
  667. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  668. package/dest/tx/protocol_contracts.js +2 -2
  669. package/dest/tx/proven_tx.d.ts +30 -74
  670. package/dest/tx/proven_tx.d.ts.map +1 -1
  671. package/dest/tx/proven_tx.js +6 -0
  672. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  673. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  674. package/dest/tx/public_call_request_with_calldata.js +6 -3
  675. package/dest/tx/public_simulation_output.d.ts +4 -2
  676. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  677. package/dest/tx/public_simulation_output.js +7 -3
  678. package/dest/tx/simulated_tx.d.ts +68 -1144
  679. package/dest/tx/simulated_tx.d.ts.map +1 -1
  680. package/dest/tx/simulated_tx.js +17 -12
  681. package/dest/tx/state_reference.d.ts +30 -117
  682. package/dest/tx/state_reference.d.ts.map +1 -1
  683. package/dest/tx/state_reference.js +6 -4
  684. package/dest/tx/tree_snapshots.d.ts +27 -84
  685. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  686. package/dest/tx/tree_snapshots.js +6 -4
  687. package/dest/tx/tx.d.ts +19 -17
  688. package/dest/tx/tx.d.ts.map +1 -1
  689. package/dest/tx/tx.js +48 -29
  690. package/dest/tx/tx_constant_data.d.ts +4 -3
  691. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  692. package/dest/tx/tx_constant_data.js +6 -3
  693. package/dest/tx/tx_context.d.ts +32 -131
  694. package/dest/tx/tx_context.d.ts.map +1 -1
  695. package/dest/tx/tx_context.js +6 -6
  696. package/dest/tx/tx_hash.d.ts +6 -4
  697. package/dest/tx/tx_hash.d.ts.map +1 -1
  698. package/dest/tx/tx_hash.js +13 -5
  699. package/dest/tx/tx_receipt.d.ts +151 -51
  700. package/dest/tx/tx_receipt.d.ts.map +1 -1
  701. package/dest/tx/tx_receipt.js +145 -51
  702. package/dest/tx/tx_request.js +2 -2
  703. package/dest/tx/validator/error_texts.d.ts +10 -2
  704. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  705. package/dest/tx/validator/error_texts.js +11 -1
  706. package/dest/tx/validator/tx_validator.d.ts +6 -28
  707. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  708. package/dest/tx/validator/tx_validator.js +0 -4
  709. package/dest/types/shared.d.ts +4 -12
  710. package/dest/types/shared.d.ts.map +1 -1
  711. package/dest/types/shared.js +6 -12
  712. package/dest/update-checker/dev_version.d.ts +3 -0
  713. package/dest/update-checker/dev_version.d.ts.map +1 -0
  714. package/dest/update-checker/dev_version.js +1 -0
  715. package/dest/update-checker/index.d.ts +4 -2
  716. package/dest/update-checker/index.d.ts.map +1 -1
  717. package/dest/update-checker/index.js +3 -1
  718. package/dest/update-checker/package_version.d.ts +6 -0
  719. package/dest/update-checker/package_version.d.ts.map +1 -0
  720. package/dest/update-checker/package_version.js +13 -0
  721. package/dest/update-checker/version_checker.d.ts +25 -0
  722. package/dest/update-checker/version_checker.d.ts.map +1 -0
  723. package/dest/update-checker/version_checker.js +50 -0
  724. package/dest/validators/errors.d.ts +6 -1
  725. package/dest/validators/errors.d.ts.map +1 -1
  726. package/dest/validators/errors.js +7 -0
  727. package/dest/validators/schemas.d.ts +147 -614
  728. package/dest/validators/schemas.d.ts.map +1 -1
  729. package/dest/validators/schemas.js +9 -6
  730. package/dest/validators/types.d.ts +21 -4
  731. package/dest/validators/types.d.ts.map +1 -1
  732. package/dest/versioning/versioning.d.ts +4 -2
  733. package/dest/versioning/versioning.d.ts.map +1 -1
  734. package/dest/versioning/versioning.js +5 -2
  735. package/dest/vks/verification_key.d.ts +4 -139
  736. package/dest/vks/verification_key.d.ts.map +1 -1
  737. package/dest/vks/verification_key.js +5 -126
  738. package/dest/world-state/genesis_data.d.ts +13 -0
  739. package/dest/world-state/genesis_data.d.ts.map +1 -0
  740. package/dest/world-state/genesis_data.js +7 -0
  741. package/dest/world-state/index.d.ts +2 -1
  742. package/dest/world-state/index.d.ts.map +1 -1
  743. package/dest/world-state/index.js +1 -0
  744. package/dest/world-state/world_state_revision.d.ts +11 -39
  745. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  746. package/dest/world-state/world_state_revision.js +7 -21
  747. package/package.json +16 -13
  748. package/src/abi/abi.ts +78 -21
  749. package/src/abi/authorization_selector.ts +2 -8
  750. package/src/abi/buffer.ts +25 -4
  751. package/src/abi/contract_artifact.ts +11 -6
  752. package/src/abi/decoder.ts +36 -82
  753. package/src/abi/encoder.ts +85 -6
  754. package/src/abi/event_metadata_definition.ts +2 -0
  755. package/src/abi/event_selector.ts +2 -8
  756. package/src/abi/function_call.ts +25 -3
  757. package/src/abi/function_selector.ts +4 -13
  758. package/src/abi/function_signature_decoder.ts +77 -0
  759. package/src/abi/index.ts +1 -0
  760. package/src/abi/note_selector.ts +3 -12
  761. package/src/abi/selector.ts +1 -1
  762. package/src/abi/utils.ts +31 -4
  763. package/src/auth_witness/auth_witness.ts +3 -3
  764. package/src/avm/avm.ts +5 -0
  765. package/src/avm/index.ts +0 -5
  766. package/src/avm/message_pack.ts +12 -3
  767. package/src/avm/revert_code.ts +20 -25
  768. package/src/aztec-address/index.ts +15 -12
  769. package/src/block/attestation_info.ts +11 -11
  770. package/src/block/block_data.ts +25 -0
  771. package/src/block/block_hash.ts +21 -14
  772. package/src/block/block_parameter.ts +72 -4
  773. package/src/block/index.ts +1 -1
  774. package/src/block/l2_block.ts +13 -1
  775. package/src/block/l2_block_info.ts +8 -6
  776. package/src/block/l2_block_source.ts +214 -123
  777. package/src/block/l2_block_stream/interfaces.ts +6 -2
  778. package/src/block/l2_block_stream/l2_block_stream.ts +49 -17
  779. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  780. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  781. package/src/block/proposal/attestations_and_signers.ts +32 -17
  782. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  783. package/src/checkpoint/checkpoint.ts +54 -17
  784. package/src/checkpoint/checkpoint_data.ts +91 -0
  785. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  786. package/src/checkpoint/digest.ts +28 -0
  787. package/src/checkpoint/index.ts +5 -0
  788. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  789. package/src/checkpoint/published_checkpoint.ts +3 -1
  790. package/src/checkpoint/validate.ts +230 -0
  791. package/src/config/chain-config.ts +13 -16
  792. package/src/config/index.ts +1 -0
  793. package/src/config/sequencer-config.ts +65 -0
  794. package/src/contract/complete_address.ts +7 -3
  795. package/src/contract/contract_address.ts +10 -10
  796. package/src/contract/contract_class.ts +3 -3
  797. package/src/contract/contract_class_id.ts +7 -6
  798. package/src/contract/contract_instance.ts +11 -2
  799. package/src/contract/index.ts +0 -3
  800. package/src/contract/interfaces/contract_class.ts +2 -82
  801. package/src/contract/interfaces/contract_instance.ts +6 -2
  802. package/src/contract/interfaces/node-info.ts +3 -0
  803. package/src/contract/private_function.ts +5 -3
  804. package/src/database-version/version_manager.ts +17 -0
  805. package/src/epoch-helpers/index.ts +30 -0
  806. package/src/file-store/factory.ts +13 -4
  807. package/src/file-store/http.ts +29 -10
  808. package/src/file-store/index.ts +1 -0
  809. package/src/file-store/local.ts +15 -5
  810. package/src/file-store/s3.ts +12 -3
  811. package/src/gas/README.md +154 -0
  812. package/src/gas/fee_math.ts +120 -0
  813. package/src/gas/gas.ts +8 -3
  814. package/src/gas/gas_fees.ts +29 -10
  815. package/src/gas/gas_settings.ts +73 -15
  816. package/src/gas/index.ts +1 -0
  817. package/src/ha-signing/config.ts +152 -0
  818. package/src/ha-signing/index.ts +29 -0
  819. package/src/ha-signing/local_config.ts +46 -0
  820. package/src/ha-signing/types.ts +126 -0
  821. package/src/hash/hash.ts +76 -11
  822. package/src/hash/map_slot.ts +2 -2
  823. package/src/interfaces/allowed_element.ts +29 -9
  824. package/src/interfaces/api_limit.ts +1 -1
  825. package/src/interfaces/archiver.ts +90 -88
  826. package/src/interfaces/aztec-node-admin.ts +57 -19
  827. package/src/interfaces/aztec-node-debug.ts +40 -0
  828. package/src/interfaces/aztec-node.ts +314 -246
  829. package/src/interfaces/block-builder.ts +63 -14
  830. package/src/interfaces/block_response.ts +92 -0
  831. package/src/interfaces/chain_tips.ts +24 -0
  832. package/src/interfaces/checkpoint_parameter.ts +20 -0
  833. package/src/interfaces/checkpoint_response.ts +84 -0
  834. package/src/interfaces/client.ts +7 -1
  835. package/src/interfaces/configs.ts +75 -8
  836. package/src/interfaces/l1_publish_info.ts +40 -0
  837. package/src/interfaces/l2_logs_source.ts +13 -39
  838. package/src/interfaces/merkle_tree_operations.ts +21 -23
  839. package/src/interfaces/p2p-bootstrap.ts +2 -2
  840. package/src/interfaces/p2p.ts +37 -28
  841. package/src/interfaces/private_kernel_prover.ts +88 -0
  842. package/src/interfaces/prover-agent.ts +1 -1
  843. package/src/interfaces/prover-client.ts +10 -5
  844. package/src/interfaces/prover-node.ts +7 -7
  845. package/src/interfaces/proving-job-source.ts +4 -4
  846. package/src/interfaces/proving-job.ts +3 -3
  847. package/src/interfaces/public_storage_override.ts +26 -0
  848. package/src/interfaces/server.ts +5 -1
  849. package/src/interfaces/slasher.ts +19 -10
  850. package/src/interfaces/tx_provider.ts +6 -0
  851. package/src/interfaces/validator.ts +86 -36
  852. package/src/interfaces/world_state.ts +5 -4
  853. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  854. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  855. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  856. package/src/kernel/hints/index.ts +2 -3
  857. package/src/kernel/hints/key_validation_request.ts +18 -16
  858. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  859. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  860. package/src/kernel/index.ts +4 -0
  861. package/src/kernel/log_hash.ts +29 -9
  862. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  863. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  864. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  865. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  866. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  867. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  868. package/src/kernel/private_kernel_simulated_output.ts +0 -7
  869. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  870. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +42 -18
  871. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  872. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  873. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +14 -8
  874. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  875. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +13 -13
  876. package/src/kernel/private_validation_requests.ts +8 -8
  877. package/src/kernel/public_call_request.ts +22 -7
  878. package/src/kernel/utils/index.ts +0 -1
  879. package/src/keys/derivation.ts +26 -14
  880. package/src/keys/key_types.ts +6 -2
  881. package/src/keys/public_key.ts +26 -2
  882. package/src/keys/public_keys.ts +125 -111
  883. package/src/keys/utils.ts +5 -5
  884. package/src/kv-store/config.ts +29 -0
  885. package/src/kv-store/index.ts +1 -0
  886. package/src/l1-contracts/index.ts +1 -1
  887. package/src/logs/app_tagging_secret.ts +137 -0
  888. package/src/logs/app_tagging_secret_kind.ts +21 -0
  889. package/src/logs/contract_class_log.ts +15 -5
  890. package/src/logs/debug_log_store.ts +54 -0
  891. package/src/logs/index.ts +8 -6
  892. package/src/logs/log_cursor.ts +110 -0
  893. package/src/logs/log_result.ts +104 -0
  894. package/src/logs/logs_query.ts +138 -0
  895. package/src/logs/message_context.ts +22 -8
  896. package/src/logs/pending_tagged_log.ts +1 -3
  897. package/src/logs/pre_tag.ts +3 -6
  898. package/src/logs/private_log.ts +9 -3
  899. package/src/logs/public_log.ts +4 -2
  900. package/src/logs/query_all_logs_by_tags.ts +98 -0
  901. package/src/logs/shared_secret_derivation.ts +21 -10
  902. package/src/logs/siloed_tag.ts +28 -14
  903. package/src/logs/tag.ts +9 -9
  904. package/src/logs/tagging_index_range.ts +18 -0
  905. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  906. package/src/messaging/index.ts +1 -0
  907. package/src/messaging/l1_to_l2_message.ts +12 -9
  908. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  909. package/src/messaging/l2_to_l1_membership.ts +192 -38
  910. package/src/messaging/l2_to_l1_message.ts +29 -9
  911. package/src/noir/index.ts +4 -2
  912. package/src/note/index.ts +0 -1
  913. package/src/note/note_dao.ts +1 -4
  914. package/src/p2p/attestation_utils.ts +56 -0
  915. package/src/p2p/block_proposal.ts +112 -39
  916. package/src/p2p/checkpoint_attestation.ts +33 -32
  917. package/src/p2p/checkpoint_proposal.ts +149 -86
  918. package/src/p2p/client_type.ts +0 -6
  919. package/src/p2p/consensus_payload.ts +68 -24
  920. package/src/p2p/constants.ts +3 -0
  921. package/src/p2p/gossipable.ts +4 -4
  922. package/src/p2p/index.ts +0 -2
  923. package/src/p2p/peer_error.ts +7 -0
  924. package/src/p2p/signature_utils.ts +110 -25
  925. package/src/p2p/signed_txs.ts +46 -28
  926. package/src/p2p/topic_type.ts +8 -15
  927. package/src/parity/parity_base_private_inputs.ts +10 -4
  928. package/src/parity/parity_public_inputs.ts +9 -2
  929. package/src/proofs/chonk_proof.ts +132 -12
  930. package/src/rollup/block_headers_hash.ts +11 -2
  931. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  932. package/src/rollup/checkpoint_header.ts +2 -2
  933. package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -5
  934. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  935. package/src/schemas/schemas.ts +6 -1
  936. package/src/slashing/helpers.ts +17 -9
  937. package/src/slashing/index.ts +1 -2
  938. package/src/slashing/serialization.ts +1 -81
  939. package/src/slashing/types.ts +31 -49
  940. package/src/slashing/{tally.ts → votes.ts} +34 -1
  941. package/src/stats/stats.ts +4 -0
  942. package/src/tests/factories.ts +120 -157
  943. package/src/tests/mocks.ts +106 -84
  944. package/src/timetable/index.ts +304 -0
  945. package/src/trees/append_only_tree_snapshot.ts +8 -3
  946. package/src/trees/nullifier_leaf.ts +4 -0
  947. package/src/trees/nullifier_membership_witness.ts +2 -12
  948. package/src/trees/public_data_leaf.ts +11 -5
  949. package/src/tx/block_header.ts +18 -7
  950. package/src/tx/capsule.ts +10 -2
  951. package/src/tx/fee_provider.ts +10 -0
  952. package/src/tx/global_variable_builder.ts +2 -3
  953. package/src/tx/global_variables.ts +13 -21
  954. package/src/tx/hashed_values.ts +8 -3
  955. package/src/tx/index.ts +1 -1
  956. package/src/tx/indexed_tx_effect.ts +18 -6
  957. package/src/tx/partial_state_reference.ts +8 -3
  958. package/src/tx/private_execution_result.ts +5 -5
  959. package/src/tx/profiling.ts +18 -9
  960. package/src/tx/protocol_contracts.ts +2 -2
  961. package/src/tx/proven_tx.ts +6 -0
  962. package/src/tx/public_call_request_with_calldata.ts +8 -3
  963. package/src/tx/public_simulation_output.ts +4 -0
  964. package/src/tx/simulated_tx.ts +30 -22
  965. package/src/tx/state_reference.ts +9 -4
  966. package/src/tx/tree_snapshots.ts +9 -4
  967. package/src/tx/tx.ts +63 -35
  968. package/src/tx/tx_constant_data.ts +8 -3
  969. package/src/tx/tx_context.ts +8 -3
  970. package/src/tx/tx_hash.ts +20 -5
  971. package/src/tx/tx_receipt.ts +269 -74
  972. package/src/tx/tx_request.ts +2 -2
  973. package/src/tx/validator/error_texts.ts +13 -1
  974. package/src/tx/validator/tx_validator.ts +2 -6
  975. package/src/types/shared.ts +8 -13
  976. package/src/update-checker/dev_version.ts +2 -0
  977. package/src/update-checker/index.ts +3 -1
  978. package/src/update-checker/package_version.ts +17 -0
  979. package/src/update-checker/version_checker.ts +65 -0
  980. package/src/validators/errors.ts +9 -0
  981. package/src/validators/schemas.ts +13 -4
  982. package/src/validators/types.ts +25 -5
  983. package/src/versioning/versioning.ts +5 -2
  984. package/src/vks/verification_key.ts +5 -184
  985. package/src/world-state/genesis_data.ts +27 -0
  986. package/src/world-state/index.ts +1 -0
  987. package/src/world-state/world_state_revision.ts +9 -34
  988. package/dest/abi/mocked_keys.d.ts +0 -2
  989. package/dest/abi/mocked_keys.d.ts.map +0 -1
  990. package/dest/abi/mocked_keys.js +0 -1
  991. package/dest/avm/contract_storage_read.d.ts +0 -58
  992. package/dest/avm/contract_storage_read.d.ts.map +0 -1
  993. package/dest/avm/contract_storage_read.js +0 -65
  994. package/dest/avm/contract_storage_update_request.d.ts +0 -65
  995. package/dest/avm/contract_storage_update_request.d.ts.map +0 -1
  996. package/dest/avm/contract_storage_update_request.js +0 -80
  997. package/dest/avm/public_call_stack_item_compressed.d.ts +0 -43
  998. package/dest/avm/public_call_stack_item_compressed.d.ts.map +0 -1
  999. package/dest/avm/public_call_stack_item_compressed.js +0 -70
  1000. package/dest/avm/public_data_update_request.d.ts +0 -62
  1001. package/dest/avm/public_data_update_request.d.ts.map +0 -1
  1002. package/dest/avm/public_data_update_request.js +0 -67
  1003. package/dest/avm/public_inner_call_request.d.ts +0 -50
  1004. package/dest/avm/public_inner_call_request.d.ts.map +0 -1
  1005. package/dest/avm/public_inner_call_request.js +0 -74
  1006. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  1007. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  1008. package/dest/block/checkpointed_l2_block.js +0 -46
  1009. package/dest/contract/deployment_info.d.ts +0 -24
  1010. package/dest/contract/deployment_info.d.ts.map +0 -1
  1011. package/dest/contract/deployment_info.js +0 -3
  1012. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  1013. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  1014. package/dest/contract/private_function_membership_proof.js +0 -124
  1015. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  1016. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  1017. package/dest/contract/utility_function_membership_proof.js +0 -87
  1018. package/dest/interfaces/get_logs_response.d.ts +0 -97
  1019. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  1020. package/dest/interfaces/get_logs_response.js +0 -12
  1021. package/dest/interfaces/prover-coordination.d.ts +0 -15
  1022. package/dest/interfaces/prover-coordination.d.ts.map +0 -1
  1023. package/dest/interfaces/prover-coordination.js +0 -1
  1024. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  1025. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  1026. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -14
  1027. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +0 -1
  1028. package/dest/kernel/hints/tree_leaf_read_request.js +0 -33
  1029. package/dest/kernel/utils/optional_number.d.ts +0 -31
  1030. package/dest/kernel/utils/optional_number.d.ts.map +0 -1
  1031. package/dest/kernel/utils/optional_number.js +0 -42
  1032. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  1033. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  1034. package/dest/l1-contracts/slash_factory.js +0 -158
  1035. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  1036. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  1037. package/dest/logs/directional_app_tagging_secret.js +0 -64
  1038. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  1039. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  1040. package/dest/logs/extended_contract_class_log.js +0 -67
  1041. package/dest/logs/extended_public_log.d.ts +0 -106
  1042. package/dest/logs/extended_public_log.d.ts.map +0 -1
  1043. package/dest/logs/extended_public_log.js +0 -73
  1044. package/dest/logs/log_filter.d.ts +0 -22
  1045. package/dest/logs/log_filter.d.ts.map +0 -1
  1046. package/dest/logs/log_filter.js +0 -11
  1047. package/dest/logs/log_id.d.ts +0 -85
  1048. package/dest/logs/log_id.d.ts.map +0 -1
  1049. package/dest/logs/log_id.js +0 -94
  1050. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  1051. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  1052. package/dest/logs/tx_scoped_l2_log.js +0 -70
  1053. package/dest/note/notes_filter.d.ts +0 -27
  1054. package/dest/note/notes_filter.d.ts.map +0 -1
  1055. package/dest/note/notes_filter.js +0 -11
  1056. package/dest/p2p/interface.d.ts +0 -5
  1057. package/dest/p2p/interface.d.ts.map +0 -1
  1058. package/dest/p2p/interface.js +0 -1
  1059. package/dest/slashing/empire.d.ts +0 -31
  1060. package/dest/slashing/empire.d.ts.map +0 -1
  1061. package/dest/slashing/empire.js +0 -86
  1062. package/dest/slashing/tally.d.ts.map +0 -1
  1063. package/dest/tx/validator/empty_validator.d.ts +0 -5
  1064. package/dest/tx/validator/empty_validator.d.ts.map +0 -1
  1065. package/dest/tx/validator/empty_validator.js +0 -7
  1066. package/dest/update-checker/update-checker.d.ts +0 -49
  1067. package/dest/update-checker/update-checker.d.ts.map +0 -1
  1068. package/dest/update-checker/update-checker.js +0 -130
  1069. package/src/abi/mocked_keys.ts +0 -2
  1070. package/src/avm/contract_storage_read.ts +0 -77
  1071. package/src/avm/contract_storage_update_request.ts +0 -93
  1072. package/src/avm/public_call_stack_item_compressed.ts +0 -113
  1073. package/src/avm/public_data_update_request.ts +0 -106
  1074. package/src/avm/public_inner_call_request.ts +0 -85
  1075. package/src/block/checkpointed_l2_block.ts +0 -70
  1076. package/src/contract/deployment_info.ts +0 -25
  1077. package/src/contract/private_function_membership_proof.ts +0 -167
  1078. package/src/contract/utility_function_membership_proof.ts +0 -118
  1079. package/src/interfaces/get_logs_response.ts +0 -35
  1080. package/src/interfaces/prover-coordination.ts +0 -17
  1081. package/src/kernel/hints/tree_leaf_read_request.ts +0 -35
  1082. package/src/kernel/utils/optional_number.ts +0 -50
  1083. package/src/l1-contracts/slash_factory.ts +0 -180
  1084. package/src/logs/directional_app_tagging_secret.ts +0 -79
  1085. package/src/logs/extended_contract_class_log.ts +0 -87
  1086. package/src/logs/extended_public_log.ts +0 -94
  1087. package/src/logs/log_filter.ts +0 -31
  1088. package/src/logs/log_id.ts +0 -125
  1089. package/src/logs/tx_scoped_l2_log.ts +0 -98
  1090. package/src/note/notes_filter.ts +0 -38
  1091. package/src/p2p/interface.ts +0 -4
  1092. package/src/slashing/empire.ts +0 -103
  1093. package/src/tx/validator/empty_validator.ts +0 -7
  1094. package/src/update-checker/update-checker.ts +0 -166
@@ -1 +1 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/logs/tag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,GAAG;IAClB,aAAa;IACb,SAAS,EAAE,KAAK,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,GAAG;aACc,KAAK,EAAE,EAAE;IAArC,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAGjD;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE1B;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAE/B;CACF"}
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/logs/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,qBAAa,GAAG;aAIc,KAAK,EAAE,EAAE;IAHrC,mCAAmC;IACnC,iBAAyB,SAAS,CAAQ;IAE1C,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAGjD;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE1B;IAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAEnB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAE/B;CACF"}
package/dest/logs/tag.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { schemas } from '../schemas/schemas.js';
3
4
  /**
4
5
  * Represents a tag of a private log. This is not the tag that "appears" on the chain as this tag is first siloed
@@ -10,7 +11,7 @@ import { schemas } from '../schemas/schemas.js';
10
11
  }
11
12
  static async compute(preTag) {
12
13
  const tag = await poseidon2Hash([
13
- preTag.secret.value,
14
+ preTag.extendedSecret.secret,
14
15
  preTag.index
15
16
  ]);
16
17
  return new Tag(tag);
@@ -24,6 +25,9 @@ import { schemas } from '../schemas/schemas.js';
24
25
  equals(other) {
25
26
  return this.value.equals(other.value);
26
27
  }
28
+ static random() {
29
+ return new Tag(Fr.random());
30
+ }
27
31
  static get schema() {
28
32
  return schemas.Fr.transform((fr)=>new Tag(fr));
29
33
  }
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { type AppTaggingSecret } from './app_tagging_secret.js';
3
+ /** Represents a range of tagging indexes for a given app tagging secret. */
4
+ export type TaggingIndexRange = {
5
+ extendedSecret: AppTaggingSecret;
6
+ lowestIndex: number;
7
+ highestIndex: number;
8
+ };
9
+ export declare const TaggingIndexRangeSchema: z.ZodObject<{
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>>;
13
+ app: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
14
+ }, z.core.$strip>, z.ZodTransform<AppTaggingSecret, {
15
+ kind: "constrained" | "unconstrained";
16
+ secret: import("@aztec/foundation/schemas").Fr;
17
+ app: import("../aztec-address/index.js").AztecAddress;
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=
@@ -0,0 +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,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"}
@@ -0,0 +1,8 @@
1
+ import { schemas } from '@aztec/foundation/schemas';
2
+ import { z } from 'zod';
3
+ import { AppTaggingSecretSchema } from './app_tagging_secret.js';
4
+ export const TaggingIndexRangeSchema = z.object({
5
+ extendedSecret: AppTaggingSecretSchema,
6
+ lowestIndex: schemas.Integer,
7
+ highestIndex: schemas.Integer
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';
@@ -3,6 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { BufferReader } from '@aztec/foundation/serialize';
4
4
  import { SiblingPath } from '@aztec/foundation/trees';
5
5
  import type { AztecAddress } from '../aztec-address/index.js';
6
+ import type { BlockParameter } from '../block/block_parameter.js';
6
7
  import type { AztecNode } from '../interfaces/aztec-node.js';
7
8
  import { L1Actor } from './l1_actor.js';
8
9
  import { L2Actor } from './l2_actor.js';
@@ -44,5 +45,5 @@ export declare class L1ToL2Message {
44
45
  static empty(): L1ToL2Message;
45
46
  static random(): Promise<L1ToL2Message>;
46
47
  }
47
- export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMV90b19sMl9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7R0FFRztBQUNILHFCQUFhLGFBQWE7SUFFdEIsdUNBQXVDO2FBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQzthQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7YUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7YUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO2FBQ2hDLEtBQUssRUFBRSxFQUFFO0lBVjNCO0lBQ0UsdUNBQXVDO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7SUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO0lBQ2hDLEtBQUssRUFBRSxFQUFFLEVBQ3ZCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBUTlEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUc3QztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUU1QjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUM7Q0FDRjtBQUdELHdCQUFzQixtQ0FBbUMsQ0FDdkQsSUFBSSxFQUFFLFNBQVMsRUFDZixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsRUFBRSxFQUNmLE1BQU0sRUFBRSxFQUFFLEdBQ1QsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQWdCakUifQ==
48
+ export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr, referenceBlock?: BlockParameter): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMV90b19sMl9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7R0FFRztBQUNILHFCQUFhLGFBQWE7SUFFdEIsdUNBQXVDO2FBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQzthQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7YUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7YUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO2FBQ2hDLEtBQUssRUFBRSxFQUFFO0lBVjNCO0lBQ0UsdUNBQXVDO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7SUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO0lBQ2hDLEtBQUssRUFBRSxFQUFFLEVBQ3ZCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBUTlEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUc3QztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUU1QjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUM7Q0FDRjtBQUdELHdCQUFzQixtQ0FBbUMsQ0FDdkQsSUFBSSxFQUFFLFNBQVMsRUFDZixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsRUFBRSxFQUNmLE1BQU0sRUFBRSxFQUFFLEVBQ1YsY0FBYyxHQUFFLGNBQXlCLEdBQ3hDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FpQmpFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAEtB,uCAAuC;aACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;aAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;aACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;aACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;aAChC,KAAK,EAAE,EAAE;IAV3B;IACE,uCAAuC;IACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;IAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;IACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;IACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;IAChC,KAAK,EAAE,EAAE,EACvB;IAEJ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAQ9D;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAG7C;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAE5C;CACF;AAGD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAgBjE"}
1
+ {"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAEtB,uCAAuC;aACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;aAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;aACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;aACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;aAChC,KAAK,EAAE,EAAE;IAV3B;IACE,uCAAuC;IACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;IAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;IACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;IACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;IAChC,KAAK,EAAE,EAAE,EACvB;IAEJ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAQ9D;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAG7C;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAE5C;CACF;AAGD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,cAAc,GAAE,cAAyB,GACxC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAiBjE"}
@@ -63,21 +63,19 @@ import { L2Actor } from './l2_actor.js';
63
63
  }
64
64
  }
65
65
  // This functionality is not on the node because we do not want to pass the node the secret, and give the node the ability to derive a valid nullifer for an L1 to L2 message.
66
- export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret) {
67
- const response = await node.getL1ToL2MessageMembershipWitness('latest', messageHash);
68
- if (!response) {
69
- throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
70
- }
71
- const [messageIndex, siblingPath] = response;
66
+ export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret, referenceBlock = 'latest') {
72
67
  const messageNullifier = await computeL1ToL2MessageNullifier(contractAddress, messageHash, secret);
73
- const [nullifierIndex] = await node.findLeavesIndexes('latest', MerkleTreeId.NULLIFIER_TREE, [
74
- messageNullifier
68
+ const [l1ToL2Response, nullifierResponse] = await Promise.all([
69
+ node.getL1ToL2MessageMembershipWitness(referenceBlock, messageHash),
70
+ node.findLeavesIndexes(referenceBlock, MerkleTreeId.NULLIFIER_TREE, [
71
+ messageNullifier
72
+ ])
75
73
  ]);
76
- if (nullifierIndex !== undefined) {
74
+ if (!l1ToL2Response) {
75
+ throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
76
+ }
77
+ if (nullifierResponse[0] !== undefined) {
77
78
  throw new Error(`No non-nullified L1 to L2 message found for message hash ${messageHash.toString()}`);
78
79
  }
79
- return [
80
- messageIndex,
81
- siblingPath
82
- ];
80
+ return l1ToL2Response;
83
81
  }
@@ -8,7 +8,9 @@ export interface L1ToL2MessageSource {
8
8
  /**
9
9
  * Gets new L1 to L2 message (to be) included in a given checkpoint.
10
10
  * @param checkpointNumber - Checkpoint number to get messages for.
11
- * @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
11
+ * @returns The L1 to L2 messages/leaves of the messages subtree.
12
+ * @throws If the message tree for the given checkpoint has not yet been sealed on L1
13
+ * (i.e., checkpointNumber >= inbox treeInProgress).
12
14
  */
13
15
  getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
14
16
  /**
@@ -22,4 +24,4 @@ export interface L1ToL2MessageSource {
22
24
  */
23
25
  getL2Tips(): Promise<L2Tips>;
24
26
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZV9zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvbDFfdG9fbDJfbWVzc2FnZV9zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sV0FBVyxtQkFBbUI7SUFDbEM7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXJFOzs7O09BSUc7SUFDSCxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFdEU7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0NBQzlCIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZV9zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdpbmcvbDFfdG9fbDJfbWVzc2FnZV9zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sV0FBVyxtQkFBbUI7SUFDbEM7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckU7Ozs7T0FJRztJQUNILHFCQUFxQixDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztJQUV0RTs7T0FFRztJQUNILFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDOUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAErE;;;;OAIG;IACH,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEtE;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAErE;;;;OAIG;IACH,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEtE;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B"}
@@ -1,6 +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';
5
+ import type { AztecNode } from '../interfaces/aztec-node.js';
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
+ }
4
21
  /**
5
22
  * # L2-to-L1 Message Tree Structure and Leaf IDs
6
23
  *
@@ -30,10 +47,10 @@ import { SiblingPath } from '@aztec/foundation/trees';
30
47
  * - Compression: If a block has no messages (out hash = 0), that branch is ignored
31
48
  *
32
49
  * 4. **Epoch Tree**
33
- * - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to AZTEC_MAX_EPOCH_DURATION)
50
+ * - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to OUT_HASH_TREE_LEAF_COUNT)
34
51
  * - Root: Epoch out hash (set in the root rollup's public inputs and inserted into the Outbox on L1 when the epoch is proven)
35
52
  * - Type: Unbalanced, non-compressed
36
- * - **Important**: Padded with zeros up to AZTEC_MAX_EPOCH_DURATION to allow for proofs of partial epochs
53
+ * - **Important**: Padded with zeros up to OUT_HASH_TREE_LEAF_COUNT to allow for proofs of partial epochs
37
54
  *
38
55
  * ## Combined Membership Proof
39
56
  * To prove a message exists in an epoch, we combine the sibling paths from all 4 trees:
@@ -84,14 +101,60 @@ import { SiblingPath } from '@aztec/foundation/trees';
84
101
  * @returns The unique leaf ID used for tracking message consumption on L1
85
102
  */
86
103
  export declare function getL2ToL1MessageLeafId(membershipWitness: Pick<L2ToL1MembershipWitness, 'leafIndex' | 'siblingPath'>): bigint;
87
- export interface MessageRetrieval {
88
- getL2ToL1Messages(epoch: EpochNumber): Promise<Fr[][][][]>;
89
- }
90
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;
112
+ root: Fr;
113
+ leafIndex: bigint;
114
+ siblingPath: SiblingPath<number>;
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>>;
122
+ /**
123
+ * Computes the L2 to L1 membership witness for a given message in a transaction.
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
+ *
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.
136
+ * @param message - The L2 to L1 message hash to prove membership of.
137
+ * @param txHashOrReceipt - Either the tx hash, or the already-fetched `TxReceipt`. Passing the
138
+ * receipt skips an internal `getTxReceipt` call.
139
+ * @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
140
+ * If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
141
+ */
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>;
143
+ /**
144
+ * Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
145
+ *
146
+ * @param messagesInEpoch - All L2-to-L1 messages in the epoch, organized as checkpoints → blocks → txs → messages.
147
+ * @param message - The message hash to prove membership of.
148
+ * @param checkpointIndex - Index of the checkpoint within the epoch's message array.
149
+ * @param blockIndex - Index of the block within the checkpoint.
150
+ * @param txIndex - Index of the transaction within the block.
151
+ * @param messageIndexInTx - Optional index of the message within the transaction's messages.
152
+ * If not provided, the message is found by scanning (throws if duplicates exist within the tx).
153
+ */
154
+ /** @internal Exported for testing only. */
155
+ export declare function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch: Fr[][][][], message: Fr, checkpointIndex: number, blockIndex: number, txIndex: number, messageIndexInTx?: number): {
91
156
  root: Fr;
92
157
  leafIndex: bigint;
93
158
  siblingPath: SiblingPath<number>;
94
159
  };
95
- export declare function computeL2ToL1MembershipWitness(messageRetriever: MessageRetrieval, epoch: EpochNumber, message: Fr): Promise<L2ToL1MembershipWitness | undefined>;
96
- export declare function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch: Fr[][][][], message: Fr): L2ToL1MembershipWitness;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdG9fbDFfbWVtYmVyc2hpcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMl90b19sMV9tZW1iZXJzaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUE0RCxNQUFNLHlCQUF5QixDQUFDO0FBRWhIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3RUc7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsR0FBRyxhQUFhLENBQUMsR0FDNUUsTUFBTSxDQUVSO0FBRUQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0NBQzVEO0FBRUQsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDbEMsQ0FBQztBQUVGLHdCQUFzQiw4QkFBOEIsQ0FDbEQsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEtBQUssRUFBRSxXQUFXLEVBQ2xCLE9BQU8sRUFBRSxFQUFFLEdBQ1YsT0FBTyxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQU85QztBQUlELHdCQUFnQixpREFBaUQsQ0FDL0QsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzQixPQUFPLEVBQUUsRUFBRSxHQUNWLHVCQUF1QixDQXFGekIifQ==
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;CAC5D;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,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAID,wBAAgB,iDAAiD,CAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,EAAE,GACV,uBAAuB,CAqFzB"}
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
  *
@@ -30,10 +33,10 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
30
33
  * - Compression: If a block has no messages (out hash = 0), that branch is ignored
31
34
  *
32
35
  * 4. **Epoch Tree**
33
- * - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to AZTEC_MAX_EPOCH_DURATION)
36
+ * - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to OUT_HASH_TREE_LEAF_COUNT)
34
37
  * - Root: Epoch out hash (set in the root rollup's public inputs and inserted into the Outbox on L1 when the epoch is proven)
35
38
  * - Type: Unbalanced, non-compressed
36
- * - **Important**: Padded with zeros up to AZTEC_MAX_EPOCH_DURATION to allow for proofs of partial epochs
39
+ * - **Important**: Padded with zeros up to OUT_HASH_TREE_LEAF_COUNT to allow for proofs of partial epochs
37
40
  *
38
41
  * ## Combined Membership Proof
39
42
  * To prove a message exists in an epoch, we combine the sibling paths from all 4 trees:
@@ -84,38 +87,117 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
84
87
  */ export function getL2ToL1MessageLeafId(membershipWitness) {
85
88
  return 2n ** BigInt(membershipWitness.siblingPath.pathSize) + membershipWitness.leafIndex;
86
89
  }
87
- export async function computeL2ToL1MembershipWitness(messageRetriever, epoch, message) {
88
- const messagesInEpoch = await messageRetriever.getL2ToL1Messages(epoch);
89
- if (messagesInEpoch.length === 0) {
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
+ });
101
+ /**
102
+ * Computes the L2 to L1 membership witness for a given message in a transaction.
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
+ *
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.
115
+ * @param message - The L2 to L1 message hash to prove membership of.
116
+ * @param txHashOrReceipt - Either the tx hash, or the already-fetched `TxReceipt`. Passing the
117
+ * receipt skips an internal `getTxReceipt` call.
118
+ * @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
119
+ * If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
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) {
90
126
  return undefined;
91
127
  }
92
- return computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message);
93
- }
94
- // TODO: Allow to specify the message to consume by its index or by an offset, in case there are multiple messages with
95
- // the same value.
96
- export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message) {
97
- // Find the index of the message in the tx, index of the tx in the block, and index of the block in the epoch.
98
- let messageIndexInTx = -1;
99
- let txIndex = -1;
100
- let blockIndex = -1;
101
- const checkpointIndex = messagesInEpoch.findIndex((messagesInCheckpoint)=>{
102
- blockIndex = messagesInCheckpoint.findIndex((messagesInBlock)=>{
103
- txIndex = messagesInBlock.findIndex((messagesInTx)=>{
104
- messageIndexInTx = messagesInTx.findIndex((msg)=>msg.equals(message));
105
- return messageIndexInTx !== -1;
106
- });
107
- return txIndex !== -1;
108
- });
109
- return blockIndex !== -1;
110
- });
128
+ const [messagesInEpoch, block, checkpointsData] = await Promise.all([
129
+ node.getL2ToL1Messages(epochNumber),
130
+ node.getBlock(blockNumber),
131
+ node.getCheckpointsData({
132
+ epoch: epochNumber
133
+ })
134
+ ]);
135
+ if (messagesInEpoch.length === 0 || !block) {
136
+ return undefined;
137
+ }
138
+ const checkpointIndex = checkpointsData.findIndex((c)=>c.checkpointNumber === block.checkpointNumber);
111
139
  if (checkpointIndex === -1) {
112
- throw new Error('The L2ToL1Message you are trying to prove inclusion of does not exist');
140
+ return undefined;
113
141
  }
114
- // Build the tx tree.
142
+ const blockIndex = block.indexWithinCheckpoint;
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
+ }
164
+ return {
165
+ epochNumber,
166
+ numCheckpointsInEpoch,
167
+ root,
168
+ leafIndex,
169
+ siblingPath
170
+ };
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
+ }
184
+ /**
185
+ * Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
186
+ *
187
+ * @param messagesInEpoch - All L2-to-L1 messages in the epoch, organized as checkpoints → blocks → txs → messages.
188
+ * @param message - The message hash to prove membership of.
189
+ * @param checkpointIndex - Index of the checkpoint within the epoch's message array.
190
+ * @param blockIndex - Index of the block within the checkpoint.
191
+ * @param txIndex - Index of the transaction within the block.
192
+ * @param messageIndexInTx - Optional index of the message within the transaction's messages.
193
+ * If not provided, the message is found by scanning (throws if duplicates exist within the tx).
194
+ */ /** @internal Exported for testing only. */ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message, checkpointIndex, blockIndex, txIndex, messageIndexInTx) {
115
195
  const messagesInTx = messagesInEpoch[checkpointIndex][blockIndex][txIndex];
196
+ const resolvedMessageIndex = resolveMessageIndex(messagesInTx, message, messageIndexInTx);
197
+ // Build the tx tree.
116
198
  const txTree = UnbalancedMerkleTreeCalculator.create(messagesInTx.map((msg)=>msg.toBuffer()));
117
199
  // Get the sibling path of the target message in the tx tree.
118
- const pathToMessageInTxSubtree = txTree.getSiblingPathByLeafIndex(messageIndexInTx);
200
+ const pathToMessageInTxSubtree = txTree.getSiblingPathByLeafIndex(resolvedMessageIndex);
119
201
  // Build the tree of the block containing the target message.
120
202
  const blockTree = buildBlockTree(messagesInEpoch[checkpointIndex][blockIndex]);
121
203
  // Get the sibling path of the tx out hash in the block tree.
@@ -131,7 +213,7 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
131
213
  }
132
214
  return buildCheckpointTree(messagesInCheckpoint).getRoot();
133
215
  });
134
- // Pad to AZTEC_MAX_EPOCH_DURATION with zeros.
216
+ // Pad to OUT_HASH_TREE_LEAF_COUNT with zeros.
135
217
  checkpointOutHashes = checkpointOutHashes.concat(Array.from({
136
218
  length: OUT_HASH_TREE_LEAF_COUNT - messagesInEpoch.length
137
219
  }, ()=>Buffer.alloc(32)));
@@ -149,7 +231,7 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
149
231
  // Compute the combined index.
150
232
  // It is the index of the message in the balanced tree (by filling up the wonky tree with empty nodes) at its current
151
233
  // height. It's used to validate the membership proof.
152
- const messageLeafPosition = txTree.getLeafLocation(messageIndexInTx);
234
+ const messageLeafPosition = txTree.getLeafLocation(resolvedMessageIndex);
153
235
  const txLeafPosition = blockTree.getLeafLocation(txIndex);
154
236
  const blockLeafPosition = checkpointTree.getLeafLocation(blockIndex);
155
237
  const checkpointLeafPosition = epochTree.getLeafLocation(checkpointIndex);
@@ -165,6 +247,27 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
165
247
  siblingPath: new SiblingPath(combinedPath.length, combinedPath)
166
248
  };
167
249
  }
250
+ function resolveMessageIndex(messagesInTx, message, messageIndexInTx) {
251
+ if (messageIndexInTx !== undefined) {
252
+ if (!messagesInTx[messageIndexInTx]?.equals(message)) {
253
+ throw new Error(`Message at index ${messageIndexInTx} in tx does not match the expected message ${message}`);
254
+ }
255
+ return messageIndexInTx;
256
+ }
257
+ const indices = messagesInTx.reduce((acc, msg, i)=>{
258
+ if (msg.equals(message)) {
259
+ acc.push(i);
260
+ }
261
+ return acc;
262
+ }, []);
263
+ if (indices.length === 0) {
264
+ throw new Error('The L2ToL1Message you are trying to prove inclusion of does not exist');
265
+ }
266
+ if (indices.length > 1) {
267
+ throw new Error(`Multiple messages with the same value ${message} found in tx (indices: ${indices.join(', ')}). ` + `Provide messageIndexInTx to disambiguate.`);
268
+ }
269
+ return indices[0];
270
+ }
168
271
  function buildCheckpointTree(messagesInCheckpoint) {
169
272
  const blockOutHashes = messagesInCheckpoint.map((messagesInBlock)=>buildBlockTree(messagesInBlock).getRoot());
170
273
  return buildCompressedTree(blockOutHashes);