@aztec/stdlib 5.0.0-private.20260319 → 6.0.0-nightly.20260603

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 (875) 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 +5 -44
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +12 -67
  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 +32 -6
  18. package/dest/abi/event_selector.d.ts +4 -7
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +7 -25
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_selector.d.ts +3 -6
  23. package/dest/abi/function_selector.d.ts.map +1 -1
  24. package/dest/abi/function_selector.js +2 -4
  25. package/dest/abi/function_signature_decoder.d.ts +43 -0
  26. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  27. package/dest/abi/function_signature_decoder.js +66 -0
  28. package/dest/abi/index.d.ts +2 -1
  29. package/dest/abi/index.d.ts.map +1 -1
  30. package/dest/abi/index.js +1 -0
  31. package/dest/abi/note_selector.d.ts +4 -7
  32. package/dest/abi/note_selector.d.ts.map +1 -1
  33. package/dest/abi/note_selector.js +1 -3
  34. package/dest/abi/selector.d.ts +2 -2
  35. package/dest/abi/selector.d.ts.map +1 -1
  36. package/dest/abi/selector.js +1 -1
  37. package/dest/abi/utils.d.ts +1 -1
  38. package/dest/abi/utils.d.ts.map +1 -1
  39. package/dest/abi/utils.js +1 -1
  40. package/dest/auth_witness/auth_witness.d.ts +2 -2
  41. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  42. package/dest/avm/avm.d.ts +1756 -10463
  43. package/dest/avm/avm.d.ts.map +1 -1
  44. package/dest/avm/avm.js +6 -3
  45. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  46. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  47. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  48. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  49. package/dest/avm/avm_proving_request.d.ts +653 -5446
  50. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  51. package/dest/avm/message_pack.js +12 -3
  52. package/dest/avm/public_data_write.d.ts +6 -12
  53. package/dest/avm/public_data_write.d.ts.map +1 -1
  54. package/dest/avm/revert_code.d.ts +5 -21
  55. package/dest/avm/revert_code.d.ts.map +1 -1
  56. package/dest/avm/revert_code.js +12 -30
  57. package/dest/aztec-address/index.d.ts +8 -8
  58. package/dest/aztec-address/index.d.ts.map +1 -1
  59. package/dest/aztec-address/index.js +9 -6
  60. package/dest/block/attestation_info.d.ts +3 -2
  61. package/dest/block/attestation_info.d.ts.map +1 -1
  62. package/dest/block/attestation_info.js +7 -5
  63. package/dest/block/block_data.d.ts +13 -38
  64. package/dest/block/block_data.d.ts.map +1 -1
  65. package/dest/block/block_data.js +2 -2
  66. package/dest/block/block_hash.d.ts +11 -10
  67. package/dest/block/block_hash.d.ts.map +1 -1
  68. package/dest/block/block_hash.js +10 -9
  69. package/dest/block/block_parameter.d.ts +37 -4
  70. package/dest/block/block_parameter.d.ts.map +1 -1
  71. package/dest/block/block_parameter.js +53 -2
  72. package/dest/block/in_block.d.ts +5 -24
  73. package/dest/block/in_block.d.ts.map +1 -1
  74. package/dest/block/index.d.ts +1 -2
  75. package/dest/block/index.d.ts.map +1 -1
  76. package/dest/block/index.js +0 -1
  77. package/dest/block/l2_block.d.ts +13 -41
  78. package/dest/block/l2_block.d.ts.map +1 -1
  79. package/dest/block/l2_block_info.d.ts +10 -29
  80. package/dest/block/l2_block_info.d.ts.map +1 -1
  81. package/dest/block/l2_block_info.js +6 -5
  82. package/dest/block/l2_block_source.d.ts +199 -352
  83. package/dest/block/l2_block_source.d.ts.map +1 -1
  84. package/dest/block/l2_block_source.js +67 -1
  85. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  86. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  88. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  91. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  94. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  95. package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
  96. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  97. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  98. package/dest/block/proposal/attestations_and_signers.js +26 -18
  99. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  100. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +5 -4
  104. package/dest/checkpoint/checkpoint.d.ts +30 -96
  105. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  106. package/dest/checkpoint/checkpoint.js +9 -1
  107. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  108. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint_data.js +12 -0
  110. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  111. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  112. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  115. package/dest/checkpoint/digest.d.ts +18 -0
  116. package/dest/checkpoint/digest.d.ts.map +1 -0
  117. package/dest/checkpoint/digest.js +12 -0
  118. package/dest/checkpoint/index.d.ts +4 -1
  119. package/dest/checkpoint/index.d.ts.map +1 -1
  120. package/dest/checkpoint/index.js +3 -0
  121. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  124. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  125. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  126. package/dest/config/chain-config.d.ts +4 -9
  127. package/dest/config/chain-config.d.ts.map +1 -1
  128. package/dest/config/chain-config.js +13 -12
  129. package/dest/config/pipelining-config.d.ts +2 -6
  130. package/dest/config/pipelining-config.d.ts.map +1 -1
  131. package/dest/config/sequencer-config.d.ts +5 -3
  132. package/dest/config/sequencer-config.d.ts.map +1 -1
  133. package/dest/config/sequencer-config.js +18 -4
  134. package/dest/contract/complete_address.d.ts +3 -2
  135. package/dest/contract/complete_address.d.ts.map +1 -1
  136. package/dest/contract/complete_address.js +6 -2
  137. package/dest/contract/contract_address.d.ts +5 -5
  138. package/dest/contract/contract_address.d.ts.map +1 -1
  139. package/dest/contract/contract_address.js +5 -4
  140. package/dest/contract/contract_deployment_data.d.ts +15 -61
  141. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  142. package/dest/contract/contract_instance.d.ts +4 -2
  143. package/dest/contract/contract_instance.d.ts.map +1 -1
  144. package/dest/contract/contract_instance.js +10 -3
  145. package/dest/contract/index.d.ts +1 -3
  146. package/dest/contract/index.d.ts.map +1 -1
  147. package/dest/contract/index.js +0 -2
  148. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  149. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  150. package/dest/contract/interfaces/contract_class.js +1 -28
  151. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  152. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  153. package/dest/contract/interfaces/contract_instance.js +4 -2
  154. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  155. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  156. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  157. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  158. package/dest/contract/private_function.d.ts +1 -1
  159. package/dest/contract/private_function.d.ts.map +1 -1
  160. package/dest/contract/private_function.js +2 -4
  161. package/dest/database-version/database_version.d.ts +5 -11
  162. package/dest/database-version/database_version.d.ts.map +1 -1
  163. package/dest/database-version/version_manager.d.ts +6 -2
  164. package/dest/database-version/version_manager.d.ts.map +1 -1
  165. package/dest/database-version/version_manager.js +12 -1
  166. package/dest/epoch-helpers/index.d.ts +10 -22
  167. package/dest/epoch-helpers/index.d.ts.map +1 -1
  168. package/dest/epoch-helpers/index.js +12 -0
  169. package/dest/file-store/factory.d.ts +4 -3
  170. package/dest/file-store/factory.d.ts.map +1 -1
  171. package/dest/file-store/factory.js +2 -2
  172. package/dest/file-store/http.d.ts +9 -2
  173. package/dest/file-store/http.d.ts.map +1 -1
  174. package/dest/file-store/http.js +20 -9
  175. package/dest/file-store/index.d.ts +2 -1
  176. package/dest/file-store/index.d.ts.map +1 -1
  177. package/dest/gas/fee_math.d.ts +49 -0
  178. package/dest/gas/fee_math.d.ts.map +1 -0
  179. package/dest/gas/fee_math.js +80 -0
  180. package/dest/gas/gas.d.ts +9 -14
  181. package/dest/gas/gas.d.ts.map +1 -1
  182. package/dest/gas/gas.js +6 -3
  183. package/dest/gas/gas_fees.d.ts +13 -14
  184. package/dest/gas/gas_fees.d.ts.map +1 -1
  185. package/dest/gas/gas_fees.js +17 -4
  186. package/dest/gas/gas_settings.d.ts +66 -86
  187. package/dest/gas/gas_settings.d.ts.map +1 -1
  188. package/dest/gas/gas_settings.js +56 -9
  189. package/dest/gas/index.d.ts +2 -1
  190. package/dest/gas/index.d.ts.map +1 -1
  191. package/dest/gas/index.js +1 -0
  192. package/dest/ha-signing/config.d.ts +11 -75
  193. package/dest/ha-signing/config.d.ts.map +1 -1
  194. package/dest/ha-signing/config.js +9 -18
  195. package/dest/ha-signing/index.d.ts +2 -2
  196. package/dest/ha-signing/index.d.ts.map +1 -1
  197. package/dest/ha-signing/index.js +1 -1
  198. package/dest/ha-signing/local_config.d.ts +3 -34
  199. package/dest/ha-signing/local_config.d.ts.map +1 -1
  200. package/dest/ha-signing/local_config.js +2 -2
  201. package/dest/ha-signing/types.d.ts +37 -32
  202. package/dest/ha-signing/types.d.ts.map +1 -1
  203. package/dest/ha-signing/types.js +13 -6
  204. package/dest/hash/hash.d.ts +19 -1
  205. package/dest/hash/hash.d.ts.map +1 -1
  206. package/dest/hash/hash.js +39 -2
  207. package/dest/interfaces/allowed_element.d.ts +4 -28
  208. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  209. package/dest/interfaces/api_limit.d.ts +1 -1
  210. package/dest/interfaces/api_limit.js +1 -1
  211. package/dest/interfaces/archiver.d.ts +22 -32
  212. package/dest/interfaces/archiver.d.ts.map +1 -1
  213. package/dest/interfaces/archiver.js +208 -69
  214. package/dest/interfaces/aztec-node-admin.d.ts +65 -303
  215. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  216. package/dest/interfaces/aztec-node-admin.js +59 -16
  217. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  218. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  219. package/dest/interfaces/aztec-node-debug.js +21 -0
  220. package/dest/interfaces/aztec-node.d.ts +79 -102
  221. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  222. package/dest/interfaces/aztec-node.js +296 -69
  223. package/dest/interfaces/block-builder.d.ts +3 -1
  224. package/dest/interfaces/block-builder.d.ts.map +1 -1
  225. package/dest/interfaces/block_response.d.ts +90 -0
  226. package/dest/interfaces/block_response.d.ts.map +1 -0
  227. package/dest/interfaces/block_response.js +30 -0
  228. package/dest/interfaces/chain_tips.d.ts +50 -0
  229. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  230. package/dest/interfaces/chain_tips.js +11 -0
  231. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  232. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  233. package/dest/interfaces/checkpoint_parameter.js +18 -0
  234. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  235. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  236. package/dest/interfaces/checkpoint_response.js +26 -0
  237. package/dest/interfaces/client.d.ts +8 -2
  238. package/dest/interfaces/client.d.ts.map +1 -1
  239. package/dest/interfaces/client.js +7 -1
  240. package/dest/interfaces/configs.d.ts +41 -130
  241. package/dest/interfaces/configs.d.ts.map +1 -1
  242. package/dest/interfaces/configs.js +9 -1
  243. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  244. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  245. package/dest/interfaces/l1_publish_info.js +26 -0
  246. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  247. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  248. package/dest/interfaces/l2_logs_source.js +5 -0
  249. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  250. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  251. package/dest/interfaces/p2p-bootstrap.js +8 -2
  252. package/dest/interfaces/p2p.d.ts +15 -5
  253. package/dest/interfaces/p2p.d.ts.map +1 -1
  254. package/dest/interfaces/p2p.js +28 -5
  255. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  256. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  257. package/dest/interfaces/prover-agent.d.ts +5 -23
  258. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  259. package/dest/interfaces/prover-agent.js +4 -1
  260. package/dest/interfaces/prover-client.d.ts +6 -27
  261. package/dest/interfaces/prover-client.d.ts.map +1 -1
  262. package/dest/interfaces/prover-client.js +0 -3
  263. package/dest/interfaces/prover-node.js +22 -8
  264. package/dest/interfaces/proving-job-source.js +24 -4
  265. package/dest/interfaces/proving-job.d.ts +742 -5793
  266. package/dest/interfaces/proving-job.d.ts.map +1 -1
  267. package/dest/interfaces/proving-job.js +1 -1
  268. package/dest/interfaces/public_storage_override.d.ts +22 -0
  269. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  270. package/dest/interfaces/public_storage_override.js +7 -0
  271. package/dest/interfaces/server.d.ts +6 -1
  272. package/dest/interfaces/server.d.ts.map +1 -1
  273. package/dest/interfaces/server.js +5 -0
  274. package/dest/interfaces/slasher.d.ts +25 -65
  275. package/dest/interfaces/slasher.d.ts.map +1 -1
  276. package/dest/interfaces/slasher.js +8 -4
  277. package/dest/interfaces/tx_provider.d.ts +6 -1
  278. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  279. package/dest/interfaces/validator.d.ts +48 -248
  280. package/dest/interfaces/validator.d.ts.map +1 -1
  281. package/dest/interfaces/validator.js +5 -1
  282. package/dest/interfaces/world_state.d.ts +2 -2
  283. package/dest/interfaces/world_state.d.ts.map +1 -1
  284. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  285. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  286. package/dest/kernel/hints/key_validation_request.js +20 -18
  287. package/dest/kernel/index.d.ts +5 -1
  288. package/dest/kernel/index.d.ts.map +1 -1
  289. package/dest/kernel/index.js +4 -0
  290. package/dest/kernel/log_hash.d.ts +6 -2
  291. package/dest/kernel/log_hash.d.ts.map +1 -1
  292. package/dest/kernel/log_hash.js +21 -9
  293. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  294. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  295. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  296. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  297. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  298. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  299. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  300. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  301. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  302. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  303. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  304. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  305. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  306. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  307. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  308. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  309. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  310. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  311. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  312. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  313. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  314. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  315. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  316. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  317. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  318. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  319. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  320. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  321. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  322. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  323. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  324. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  325. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  326. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  327. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  328. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  329. package/dest/kernel/public_call_request.d.ts +15 -30
  330. package/dest/kernel/public_call_request.d.ts.map +1 -1
  331. package/dest/kernel/public_call_request.js +16 -7
  332. package/dest/keys/derivation.d.ts +6 -2
  333. package/dest/keys/derivation.d.ts.map +1 -1
  334. package/dest/keys/derivation.js +16 -6
  335. package/dest/keys/public_key.d.ts +22 -3
  336. package/dest/keys/public_key.d.ts.map +1 -1
  337. package/dest/keys/public_key.js +20 -1
  338. package/dest/keys/public_keys.d.ts +55 -82
  339. package/dest/keys/public_keys.d.ts.map +1 -1
  340. package/dest/keys/public_keys.js +102 -74
  341. package/dest/kv-store/config.d.ts +3 -6
  342. package/dest/kv-store/config.d.ts.map +1 -1
  343. package/dest/kv-store/config.js +2 -7
  344. package/dest/l1-contracts/index.d.ts +2 -2
  345. package/dest/l1-contracts/index.d.ts.map +1 -1
  346. package/dest/l1-contracts/index.js +1 -1
  347. package/dest/logs/app_tagging_secret.d.ts +46 -0
  348. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  349. package/dest/logs/app_tagging_secret.js +109 -0
  350. package/dest/logs/app_tagging_secret_kind.d.ts +6 -0
  351. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  352. package/dest/logs/app_tagging_secret_kind.js +4 -0
  353. package/dest/logs/contract_class_log.d.ts +16 -34
  354. package/dest/logs/contract_class_log.d.ts.map +1 -1
  355. package/dest/logs/contract_class_log.js +11 -9
  356. package/dest/logs/index.d.ts +7 -7
  357. package/dest/logs/index.d.ts.map +1 -1
  358. package/dest/logs/index.js +6 -6
  359. package/dest/logs/log_cursor.d.ts +51 -0
  360. package/dest/logs/log_cursor.d.ts.map +1 -0
  361. package/dest/logs/log_cursor.js +82 -0
  362. package/dest/logs/log_result.d.ts +54 -0
  363. package/dest/logs/log_result.d.ts.map +1 -0
  364. package/dest/logs/log_result.js +56 -0
  365. package/dest/logs/logs_query.d.ts +82 -0
  366. package/dest/logs/logs_query.d.ts.map +1 -0
  367. package/dest/logs/logs_query.js +50 -0
  368. package/dest/logs/message_context.d.ts +6 -8
  369. package/dest/logs/message_context.d.ts.map +1 -1
  370. package/dest/logs/message_context.js +27 -9
  371. package/dest/logs/pending_tagged_log.d.ts +2 -3
  372. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  373. package/dest/logs/pending_tagged_log.js +2 -2
  374. package/dest/logs/pre_tag.d.ts +11 -24
  375. package/dest/logs/pre_tag.d.ts.map +1 -1
  376. package/dest/logs/pre_tag.js +2 -2
  377. package/dest/logs/private_log.d.ts +7 -12
  378. package/dest/logs/private_log.d.ts.map +1 -1
  379. package/dest/logs/private_log.js +6 -3
  380. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  381. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  382. package/dest/logs/query_all_logs_by_tags.js +64 -0
  383. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  384. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  385. package/dest/logs/shared_secret_derivation.js +15 -9
  386. package/dest/logs/siloed_tag.d.ts +8 -7
  387. package/dest/logs/siloed_tag.d.ts.map +1 -1
  388. package/dest/logs/siloed_tag.js +13 -3
  389. package/dest/logs/tag.d.ts +5 -6
  390. package/dest/logs/tag.d.ts.map +1 -1
  391. package/dest/logs/tag.js +4 -0
  392. package/dest/logs/tagging_index_range.d.ts +13 -31
  393. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  394. package/dest/logs/tagging_index_range.js +2 -2
  395. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  396. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  397. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  398. package/dest/messaging/index.d.ts +2 -1
  399. package/dest/messaging/index.d.ts.map +1 -1
  400. package/dest/messaging/index.js +1 -0
  401. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  402. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  403. package/dest/messaging/l1_to_l2_message.js +11 -13
  404. package/dest/messaging/l2_to_l1_membership.d.ts +35 -5
  405. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  406. package/dest/messaging/l2_to_l1_membership.js +52 -7
  407. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  408. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  409. package/dest/messaging/l2_to_l1_message.js +21 -12
  410. package/dest/noir/index.d.ts +3 -1
  411. package/dest/noir/index.d.ts.map +1 -1
  412. package/dest/note/note.d.ts +2 -2
  413. package/dest/note/note.d.ts.map +1 -1
  414. package/dest/note/note_dao.d.ts +1 -1
  415. package/dest/note/note_dao.d.ts.map +1 -1
  416. package/dest/note/note_dao.js +1 -4
  417. package/dest/p2p/block_proposal.d.ts +31 -14
  418. package/dest/p2p/block_proposal.d.ts.map +1 -1
  419. package/dest/p2p/block_proposal.js +57 -39
  420. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  421. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  422. package/dest/p2p/checkpoint_attestation.js +23 -24
  423. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  424. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  425. package/dest/p2p/checkpoint_proposal.js +59 -51
  426. package/dest/p2p/consensus_payload.d.ts +26 -20
  427. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  428. package/dest/p2p/consensus_payload.js +38 -19
  429. package/dest/p2p/gossipable.d.ts +4 -4
  430. package/dest/p2p/gossipable.d.ts.map +1 -1
  431. package/dest/p2p/signature_utils.d.ts +28 -19
  432. package/dest/p2p/signature_utils.d.ts.map +1 -1
  433. package/dest/p2p/signature_utils.js +118 -21
  434. package/dest/p2p/signed_txs.d.ts +15 -13
  435. package/dest/p2p/signed_txs.d.ts.map +1 -1
  436. package/dest/p2p/signed_txs.js +26 -24
  437. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  438. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  439. package/dest/parity/parity_base_private_inputs.js +7 -5
  440. package/dest/parity/parity_public_inputs.d.ts +8 -4
  441. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  442. package/dest/parity/parity_public_inputs.js +6 -3
  443. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  444. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  445. package/dest/proofs/chonk_proof.d.ts +57 -7
  446. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  447. package/dest/proofs/chonk_proof.js +112 -15
  448. package/dest/proofs/recursive_proof.d.ts +2 -2
  449. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  450. package/dest/rollup/block_headers_hash.d.ts +1 -1
  451. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  452. package/dest/rollup/block_headers_hash.js +8 -2
  453. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  454. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  455. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  456. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  457. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  458. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  459. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  460. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  461. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  462. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  463. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  464. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  465. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  466. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  467. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  468. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  469. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  470. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  471. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  472. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  473. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  474. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  475. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  476. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  477. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  478. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  479. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  480. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  481. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  482. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  483. package/dest/schemas/schemas.d.ts +32 -78
  484. package/dest/schemas/schemas.d.ts.map +1 -1
  485. package/dest/schemas/schemas.js +2 -2
  486. package/dest/slashing/helpers.d.ts +2 -2
  487. package/dest/slashing/helpers.d.ts.map +1 -1
  488. package/dest/slashing/helpers.js +10 -7
  489. package/dest/slashing/index.d.ts +2 -3
  490. package/dest/slashing/index.d.ts.map +1 -1
  491. package/dest/slashing/index.js +1 -2
  492. package/dest/slashing/serialization.d.ts +2 -6
  493. package/dest/slashing/serialization.d.ts.map +1 -1
  494. package/dest/slashing/serialization.js +0 -60
  495. package/dest/slashing/types.d.ts +18 -112
  496. package/dest/slashing/types.d.ts.map +1 -1
  497. package/dest/slashing/types.js +16 -24
  498. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  499. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  500. package/dest/slashing/{tally.js → votes.js} +1 -1
  501. package/dest/snapshots/types.d.ts +15 -78
  502. package/dest/snapshots/types.d.ts.map +1 -1
  503. package/dest/stats/stats.d.ts +2 -2
  504. package/dest/stats/stats.d.ts.map +1 -1
  505. package/dest/tests/factories.d.ts +25 -32
  506. package/dest/tests/factories.d.ts.map +1 -1
  507. package/dest/tests/factories.js +82 -82
  508. package/dest/tests/mocks.d.ts +8 -5
  509. package/dest/tests/mocks.d.ts.map +1 -1
  510. package/dest/tests/mocks.js +42 -54
  511. package/dest/timetable/index.d.ts +51 -1
  512. package/dest/timetable/index.d.ts.map +1 -1
  513. package/dest/timetable/index.js +218 -14
  514. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  515. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  516. package/dest/trees/append_only_tree_snapshot.js +6 -3
  517. package/dest/trees/nullifier_leaf.d.ts +19 -42
  518. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  519. package/dest/trees/nullifier_leaf.js +3 -0
  520. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  521. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  522. package/dest/trees/nullifier_membership_witness.js +2 -14
  523. package/dest/trees/public_data_leaf.d.ts +21 -53
  524. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  525. package/dest/trees/public_data_witness.d.ts +16 -58
  526. package/dest/trees/public_data_witness.d.ts.map +1 -1
  527. package/dest/tx/block_header.d.ts +5 -4
  528. package/dest/tx/block_header.d.ts.map +1 -1
  529. package/dest/tx/block_header.js +7 -4
  530. package/dest/tx/call_context.d.ts +4 -14
  531. package/dest/tx/call_context.d.ts.map +1 -1
  532. package/dest/tx/capsule.d.ts +7 -3
  533. package/dest/tx/capsule.d.ts.map +1 -1
  534. package/dest/tx/capsule.js +9 -3
  535. package/dest/tx/fee_provider.d.ts +10 -0
  536. package/dest/tx/fee_provider.d.ts.map +1 -0
  537. package/dest/tx/fee_provider.js +1 -0
  538. package/dest/tx/function_data.d.ts +4 -10
  539. package/dest/tx/function_data.d.ts.map +1 -1
  540. package/dest/tx/global_variable_builder.d.ts +3 -4
  541. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  542. package/dest/tx/global_variables.d.ts +16 -49
  543. package/dest/tx/global_variables.d.ts.map +1 -1
  544. package/dest/tx/global_variables.js +8 -12
  545. package/dest/tx/hashed_values.d.ts +4 -3
  546. package/dest/tx/hashed_values.d.ts.map +1 -1
  547. package/dest/tx/hashed_values.js +6 -3
  548. package/dest/tx/in_tx.d.ts +5 -17
  549. package/dest/tx/in_tx.d.ts.map +1 -1
  550. package/dest/tx/index.d.ts +2 -1
  551. package/dest/tx/index.d.ts.map +1 -1
  552. package/dest/tx/index.js +1 -0
  553. package/dest/tx/indexed_tx_effect.d.ts +4 -18
  554. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  555. package/dest/tx/indexed_tx_effect.js +1 -2
  556. package/dest/tx/partial_state_reference.d.ts +22 -65
  557. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  558. package/dest/tx/partial_state_reference.js +6 -3
  559. package/dest/tx/private_execution_result.d.ts +6 -16
  560. package/dest/tx/private_execution_result.d.ts.map +1 -1
  561. package/dest/tx/profiling.d.ts +54 -352
  562. package/dest/tx/profiling.d.ts.map +1 -1
  563. package/dest/tx/profiling.js +4 -4
  564. package/dest/tx/protocol_contracts.d.ts +5 -9
  565. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  566. package/dest/tx/proven_tx.d.ts +30 -74
  567. package/dest/tx/proven_tx.d.ts.map +1 -1
  568. package/dest/tx/proven_tx.js +6 -0
  569. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  570. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  571. package/dest/tx/public_call_request_with_calldata.js +6 -3
  572. package/dest/tx/simulated_tx.d.ts +64 -1143
  573. package/dest/tx/simulated_tx.d.ts.map +1 -1
  574. package/dest/tx/simulated_tx.js +13 -11
  575. package/dest/tx/state_reference.d.ts +30 -117
  576. package/dest/tx/state_reference.d.ts.map +1 -1
  577. package/dest/tx/state_reference.js +6 -4
  578. package/dest/tx/tree_snapshots.d.ts +27 -84
  579. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  580. package/dest/tx/tree_snapshots.js +6 -4
  581. package/dest/tx/tx.d.ts +7 -13
  582. package/dest/tx/tx.d.ts.map +1 -1
  583. package/dest/tx/tx.js +22 -23
  584. package/dest/tx/tx_constant_data.d.ts +4 -3
  585. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  586. package/dest/tx/tx_constant_data.js +6 -3
  587. package/dest/tx/tx_context.d.ts +32 -131
  588. package/dest/tx/tx_context.d.ts.map +1 -1
  589. package/dest/tx/tx_context.js +6 -6
  590. package/dest/tx/tx_hash.d.ts +6 -4
  591. package/dest/tx/tx_hash.d.ts.map +1 -1
  592. package/dest/tx/tx_hash.js +13 -5
  593. package/dest/tx/tx_receipt.d.ts +2 -4
  594. package/dest/tx/tx_receipt.d.ts.map +1 -1
  595. package/dest/tx/tx_receipt.js +2 -15
  596. package/dest/tx/validator/error_texts.d.ts +5 -1
  597. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  598. package/dest/tx/validator/error_texts.js +6 -0
  599. package/dest/tx/validator/tx_validator.d.ts +5 -27
  600. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  601. package/dest/tx/validator/tx_validator.js +0 -4
  602. package/dest/types/shared.d.ts +4 -12
  603. package/dest/types/shared.d.ts.map +1 -1
  604. package/dest/types/shared.js +6 -12
  605. package/dest/update-checker/dev_version.d.ts +3 -0
  606. package/dest/update-checker/dev_version.d.ts.map +1 -0
  607. package/dest/update-checker/dev_version.js +1 -0
  608. package/dest/update-checker/index.d.ts +2 -1
  609. package/dest/update-checker/index.d.ts.map +1 -1
  610. package/dest/update-checker/index.js +1 -0
  611. package/dest/update-checker/package_version.d.ts +6 -3
  612. package/dest/update-checker/package_version.d.ts.map +1 -1
  613. package/dest/update-checker/package_version.js +8 -19
  614. package/dest/validators/schemas.d.ts +147 -614
  615. package/dest/validators/schemas.d.ts.map +1 -1
  616. package/dest/validators/schemas.js +6 -4
  617. package/dest/validators/types.d.ts +20 -3
  618. package/dest/validators/types.d.ts.map +1 -1
  619. package/dest/versioning/versioning.js +1 -1
  620. package/dest/vks/verification_key.d.ts +4 -139
  621. package/dest/vks/verification_key.d.ts.map +1 -1
  622. package/dest/vks/verification_key.js +5 -126
  623. package/dest/world-state/genesis_data.d.ts +13 -0
  624. package/dest/world-state/genesis_data.d.ts.map +1 -0
  625. package/dest/world-state/genesis_data.js +7 -0
  626. package/dest/world-state/index.d.ts +2 -1
  627. package/dest/world-state/index.d.ts.map +1 -1
  628. package/dest/world-state/index.js +1 -0
  629. package/dest/world-state/world_state_revision.d.ts +15 -26
  630. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  631. package/dest/world-state/world_state_revision.js +7 -1
  632. package/package.json +12 -11
  633. package/src/abi/abi.ts +78 -21
  634. package/src/abi/authorization_selector.ts +2 -8
  635. package/src/abi/buffer.ts +25 -4
  636. package/src/abi/contract_artifact.ts +11 -6
  637. package/src/abi/decoder.ts +23 -78
  638. package/src/abi/encoder.ts +42 -6
  639. package/src/abi/event_selector.ts +2 -8
  640. package/src/abi/function_selector.ts +4 -13
  641. package/src/abi/function_signature_decoder.ts +77 -0
  642. package/src/abi/index.ts +1 -0
  643. package/src/abi/note_selector.ts +3 -12
  644. package/src/abi/selector.ts +1 -1
  645. package/src/abi/utils.ts +6 -4
  646. package/src/avm/avm.ts +5 -0
  647. package/src/avm/message_pack.ts +12 -3
  648. package/src/avm/revert_code.ts +19 -39
  649. package/src/aztec-address/index.ts +15 -12
  650. package/src/block/attestation_info.ts +11 -11
  651. package/src/block/block_data.ts +3 -4
  652. package/src/block/block_hash.ts +21 -14
  653. package/src/block/block_parameter.ts +72 -4
  654. package/src/block/index.ts +0 -1
  655. package/src/block/l2_block_info.ts +8 -6
  656. package/src/block/l2_block_source.ts +194 -142
  657. package/src/block/l2_block_stream/interfaces.ts +6 -2
  658. package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
  659. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  660. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  661. package/src/block/proposal/attestations_and_signers.ts +32 -17
  662. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  663. package/src/checkpoint/checkpoint.ts +11 -1
  664. package/src/checkpoint/checkpoint_data.ts +44 -4
  665. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  666. package/src/checkpoint/digest.ts +28 -0
  667. package/src/checkpoint/index.ts +3 -0
  668. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  669. package/src/config/chain-config.ts +13 -16
  670. package/src/config/sequencer-config.ts +34 -6
  671. package/src/contract/complete_address.ts +7 -3
  672. package/src/contract/contract_address.ts +6 -6
  673. package/src/contract/contract_instance.ts +11 -2
  674. package/src/contract/index.ts +0 -2
  675. package/src/contract/interfaces/contract_class.ts +2 -82
  676. package/src/contract/interfaces/contract_instance.ts +6 -2
  677. package/src/contract/private_function.ts +3 -1
  678. package/src/database-version/version_manager.ts +17 -0
  679. package/src/epoch-helpers/index.ts +24 -0
  680. package/src/file-store/factory.ts +13 -4
  681. package/src/file-store/http.ts +29 -10
  682. package/src/file-store/index.ts +1 -0
  683. package/src/gas/README.md +31 -0
  684. package/src/gas/fee_math.ts +120 -0
  685. package/src/gas/gas.ts +8 -3
  686. package/src/gas/gas_fees.ts +26 -13
  687. package/src/gas/gas_settings.ts +73 -15
  688. package/src/gas/index.ts +1 -0
  689. package/src/ha-signing/config.ts +14 -18
  690. package/src/ha-signing/index.ts +3 -1
  691. package/src/ha-signing/local_config.ts +2 -2
  692. package/src/ha-signing/types.ts +48 -34
  693. package/src/hash/hash.ts +34 -2
  694. package/src/interfaces/api_limit.ts +1 -1
  695. package/src/interfaces/archiver.ts +82 -92
  696. package/src/interfaces/aztec-node-admin.ts +35 -20
  697. package/src/interfaces/aztec-node-debug.ts +40 -0
  698. package/src/interfaces/aztec-node.ts +253 -252
  699. package/src/interfaces/block-builder.ts +2 -0
  700. package/src/interfaces/block_response.ts +92 -0
  701. package/src/interfaces/chain_tips.ts +24 -0
  702. package/src/interfaces/checkpoint_parameter.ts +20 -0
  703. package/src/interfaces/checkpoint_response.ts +84 -0
  704. package/src/interfaces/client.ts +7 -1
  705. package/src/interfaces/configs.ts +40 -1
  706. package/src/interfaces/l1_publish_info.ts +40 -0
  707. package/src/interfaces/l2_logs_source.ts +13 -42
  708. package/src/interfaces/merkle_tree_operations.ts +3 -2
  709. package/src/interfaces/p2p-bootstrap.ts +2 -2
  710. package/src/interfaces/p2p.ts +35 -15
  711. package/src/interfaces/private_kernel_prover.ts +88 -0
  712. package/src/interfaces/prover-agent.ts +1 -1
  713. package/src/interfaces/prover-client.ts +2 -5
  714. package/src/interfaces/prover-node.ts +7 -7
  715. package/src/interfaces/proving-job-source.ts +4 -4
  716. package/src/interfaces/proving-job.ts +3 -3
  717. package/src/interfaces/public_storage_override.ts +26 -0
  718. package/src/interfaces/server.ts +5 -0
  719. package/src/interfaces/slasher.ts +17 -10
  720. package/src/interfaces/tx_provider.ts +6 -0
  721. package/src/interfaces/validator.ts +34 -15
  722. package/src/interfaces/world_state.ts +1 -1
  723. package/src/kernel/hints/key_validation_request.ts +18 -16
  724. package/src/kernel/index.ts +4 -0
  725. package/src/kernel/log_hash.ts +29 -9
  726. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  727. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  728. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  729. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  730. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  731. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  732. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  733. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  734. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  735. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  736. package/src/kernel/public_call_request.ts +22 -7
  737. package/src/keys/derivation.ts +21 -9
  738. package/src/keys/public_key.ts +26 -2
  739. package/src/keys/public_keys.ts +124 -110
  740. package/src/kv-store/config.ts +3 -10
  741. package/src/l1-contracts/index.ts +1 -1
  742. package/src/logs/app_tagging_secret.ts +137 -0
  743. package/src/logs/app_tagging_secret_kind.ts +6 -0
  744. package/src/logs/contract_class_log.ts +15 -5
  745. package/src/logs/index.ts +6 -6
  746. package/src/logs/log_cursor.ts +110 -0
  747. package/src/logs/log_result.ts +104 -0
  748. package/src/logs/logs_query.ts +138 -0
  749. package/src/logs/message_context.ts +22 -8
  750. package/src/logs/pending_tagged_log.ts +1 -3
  751. package/src/logs/pre_tag.ts +3 -6
  752. package/src/logs/private_log.ts +9 -3
  753. package/src/logs/query_all_logs_by_tags.ts +98 -0
  754. package/src/logs/shared_secret_derivation.ts +21 -10
  755. package/src/logs/siloed_tag.ts +20 -11
  756. package/src/logs/tag.ts +8 -8
  757. package/src/logs/tagging_index_range.ts +4 -10
  758. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  759. package/src/messaging/index.ts +1 -0
  760. package/src/messaging/l1_to_l2_message.ts +12 -9
  761. package/src/messaging/l2_to_l1_membership.ts +85 -13
  762. package/src/messaging/l2_to_l1_message.ts +29 -9
  763. package/src/noir/index.ts +2 -0
  764. package/src/note/note_dao.ts +1 -4
  765. package/src/p2p/block_proposal.ts +111 -36
  766. package/src/p2p/checkpoint_attestation.ts +27 -31
  767. package/src/p2p/checkpoint_proposal.ts +128 -73
  768. package/src/p2p/consensus_payload.ts +59 -28
  769. package/src/p2p/gossipable.ts +4 -4
  770. package/src/p2p/signature_utils.ts +110 -25
  771. package/src/p2p/signed_txs.ts +46 -28
  772. package/src/parity/parity_base_private_inputs.ts +10 -4
  773. package/src/parity/parity_public_inputs.ts +9 -2
  774. package/src/proofs/chonk_proof.ts +132 -12
  775. package/src/rollup/block_headers_hash.ts +11 -2
  776. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  777. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  778. package/src/schemas/schemas.ts +6 -1
  779. package/src/slashing/helpers.ts +13 -9
  780. package/src/slashing/index.ts +1 -2
  781. package/src/slashing/serialization.ts +1 -81
  782. package/src/slashing/types.ts +24 -49
  783. package/src/slashing/{tally.ts → votes.ts} +1 -1
  784. package/src/stats/stats.ts +4 -0
  785. package/src/tests/factories.ts +103 -111
  786. package/src/tests/mocks.ts +66 -70
  787. package/src/timetable/index.ts +308 -13
  788. package/src/trees/append_only_tree_snapshot.ts +8 -3
  789. package/src/trees/nullifier_leaf.ts +4 -0
  790. package/src/trees/nullifier_membership_witness.ts +2 -12
  791. package/src/tx/block_header.ts +10 -5
  792. package/src/tx/capsule.ts +10 -2
  793. package/src/tx/fee_provider.ts +10 -0
  794. package/src/tx/global_variable_builder.ts +2 -3
  795. package/src/tx/global_variables.ts +10 -18
  796. package/src/tx/hashed_values.ts +8 -3
  797. package/src/tx/index.ts +1 -0
  798. package/src/tx/indexed_tx_effect.ts +1 -2
  799. package/src/tx/partial_state_reference.ts +8 -3
  800. package/src/tx/profiling.ts +4 -4
  801. package/src/tx/proven_tx.ts +6 -0
  802. package/src/tx/public_call_request_with_calldata.ts +8 -3
  803. package/src/tx/simulated_tx.ts +22 -21
  804. package/src/tx/state_reference.ts +9 -4
  805. package/src/tx/tree_snapshots.ts +9 -4
  806. package/src/tx/tx.ts +33 -24
  807. package/src/tx/tx_constant_data.ts +8 -3
  808. package/src/tx/tx_context.ts +8 -3
  809. package/src/tx/tx_hash.ts +20 -5
  810. package/src/tx/tx_receipt.ts +2 -14
  811. package/src/tx/validator/error_texts.ts +8 -0
  812. package/src/tx/validator/tx_validator.ts +1 -5
  813. package/src/types/shared.ts +8 -13
  814. package/src/update-checker/dev_version.ts +2 -0
  815. package/src/update-checker/index.ts +1 -0
  816. package/src/update-checker/package_version.ts +10 -23
  817. package/src/validators/schemas.ts +6 -4
  818. package/src/validators/types.ts +21 -2
  819. package/src/versioning/versioning.ts +1 -1
  820. package/src/vks/verification_key.ts +5 -184
  821. package/src/world-state/genesis_data.ts +27 -0
  822. package/src/world-state/index.ts +1 -0
  823. package/src/world-state/world_state_revision.ts +9 -1
  824. package/dest/abi/mocked_keys.d.ts +0 -2
  825. package/dest/abi/mocked_keys.d.ts.map +0 -1
  826. package/dest/abi/mocked_keys.js +0 -1
  827. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  828. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  829. package/dest/block/checkpointed_l2_block.js +0 -46
  830. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  831. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  832. package/dest/contract/private_function_membership_proof.js +0 -124
  833. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  834. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  835. package/dest/contract/utility_function_membership_proof.js +0 -87
  836. package/dest/interfaces/get_logs_response.d.ts +0 -97
  837. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  838. package/dest/interfaces/get_logs_response.js +0 -12
  839. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  840. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  841. package/dest/l1-contracts/slash_factory.js +0 -158
  842. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  843. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  844. package/dest/logs/extended_contract_class_log.js +0 -67
  845. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  846. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  847. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  848. package/dest/logs/extended_public_log.d.ts +0 -106
  849. package/dest/logs/extended_public_log.d.ts.map +0 -1
  850. package/dest/logs/extended_public_log.js +0 -73
  851. package/dest/logs/log_filter.d.ts +0 -25
  852. package/dest/logs/log_filter.d.ts.map +0 -1
  853. package/dest/logs/log_filter.js +0 -12
  854. package/dest/logs/log_id.d.ts +0 -85
  855. package/dest/logs/log_id.d.ts.map +0 -1
  856. package/dest/logs/log_id.js +0 -94
  857. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  858. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  859. package/dest/logs/tx_scoped_l2_log.js +0 -77
  860. package/dest/slashing/empire.d.ts +0 -31
  861. package/dest/slashing/empire.d.ts.map +0 -1
  862. package/dest/slashing/empire.js +0 -87
  863. package/src/abi/mocked_keys.ts +0 -2
  864. package/src/block/checkpointed_l2_block.ts +0 -70
  865. package/src/contract/private_function_membership_proof.ts +0 -167
  866. package/src/contract/utility_function_membership_proof.ts +0 -118
  867. package/src/interfaces/get_logs_response.ts +0 -35
  868. package/src/l1-contracts/slash_factory.ts +0 -180
  869. package/src/logs/extended_contract_class_log.ts +0 -87
  870. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  871. package/src/logs/extended_public_log.ts +0 -94
  872. package/src/logs/log_filter.ts +0 -36
  873. package/src/logs/log_id.ts +0 -125
  874. package/src/logs/tx_scoped_l2_log.ts +0 -114
  875. package/src/slashing/empire.ts +0 -104
