@aztec/stdlib 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928

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