@aztec/stdlib 0.0.1-commit.e3c1de76 → 0.0.1-commit.e57c76e

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