@@ -4,29 +4,92 @@ import {
4
4
  CheckpointNumber,
5
5
  CheckpointNumberSchema,
6
6
  type EpochNumber,
7
+ EpochNumberSchema,
7
8
  type SlotNumber,
9
+ SlotNumberSchema,
8
10
  } from '@aztec/foundation/branded-types';
9
11
  import type { Fr } from '@aztec/foundation/curves/bn254';
10
12
  import type { EthAddress } from '@aztec/foundation/eth-address';
13
+ import { schemas } from '@aztec/foundation/schemas';
11
14
  import type { TypedEventEmitter } from '@aztec/foundation/types';
12
15
 
13
16
  import { z } from 'zod';
14
17
 
15
- import type { Checkpoint } from '../checkpoint/checkpoint.js';
16
- import type { CheckpointData } from '../checkpoint/checkpoint_data.js';
18
+ import type { CheckpointData, ProposedCheckpointData, ProposedCheckpointInput } from '../checkpoint/checkpoint_data.js';
19
+ import type { CheckpointInfo } from '../checkpoint/checkpoint_info.js';
17
20
  import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
18
21
  import type { L1RollupConstants } from '../epoch-helpers/index.js';
19
22
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
- import type { BlockHeader } from '../tx/block_header.js';
21
23
  import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
