@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.9d2bcf6d

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 (492) hide show
  1. package/dest/abi/function_call.d.ts +9 -1
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/utils.d.ts +7 -1
  4. package/dest/abi/utils.d.ts.map +1 -1
  5. package/dest/abi/utils.js +7 -0
  6. package/dest/auth_witness/auth_witness.d.ts +2 -1
  7. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  8. package/dest/avm/avm.d.ts +62 -62
  9. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  10. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  11. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  12. package/dest/avm/avm_proving_request.d.ts +299 -299
  13. package/dest/avm/contract_storage_read.d.ts +13 -1
  14. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  15. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  16. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  17. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  19. package/dest/avm/public_data_read.d.ts +10 -1
  20. package/dest/avm/public_data_read.d.ts.map +1 -1
  21. package/dest/avm/public_data_update_request.d.ts +10 -1
  22. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_data_write.d.ts +7 -1
  24. package/dest/avm/public_data_write.d.ts.map +1 -1
  25. package/dest/avm/public_inner_call_request.d.ts +4 -1
  26. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  27. package/dest/avm/revert_code.d.ts +4 -4
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/block/block_hash.d.ts +18 -14
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +22 -20
  32. package/dest/block/block_parameter.d.ts +4 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +2 -0
  35. package/dest/block/body.d.ts +1 -1
  36. package/dest/block/body.d.ts.map +1 -1
  37. package/dest/block/body.js +2 -1
  38. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  39. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  40. package/dest/block/checkpointed_l2_block.js +7 -45
  41. package/dest/block/in_block.d.ts +9 -9
  42. package/dest/block/in_block.d.ts.map +1 -1
  43. package/dest/block/in_block.js +4 -4
  44. package/dest/block/index.d.ts +1 -3
  45. package/dest/block/index.d.ts.map +1 -1
  46. package/dest/block/index.js +0 -2
  47. package/dest/block/l2_block.d.ts +56 -59
  48. package/dest/block/l2_block.d.ts.map +1 -1
  49. package/dest/block/l2_block.js +64 -110
  50. package/dest/block/l2_block_source.d.ts +65 -39
  51. package/dest/block/l2_block_source.d.ts.map +1 -1
  52. package/dest/block/l2_block_source.js +2 -1
  53. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  54. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  55. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  57. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  58. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  63. package/dest/block/validate_block_result.d.ts +1 -1
  64. package/dest/block/validate_block_result.d.ts.map +1 -1
  65. package/dest/block/validate_block_result.js +5 -4
  66. package/dest/checkpoint/checkpoint.d.ts +30 -20
  67. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  68. package/dest/checkpoint/checkpoint.js +18 -6
  69. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  70. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  71. package/dest/checkpoint/published_checkpoint.js +4 -3
  72. package/dest/config/node-rpc-config.js +1 -1
  73. package/dest/contract/complete_address.d.ts +4 -1
  74. package/dest/contract/complete_address.d.ts.map +1 -1
  75. package/dest/contract/contract_address.js +1 -1
  76. package/dest/contract/contract_class_id.d.ts +1 -1
  77. package/dest/contract/contract_class_id.js +1 -1
  78. package/dest/contract/contract_deployment_data.d.ts +5 -5
  79. package/dest/contract/index.d.ts +1 -3
  80. package/dest/contract/index.d.ts.map +1 -1
  81. package/dest/contract/index.js +0 -2
  82. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  83. package/dest/contract/private_function.d.ts +1 -1
  84. package/dest/contract/private_function.d.ts.map +1 -1
  85. package/dest/contract/private_function.js +2 -3
  86. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  87. package/dest/contract/private_function_membership_proof.js +1 -1
  88. package/dest/database-version/database_version.d.ts +58 -0
  89. package/dest/database-version/database_version.d.ts.map +1 -0
  90. package/dest/database-version/database_version.js +69 -0
  91. package/dest/database-version/version_manager.d.ts +3 -49
  92. package/dest/database-version/version_manager.d.ts.map +1 -1
  93. package/dest/database-version/version_manager.js +1 -66
  94. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  97. package/dest/deserialization/index.d.ts +11 -0
  98. package/dest/deserialization/index.d.ts.map +1 -0
  99. package/dest/deserialization/index.js +10 -0
  100. package/dest/epoch-helpers/index.d.ts +3 -1
  101. package/dest/epoch-helpers/index.d.ts.map +1 -1
  102. package/dest/epoch-helpers/index.js +5 -1
  103. package/dest/errors/proving_error.d.ts +2 -2
  104. package/dest/errors/proving_error.d.ts.map +1 -1
  105. package/dest/hash/hash.js +2 -2
  106. package/dest/hash/map_slot.d.ts +1 -1
  107. package/dest/hash/map_slot.d.ts.map +1 -1
  108. package/dest/hash/map_slot.js +4 -3
  109. package/dest/interfaces/api_limit.d.ts +2 -1
  110. package/dest/interfaces/api_limit.d.ts.map +1 -1
  111. package/dest/interfaces/api_limit.js +1 -0
  112. package/dest/interfaces/archiver.d.ts +1 -1
  113. package/dest/interfaces/archiver.d.ts.map +1 -1
  114. package/dest/interfaces/archiver.js +18 -15
  115. package/dest/interfaces/aztec-node-admin.d.ts +63 -27
  116. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  117. package/dest/interfaces/aztec-node-admin.js +3 -1
  118. package/dest/interfaces/aztec-node.d.ts +65 -68
  119. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  120. package/dest/interfaces/aztec-node.js +10 -16
  121. package/dest/interfaces/block-builder.d.ts +22 -14
  122. package/dest/interfaces/block-builder.d.ts.map +1 -1
  123. package/dest/interfaces/block-builder.js +7 -0
  124. package/dest/interfaces/configs.d.ts +8 -8
  125. package/dest/interfaces/configs.d.ts.map +1 -1
  126. package/dest/interfaces/get_logs_response.d.ts +8 -8
  127. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  128. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  129. package/dest/interfaces/prover-broker.d.ts +16 -1
  130. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  131. package/dest/interfaces/prover-broker.js +4 -1
  132. package/dest/interfaces/prover-client.d.ts +15 -1
  133. package/dest/interfaces/prover-client.d.ts.map +1 -1
  134. package/dest/interfaces/prover-client.js +12 -1
  135. package/dest/interfaces/proving-job.d.ts +48 -48
  136. package/dest/interfaces/tx_provider.d.ts +3 -3
  137. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  138. package/dest/interfaces/validator.d.ts +102 -14
  139. package/dest/interfaces/validator.d.ts.map +1 -1
  140. package/dest/interfaces/validator.js +2 -2
  141. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  142. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  143. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  144. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  145. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  146. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  147. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  148. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  149. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  150. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  151. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  152. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  153. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  154. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  155. package/dest/kernel/hints/read_request.d.ts +7 -1
  156. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  157. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  158. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  159. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  160. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  161. package/dest/kernel/private_call_data.d.ts +25 -1
  162. package/dest/kernel/private_call_data.d.ts.map +1 -1
  163. package/dest/kernel/private_call_request.d.ts +16 -1
  164. package/dest/kernel/private_call_request.d.ts.map +1 -1
  165. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  166. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  167. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  168. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  169. package/dest/kernel/private_kernel_data.d.ts +7 -1
  170. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  171. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  172. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  173. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  174. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  175. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  176. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  178. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  179. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  180. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  181. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  182. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  183. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  184. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  185. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_validation_requests.d.ts +10 -1
  187. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  188. package/dest/kernel/public_call_request.d.ts +22 -1
  189. package/dest/kernel/public_call_request.d.ts.map +1 -1
  190. package/dest/kernel/utils/optional_number.d.ts +7 -1
  191. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  192. package/dest/keys/derivation.d.ts +3 -3
  193. package/dest/keys/derivation.js +8 -8
  194. package/dest/keys/key_types.d.ts +1 -1
  195. package/dest/keys/public_keys.d.ts +5 -1
  196. package/dest/keys/public_keys.d.ts.map +1 -1
  197. package/dest/keys/utils.d.ts +1 -1
  198. package/dest/keys/utils.d.ts.map +1 -1
  199. package/dest/keys/utils.js +7 -3
  200. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  201. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  202. package/dest/l1-contracts/slash_factory.js +1 -0
  203. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  204. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  205. package/dest/logs/extended_public_log.d.ts +11 -9
  206. package/dest/logs/extended_public_log.d.ts.map +1 -1
  207. package/dest/logs/log_id.d.ts +12 -8
  208. package/dest/logs/log_id.d.ts.map +1 -1
  209. package/dest/logs/log_id.js +6 -5
  210. package/dest/logs/siloed_tag.d.ts +1 -1
  211. package/dest/logs/siloed_tag.d.ts.map +1 -1
  212. package/dest/logs/siloed_tag.js +4 -3
  213. package/dest/messaging/inbox_leaf.d.ts +3 -1
  214. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  215. package/dest/messaging/l1_actor.d.ts +7 -1
  216. package/dest/messaging/l1_actor.d.ts.map +1 -1
  217. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  218. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  219. package/dest/messaging/l2_actor.d.ts +7 -1
  220. package/dest/messaging/l2_actor.d.ts.map +1 -1
  221. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  222. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  223. package/dest/messaging/l2_to_l1_membership.js +5 -3
  224. package/dest/messaging/out_hash.d.ts +41 -4
  225. package/dest/messaging/out_hash.d.ts.map +1 -1
  226. package/dest/messaging/out_hash.js +52 -26
  227. package/dest/note/note_dao.d.ts +36 -5
  228. package/dest/note/note_dao.d.ts.map +1 -1
  229. package/dest/note/note_dao.js +15 -12
  230. package/dest/p2p/block_proposal.d.ts +23 -8
  231. package/dest/p2p/block_proposal.d.ts.map +1 -1
  232. package/dest/p2p/block_proposal.js +25 -7
  233. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  234. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  235. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  236. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  237. package/dest/p2p/checkpoint_proposal.js +17 -5
  238. package/dest/p2p/consensus_payload.d.ts +4 -3
  239. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  240. package/dest/p2p/consensus_payload.js +0 -3
  241. package/dest/p2p/constants.d.ts +3 -0
  242. package/dest/p2p/constants.d.ts.map +1 -0
  243. package/dest/p2p/constants.js +2 -0
  244. package/dest/p2p/index.d.ts +2 -1
  245. package/dest/p2p/index.d.ts.map +1 -1
  246. package/dest/p2p/index.js +1 -0
  247. package/dest/p2p/message_validator.d.ts +18 -3
  248. package/dest/p2p/message_validator.d.ts.map +1 -1
  249. package/dest/p2p/message_validator.js +2 -1
  250. package/dest/p2p/signed_txs.d.ts +3 -1
  251. package/dest/p2p/signed_txs.d.ts.map +1 -1
  252. package/dest/p2p/signed_txs.js +6 -1
  253. package/dest/p2p/topic_type.js +2 -1
  254. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  255. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  256. package/dest/parity/parity_public_inputs.d.ts +4 -1
  257. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  258. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  259. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  260. package/dest/proofs/chonk_proof.d.ts +1 -1
  261. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  262. package/dest/proofs/chonk_proof.js +9 -4
  263. package/dest/proofs/proof.d.ts +4 -1
  264. package/dest/proofs/proof.d.ts.map +1 -1
  265. package/dest/proofs/recursive_proof.d.ts +10 -1
  266. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  267. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  268. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  269. package/dest/rollup/block_constant_data.d.ts +12 -1
  270. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  271. package/dest/rollup/block_headers_hash.js +1 -1
  272. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  273. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  274. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  275. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  276. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  277. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  278. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  279. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  280. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  281. package/dest/rollup/checkpoint_header.d.ts +29 -2
  282. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  283. package/dest/rollup/checkpoint_header.js +21 -5
  284. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  285. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  286. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  287. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  288. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  289. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  290. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  291. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  292. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  293. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  294. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  295. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  296. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  297. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  298. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  299. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  300. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  301. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  302. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  303. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  304. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  305. package/dest/schemas/schemas.d.ts +1 -1
  306. package/dest/stats/stats.d.ts +1 -3
  307. package/dest/stats/stats.d.ts.map +1 -1
  308. package/dest/tests/factories.d.ts +2 -4
  309. package/dest/tests/factories.d.ts.map +1 -1
  310. package/dest/tests/factories.js +6 -15
  311. package/dest/tests/jest.js +1 -1
  312. package/dest/tests/mocks.d.ts +20 -14
  313. package/dest/tests/mocks.d.ts.map +1 -1
  314. package/dest/tests/mocks.js +45 -27
  315. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  316. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  317. package/dest/trees/nullifier_leaf.d.ts +13 -1
  318. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  319. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  320. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  321. package/dest/trees/public_data_leaf.d.ts +16 -1
  322. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  323. package/dest/trees/public_data_witness.d.ts +11 -1
  324. package/dest/trees/public_data_witness.d.ts.map +1 -1
  325. package/dest/tx/block_header.d.ts +14 -2
  326. package/dest/tx/block_header.d.ts.map +1 -1
  327. package/dest/tx/block_header.js +5 -1
  328. package/dest/tx/call_context.d.ts +13 -1
  329. package/dest/tx/call_context.d.ts.map +1 -1
  330. package/dest/tx/capsule.d.ts +4 -1
  331. package/dest/tx/capsule.d.ts.map +1 -1
  332. package/dest/tx/execution_payload.d.ts +9 -1
  333. package/dest/tx/execution_payload.d.ts.map +1 -1
  334. package/dest/tx/function_data.d.ts +4 -2
  335. package/dest/tx/function_data.d.ts.map +1 -1
  336. package/dest/tx/global_variables.d.ts +9 -1
  337. package/dest/tx/global_variables.d.ts.map +1 -1
  338. package/dest/tx/hashed_values.d.ts +7 -1
  339. package/dest/tx/hashed_values.d.ts.map +1 -1
  340. package/dest/tx/in_tx.d.ts +4 -4
  341. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  342. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  343. package/dest/tx/indexed_tx_effect.js +3 -2
  344. package/dest/tx/partial_state_reference.d.ts +4 -1
  345. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  346. package/dest/tx/private_execution_result.d.ts +23 -2
  347. package/dest/tx/private_execution_result.d.ts.map +1 -1
  348. package/dest/tx/private_execution_result.js +1 -1
  349. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  350. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  351. package/dest/tx/profiling.d.ts +149 -26
  352. package/dest/tx/profiling.d.ts.map +1 -1
  353. package/dest/tx/profiling.js +44 -7
  354. package/dest/tx/protocol_contracts.d.ts +1 -1
  355. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  356. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  357. package/dest/tx/state_reference.d.ts +3 -1
  358. package/dest/tx/state_reference.d.ts.map +1 -1
  359. package/dest/tx/tx.d.ts +24 -1
  360. package/dest/tx/tx.d.ts.map +1 -1
  361. package/dest/tx/tx.js +6 -3
  362. package/dest/tx/tx_context.d.ts +2 -1
  363. package/dest/tx/tx_context.d.ts.map +1 -1
  364. package/dest/tx/tx_effect.d.ts +32 -6
  365. package/dest/tx/tx_effect.d.ts.map +1 -1
  366. package/dest/tx/tx_effect.js +0 -7
  367. package/dest/tx/tx_execution_request.d.ts +30 -1
  368. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  369. package/dest/tx/tx_hash.d.ts +2 -1
  370. package/dest/tx/tx_hash.d.ts.map +1 -1
  371. package/dest/tx/tx_receipt.d.ts +47 -13
  372. package/dest/tx/tx_receipt.d.ts.map +1 -1
  373. package/dest/tx/tx_receipt.js +46 -15
  374. package/dest/tx/tx_request.d.ts +6 -1
  375. package/dest/tx/tx_request.d.ts.map +1 -1
  376. package/dest/tx/validator/error_texts.d.ts +2 -1
  377. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  378. package/dest/tx/validator/error_texts.js +2 -0
  379. package/dest/types/shared.d.ts +4 -1
  380. package/dest/types/shared.d.ts.map +1 -1
  381. package/dest/validators/schemas.d.ts +8 -8
  382. package/dest/vks/verification_key.d.ts +22 -1
  383. package/dest/vks/verification_key.d.ts.map +1 -1
  384. package/dest/vks/vk_data.d.ts +7 -1
  385. package/dest/vks/vk_data.d.ts.map +1 -1
  386. package/dest/zkpassport/index.d.ts +3 -4
  387. package/dest/zkpassport/index.d.ts.map +1 -1
  388. package/dest/zkpassport/index.js +9 -9
  389. package/package.json +14 -11
  390. package/src/abi/utils.ts +17 -0
  391. package/src/block/block_hash.ts +26 -25
  392. package/src/block/block_parameter.ts +4 -2
  393. package/src/block/body.ts +2 -1
  394. package/src/block/checkpointed_l2_block.ts +8 -58
  395. package/src/block/in_block.ts +5 -5
  396. package/src/block/index.ts +0 -2
  397. package/src/block/l2_block.ts +102 -150
  398. package/src/block/l2_block_source.ts +71 -42
  399. package/src/block/l2_block_stream/interfaces.ts +8 -5
  400. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  401. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  402. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  403. package/src/block/validate_block_result.ts +5 -4
  404. package/src/checkpoint/checkpoint.ts +33 -11
  405. package/src/checkpoint/published_checkpoint.ts +4 -3
  406. package/src/config/node-rpc-config.ts +1 -1
  407. package/src/contract/contract_address.ts +1 -1
  408. package/src/contract/contract_class_id.ts +1 -1
  409. package/src/contract/index.ts +0 -2
  410. package/src/contract/private_function.ts +2 -3
  411. package/src/contract/private_function_membership_proof.ts +1 -1
  412. package/src/database-version/database_version.ts +87 -0
  413. package/src/database-version/version_manager.ts +1 -77
  414. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  415. package/src/deserialization/index.ts +21 -0
  416. package/src/epoch-helpers/index.ts +10 -1
  417. package/src/hash/hash.ts +2 -2
  418. package/src/hash/map_slot.ts +3 -2
  419. package/src/interfaces/api_limit.ts +1 -0
  420. package/src/interfaces/archiver.ts +18 -24
  421. package/src/interfaces/aztec-node-admin.ts +3 -2
  422. package/src/interfaces/aztec-node.ts +85 -134
  423. package/src/interfaces/block-builder.ts +40 -23
  424. package/src/interfaces/configs.ts +1 -3
  425. package/src/interfaces/l2_logs_source.ts +17 -4
  426. package/src/interfaces/prover-broker.ts +22 -0
  427. package/src/interfaces/prover-client.ts +22 -0
  428. package/src/interfaces/tx_provider.ts +2 -2
  429. package/src/interfaces/validator.ts +9 -11
  430. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  431. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  432. package/src/keys/derivation.ts +8 -8
  433. package/src/keys/key_types.ts +1 -1
  434. package/src/keys/utils.ts +7 -3
  435. package/src/l1-contracts/slash_factory.ts +1 -0
  436. package/src/logs/log_id.ts +7 -6
  437. package/src/logs/siloed_tag.ts +3 -2
  438. package/src/messaging/l2_to_l1_membership.ts +5 -3
  439. package/src/messaging/out_hash.ts +60 -29
  440. package/src/note/note_dao.ts +18 -13
  441. package/src/p2p/block_proposal.ts +36 -13
  442. package/src/p2p/checkpoint_proposal.ts +29 -11
  443. package/src/p2p/consensus_payload.ts +0 -5
  444. package/src/p2p/constants.ts +3 -0
  445. package/src/p2p/index.ts +1 -0
  446. package/src/p2p/message_validator.ts +14 -2
  447. package/src/p2p/signed_txs.ts +6 -1
  448. package/src/p2p/topic_type.ts +1 -1
  449. package/src/proofs/chonk_proof.ts +9 -5
  450. package/src/rollup/block_headers_hash.ts +1 -1
  451. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  452. package/src/rollup/checkpoint_header.ts +20 -0
  453. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  454. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  455. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  456. package/src/stats/stats.ts +0 -2
  457. package/src/tests/factories.ts +6 -26
  458. package/src/tests/jest.ts +1 -1
  459. package/src/tests/mocks.ts +62 -42
  460. package/src/tx/block_header.ts +11 -3
  461. package/src/tx/indexed_tx_effect.ts +3 -2
  462. package/src/tx/private_execution_result.ts +1 -1
  463. package/src/tx/profiling.ts +46 -4
  464. package/src/tx/tx.ts +8 -9
  465. package/src/tx/tx_effect.ts +0 -9
  466. package/src/tx/tx_receipt.ts +75 -18
  467. package/src/tx/validator/error_texts.ts +3 -0
  468. package/src/zkpassport/index.ts +11 -12
  469. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  470. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  471. package/dest/block/l2_block_code_to_purge.js +0 -55
  472. package/dest/block/l2_block_header.d.ts +0 -94
  473. package/dest/block/l2_block_header.d.ts.map +0 -1
  474. package/dest/block/l2_block_header.js +0 -160
  475. package/dest/block/l2_block_new.d.ts +0 -134
  476. package/dest/block/l2_block_new.d.ts.map +0 -1
  477. package/dest/block/l2_block_new.js +0 -155
  478. package/dest/contract/contract_class_metadata.d.ts +0 -8
  479. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  480. package/dest/contract/contract_class_metadata.js +0 -1
  481. package/dest/contract/contract_metadata.d.ts +0 -7
  482. package/dest/contract/contract_metadata.d.ts.map +0 -1
  483. package/dest/contract/contract_metadata.js +0 -1
  484. package/dest/database-version/index.d.ts +0 -2
  485. package/dest/database-version/index.d.ts.map +0 -1
  486. package/dest/database-version/index.js +0 -1
  487. package/src/block/l2_block_code_to_purge.ts +0 -80
  488. package/src/block/l2_block_header.ts +0 -255
  489. package/src/block/l2_block_new.ts +0 -211
  490. package/src/contract/contract_class_metadata.ts +0 -8
  491. package/src/contract/contract_metadata.ts +0 -7
  492. package/src/database-version/index.ts +0 -1
@@ -68,23 +68,22 @@ export class DelayedPublicMutableValues {
68
68
  }
69
69
 
70
70
  static async readFromTree(delayedPublicMutableSlot: Fr, readStorage: (storageSlot: Fr) => Promise<Fr>) {
71
- const fields = [];
72
- for (let i = 0; i < DELAYED_PUBLIC_MUTABLE_VALUES_LEN; i++) {
73
- fields.push(await readStorage(delayedPublicMutableSlot.add(new Fr(i))));
74
- }
75
- return DelayedPublicMutableValues.fromFields(fields);
71
+ const fieldPromises = Array.from({ length: DELAYED_PUBLIC_MUTABLE_VALUES_LEN }).map((_, i) =>
72
+ readStorage(delayedPublicMutableSlot.add(new Fr(i))),
73
+ );
74
+ return DelayedPublicMutableValues.fromFields(await Promise.all(fieldPromises));
76
75
  }
77
76
 
78
77
  isEmpty(): boolean {
79
78
  return this.svc.isEmpty() && this.sdc.isEmpty();
80
79
  }
81
80
 
82
- async writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>) {
83
- const fields = this.toFields();
81
+ writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>) {
82
+ const fieldPromises = this.toFields().map((field, i) =>
83
+ storageWrite(delayedPublicMutableSlot.add(new Fr(i)), field),
84
+ );
84
85
 
85
- for (let i = 0; i < fields.length; i++) {
86
- await storageWrite(delayedPublicMutableSlot.add(new Fr(i)), fields[i]);
87
- }
86
+ return Promise.all(fieldPromises);
88
87
  }