22
24
  import type { TxHash } from '../tx/tx_hash.js';
23
25
  import type { TxReceipt } from '../tx/tx_receipt.js';
24
26
  import type { BlockData } from './block_data.js';
25
- import type { BlockHash } from './block_hash.js';
26
- import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
27
+ import { BlockHash } from './block_hash.js';
28
+ import { BlockTagWithoutLatestSchema, type NormalizedBlockParameter } from './block_parameter.js';
27
29
  import type { L2Block } from './l2_block.js';
28
30
  import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
29
31
 
32
+ /** Lookup a single block by block number, hash, archive root, or chain-tip tag. */
33
+ export type BlockQuery = NormalizedBlockParameter;
34
+
35
+ /**
36
+ * Query a range of blocks by start/limit or by epoch.
37
+ *
38
+ * The `epoch` variant requires `onlyCheckpointed: true` because epoch boundaries are only
39
+ * meaningful for the checkpointed chain — the proposed chain may include uncheckpointed
40
+ * blocks past the epoch boundary that callers should not receive.
41
+ */
42
+ export type BlocksQuery =
43
+ | { from: BlockNumber; limit: number; onlyCheckpointed?: boolean }
44
+ | { epoch: EpochNumber; onlyCheckpointed: true };
45
+
46
+ export const BlockQuerySchema: z.ZodType<BlockQuery, unknown> = z.union([
47
+ z.object({ number: BlockNumberSchema }).strict(),
48
+ z.object({ hash: BlockHash.schema }).strict(),
49
+ z.object({ archive: schemas.Fr }).strict(),
50
+ z.object({ tag: BlockTagWithoutLatestSchema }).strict(),
51
+ ]);
52
+
53
+ export const BlocksQuerySchema: z.ZodType<BlocksQuery, unknown> = z.union([
54
+ z
55
+ .object({ from: BlockNumberSchema, limit: z.number().int().min(1), onlyCheckpointed: z.boolean().optional() })
56
+ .strict(),
57
+ z.object({ epoch: EpochNumberSchema, onlyCheckpointed: z.literal(true) }).strict(),
58
+ ]);
59
+
60
+ /** Lookup a single confirmed checkpoint by checkpoint number, slot, or chain-tip tag. */
61
+ export type CheckpointQuery =
62
+ | { number: CheckpointNumber }
63
+ | { slot: SlotNumber }
64
+ | { tag: 'checkpointed' | 'proven' | 'finalized' };
65
+
66
+ /** Query a range of confirmed checkpoints by start/limit or by epoch. */
67
+ export type CheckpointsQuery = { from: CheckpointNumber; limit: number } | { epoch: EpochNumber };
68
+
69
+ /**
70
+ * Lookup a proposed (archiver-internal, not-yet-L1-confirmed) checkpoint.
71
+ * Distinct from CheckpointQuery because proposed checkpoints have a different shape
72
+ * (no l1, no attestations, but carries totalManaUsed) and live in their own LMDB map.
73
+ */
74
+ export type ProposedCheckpointQuery = { number: CheckpointNumber } | { slot: SlotNumber } | { tag: 'proposed' };
75
+
76
+ export const CheckpointQuerySchema: z.ZodType<CheckpointQuery, unknown> = z.union([
77
+ z.object({ number: CheckpointNumberSchema }).strict(),
78
+ z.object({ slot: SlotNumberSchema }).strict(),
79
+ z.object({ tag: z.union([z.literal('checkpointed'), z.literal('proven'), z.literal('finalized')]) }).strict(),
80
+ ]);
81
+
82
+ export const CheckpointsQuerySchema: z.ZodType<CheckpointsQuery, unknown> = z.union([
83
+ z.object({ from: CheckpointNumberSchema, limit: z.number().int().min(1) }).strict(),
84
+ z.object({ epoch: EpochNumberSchema }).strict(),
85
+ ]);
86
+
87
+ export const ProposedCheckpointQuerySchema: z.ZodType<ProposedCheckpointQuery, unknown> = z.union([
88
+ z.object({ number: CheckpointNumberSchema }).strict(),
89
+ z.object({ slot: SlotNumberSchema }).strict(),
90
+ z.object({ tag: z.literal('proposed') }).strict(),
91
+ ]);
92
+
30
93
  /**
31
94
  * Interface of classes allowing for the retrieval of L2 blocks.
32
95
  */