89
88
 
90
89
  async hash(): Promise<Fr> {
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Constants for deserialization bounds checking.
3
+ * These constants define maximum allowed sizes during deserialization
4
+ * to prevent DoS attacks via maliciously crafted messages.
5
+ */
6
+ import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB } from '@aztec/constants';
7
+
8
+ /** Max transactions per block for deserialization validation */
9
+ export const MAX_TXS_PER_BLOCK = 2 ** 16;
10
+
11
+ /** Max committee size - theoretical max from bitmap design (256 bytes × 8 bits) */
12
+ export const MAX_COMMITTEE_SIZE = 2048;
13
+
14
+ /** Max blocks per checkpoint */
15
+ export const MAX_BLOCKS_PER_CHECKPOINT = 72;
16
+
17
+ /** Max tx effects per body (based on blob capacity per checkpoint) */
18
+ export const MAX_TX_EFFECTS_PER_BODY = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
19
+
20
+ /** Max block hash string length (hex: 0x + 64 chars, with generous headroom) */
21
+ export const MAX_BLOCK_HASH_STRING_LENGTH = 128;
@@ -51,6 +51,15 @@ export function getSlotAtTimestamp(
51
51
  : SlotNumber.fromBigInt((ts - constants.l1GenesisTime) / BigInt(constants.slotDuration));
52
52
  }
53
53
 
54
+ /** Returns the L2 slot number at the next L1 block based on the current timestamp. */
55
+ export function getSlotAtNextL1Block(
56
+ currentL1Timestamp: bigint,
57
+ constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>,
58
+ ): SlotNumber {
59
+ const nextL1BlockTimestamp = currentL1Timestamp + BigInt(constants.ethereumSlotDuration);
60
+ return getSlotAtTimestamp(nextL1BlockTimestamp, constants);
61
+ }
62
+
54
63
  /** Returns the epoch number for a given timestamp. */
55
64
  export function getEpochNumberAtTimestamp(
56
65
  ts: bigint,
@@ -69,7 +78,7 @@ export function getSlotRangeForEpoch(
69
78
  epochNumber: EpochNumber,
70
79
  constants: Pick<L1RollupConstants, 'epochDuration'>,
71
80
  ): [SlotNumber, SlotNumber] {
72
- const startSlot = SlotNumber(epochNumber * constants.epochDuration);
81
+ const startSlot = SlotNumber(Number(epochNumber) * constants.epochDuration);
73
82
  return [startSlot, SlotNumber(startSlot + constants.epochDuration - 1)];
74
83
  }
75
84
 
package/src/hash/hash.ts CHANGED
@@ -55,7 +55,7 @@ export function computeUniqueNoteHash(noteNonce: Fr, siloedNoteHash: Fr): Promis
55
55
  * @returns A siloed nullifier.
56
56
  */
57
57
  export function siloNullifier(contract: AztecAddress, innerNullifier: Fr): Promise<Fr> {
58
- return poseidon2HashWithSeparator([contract, innerNullifier], GeneratorIndex.OUTER_NULLIFIER);
58
+ return poseidon2HashWithSeparator([contract, innerNullifier], GeneratorIndex.SILOED_NULLIFIER);
59
59
  }
60
60
 
61
61
  /**
@@ -87,7 +87,7 @@ export function computePublicDataTreeValue(value: Fr): Fr {
87
87
 
88
88
  */
89
89
  export function computePublicDataTreeLeafSlot(contractAddress: AztecAddress, storageSlot: Fr): Promise<Fr> {
90
- return poseidon2HashWithSeparator([contractAddress, storageSlot], GeneratorIndex.PUBLIC_LEAF_INDEX);
90
+ return poseidon2HashWithSeparator([contractAddress, storageSlot], GeneratorIndex.PUBLIC_LEAF_SLOT);
91
91
  }
92
92
 
93
93
  /**
@@ -1,4 +1,5 @@
1
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
1
+ import { GeneratorIndex } from '@aztec/constants';
2
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
2
3
  import type { Fr } from '@aztec/foundation/curves/bn254';
3
4
 
4
5
  /**
@@ -14,5 +15,5 @@ export function deriveStorageSlotInMap(
14
15
  toField: () => Fr;
15
16
  },
16
17
  ): Promise<Fr> {
17
- return poseidon2Hash([mapSlot, key.toField()]);
18
+ return poseidon2HashWithSeparator([mapSlot, key.toField()], GeneratorIndex.PUBLIC_STORAGE_MAP_SLOT);
18
19
  }
@@ -2,3 +2,4 @@ export const MAX_RPC_LEN = 100;
2
2
  export const MAX_RPC_TXS_LEN = 50;
3
3
  export const MAX_RPC_BLOCKS_LEN = 50;
4
4
  export const MAX_RPC_CHECKPOINTS_LEN = 50;
5
+ export const MAX_LOGS_PER_TAG = 10;
@@ -4,9 +4,9 @@ import type { ApiSchemaFor } from '@aztec/foundation/schemas';
4
4
 
5
5
  import { z } from 'zod';
6
6
 
7
- import { CheckpointedL2Block, PublishedL2Block } from '../block/checkpointed_l2_block.js';
7
+ import { BlockHash } from '../block/block_hash.js';
8
+ import { CheckpointedL2Block } from '../block/checkpointed_l2_block.js';
8
9
  import { L2Block } from '../block/l2_block.js';
9
- import { L2BlockNew } from '../block/l2_block_new.js';
10
10
  import { type L2BlockSource, L2TipsSchema } from '../block/l2_block_source.js';
11
11
  import { ValidateCheckpointResultSchema } from '../block/validate_block_result.js';
12
12
  import { Checkpoint } from '../checkpoint/checkpoint.js';
@@ -83,6 +83,8 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
83
83
  getRegistryAddress: z.function().args().returns(schemas.EthAddress),
84
84
  getBlockNumber: z.function().args().returns(BlockNumberSchema),
85
85
  getProvenBlockNumber: z.function().args().returns(BlockNumberSchema),
86
+ getCheckpointedL2BlockNumber: z.function().args().returns(BlockNumberSchema),
87
+ getFinalizedL2BlockNumber: z.function().args().returns(BlockNumberSchema),
86
88
  getBlock: z.function().args(BlockNumberSchema).returns(L2Block.schema.optional()),
87
89
  getBlockHeader: z
88
90
  .function()
@@ -91,45 +93,37 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
91
93
  getCheckpointedBlock: z.function().args(BlockNumberSchema).returns(CheckpointedL2Block.schema.optional()),
92
94
  getCheckpointedBlocks: z
93
95
  .function()
94
- .args(BlockNumberSchema, schemas.Integer, optional(z.boolean()))
96
+ .args(BlockNumberSchema, schemas.Integer)
95
97
  .returns(z.array(CheckpointedL2Block.schema)),
96
- getBlocks: z
97
- .function()
98
- .args(BlockNumberSchema, schemas.Integer, optional(z.boolean()))
99
- .returns(z.array(L2Block.schema)),
100
- getPublishedCheckpoints: z
98
+ getBlocks: z.function().args(BlockNumberSchema, schemas.Integer).returns(z.array(L2Block.schema)),
99
+ getCheckpoints: z
101
100
  .function()
102
101
  .args(CheckpointNumberSchema, schemas.Integer)
103
102
  .returns(z.array(PublishedCheckpoint.schema)),
104
- getPublishedBlocks: z
105
- .function()
106
- .args(BlockNumberSchema, schemas.Integer, optional(z.boolean()))
107
- .returns(z.array(PublishedL2Block.schema)),
108
- getL2BlocksNew: z
109
- .function()
110
- .args(BlockNumberSchema, schemas.Integer, optional(z.boolean()))
111
- .returns(z.array(L2BlockNew.schema)),
112
- getPublishedBlockByHash: z.function().args(schemas.Fr).returns(PublishedL2Block.schema.optional()),
113
- getPublishedBlockByArchive: z.function().args(schemas.Fr).returns(PublishedL2Block.schema.optional()),
114
- getBlockHeaderByHash: z.function().args(schemas.Fr).returns(BlockHeader.schema.optional()),
103
+ getCheckpointedBlockByHash: z.function().args(BlockHash.schema).returns(CheckpointedL2Block.schema.optional()),
104
+ getCheckpointedBlockByArchive: z.function().args(schemas.Fr).returns(CheckpointedL2Block.schema.optional()),
105
+ getBlockHeaderByHash: z.function().args(BlockHash.schema).returns(BlockHeader.schema.optional()),
115
106
  getBlockHeaderByArchive: z.function().args(schemas.Fr).returns(BlockHeader.schema.optional()),
116
- getL2BlockNew: z.function().args(BlockNumberSchema).returns(L2BlockNew.schema.optional()),
107
+ getL2Block: z.function().args(BlockNumberSchema).returns(L2Block.schema.optional()),
108
+ getL2BlockByHash: z.function().args(BlockHash.schema).returns(L2Block.schema.optional()),
109
+ getL2BlockByArchive: z.function().args(schemas.Fr).returns(L2Block.schema.optional()),
117
110
  getTxEffect: z.function().args(TxHash.schema).returns(indexedTxSchema().optional()),
118
111
  getSettledTxReceipt: z.function().args(TxHash.schema).returns(TxReceipt.schema.optional()),
119
112
  getL2SlotNumber: z.function().args().returns(schemas.SlotNumber.optional()),
120
113
  getL2EpochNumber: z.function().args().returns(EpochNumberSchema.optional()),
121
114
  getCheckpointsForEpoch: z.function().args(EpochNumberSchema).returns(z.array(Checkpoint.schema)),
122
- getBlocksForEpoch: z.function().args(EpochNumberSchema).returns(z.array(L2Block.schema)),
123
- getBlockHeadersForEpoch: z.function().args(EpochNumberSchema).returns(z.array(BlockHeader.schema)),
115
+ getCheckpointedBlocksForEpoch: z.function().args(EpochNumberSchema).returns(z.array(CheckpointedL2Block.schema)),
116
+ getBlocksForSlot: z.function().args(schemas.SlotNumber).returns(z.array(L2Block.schema)),
117
+ getCheckpointedBlockHeadersForEpoch: z.function().args(EpochNumberSchema).returns(z.array(BlockHeader.schema)),
124
118
  isEpochComplete: z.function().args(EpochNumberSchema).returns(z.boolean()),
125
119
  getL2Tips: z.function().args().returns(L2TipsSchema),
126
120
  getPrivateLogsByTags: z
127
121
  .function()
128
- .args(z.array(SiloedTag.schema))
122
+ .args(z.array(SiloedTag.schema), optional(z.number().gte(0)))
129
123
  .returns(z.array(z.array(TxScopedL2Log.schema))),
130
124
  getPublicLogsByTagsFromContract: z
131
125
  .function()
132
- .args(schemas.AztecAddress, z.array(Tag.schema))
126
+ .args(schemas.AztecAddress, z.array(Tag.schema), optional(z.number().gte(0)))
133
127
  .returns(z.array(z.array(TxScopedL2Log.schema))),
134
128
  getPublicLogs: z.function().args(LogFilterSchema).returns(GetPublicLogsResponseSchema),
135
129
  getContractClassLogs: z.function().args(LogFilterSchema).returns(GetContractClassLogsResponseSchema),
@@ -52,7 +52,8 @@ export interface AztecNodeAdmin {
52
52
  getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
53
53
  }
54
54
 
55
- export type AztecNodeAdminConfig = ValidatorClientFullConfig &
55
+ // L1 contracts are not mutable via admin updates.
56
+ export type AztecNodeAdminConfig = Omit<ValidatorClientFullConfig, 'l1Contracts'> &
56
57
  SequencerConfig &
57
58
  ProverConfig &
58
59
  SlasherConfig &
@@ -65,7 +66,7 @@ export type AztecNodeAdminConfig = ValidatorClientFullConfig &
65
66
 
66
67
  export const AztecNodeAdminConfigSchema = SequencerConfigSchema.merge(ProverConfigSchema)
67
68
  .merge(SlasherConfigSchema)
68
- .merge(ValidatorClientFullConfigSchema)
69
+ .merge(ValidatorClientFullConfigSchema.omit({ l1Contracts: true }))
69
70
  .merge(
70
71
  ArchiverSpecificConfigSchema.pick({
71
72
  archiverPollingIntervalMS: true,
@@ -1,10 +1,4 @@
1
- import {
2
- ARCHIVE_HEIGHT,
3
- L1_TO_L2_MSG_TREE_HEIGHT,
4
- NOTE_HASH_TREE_HEIGHT,
5
- NULLIFIER_TREE_HEIGHT,
6
- PUBLIC_DATA_TREE_HEIGHT,
7
- } from '@aztec/constants';
1
+ import { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
8
2
  import { type L1ContractAddresses, L1ContractAddressesSchema } from '@aztec/ethereum/l1-contract-addresses';
9
3
  import {
10
4
  BlockNumber,
@@ -23,11 +17,11 @@ import { MembershipWitness, SiblingPath } from '@aztec/foundation/trees';
23
17
  import { z } from 'zod';
24
18
 
25
19
  import type { AztecAddress } from '../aztec-address/index.js';
20
+ import { BlockHash } from '../block/block_hash.js';
26
21
  import { type BlockParameter, BlockParameterSchema } from '../block/block_parameter.js';
27
- import { CheckpointedL2Block, PublishedL2Block } from '../block/checkpointed_l2_block.js';
22
+ import { CheckpointedL2Block } from '../block/checkpointed_l2_block.js';
28
23
  import { type DataInBlock, dataInBlockSchemaFor } from '../block/in_block.js';
29
24
  import { L2Block } from '../block/l2_block.js';
30
- import { L2BlockNew } from '../block/l2_block_new.js';
31
25
  import { type L2BlockSource, type L2Tips, L2TipsSchema } from '../block/l2_block_source.js';
32
26
  import { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
33
27
  import {
@@ -78,13 +72,7 @@ import { type WorldStateSyncStatus, WorldStateSyncStatusSchema } from './world_s
78
72
  export interface AztecNode
79
73
  extends Pick<
80
74
  L2BlockSource,
81
- | 'getBlocks'
82
- | 'getL2BlocksNew'
83
- | 'getPublishedBlocks'
84
- | 'getPublishedCheckpoints'
85
- | 'getBlockHeader'
86
- | 'getL2Tips'
87
- | 'getCheckpointedBlocks'
75
+ 'getBlocks' | 'getCheckpoints' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpointedBlocks'
88
76
  > {
89
77
  /**
90
78
  * Returns the tips of the L2 chain.
@@ -99,72 +87,31 @@ export interface AztecNode
99
87
  /**
100
88
  * Find the indexes of the given leaves in the given tree along with a block metadata pointing to the block in which
101
89
  * the leaves were inserted.
102
- * @param blockNumber - The block number at which to get the data or 'latest' for latest data.
90
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
103
91
  * @param treeId - The tree to search in.
104
92
  * @param leafValues - The values to search for.
105
93
  * @returns The indices of leaves and the block metadata of a block in which the leaves were inserted.
106
94
  */
107
95
  findLeavesIndexes(
108
- blockNumber: BlockParameter,
96
+ referenceBlock: BlockParameter,
109
97
  treeId: MerkleTreeId,
110
98
  leafValues: Fr[],
111
99
  ): Promise<(DataInBlock<bigint> | undefined)[]>;
112
100
 
113
- /**
114
- * Returns a sibling path for the given index in the nullifier tree.
115
- * @param blockNumber - The block number at which to get the data.
116
- * @param leafIndex - The index of the leaf for which the sibling path is required.
117
- * @returns The sibling path for the leaf index.
118
- */
119
- getNullifierSiblingPath(
120
- blockNumber: BlockParameter,
121
- leafIndex: bigint,
122
- ): Promise<SiblingPath<typeof NULLIFIER_TREE_HEIGHT>>;
123
-
124
- /**
125
- * Returns a sibling path for the given index in the note hash tree.
126
- * @param blockNumber - The block number at which to get the data.
127
- * @param leafIndex - The index of the leaf for which the sibling path is required.
128
- * @returns The sibling path for the leaf index.
129
- */
130
- getNoteHashSiblingPath(
131
- blockNumber: BlockParameter,
132
- leafIndex: bigint,
133
- ): Promise<SiblingPath<typeof NOTE_HASH_TREE_HEIGHT>>;
134
-
135
- /**
136
- * Returns a sibling path for a leaf in the committed historic blocks tree.
137
- * @param blockNumber - The block number at which to get the data.
138
- * @param leafIndex - Index of the leaf in the tree.
139
- * @returns The sibling path.
140
- */
141
- getArchiveSiblingPath(blockNumber: BlockParameter, leafIndex: bigint): Promise<SiblingPath<typeof ARCHIVE_HEIGHT>>;
142
-
143
- /**
144
- * Returns a sibling path for a leaf in the committed public data tree.
145
- * @param blockNumber - The block number at which to get the data.
146
- * @param leafIndex - Index of the leaf in the tree.
147
- * @returns The sibling path.
148
- */
149
- getPublicDataSiblingPath(
150
- blockNumber: BlockParameter,
151
- leafIndex: bigint,
152
- ): Promise<SiblingPath<typeof PUBLIC_DATA_TREE_HEIGHT>>;
153
-
154
101
  /**
155
102
  * Returns a nullifier membership witness for a given nullifier at a given block.
156
- * @param blockNumber - The block number at which to get the data.
103
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
157
104
  * @param nullifier - Nullifier we try to find witness for.
158
105
  * @returns The nullifier membership witness (if found).
159
106
  */
160
107
  getNullifierMembershipWitness(
161
- blockNumber: BlockParameter,
108
+ referenceBlock: BlockParameter,
162
109
  nullifier: Fr,
163
110
  ): Promise<NullifierMembershipWitness | undefined>;
164
111
 
165
112
  /**
166
113
  * Returns a low nullifier membership witness for a given nullifier at a given block.
167
- * @param blockNumber - The block number at which to get the data.
114
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
168
115
  * @param nullifier - Nullifier we try to find the low nullifier witness for.
169
116
  * @returns The low nullifier membership witness (if found).
170
117
  * @remarks Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked
@@ -172,49 +119,56 @@ export interface AztecNode
172
119
  * we are trying to prove non-inclusion for.
173
120
  */
174
121
  getLowNullifierMembershipWitness(
175
- blockNumber: BlockParameter,
122
+ referenceBlock: BlockParameter,
176
123
  nullifier: Fr,
177
124
  ): Promise<NullifierMembershipWitness | undefined>;
178
125
 
179
126
  /**
180
127
  * Returns a public data tree witness for a given leaf slot at a given block.
181
- * @param blockNumber - The block number at which to get the data.
128
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
182
129
  * @param leafSlot - The leaf slot we try to find the witness for.
183
130
  * @returns The public data witness (if found).
184
131
  * @remarks The witness can be used to compute the current value of the public data tree leaf. If the low leaf preimage corresponds to an
185
132
  * "in range" slot, means that the slot doesn't exist and the value is 0. If the low leaf preimage corresponds to the exact slot, the current value
186
133
  * is contained in the leaf preimage.
187
134
  */
188
- getPublicDataWitness(blockNumber: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
135
+ getPublicDataWitness(referenceBlock: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
189
136
 
190
137
  /**
191
- * Returns a membership witness for a given archive leaf at a given block.
192
- * @param blockNumber - The block number at which to get the data.
193
- * @param archive - The archive leaf we try to find the witness for.
138
+ * Returns a membership witness for a given block hash in the archive tree.
139
+ *
140
+ * Block hashes are the leaves of the archive tree. Each time a new block is added to the chain,
141
+ * its block hash is appended as a new leaf to the archive tree. This method finds the membership
142
+ * witness (leaf index and sibling path) for a given block hash, which can be used to prove that
143
+ * a specific block exists in the chain's history.
144
+ *
145
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data
146
+ * (which contains the root of the archive tree in which we are searching for the block hash).
147
+ * @param blockHash - The block hash to find in the archive tree.
194
148
  */
195
- getArchiveMembershipWitness(
196
- blockNumber: BlockParameter,
197
- archive: Fr,
149
+ getBlockHashMembershipWitness(
150
+ referenceBlock: BlockParameter,
151
+ blockHash: BlockHash,
198
152
  ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
199
153
 
200
154
  /**
201
155
  * Returns a membership witness for a given note hash at a given block.
202
- * @param blockNumber - The block number at which to get the data.
156
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
203
157
  * @param noteHash - The note hash we try to find the witness for.
204
158
  */
205
159
  getNoteHashMembershipWitness(
206
- blockNumber: BlockParameter,
160
+ referenceBlock: BlockParameter,
207
161
  noteHash: Fr,
208
162
  ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
209
163
 
210
164
  /**
211
165
  * Returns the index and a sibling path for a leaf in the committed l1 to l2 data tree.
212
- * @param blockNumber - The block number at which to get the data.
166
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
213
167
  * @param l1ToL2Message - The l1ToL2Message to get the index / sibling path for.
214
168
  * @returns A tuple of the index and the sibling path of the L1ToL2Message (undefined if not found).
215
169
  */
216
170
  getL1ToL2MessageMembershipWitness(
217
- blockNumber: BlockParameter,
171
+ referenceBlock: BlockParameter,
218
172
  l1ToL2Message: Fr,
219
173
  ): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
220
174
 
@@ -238,18 +192,18 @@ export interface AztecNode
238
192
  getL2ToL1Messages(epoch: EpochNumber): Promise<Fr[][][][]>;
239
193
 
240
194
  /**
241
- * Get a block specified by its number.
242
- * @param number - The block number being requested.
195
+ * Get a block specified by its block number or 'latest'.
196
+ * @param blockParameter - The block parameter (block number, block hash, or 'latest').
243
197
  * @returns The requested block.
244
198
  */
245
- getBlock(number: BlockParameter): Promise<L2Block | undefined>;
199
+ getBlock(blockParameter: BlockParameter): Promise<L2Block | undefined>;
246
200
 
247
201
  /**
248
202
  * Get a block specified by its hash.
249
203
  * @param blockHash - The block hash being requested.
250
204
  * @returns The requested block.
251
205
  */
252
- getBlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
206
+ getBlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
253
207
 
254
208
  /**
255
209
  * Get a block specified by its archive root.
@@ -270,6 +224,12 @@ export interface AztecNode
270
224
  */
271
225
  getProvenBlockNumber(): Promise<BlockNumber>;
272
226
 
227
+ /**
228
+ * Fetches the latest checkpointed block number.
229
+ * @returns The block number.
230
+ */
231
+ getCheckpointedBlockNumber(): Promise<BlockNumber>;
232
+
273
233
  /**
274
234
  * Method to determine if the node is ready to accept transactions.
275
235
  * @returns - Flag indicating the readiness for tx submission.
@@ -353,16 +313,38 @@ export interface AztecNode
353
313
  getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
354
314
 
355
315
  /**
356
- * Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
316
+ * Gets private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
357
317
  * array implies no logs match that tag.
318
+ * @param tags - The tags to search for.
319
+ * @param page - The page number (0-indexed) for pagination.
320
+ * @param referenceBlock - Optional block hash used to ensure the block still exists before logs are retrieved.
321
+ * This block is expected to represent the latest block to which the client has synced (called anchor block in PXE).
322
+ * If specified and the block is not found, an error is thrown. This helps detect reorgs, which could result in
323
+ * undefined behavior in the client's code.
324
+ * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
325
+ * for a tag, the caller should fetch the next page to check for more logs.
358
326
  */
359
- getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
327
+ getPrivateLogsByTags(tags: SiloedTag[], page?: number, referenceBlock?: BlockHash): Promise<TxScopedL2Log[][]>;
360
328
 
361
329
  /**
362
- * Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
330
+ * Gets public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
363
331
  * logs is returned. An empty array implies no logs match that tag.
364
- */
365
- getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
332
+ * @param contractAddress - The contract address to search logs for.
333
+ * @param tags - The tags to search for.
334
+ * @param page - The page number (0-indexed) for pagination.
335
+ * @param referenceBlock - Optional block hash used to ensure the block still exists before logs are retrieved.
336
+ * This block is expected to represent the latest block to which the client has synced (called anchor block in PXE).
337
+ * If specified and the block is not found, an error is thrown. This helps detect reorgs, which could result in
338
+ * undefined behavior in the client's code.
339
+ * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
340
+ * for a tag, the caller should fetch the next page to check for more logs.
341
+ */
342
+ getPublicLogsByTagsFromContract(
343
+ contractAddress: AztecAddress,
344
+ tags: Tag[],
345
+ page?: number,
346
+ referenceBlock?: BlockHash,
347
+ ): Promise<TxScopedL2Log[][]>;
366
348
 
367
349
  /**
368
350
  * Method to submit a transaction to the p2p pool.
@@ -420,25 +402,19 @@ export interface AztecNode
420
402
  * @remarks The storage slot here refers to the slot as it is defined in Noir not the index in the merkle tree.
421
403
  * Aztec's version of `eth_getStorageAt`.
422
404
  *
405
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
423
406
  * @param contract - Address of the contract to query.
424
407
  * @param slot - Slot to query.
425
- * @param blockNumber - The block number at which to get the data or 'latest'.
426
408
  * @returns Storage value at the given contract slot.
427
409
  */
428
- getPublicStorageAt(blockNumber: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr>;
429
-
430
- /**
431
- * Returns the currently committed block header.
432
- * @returns The current committed block header.
433
- */
434
- getBlockHeader(blockNumber?: BlockParameter): Promise<BlockHeader | undefined>;
410
+ getPublicStorageAt(referenceBlock: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr>;
435
411
 
436
412
  /**
437
- * Get a block header specified by its hash.
438
- * @param blockHash - The block hash being requested.
413
+ * Returns the block header for a given block number, block hash, or 'latest'.
414
+ * @param block - The block parameter (block number, block hash, or 'latest'). Defaults to 'latest'.
439
415
  * @returns The requested block header.
440
416
  */
441
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
417
+ getBlockHeader(block?: BlockParameter): Promise<BlockHeader | undefined>;
442
418
 
443
419
  /**
444
420
  * Get a block header specified by its archive root.
@@ -511,26 +487,6 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
511
487
  .args(BlockParameterSchema, z.nativeEnum(MerkleTreeId), z.array(schemas.Fr).max(MAX_RPC_LEN))
512
488
  .returns(z.array(optional(dataInBlockSchemaFor(schemas.BigInt)))),
513
489
 
514
- getNullifierSiblingPath: z
515
- .function()
516
- .args(BlockParameterSchema, schemas.BigInt)
517
- .returns(SiblingPath.schemaFor(NULLIFIER_TREE_HEIGHT)),
518
-
519
- getNoteHashSiblingPath: z
520
- .function()
521
- .args(BlockParameterSchema, schemas.BigInt)
522
- .returns(SiblingPath.schemaFor(NOTE_HASH_TREE_HEIGHT)),
523
-
524
- getArchiveSiblingPath: z
525
- .function()
526
- .args(BlockParameterSchema, schemas.BigInt)
527
- .returns(SiblingPath.schemaFor(ARCHIVE_HEIGHT)),
528
-
529
- getPublicDataSiblingPath: z
530
- .function()
531
- .args(BlockParameterSchema, schemas.BigInt)
532
- .returns(SiblingPath.schemaFor(PUBLIC_DATA_TREE_HEIGHT)),
533
-
534
490
  getNullifierMembershipWitness: z
535
491
  .function()
536
492
  .args(BlockParameterSchema, schemas.Fr)
@@ -546,9 +502,9 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
546
502
  .args(BlockParameterSchema, schemas.Fr)
547
503
  .returns(PublicDataWitness.schema.optional()),
548
504
 
549
- getArchiveMembershipWitness: z
505
+ getBlockHashMembershipWitness: z
550
506
  .function()
551
- .args(BlockParameterSchema, schemas.Fr)
507
+ .args(BlockParameterSchema, BlockHash.schema)
552
508
  .returns(MembershipWitness.schemaFor(ARCHIVE_HEIGHT).optional()),
553
509
 
554
510
  getNoteHashMembershipWitness: z
@@ -572,7 +528,7 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
572
528
 
573
529
  getBlock: z.function().args(BlockParameterSchema).returns(L2Block.schema.optional()),
574
530
 
575
- getBlockByHash: z.function().args(schemas.Fr).returns(L2Block.schema.optional()),
531
+ getBlockByHash: z.function().args(BlockHash.schema).returns(L2Block.schema.optional()),
576
532
 
577
533
  getBlockByArchive: z.function().args(schemas.Fr).returns(L2Block.schema.optional()),
578
534
 
@@ -580,6 +536,8 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
580
536
 
581
537
  getProvenBlockNumber: z.function().returns(BlockNumberSchema),
582
538
 
539
+ getCheckpointedBlockNumber: z.function().returns(BlockNumberSchema),
540
+
583
541
  isReady: z.function().returns(z.boolean()),
584
542
 
585
543
  getNodeInfo: z.function().returns(NodeInfoSchema),
@@ -589,24 +547,14 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
589
547
  .args(BlockNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_BLOCKS_LEN))
590
548
  .returns(z.array(L2Block.schema)),
591
549
 
592
- getPublishedBlocks: z
593
- .function()
594
- .args(BlockNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_BLOCKS_LEN))
595
- .returns(z.array(PublishedL2Block.schema)),
596
-
597
- getPublishedCheckpoints: z
550
+ getCheckpoints: z
598
551
  .function()
599
552
  .args(CheckpointNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_CHECKPOINTS_LEN))
600
553
  .returns(z.array(PublishedCheckpoint.schema)),
601
554
 
602
- getL2BlocksNew: z
603
- .function()
604
- .args(BlockNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_BLOCKS_LEN))
605
- .returns(z.array(L2BlockNew.schema)),
606
-
607
555
  getCheckpointedBlocks: z
608
556
  .function()
609
- .args(BlockNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_BLOCKS_LEN), optional(z.boolean()))
557
+ .args(BlockNumberPositiveSchema, z.number().gt(0).lte(MAX_RPC_BLOCKS_LEN))
610
558
  .returns(z.array(CheckpointedL2Block.schema)),
611
559
 
612
560
  getCurrentMinFees: z.function().returns(GasFees.schema),
@@ -634,12 +582,17 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
634
582
 
635
583
  getPrivateLogsByTags: z
636
584
  .function()
637
- .args(z.array(SiloedTag.schema).max(MAX_RPC_LEN))
585
+ .args(z.array(SiloedTag.schema).max(MAX_RPC_LEN), optional(z.number().gte(0)), optional(BlockHash.schema))
638
586
  .returns(z.array(z.array(TxScopedL2Log.schema))),
639
587
 
640
588
  getPublicLogsByTagsFromContract: z
641
589
  .function()
642
- .args(schemas.AztecAddress, z.array(Tag.schema).max(MAX_RPC_LEN))
590
+ .args(
591
+ schemas.AztecAddress,
592
+ z.array(Tag.schema).max(MAX_RPC_LEN),
593
+ optional(z.number().gte(0)),
594
+ optional(BlockHash.schema),
595
+ )
643
596
  .returns(z.array(z.array(TxScopedL2Log.schema))),
644
597
 
645
598
  sendTx: z.function().args(Tx.schema).returns(z.void()),
@@ -663,8 +616,6 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
663
616
 
664
617
  getBlockHeader: z.function().args(optional(BlockParameterSchema)).returns(BlockHeader.schema.optional()),
665
618
 
666
- getBlockHeaderByHash: z.function().args(schemas.Fr).returns(BlockHeader.schema.optional()),
667
-
668
619
  getBlockHeaderByArchive: z.function().args(schemas.Fr).returns(BlockHeader.schema.optional()),
669
620
 
670
621
  getValidatorsStats: z.function().returns(ValidatorsStatsSchema),