@@ -50,115 +113,46 @@ export interface L2BlockSource {
50
113
  getBlockNumber(): Promise<BlockNumber>;
51
114
 
52
115
  /**
53
- * Gets the number of the latest L2 checkpoint processed by the block source implementation.
54
- * @returns The number of the latest L2 checkpoint processed by the block source implementation.
55
- */
56
- getCheckpointNumber(): Promise<CheckpointNumber>;
57
-
58
- /**
59
- * Gets the number of the latest L2 block proven seen by the block source implementation.
60
- * @returns The number of the latest L2 block proven seen by the block source implementation.
61
- */
62
- getProvenBlockNumber(): Promise<BlockNumber>;
63
-
64
- /**
65
- * Gets the number of the latest L2 block checkpointed seen by the block source implementation.
66
- * @returns The number of the latest L2 block checkpointed seen by the block source implementation.
67
- */
68
- getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
69
-
70
- /**
71
- * Returns the finalized L2 block number. A block is finalized when it was proven
72
- * in an L1 block that has itself been finalized on Ethereum.
73
- * @returns The finalized block number.
74
- */
75
- getFinalizedL2BlockNumber(): Promise<BlockNumber>;
76
-
77
- /**
78
- * Gets an l2 block header.
79
- * @param number - The block number to return or 'latest' for the most recent one.
80
- * @returns The requested L2 block header.
81
- */
82
- getBlockHeader(number: BlockNumber | 'latest'): Promise<BlockHeader | undefined>;
83
-
84
- /**
85
- * Gets a checkpointed L2 block by block number.
86
- * Returns undefined if the block doesn't exist or hasn't been checkpointed yet.
87
- * @param number - The block number to retrieve.
88
- * @returns The requested checkpointed L2 block (or undefined if not found or not checkpointed).
89
- */
90
- getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
91
-
92
- getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
93
-
94
- /**
95
- * Retrieves a collection of checkpoints.
96
- * @param checkpointNumber The first checkpoint to be retrieved.
97
- * @param limit The number of checkpoints to be retrieved.
98
- * @returns The collection of complete checkpoints.
99
- */
100
- getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
101
-
102
- /**
103
- * Gets the checkpoints for a given epoch
104
- * @param epochNumber - Epoch for which we want checkpoint data
105
- */
106
- getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
107
-
108
- /**
109
- * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
110
- * @param epochNumber - Epoch for which we want checkpoint data
111
- */
112
- getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
113
-
114
- /**
115
- * Gets a block header by its hash.
116
- * @param blockHash - The block hash to retrieve.
117
- * @returns The requested block header (or undefined if not found).
118
- */
119
- getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
120
-
121
- /**
122
- * Gets a block header by its archive root.
123
- * @param archive - The archive root to retrieve.
124
- * @returns The requested block header (or undefined if not found).
116
+ * Resolves a {@link BlockQuery} to its concrete L2 block number.
117
+ * @param query - Lookup by block number, hash, archive root, or chain-tip tag.
118
+ * @returns The block number, or undefined if no block matches the query.
125
119
  */
126
- getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
120
+ getBlockNumber(query: BlockQuery): Promise<BlockNumber | undefined>;
121
+ getBlockNumber(query?: BlockQuery): Promise<BlockNumber | undefined>;
127
122
 
128
123
  /**
129
- * Gets block metadata (without tx data) by block number.
130
- * @param number - The block number to retrieve.
131
- * @returns The requested block data (or undefined if not found).
124
+ * Gets the number of the latest L2 checkpoint processed by the block source implementation.
125
+ * @returns The number of the latest L2 checkpoint processed by the block source implementation.
132
126
  */
133
- getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
127
+ getCheckpointNumber(): Promise<CheckpointNumber>;
134
128
 
135
129
  /**
136
- * Gets block metadata (without tx data) by archive root.
137
- * @param archive - The archive root to retrieve.
138
- * @returns The requested block data (or undefined if not found).
130
+ * Gets a single confirmed checkpoint matching the given query.
131
+ * Heavy shape: includes nested full `L2Block`s with transaction bodies.
132
+ * @param query - Lookup by checkpoint number, slot, or chain-tip tag.
139
133
  */
140
- getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
134
+ getCheckpoint(query: CheckpointQuery): Promise<PublishedCheckpoint | undefined>;
141
135
 
142
136
  /**
143
- * Gets an L2 block by block number.
144
- * @param number - The block number to return.
145
- * @returns The requested L2 block (or undefined if not found).
137
+ * Gets a collection of confirmed checkpoints matching the given query.
138
+ * Heavy shape: includes nested full `L2Block`s with transaction bodies.
139
+ * @param query - Range by start/limit or by epoch.
146
140
  */
147
- getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
141
+ getCheckpoints(query: CheckpointsQuery): Promise<PublishedCheckpoint[]>;
148
142
 
149
143
  /**
150
- * Gets an L2 block by its hash.
151
- * @param blockHash - The block hash to retrieve.
152
- * @returns The requested L2 block (or undefined if not found).
144
+ * Gets lightweight checkpoint metadata for a single checkpoint.
145
+ * Cheap passthrough for metadata-only queries (no block body reads).
146
+ * @param query - Lookup by checkpoint number, slot, or chain-tip tag.
153
147
  */
154
- getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
148
+ getCheckpointData(query: CheckpointQuery): Promise<CheckpointData | undefined>;
155
149
 
156
150
  /**
157
- * Gets an L2 block by its archive root.
158
- * @param archive - The archive root to retrieve.
159
- * @returns The requested L2 block (or undefined if not found).
151
+ * Gets a collection of lightweight checkpoint metadata entries matching the given query.
152
+ * Cheap passthrough for metadata-only queries (no block body reads).
153
+ * @param query - Range by start/limit or by epoch.
160
154
  */
161
- getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
155
+ getCheckpointsData(query: CheckpointsQuery): Promise<CheckpointData[]>;
162
156
 
163
157
  /**
164
158
  * Gets a tx effect.
@@ -175,8 +169,10 @@ export interface L2BlockSource {
175
169
  getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
176
170
 
177
171
  /**
178
- * Returns the last L2 slot number that has been fully synchronized from L1.
179
- * An L2 slot is fully synced when all L1 blocks that fall within its time range have been processed.
172
+ * Returns the last L2 slot number for which we have all L1 data needed to build the next checkpoint.
173
+ * Determined by the max of two signals: L1 block sync progress and latest synced checkpoint slot.
174
+ * The checkpoint signal handles missed L1 blocks, since a published checkpoint seals the message tree
175
+ * for the next checkpoint via the inbox LAG mechanism.
180
176
  */
181
177
  getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
182
178
 
@@ -186,13 +182,6 @@ export interface L2BlockSource {
186
182
  */
187
183
  getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
188
184
 
189
- /**
190
- * Returns all checkpointed block headers for a given epoch.
191
- * @dev Use this method only with recent epochs, since it walks the block list backwards.
192
- * @param epochNumber - The epoch number to return headers for.
193
- */
194
- getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
195
-
196
185
  /**
197
186
  * Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
198
187
  * @param epochNumber - The epoch number to check.
@@ -209,9 +198,22 @@ export interface L2BlockSource {
209
198
  */
210
199
  getL1Constants(): Promise<L1RollupConstants>;
211
200
 
201
+ /**
202
+ * Returns true iff `canPruneAtTime` would be true at the latest L1 timestamp inside
203
+ * the L2 slot's window. Computed entirely from local archiver state (no L1 RPC).
204
+ * @param slot - The L2 slot to check.
205
+ */
206
+ isPruneDueAtSlot(slot: SlotNumber): Promise<boolean>;
207
+
212
208
  /** Returns values for the genesis block */
213
209
  getGenesisValues(): Promise<{ genesisArchiveRoot: Fr }>;
214
210
 
211
+ /**
212
+ * Returns the precomputed hash of the genesis block header. Synchronous because the hash
213
+ * is derived from the initial block header at construction time and cached by implementers.
214
+ */
215
+ getGenesisBlockHash(): BlockHash;
216
+
215
217
  /** Latest synced L1 timestamp. */
216
218
  getL1Timestamp(): Promise<bigint | undefined>;
217
219
 
@@ -227,53 +229,47 @@ export interface L2BlockSource {
227
229
  */
228
230
  getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
229
231
 
232
+ /**
233
+ * Looks up a proposed (archiver-internal, not-yet-L1-confirmed) checkpoint.
234
+ * Returns the latest proposed entry when called with no args or `{ tag: 'proposed' }`.
235
+ * With `{ number }` or `{ slot }`, returns the matching entry or undefined.
236
+ * Never falls back to confirmed checkpoints.
237
+ */
238
+ getProposedCheckpointData(query?: ProposedCheckpointQuery): Promise<ProposedCheckpointData | undefined>;
239
+
230
240
  /** Force a sync. */
231
241
  syncImmediate(): Promise<void>;
232
242
 
233
- /* Legacy APIS */
234
-
235
243
  /**
236
- * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
237
- * @param number - The block number to return (inclusive).
238
- * @returns The requested L2 block.
244
+ * Gets an L2 block matching the given query.
245
+ * @param query - Lookup by block number, hash, or archive root.
239
246
  */
240
- getBlock(number: BlockNumber): Promise<L2Block | undefined>;
247
+ getBlock(query: BlockQuery): Promise<L2Block | undefined>;
241
248
 
242
249
  /**
243
- * Returns all checkpointed blocks for a given epoch.
244
- * @dev Use this method only with recent epochs, since it walks the block list backwards.
245
- * @param epochNumber - The epoch number to return blocks for.
250
+ * Gets a collection of L2 blocks matching the given query.
251
+ * @param query - Range by start/limit or by epoch; optionally restricted to checkpointed blocks.
246
252
  */
247
- getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
253
+ getBlocks(query: BlocksQuery): Promise<L2Block[]>;
248
254
 
249
255
  /**
250
- * Returns all blocks for a given slot.
251
- * @dev Use this method only with recent slots, since it walks the block list backwards.
252
- * @param slotNumber - The slot number to return blocks for.
256
+ * Gets block metadata (without tx data) matching the given query.
257
+ * @param query - Lookup by block number, hash, or archive root.
253
258
  */
254
- getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
259
+ getBlockData(query: BlockQuery): Promise<BlockData | undefined>;
255
260
 
256
261
  /**
257
- * Gets a checkpointed block by its block hash.
258
- * @param blockHash - The block hash to retrieve.
259
- * @returns The requested block (or undefined if not found).
262
+ * Gets a collection of block metadata entries matching the given query.
263
+ * @param query - Range by start/limit or by epoch; optionally restricted to checkpointed blocks.
260
264
  */
261
- getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
265
+ getBlocksData(query: BlocksQuery): Promise<BlockData[]>;
262
266
 
263
267
  /**
264
- * Gets a checkpointed block by its archive root.
265
- * @param archive - The archive root to retrieve.
266
- * @returns The requested block (or undefined if not found).
267
- */
268
- getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
269
-
270
- /**
271
- * Gets up to `limit` amount of L2 blocks starting from `from`.
272
- * @param from - Number of the first block to return (inclusive).
273
- * @param limit - The maximum number of blocks to return.
274
- * @returns The requested L2 blocks.
268
+ * Returns all blocks for a given slot.
269
+ * @dev Use this method only with recent slots, since it walks the block list backwards.
270
+ * @param slotNumber - The slot number to return blocks for.
275
271
  */
276
- getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
272
+ getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
277
273
  }
278
274
 
279
275
  /**
@@ -288,6 +284,19 @@ export interface L2BlockSink {
288
284
  addBlock(block: L2Block): Promise<void>;
289
285
  }
290
286
 
287
+ /**
288
+ * Interface for classes that can receive and store proposed (not-yet-L1-confirmed) checkpoints.
289
+ */
290
+ export interface ProposedCheckpointSink {
291
+ /**
292
+ * Adds a proposed checkpoint to the store. The archive and checkpointOutHash are computed
293
+ * internally from the already-stored blocks, so every block in the checkpoint must be added
294
+ * (via {@link L2BlockSink.addBlock}) before calling this.
295
+ * @param checkpoint - The proposed checkpoint metadata.
296
+ */
297
+ addProposedCheckpoint(checkpoint: ProposedCheckpointInput): Promise<void>;
298
+ }
299
+
291
300
  /**
292
301
  * L2BlockSource that emits events upon pending / proven chain changes.
293
302
  * see L2BlockSourceEvents for the events emitted.
@@ -298,24 +307,36 @@ export type ArchiverEmitter = TypedEventEmitter<{
298
307
  [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
299
308
  [L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
300
309
  [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
310
+ [L2BlockSourceEvents.CheckpointEquivocationDetected]: (args: CheckpointEquivocationDetectedEvent) => void;
311
+ [L2BlockSourceEvents.DescendentOfInvalidAttestationsCheckpointDetected]: (
312
+ args: DescendentOfInvalidAttestationsCheckpointEvent,
313
+ ) => void;
301
314
  }>;
302
315
  export interface L2BlockSourceEventEmitter extends L2BlockSource {
303
316
  events: ArchiverEmitter;
304
317
  }
305
318
 
306
319
  /**
307
- * Identifier for L2 block tags.
320
+ * Identifier for L2 block tags. Internal counterpart to {@link BlockTag} that exposes
321
+ * the additional `proposedCheckpoint` value (used for the optimistic chain tip on the
322
+ * archiver side) and omits `latest` (which is an alias for `proposed` accepted only at
323
+ * the public RPC surface).
324
+ *
308
325
  * - proposed: Latest block proposed on L2.
309
- * - checkpointed: Checkpointed block on L1.
310
- * - proven: Proven block on L1.
311
- * - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
326
+ * - proposedCheckpoint: Latest block in the most recent proposed checkpoint (archiver-internal).
327
+ * - checkpointed: Latest block whose enclosing checkpoint has been published on L1.
328
+ * - proven: Latest block whose enclosing checkpoint has been proven on L1.
329
+ * - finalized: Latest block whose proving L1 transaction has reached L1 finality.
330
+ *
331
+ * TODO(palla): Remove `proposedCheckpoint` and unify with `proposed`.
312
332
  */
313
- export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
333
+ export type L2BlockTag = 'proposed' | 'proposedCheckpoint' | 'checkpointed' | 'proven' | 'finalized';
314
334
 
315
335
  /** Tips of the L2 chain. */
316
336
  export type L2Tips = {
317
337
  proposed: L2BlockId;
318
338
  checkpointed: L2TipId;
339
+ proposedCheckpoint: L2TipId;
319
340
  proven: L2TipId;
320
341
  finalized: L2TipId;
321
342
  };
@@ -360,6 +381,7 @@ const L2TipIdSchema = z.object({
360
381
  export const L2TipsSchema = z.object({
361
382
  proposed: L2BlockIdSchema,
362
383
  checkpointed: L2TipIdSchema,
384
+ proposedCheckpoint: L2TipIdSchema,
363
385
  proven: L2TipIdSchema,
364
386
  finalized: L2TipIdSchema,
365
387
  });
@@ -370,6 +392,8 @@ export enum L2BlockSourceEvents {
370
392
  L2BlockProven = 'l2BlockProven',
371
393
  L2BlocksCheckpointed = 'l2BlocksCheckpointed',
372
394
  InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
395
+ CheckpointEquivocationDetected = 'checkpointEquivocationDetected',
396
+ DescendentOfInvalidAttestationsCheckpointDetected = 'descendentOfInvalidAttestationsCheckpointDetected',
373
397
  }
374
398
 
375
399
  export type L2BlockProvenEvent = {
@@ -400,3 +424,31 @@ export type InvalidCheckpointDetectedEvent = {
400
424
  type: 'invalidCheckpointDetected';
401
425
  validationResult: ValidateCheckpointNegativeResult;
402
426
  };
427
+
428
+ /**
429
+ * Emitted when a local proposed checkpoint is found to disagree with the L1-confirmed
430
+ * checkpoint at the same slot. The slot proposer signed both — equivocation.
431
+ */
432
+ export type CheckpointEquivocationDetectedEvent = {
433
+ type: 'checkpointEquivocationDetected';
434
+ slotNumber: SlotNumber;
435
+ checkpointNumber: CheckpointNumber;
436
+ l1ArchiveRoot: Fr;
437
+ proposedArchiveRoot: Fr;
438
+ };
439
+
440
+ /**
441
+ * Emitted when the archiver observes a checkpoint that builds on a previously-rejected
442
+ * ancestor (typically one with insufficient/invalid attestations). The descendant itself may
443
+ * have valid attestations, but it cannot be ingested because the chain it extends was
444
+ * skipped. The slasher uses this to slash the proposer of the descendant.
445
+ */
446
+ export type DescendentOfInvalidAttestationsCheckpointEvent = {
447
+ type: 'descendentOfInvalidAttestationsCheckpointDetected';
448
+ /** The descendant checkpoint being rejected. */
449
+ checkpoint: CheckpointInfo;
450
+ /** Archive root of the rejected ancestor this descendant builds on. */
451
+ ancestorArchiveRoot: Fr;
452
+ /** Checkpoint number of the rejected ancestor. */
453
+ ancestorCheckpointNumber: CheckpointNumber;
454
+ };
@@ -2,10 +2,14 @@ import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.
2
2
  import type { L2Block } from '../l2_block.js';
3
3
  import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
4
4
 
5
+ /** Provides the current chain tips. Implemented by world-state, l2-tips-store, and AztecNode. */
6
+ export interface L2TipsProvider {
7
+ getL2Tips(): Promise<L2Tips>;
8
+ }
9
+
5
10
  /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
6
- export interface L2BlockStreamLocalDataProvider {
11
+ export interface L2BlockStreamLocalDataProvider extends L2TipsProvider {
7
12
  getL2BlockHash(number: number): Promise<string | undefined>;
8
- getL2Tips(): Promise<L2Tips>;
9
13
  }
10
14
 
11
15
  /** Interface to a handler of events emitted. */
@@ -17,10 +17,7 @@ export class L2BlockStream {
17
17
  private hasStarted = false;
18
18
 
19
19
  constructor(
20
- private l2BlockSource: Pick<
21
- L2BlockSource,
22
- 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
23
- >,
20
+ private l2BlockSource: Pick<L2BlockSource, 'getBlocks' | 'getBlockData' | 'getL2Tips' | 'getCheckpoints'>,
24
21
  private localData: L2BlockStreamLocalDataProvider,
25
22
  private handler: L2BlockStreamEventHandler,
26
23
  private readonly log = createLogger('types:block_stream'),
@@ -77,6 +74,22 @@ export class L2BlockStream {
77
74
  let latestBlockNumber = localTips.proposed.number;
78
75
  const sourceCache = new BlockHashCache([sourceTips.proposed]);
79
76
  while (!(await this.areBlockHashesEqualAt(latestBlockNumber, { sourceCache }))) {
77
+ if (latestBlockNumber === 0) {
78
+ // We walked all the way back to genesis and the hashes still differ. This means the
79
+ // local store and the source disagree on the genesis block itself — typically because
80
+ // they were configured with different `genesisTimestamp`/prefilled state. Continuing
81
+ // would underflow into negative block numbers and surface as "block hash not found
82
+ // for -1" further down. Fail loudly with a meaningful error instead.
83
+ this.log.error(`Genesis block hash mismatch between local store and source`, {
84
+ localBlockHash: await this.localData.getL2BlockHash(BlockNumber.ZERO),
85
+ sourceBlockHash: sourceCache.get(0) ?? (await this.getBlockHashFromSource(BlockNumber.ZERO)),
86
+ });
87
+ throw new Error(
88
+ 'Genesis block hash mismatch between local store and source: refusing to walk past block 0. ' +
89
+ 'This usually indicates the two sides were configured with different genesis values ' +
90
+ '(e.g. genesisTimestamp or prefilled public data).',
91
+ );
92
+ }
80
93
  latestBlockNumber--;
81
94
  }
82
95
 
@@ -97,8 +110,9 @@ export class L2BlockStream {
97
110
  }
98
111
 
99
112
  // If we are just starting, use the starting block number from the options.
100
- if (latestBlockNumber === 0 && this.opts.startingBlock !== undefined) {
101
- latestBlockNumber = BlockNumber(Math.max(this.opts.startingBlock - 1, 0));
113
+ const startingBlock = this.opts.startingBlock !== undefined ? BlockNumber(this.opts.startingBlock) : undefined;
114
+ if (latestBlockNumber === 0 && startingBlock !== undefined) {
115
+ latestBlockNumber = BlockNumber(Math.max(startingBlock - 1, 0));
102
116
  }
103
117
 
104
118
  // Only log this entry once (for sanity)
@@ -112,21 +126,18 @@ export class L2BlockStream {
112
126
 
113
127
  // When startingBlock is set, also skip ahead for checkpoints.
114
128
  if (
115
- this.opts.startingBlock !== undefined &&
116
- this.opts.startingBlock >= 1 &&
129
+ startingBlock !== undefined &&
130
+ startingBlock >= 1 &&
117
131
  nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number
118
132
  ) {
119
- const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(
120
- BlockNumber(this.opts.startingBlock),
121
- 1,
122
- );
123
- if (startingBlockCheckpoints.length > 0) {
124
- nextCheckpointToEmit = CheckpointNumber(
125
- Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber),
126
- );
127
- } else {
133
+ if (startingBlock > sourceTips.checkpointed.block.number) {
128
134
  // startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
129
135
  nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
136
+ } else {
137
+ const startingBlockData = await this.l2BlockSource.getBlockData({ number: startingBlock });
138
+ if (startingBlockData) {
139
+ nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, startingBlockData.checkpointNumber));
140
+ }
130
141
  }
131
142
  }
132
143
 
@@ -149,7 +160,7 @@ export class L2BlockStream {
149
160
  if (!this.opts.ignoreCheckpoints) {
150
161
  let loop1Iterations = 0;
151
162
  while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
152
- const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
163
+ const checkpoints = await this.l2BlockSource.getCheckpoints({ from: nextCheckpointToEmit, limit: 1 });
153
164
  if (checkpoints.length === 0) {
154
165
  break;
155
166
  }
@@ -184,9 +195,9 @@ export class L2BlockStream {
184
195
 
185
196
  // Find the starting checkpoint number
186
197
  if (nextBlockNumber <= sourceTips.checkpointed.block.number) {
187
- const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
188
- if (blocks.length > 0) {
189
- nextCheckpointNumber = blocks[0].checkpointNumber;
198
+ const blockData = await this.l2BlockSource.getBlockData({ number: BlockNumber(nextBlockNumber) });
199
+ if (blockData) {
200
+ nextCheckpointNumber = blockData.checkpointNumber;
190
201
  }
191
202
  }
192
203
 
@@ -194,7 +205,10 @@ export class L2BlockStream {
194
205
  // Refill the prefetch buffer when exhausted
195
206
  if (prefetchIdx >= prefetchedCheckpoints.length) {
196
207
  const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
197
- prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
208
+ prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints({
209
+ from: nextCheckpointNumber,
210
+ limit: prefetchLimit,
211
+ });
198
212
  prefetchIdx = 0;
199
213
  if (prefetchedCheckpoints.length === 0) {
200
214
  break;
@@ -234,7 +248,7 @@ export class L2BlockStream {
234
248
  while (nextBlockNumber <= sourceTips.proposed.number) {
235
249
  const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
236
250
  this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
237
- const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
251
+ const blocks = await this.l2BlockSource.getBlocks({ from: BlockNumber(nextBlockNumber), limit });
238
252
  if (blocks.length === 0) {
239
253
  break;
240
254
  }
@@ -266,9 +280,6 @@ export class L2BlockStream {
266
280
  * @param args - A cache of data already requested from source, to avoid re-requesting it.
267
281
  */
268
282
  private async areBlockHashesEqualAt(blockNumber: BlockNumber, args: { sourceCache: BlockHashCache }) {
269
- if (blockNumber === 0) {
270
- return true;
271
- }
272
283
  const localBlockHash = await this.localData.getL2BlockHash(blockNumber);
273
284
  if (!localBlockHash && this.opts.skipFinalized) {
274
285
  // Failing to find a block hash when skipping finalized blocks can be highly problematic as we'd potentially need
@@ -291,8 +302,8 @@ export class L2BlockStream {
291
302
 
292
303
  private getBlockHashFromSource(blockNumber: BlockNumber) {
293
304
  return this.l2BlockSource
294
- .getBlockHeader(blockNumber)
295
- .then(h => h?.hash())
305
+ .getBlockData({ number: blockNumber })
306
+ .then(d => d?.header.hash())
296
307
  .then(hash => hash?.toString());
297
308
  }
298
309
 
@@ -1,6 +1,7 @@
1
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
4
+ import type { BlockHash } from '../block_hash.js';
4
5
  import type { L2BlockTag } from '../l2_block_source.js';
5
6
  import { L2TipsStoreBase } from './l2_tips_store_base.js';
6
7
 
@@ -9,6 +10,10 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
9
10
  * @dev Tests in kv-store/src/stores/l2_tips_memory_store.test.ts
10
11
  */
11
12
  export class L2TipsMemoryStore extends L2TipsStoreBase {
13
+ constructor(initialBlockHash: BlockHash) {
14
+ super(initialBlockHash);
15
+ }
16
+
12
17
  private readonly tips = new Map<L2BlockTag, BlockNumber>();
13
18
  private readonly blockHashes = new Map<number, string>();
14
19
  private readonly blockToCheckpoint = new Map<number, CheckpointNumber>();