@aztec/stdlib 0.0.1-commit.a072138 → 0.0.1-commit.a5db02d

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 (1161) 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 +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 +31 -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 +7 -4
  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 +42 -12
  63. package/dest/aztec-address/index.d.ts.map +1 -1
  64. package/dest/aztec-address/index.js +40 -13
  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 +10 -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 +238 -337
  90. package/dest/block/l2_block_source.d.ts.map +1 -1
  91. package/dest/block/l2_block_source.js +81 -1
  92. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
  93. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
  94. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
  95. package/dest/block/l2_block_stream/index.d.ts +2 -1
  96. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  97. package/dest/block/l2_block_stream/index.js +1 -0
  98. package/dest/block/l2_block_stream/interfaces.d.ts +83 -10
  99. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  100. package/dest/block/l2_block_stream/interfaces.js +25 -1
  101. package/dest/block/l2_block_stream/l2_block_stream.d.ts +23 -15
  102. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  103. package/dest/block/l2_block_stream/l2_block_stream.js +159 -125
  104. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  105. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  106. package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
  107. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +20 -18
  108. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  109. package/dest/block/l2_block_stream/l2_tips_store_base.js +84 -40
  110. package/dest/block/proposal/attestations_and_signers.d.ts +37 -30
  111. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  112. package/dest/block/proposal/attestations_and_signers.js +73 -25
  113. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  114. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  115. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  116. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  117. package/dest/block/test/l2_tips_store_test_suite.js +296 -36
  118. package/dest/block/validate_block_result.d.ts +16 -1
  119. package/dest/block/validate_block_result.d.ts.map +1 -1
  120. package/dest/block/validate_block_result.js +18 -3
  121. package/dest/checkpoint/checkpoint.d.ts +48 -99
  122. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  123. package/dest/checkpoint/checkpoint.js +42 -18
  124. package/dest/checkpoint/checkpoint_data.d.ts +97 -0
  125. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  126. package/dest/checkpoint/checkpoint_data.js +38 -0
  127. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  128. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  129. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  130. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  131. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  132. package/dest/checkpoint/digest.d.ts +18 -0
  133. package/dest/checkpoint/digest.d.ts.map +1 -0
  134. package/dest/checkpoint/digest.js +12 -0
  135. package/dest/checkpoint/index.d.ts +7 -1
  136. package/dest/checkpoint/index.d.ts.map +1 -1
  137. package/dest/checkpoint/index.js +6 -0
  138. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  139. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  140. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  141. package/dest/checkpoint/published_checkpoint.d.ts +53 -190
  142. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  143. package/dest/checkpoint/published_checkpoint.js +1 -2
  144. package/dest/checkpoint/simulation_overrides.d.ts +61 -0
  145. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
  146. package/dest/checkpoint/simulation_overrides.js +98 -0
  147. package/dest/checkpoint/validate.d.ts +44 -0
  148. package/dest/checkpoint/validate.d.ts.map +1 -0
  149. package/dest/checkpoint/validate.js +123 -0
  150. package/dest/config/chain-config.d.ts +4 -9
  151. package/dest/config/chain-config.d.ts.map +1 -1
  152. package/dest/config/chain-config.js +13 -12
  153. package/dest/config/index.d.ts +3 -1
  154. package/dest/config/index.d.ts.map +1 -1
  155. package/dest/config/index.js +2 -0
  156. package/dest/config/network-consensus-config.d.ts +72 -0
  157. package/dest/config/network-consensus-config.d.ts.map +1 -0
  158. package/dest/config/network-consensus-config.js +223 -0
  159. package/dest/config/sequencer-config.d.ts +16 -0
  160. package/dest/config/sequencer-config.d.ts.map +1 -0
  161. package/dest/config/sequencer-config.js +57 -0
  162. package/dest/contract/complete_address.d.ts +3 -2
  163. package/dest/contract/complete_address.d.ts.map +1 -1
  164. package/dest/contract/complete_address.js +6 -2
  165. package/dest/contract/contract_address.d.ts +10 -9
  166. package/dest/contract/contract_address.d.ts.map +1 -1
  167. package/dest/contract/contract_address.js +9 -8
  168. package/dest/contract/contract_class.d.ts +2 -3
  169. package/dest/contract/contract_class.d.ts.map +1 -1
  170. package/dest/contract/contract_class_id.d.ts +3 -3
  171. package/dest/contract/contract_class_id.d.ts.map +1 -1
  172. package/dest/contract/contract_class_id.js +7 -6
  173. package/dest/contract/contract_deployment_data.d.ts +15 -61
  174. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  175. package/dest/contract/contract_instance.d.ts +19 -3
  176. package/dest/contract/contract_instance.d.ts.map +1 -1
  177. package/dest/contract/contract_instance.js +55 -3
  178. package/dest/contract/index.d.ts +1 -3
  179. package/dest/contract/index.d.ts.map +1 -1
  180. package/dest/contract/index.js +0 -2
  181. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  182. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  183. package/dest/contract/interfaces/contract_class.js +1 -28
  184. package/dest/contract/interfaces/contract_data_source.d.ts +3 -5
  185. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  186. package/dest/contract/interfaces/contract_instance.d.ts +111 -104
  187. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  188. package/dest/contract/interfaces/contract_instance.js +11 -4
  189. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  190. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  191. package/dest/contract/interfaces/node-info.d.ts +13 -1
  192. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  193. package/dest/contract/interfaces/node-info.js +8 -1
  194. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  195. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  196. package/dest/contract/partial_address.d.ts +9 -3
  197. package/dest/contract/partial_address.d.ts.map +1 -1
  198. package/dest/contract/partial_address.js +8 -2
  199. package/dest/contract/private_function.d.ts +1 -1
  200. package/dest/contract/private_function.d.ts.map +1 -1
  201. package/dest/contract/private_function.js +4 -6
  202. package/dest/database-version/database_version.d.ts +5 -11
  203. package/dest/database-version/database_version.d.ts.map +1 -1
  204. package/dest/database-version/version_manager.d.ts +22 -4
  205. package/dest/database-version/version_manager.d.ts.map +1 -1
  206. package/dest/database-version/version_manager.js +87 -6
  207. package/dest/deserialization/index.d.ts +35 -3
  208. package/dest/deserialization/index.d.ts.map +1 -1
  209. package/dest/deserialization/index.js +32 -1
  210. package/dest/epoch-helpers/index.d.ts +14 -18
  211. package/dest/epoch-helpers/index.d.ts.map +1 -1
  212. package/dest/epoch-helpers/index.js +18 -2
  213. package/dest/file-store/factory.d.ts +4 -3
  214. package/dest/file-store/factory.d.ts.map +1 -1
  215. package/dest/file-store/factory.js +9 -2
  216. package/dest/file-store/http.d.ts +9 -2
  217. package/dest/file-store/http.d.ts.map +1 -1
  218. package/dest/file-store/http.js +20 -9
  219. package/dest/file-store/index.d.ts +3 -1
  220. package/dest/file-store/index.d.ts.map +1 -1
  221. package/dest/file-store/index.js +1 -0
  222. package/dest/file-store/local.d.ts +3 -3
  223. package/dest/file-store/local.d.ts.map +1 -1
  224. package/dest/file-store/local.js +13 -4
  225. package/dest/file-store/memory.d.ts +24 -0
  226. package/dest/file-store/memory.d.ts.map +1 -0
  227. package/dest/file-store/memory.js +80 -0
  228. package/dest/file-store/s3.d.ts +1 -1
  229. package/dest/file-store/s3.d.ts.map +1 -1
  230. package/dest/file-store/s3.js +11 -3
  231. package/dest/gas/fee_math.d.ts +49 -0
  232. package/dest/gas/fee_math.d.ts.map +1 -0
  233. package/dest/gas/fee_math.js +80 -0
  234. package/dest/gas/gas.d.ts +9 -14
  235. package/dest/gas/gas.d.ts.map +1 -1
  236. package/dest/gas/gas.js +6 -3
  237. package/dest/gas/gas_fees.d.ts +13 -14
  238. package/dest/gas/gas_fees.d.ts.map +1 -1
  239. package/dest/gas/gas_fees.js +20 -4
  240. package/dest/gas/gas_settings.d.ts +60 -86
  241. package/dest/gas/gas_settings.d.ts.map +1 -1
  242. package/dest/gas/gas_settings.js +49 -9
  243. package/dest/gas/index.d.ts +3 -1
  244. package/dest/gas/index.d.ts.map +1 -1
  245. package/dest/gas/index.js +2 -0
  246. package/dest/gas/tx_gas_limits.d.ts +72 -0
  247. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  248. package/dest/gas/tx_gas_limits.js +85 -0
  249. package/dest/ha-signing/config.d.ts +86 -0
  250. package/dest/ha-signing/config.d.ts.map +1 -0
  251. package/dest/ha-signing/config.js +94 -0
  252. package/dest/ha-signing/index.d.ts +4 -0
  253. package/dest/ha-signing/index.d.ts.map +1 -0
  254. package/dest/ha-signing/index.js +3 -0
  255. package/dest/ha-signing/local_config.d.ts +40 -0
  256. package/dest/ha-signing/local_config.d.ts.map +1 -0
  257. package/dest/ha-signing/local_config.js +30 -0
  258. package/dest/ha-signing/types.d.ts +90 -0
  259. package/dest/ha-signing/types.d.ts.map +1 -0
  260. package/dest/ha-signing/types.js +39 -0
  261. package/dest/hash/hash.d.ts +35 -2
  262. package/dest/hash/hash.d.ts.map +1 -1
  263. package/dest/hash/hash.js +77 -17
  264. package/dest/hash/map_slot.js +2 -2
  265. package/dest/interfaces/allowed_element.d.ts +17 -35
  266. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  267. package/dest/interfaces/allowed_element.js +8 -8
  268. package/dest/interfaces/api_limit.d.ts +1 -1
  269. package/dest/interfaces/api_limit.js +1 -1
  270. package/dest/interfaces/archiver.d.ts +27 -32
  271. package/dest/interfaces/archiver.d.ts.map +1 -1
  272. package/dest/interfaces/archiver.js +217 -65
  273. package/dest/interfaces/aztec-node-admin.d.ts +115 -257
  274. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  275. package/dest/interfaces/aztec-node-admin.js +69 -18
  276. package/dest/interfaces/aztec-node-debug.d.ts +59 -0
  277. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  278. package/dest/interfaces/aztec-node-debug.js +49 -0
  279. package/dest/interfaces/aztec-node.d.ts +166 -116
  280. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  281. package/dest/interfaces/aztec-node.js +351 -72
  282. package/dest/interfaces/block-builder.d.ts +43 -12
  283. package/dest/interfaces/block-builder.d.ts.map +1 -1
  284. package/dest/interfaces/block-builder.js +13 -6
  285. package/dest/interfaces/block_response.d.ts +90 -0
  286. package/dest/interfaces/block_response.d.ts.map +1 -0
  287. package/dest/interfaces/block_response.js +30 -0
  288. package/dest/interfaces/chain_tips.d.ts +11 -0
  289. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  290. package/dest/interfaces/chain_tips.js +6 -0
  291. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  292. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  293. package/dest/interfaces/checkpoint_parameter.js +18 -0
  294. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  295. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  296. package/dest/interfaces/checkpoint_response.js +26 -0
  297. package/dest/interfaces/client.d.ts +9 -2
  298. package/dest/interfaces/client.d.ts.map +1 -1
  299. package/dest/interfaces/client.js +7 -1
  300. package/dest/interfaces/configs.d.ts +98 -121
  301. package/dest/interfaces/configs.d.ts.map +1 -1
  302. package/dest/interfaces/configs.js +23 -4
  303. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  304. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  305. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  306. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  307. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  308. package/dest/interfaces/l1_publish_info.js +26 -0
  309. package/dest/interfaces/l2_logs_source.d.ts +14 -34
  310. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  311. package/dest/interfaces/l2_logs_source.js +5 -0
  312. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  313. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  314. package/dest/interfaces/p2p-bootstrap.js +8 -2
  315. package/dest/interfaces/p2p.d.ts +49 -15
  316. package/dest/interfaces/p2p.d.ts.map +1 -1
  317. package/dest/interfaces/p2p.js +41 -6
  318. package/dest/interfaces/private_kernel_prover.d.ts +69 -11
  319. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  320. package/dest/interfaces/prover-agent.d.ts +5 -23
  321. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  322. package/dest/interfaces/prover-agent.js +4 -1
  323. package/dest/interfaces/prover-broker.d.ts +16 -1
  324. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  325. package/dest/interfaces/prover-broker.js +4 -1
  326. package/dest/interfaces/prover-client.d.ts +13 -25
  327. package/dest/interfaces/prover-client.d.ts.map +1 -1
  328. package/dest/interfaces/prover-client.js +12 -4
  329. package/dest/interfaces/prover-node.d.ts +12 -8
  330. package/dest/interfaces/prover-node.d.ts.map +1 -1
  331. package/dest/interfaces/prover-node.js +37 -16
  332. package/dest/interfaces/proving-job-source.js +24 -4
  333. package/dest/interfaces/proving-job.d.ts +757 -5795
  334. package/dest/interfaces/proving-job.d.ts.map +1 -1
  335. package/dest/interfaces/proving-job.js +14 -5
  336. package/dest/interfaces/public_storage_override.d.ts +22 -0
  337. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  338. package/dest/interfaces/public_storage_override.js +7 -0
  339. package/dest/interfaces/server.d.ts +6 -2
  340. package/dest/interfaces/server.d.ts.map +1 -1
  341. package/dest/interfaces/server.js +5 -1
  342. package/dest/interfaces/server_circuit_prover.d.ts +3 -3
  343. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  344. package/dest/interfaces/slasher.d.ts +27 -59
  345. package/dest/interfaces/slasher.d.ts.map +1 -1
  346. package/dest/interfaces/slasher.js +10 -4
  347. package/dest/interfaces/tx_provider.d.ts +6 -1
  348. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  349. package/dest/interfaces/validator.d.ts +89 -170
  350. package/dest/interfaces/validator.d.ts.map +1 -1
  351. package/dest/interfaces/validator.js +19 -6
  352. package/dest/interfaces/world_state.d.ts +19 -5
  353. package/dest/interfaces/world_state.d.ts.map +1 -1
  354. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  355. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  356. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  357. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  358. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  359. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  360. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  361. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  362. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  363. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
  364. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  365. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -74
  366. package/dest/kernel/hints/index.d.ts +2 -2
  367. package/dest/kernel/hints/index.js +2 -2
  368. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  369. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  370. package/dest/kernel/hints/key_validation_request.js +20 -18
  371. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  372. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  373. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  374. package/dest/kernel/hints/read_request.js +1 -1
  375. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  376. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  377. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  378. package/dest/kernel/index.d.ts +6 -2
  379. package/dest/kernel/index.d.ts.map +1 -1
  380. package/dest/kernel/index.js +5 -1
  381. package/dest/kernel/log_hash.d.ts +6 -2
  382. package/dest/kernel/log_hash.d.ts.map +1 -1
  383. package/dest/kernel/log_hash.js +23 -11
  384. package/dest/kernel/note_hash.js +1 -1
  385. package/dest/kernel/nullifier.js +1 -1
  386. package/dest/kernel/private_circuit_public_inputs.d.ts +21 -11
  387. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  388. package/dest/kernel/private_circuit_public_inputs.js +26 -19
  389. package/dest/kernel/private_context_inputs.d.ts +4 -3
  390. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  391. package/dest/kernel/private_context_inputs.js +7 -3
  392. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +10 -4
  393. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  394. package/dest/kernel/private_kernel_circuit_public_inputs.js +11 -4
  395. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +22 -0
  396. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  397. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +33 -0
  398. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +23 -0
  399. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  400. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +35 -0
  401. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -9
  402. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  403. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +2 -6
  404. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  405. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  406. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  407. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  408. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  409. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  410. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  411. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  412. package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
  413. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  414. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
  415. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
  416. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
  417. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +12 -8
  418. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  419. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +32 -13
  420. package/dest/kernel/private_log_data.d.ts +1 -1
  421. package/dest/kernel/private_log_data.d.ts.map +1 -1
  422. package/dest/kernel/private_log_data.js +1 -1
  423. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  424. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  425. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  426. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  427. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  428. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  429. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +7 -6
  430. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  431. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +13 -9
  432. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  433. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  434. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  435. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +7 -6
  436. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  437. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +13 -9
  438. package/dest/kernel/private_validation_requests.d.ts +3 -3
  439. package/dest/kernel/private_validation_requests.js +9 -9
  440. package/dest/kernel/public_call_request.d.ts +15 -30
  441. package/dest/kernel/public_call_request.d.ts.map +1 -1
  442. package/dest/kernel/public_call_request.js +16 -7
  443. package/dest/keys/derivation.d.ts +45 -6
  444. package/dest/keys/derivation.d.ts.map +1 -1
  445. package/dest/keys/derivation.js +59 -26
  446. package/dest/keys/key_types.d.ts +3 -3
  447. package/dest/keys/key_types.d.ts.map +1 -1
  448. package/dest/keys/public_key.d.ts +22 -3
  449. package/dest/keys/public_key.d.ts.map +1 -1
  450. package/dest/keys/public_key.js +20 -1
  451. package/dest/keys/public_keys.d.ts +55 -82
  452. package/dest/keys/public_keys.d.ts.map +1 -1
  453. package/dest/keys/public_keys.js +102 -74
  454. package/dest/keys/utils.js +5 -5
  455. package/dest/kv-store/config.d.ts +14 -0
  456. package/dest/kv-store/config.d.ts.map +1 -0
  457. package/dest/kv-store/config.js +21 -0
  458. package/dest/kv-store/index.d.ts +2 -0
  459. package/dest/kv-store/index.d.ts.map +1 -0
  460. package/dest/kv-store/index.js +1 -0
  461. package/dest/l1-contracts/index.d.ts +2 -2
  462. package/dest/l1-contracts/index.d.ts.map +1 -1
  463. package/dest/l1-contracts/index.js +1 -1
  464. package/dest/logs/app_tagging_secret.d.ts +69 -0
  465. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  466. package/dest/logs/app_tagging_secret.js +116 -0
  467. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  468. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  469. package/dest/logs/app_tagging_secret_kind.js +17 -0
  470. package/dest/logs/contract_class_log.d.ts +16 -35
  471. package/dest/logs/contract_class_log.d.ts.map +1 -1
  472. package/dest/logs/contract_class_log.js +11 -13
  473. package/dest/logs/debug_log_store.d.ts +30 -0
  474. package/dest/logs/debug_log_store.d.ts.map +1 -0
  475. package/dest/logs/debug_log_store.js +30 -0
  476. package/dest/logs/index.d.ts +9 -9
  477. package/dest/logs/index.d.ts.map +1 -1
  478. package/dest/logs/index.js +8 -8
  479. package/dest/logs/log_cursor.d.ts +51 -0
  480. package/dest/logs/log_cursor.d.ts.map +1 -0
  481. package/dest/logs/log_cursor.js +82 -0
  482. package/dest/logs/log_result.d.ts +54 -0
  483. package/dest/logs/log_result.d.ts.map +1 -0
  484. package/dest/logs/log_result.js +56 -0
  485. package/dest/logs/logs_query.d.ts +82 -0
  486. package/dest/logs/logs_query.d.ts.map +1 -0
  487. package/dest/logs/logs_query.js +50 -0
  488. package/dest/logs/pre_tag.d.ts +14 -22
  489. package/dest/logs/pre_tag.d.ts.map +1 -1
  490. package/dest/logs/pre_tag.js +2 -2
  491. package/dest/logs/private_log.d.ts +8 -13
  492. package/dest/logs/private_log.d.ts.map +1 -1
  493. package/dest/logs/private_log.js +6 -3
  494. package/dest/logs/public_log.d.ts +4 -3
  495. package/dest/logs/public_log.d.ts.map +1 -1
  496. package/dest/logs/public_log.js +2 -1
  497. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  498. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  499. package/dest/logs/query_all_logs_by_tags.js +64 -0
  500. package/dest/logs/shared_secret_derivation.d.ts +33 -9
  501. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  502. package/dest/logs/shared_secret_derivation.js +49 -10
  503. package/dest/logs/siloed_tag.d.ts +12 -9
  504. package/dest/logs/siloed_tag.d.ts.map +1 -1
  505. package/dest/logs/siloed_tag.js +18 -7
  506. package/dest/logs/tag.d.ts +5 -6
  507. package/dest/logs/tag.d.ts.map +1 -1
  508. package/dest/logs/tag.js +5 -1
  509. package/dest/logs/tagging_index_range.d.ts +22 -0
  510. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  511. package/dest/logs/tagging_index_range.js +8 -0
  512. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  513. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  514. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  515. package/dest/messaging/index.d.ts +2 -1
  516. package/dest/messaging/index.d.ts.map +1 -1
  517. package/dest/messaging/index.js +1 -0
  518. package/dest/messaging/l1_to_l2_message.d.ts +25 -3
  519. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  520. package/dest/messaging/l1_to_l2_message.js +38 -15
  521. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  522. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  523. package/dest/messaging/l2_to_l1_membership.d.ts +72 -9
  524. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  525. package/dest/messaging/l2_to_l1_membership.js +133 -30
  526. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  527. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  528. package/dest/messaging/l2_to_l1_message.js +21 -12
  529. package/dest/noir/index.d.ts +5 -3
  530. package/dest/noir/index.d.ts.map +1 -1
  531. package/dest/note/index.d.ts +1 -2
  532. package/dest/note/index.d.ts.map +1 -1
  533. package/dest/note/index.js +0 -1
  534. package/dest/note/note.d.ts +2 -2
  535. package/dest/note/note.d.ts.map +1 -1
  536. package/dest/note/note_dao.d.ts +1 -1
  537. package/dest/note/note_dao.d.ts.map +1 -1
  538. package/dest/note/note_dao.js +1 -4
  539. package/dest/p2p/attestation_utils.d.ts +11 -1
  540. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  541. package/dest/p2p/attestation_utils.js +53 -1
  542. package/dest/p2p/block_proposal.d.ts +32 -15
  543. package/dest/p2p/block_proposal.d.ts.map +1 -1
  544. package/dest/p2p/block_proposal.js +58 -42
  545. package/dest/p2p/checkpoint_attestation.d.ts +25 -9
  546. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  547. package/dest/p2p/checkpoint_attestation.js +33 -24
  548. package/dest/p2p/checkpoint_proposal.d.ts +51 -24
  549. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  550. package/dest/p2p/checkpoint_proposal.js +77 -65
  551. package/dest/p2p/client_type.d.ts +2 -5
  552. package/dest/p2p/client_type.d.ts.map +1 -1
  553. package/dest/p2p/client_type.js +0 -7
  554. package/dest/p2p/consensus_payload.d.ts +33 -17
  555. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  556. package/dest/p2p/consensus_payload.js +47 -21
  557. package/dest/p2p/constants.d.ts +3 -1
  558. package/dest/p2p/constants.d.ts.map +1 -1
  559. package/dest/p2p/constants.js +1 -0
  560. package/dest/p2p/gossipable.d.ts +4 -4
  561. package/dest/p2p/gossipable.d.ts.map +1 -1
  562. package/dest/p2p/index.d.ts +1 -2
  563. package/dest/p2p/index.d.ts.map +1 -1
  564. package/dest/p2p/index.js +0 -1
  565. package/dest/p2p/peer_error.d.ts +3 -1
  566. package/dest/p2p/peer_error.d.ts.map +1 -1
  567. package/dest/p2p/peer_error.js +5 -0
  568. package/dest/p2p/signature_utils.d.ts +35 -17
  569. package/dest/p2p/signature_utils.d.ts.map +1 -1
  570. package/dest/p2p/signature_utils.js +125 -20
  571. package/dest/p2p/signed_txs.d.ts +15 -13
  572. package/dest/p2p/signed_txs.d.ts.map +1 -1
  573. package/dest/p2p/signed_txs.js +26 -24
  574. package/dest/p2p/topic_type.d.ts +3 -4
  575. package/dest/p2p/topic_type.d.ts.map +1 -1
  576. package/dest/p2p/topic_type.js +7 -24
  577. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  578. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  579. package/dest/parity/parity_base_private_inputs.js +7 -5
  580. package/dest/parity/parity_public_inputs.d.ts +8 -4
  581. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  582. package/dest/parity/parity_public_inputs.js +6 -3
  583. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  584. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  585. package/dest/proofs/chonk_proof.d.ts +57 -7
  586. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  587. package/dest/proofs/chonk_proof.js +112 -15
  588. package/dest/proofs/recursive_proof.d.ts +2 -2
  589. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  590. package/dest/rollup/avm_proof_data.d.ts +3 -3
  591. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  592. package/dest/rollup/block_headers_hash.d.ts +1 -1
  593. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  594. package/dest/rollup/block_headers_hash.js +8 -2
  595. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  596. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  597. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  598. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  599. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  600. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  601. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  602. package/dest/rollup/checkpoint_header.d.ts +10 -5
  603. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  604. package/dest/rollup/checkpoint_header.js +22 -12
  605. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  606. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  607. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +14 -7
  608. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  609. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -2
  610. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +6 -6
  611. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  612. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  613. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  614. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  615. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  616. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  617. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  618. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  619. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  620. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  621. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  622. package/dest/rollup/root_rollup_public_inputs.d.ts +7 -7
  623. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  624. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  625. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  626. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  627. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  628. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  629. package/dest/schemas/schemas.d.ts +32 -78
  630. package/dest/schemas/schemas.d.ts.map +1 -1
  631. package/dest/schemas/schemas.js +2 -2
  632. package/dest/slashing/helpers.d.ts +2 -2
  633. package/dest/slashing/helpers.d.ts.map +1 -1
  634. package/dest/slashing/helpers.js +16 -7
  635. package/dest/slashing/index.d.ts +2 -3
  636. package/dest/slashing/index.d.ts.map +1 -1
  637. package/dest/slashing/index.js +1 -2
  638. package/dest/slashing/serialization.d.ts +2 -6
  639. package/dest/slashing/serialization.d.ts.map +1 -1
  640. package/dest/slashing/serialization.js +0 -60
  641. package/dest/slashing/types.d.ts +21 -111
  642. package/dest/slashing/types.d.ts.map +1 -1
  643. package/dest/slashing/types.js +28 -24
  644. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  645. package/dest/slashing/votes.d.ts.map +1 -0
  646. package/dest/slashing/{tally.js → votes.js} +35 -3
  647. package/dest/snapshots/types.d.ts +15 -78
  648. package/dest/snapshots/types.d.ts.map +1 -1
  649. package/dest/stats/stats.d.ts +2 -2
  650. package/dest/stats/stats.d.ts.map +1 -1
  651. package/dest/tests/factories.d.ts +25 -30
  652. package/dest/tests/factories.d.ts.map +1 -1
  653. package/dest/tests/factories.js +93 -90
  654. package/dest/tests/mocks.d.ts +15 -7
  655. package/dest/tests/mocks.d.ts.map +1 -1
  656. package/dest/tests/mocks.js +69 -70
  657. package/dest/timetable/budgets.d.ts +57 -0
  658. package/dest/timetable/budgets.d.ts.map +1 -0
  659. package/dest/timetable/budgets.js +56 -0
  660. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  661. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  662. package/dest/timetable/build_proposer_timetable.js +17 -0
  663. package/dest/timetable/consensus_timetable.d.ts +70 -0
  664. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  665. package/dest/timetable/consensus_timetable.js +89 -0
  666. package/dest/timetable/index.d.ts +5 -0
  667. package/dest/timetable/index.d.ts.map +1 -0
  668. package/dest/timetable/index.js +4 -0
  669. package/dest/timetable/proposer_timetable.d.ts +106 -0
  670. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  671. package/dest/timetable/proposer_timetable.js +132 -0
  672. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  673. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  674. package/dest/trees/append_only_tree_snapshot.js +6 -3
  675. package/dest/trees/nullifier_leaf.d.ts +19 -42
  676. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  677. package/dest/trees/nullifier_leaf.js +3 -0
  678. package/dest/trees/nullifier_membership_witness.d.ts +17 -63
  679. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  680. package/dest/trees/nullifier_membership_witness.js +0 -21
  681. package/dest/trees/public_data_leaf.d.ts +22 -53
  682. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  683. package/dest/trees/public_data_leaf.js +7 -6
  684. package/dest/trees/public_data_witness.d.ts +19 -71
  685. package/dest/trees/public_data_witness.d.ts.map +1 -1
  686. package/dest/trees/public_data_witness.js +0 -27
  687. package/dest/tx/block_header.d.ts +7 -4
  688. package/dest/tx/block_header.d.ts.map +1 -1
  689. package/dest/tx/block_header.js +13 -6
  690. package/dest/tx/call_context.d.ts +4 -14
  691. package/dest/tx/call_context.d.ts.map +1 -1
  692. package/dest/tx/capsule.d.ts +7 -3
  693. package/dest/tx/capsule.d.ts.map +1 -1
  694. package/dest/tx/capsule.js +9 -3
  695. package/dest/tx/execution_payload.d.ts +1 -1
  696. package/dest/tx/execution_payload.d.ts.map +1 -1
  697. package/dest/tx/execution_payload.js +1 -1
  698. package/dest/tx/fee_provider.d.ts +10 -0
  699. package/dest/tx/fee_provider.d.ts.map +1 -0
  700. package/dest/tx/fee_provider.js +1 -0
  701. package/dest/tx/function_data.d.ts +4 -10
  702. package/dest/tx/function_data.d.ts.map +1 -1
  703. package/dest/tx/global_variable_builder.d.ts +4 -15
  704. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  705. package/dest/tx/global_variables.d.ts +19 -52
  706. package/dest/tx/global_variables.d.ts.map +1 -1
  707. package/dest/tx/global_variables.js +10 -14
  708. package/dest/tx/hashed_values.d.ts +4 -3
  709. package/dest/tx/hashed_values.d.ts.map +1 -1
  710. package/dest/tx/hashed_values.js +6 -3
  711. package/dest/tx/in_tx.d.ts +5 -17
  712. package/dest/tx/in_tx.d.ts.map +1 -1
  713. package/dest/tx/index.d.ts +2 -1
  714. package/dest/tx/index.d.ts.map +1 -1
  715. package/dest/tx/index.js +1 -0
  716. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  717. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  718. package/dest/tx/indexed_tx_effect.js +9 -6
  719. package/dest/tx/partial_state_reference.d.ts +22 -65
  720. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  721. package/dest/tx/partial_state_reference.js +6 -3
  722. package/dest/tx/private_execution_result.d.ts +11 -21
  723. package/dest/tx/private_execution_result.d.ts.map +1 -1
  724. package/dest/tx/private_execution_result.js +6 -6
  725. package/dest/tx/private_tx_constant_data.d.ts +18 -2
  726. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  727. package/dest/tx/private_tx_constant_data.js +13 -4
  728. package/dest/tx/profiling.d.ts +70 -356
  729. package/dest/tx/profiling.d.ts.map +1 -1
  730. package/dest/tx/profiling.js +19 -9
  731. package/dest/tx/protocol_contracts.d.ts +5 -9
  732. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  733. package/dest/tx/protocol_contracts.js +2 -2
  734. package/dest/tx/proven_tx.d.ts +30 -74
  735. package/dest/tx/proven_tx.d.ts.map +1 -1
  736. package/dest/tx/proven_tx.js +6 -0
  737. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  738. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  739. package/dest/tx/public_call_request_with_calldata.js +6 -3
  740. package/dest/tx/public_simulation_output.d.ts +4 -2
  741. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  742. package/dest/tx/public_simulation_output.js +7 -3
  743. package/dest/tx/simulated_tx.d.ts +77 -1149
  744. package/dest/tx/simulated_tx.d.ts.map +1 -1
  745. package/dest/tx/simulated_tx.js +17 -12
  746. package/dest/tx/state_reference.d.ts +30 -117
  747. package/dest/tx/state_reference.d.ts.map +1 -1
  748. package/dest/tx/state_reference.js +6 -4
  749. package/dest/tx/tree_snapshots.d.ts +27 -84
  750. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  751. package/dest/tx/tree_snapshots.js +6 -4
  752. package/dest/tx/tx.d.ts +27 -17
  753. package/dest/tx/tx.d.ts.map +1 -1
  754. package/dest/tx/tx.js +62 -28
  755. package/dest/tx/tx_constant_data.d.ts +4 -3
  756. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  757. package/dest/tx/tx_constant_data.js +6 -3
  758. package/dest/tx/tx_context.d.ts +32 -131
  759. package/dest/tx/tx_context.d.ts.map +1 -1
  760. package/dest/tx/tx_context.js +6 -6
  761. package/dest/tx/tx_hash.d.ts +6 -4
  762. package/dest/tx/tx_hash.d.ts.map +1 -1
  763. package/dest/tx/tx_hash.js +13 -5
  764. package/dest/tx/tx_receipt.d.ts +151 -51
  765. package/dest/tx/tx_receipt.d.ts.map +1 -1
  766. package/dest/tx/tx_receipt.js +145 -51
  767. package/dest/tx/tx_request.js +2 -2
  768. package/dest/tx/validator/empty_validator.d.ts +2 -2
  769. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  770. package/dest/tx/validator/error_texts.d.ts +11 -3
  771. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  772. package/dest/tx/validator/error_texts.js +12 -2
  773. package/dest/tx/validator/tx_validator.d.ts +6 -28
  774. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  775. package/dest/tx/validator/tx_validator.js +0 -4
  776. package/dest/types/shared.d.ts +4 -12
  777. package/dest/types/shared.d.ts.map +1 -1
  778. package/dest/types/shared.js +6 -12
  779. package/dest/update-checker/dev_version.d.ts +3 -0
  780. package/dest/update-checker/dev_version.d.ts.map +1 -0
  781. package/dest/update-checker/dev_version.js +1 -0
  782. package/dest/update-checker/index.d.ts +4 -2
  783. package/dest/update-checker/index.d.ts.map +1 -1
  784. package/dest/update-checker/index.js +3 -1
  785. package/dest/update-checker/package_version.d.ts +6 -0
  786. package/dest/update-checker/package_version.d.ts.map +1 -0
  787. package/dest/update-checker/package_version.js +13 -0
  788. package/dest/update-checker/version_checker.d.ts +25 -0
  789. package/dest/update-checker/version_checker.d.ts.map +1 -0
  790. package/dest/update-checker/version_checker.js +50 -0
  791. package/dest/validators/errors.d.ts +6 -1
  792. package/dest/validators/errors.d.ts.map +1 -1
  793. package/dest/validators/errors.js +7 -0
  794. package/dest/validators/schemas.d.ts +147 -614
  795. package/dest/validators/schemas.d.ts.map +1 -1
  796. package/dest/validators/schemas.js +9 -6
  797. package/dest/validators/types.d.ts +21 -4
  798. package/dest/validators/types.d.ts.map +1 -1
  799. package/dest/versioning/versioning.d.ts +4 -2
  800. package/dest/versioning/versioning.d.ts.map +1 -1
  801. package/dest/versioning/versioning.js +5 -2
  802. package/dest/vks/verification_key.d.ts +4 -139
  803. package/dest/vks/verification_key.d.ts.map +1 -1
  804. package/dest/vks/verification_key.js +5 -126
  805. package/dest/world-state/genesis_data.d.ts +21 -0
  806. package/dest/world-state/genesis_data.d.ts.map +1 -0
  807. package/dest/world-state/genesis_data.js +8 -0
  808. package/dest/world-state/index.d.ts +2 -1
  809. package/dest/world-state/index.d.ts.map +1 -1
  810. package/dest/world-state/index.js +1 -0
  811. package/dest/world-state/world_state_revision.d.ts +15 -26
  812. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  813. package/dest/world-state/world_state_revision.js +7 -1
  814. package/package.json +27 -14
  815. package/src/abi/abi.ts +78 -21
  816. package/src/abi/authorization_selector.ts +2 -8
  817. package/src/abi/buffer.ts +38 -5
  818. package/src/abi/contract_artifact.ts +30 -6
  819. package/src/abi/decoder.ts +36 -82
  820. package/src/abi/encoder.ts +85 -6
  821. package/src/abi/event_metadata_definition.ts +2 -0
  822. package/src/abi/event_selector.ts +2 -8
  823. package/src/abi/function_call.ts +25 -3
  824. package/src/abi/function_selector.ts +4 -13
  825. package/src/abi/function_signature_decoder.ts +77 -0
  826. package/src/abi/index.ts +1 -0
  827. package/src/abi/note_selector.ts +3 -12
  828. package/src/abi/selector.ts +1 -1
  829. package/src/abi/utils.ts +31 -4
  830. package/src/auth_witness/auth_witness.ts +3 -3
  831. package/src/avm/avm.ts +6 -1
  832. package/src/avm/message_pack.ts +12 -3
  833. package/src/avm/revert_code.ts +20 -25
  834. package/src/aztec-address/index.ts +50 -17
  835. package/src/block/attestation_info.ts +16 -11
  836. package/src/block/block_data.ts +25 -0
  837. package/src/block/block_hash.ts +21 -14
  838. package/src/block/block_parameter.ts +72 -4
  839. package/src/block/in_block.ts +1 -1
  840. package/src/block/index.ts +1 -1
  841. package/src/block/l2_block.ts +13 -1
  842. package/src/block/l2_block_info.ts +8 -6
  843. package/src/block/l2_block_source.ts +267 -122
  844. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
  845. package/src/block/l2_block_stream/index.ts +1 -0
  846. package/src/block/l2_block_stream/interfaces.ts +99 -9
  847. package/src/block/l2_block_stream/l2_block_stream.ts +231 -158
  848. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  849. package/src/block/l2_block_stream/l2_tips_store_base.ts +85 -60
  850. package/src/block/proposal/attestations_and_signers.ts +85 -24
  851. package/src/block/test/l2_tips_store_test_suite.ts +271 -22
  852. package/src/block/validate_block_result.ts +48 -2
  853. package/src/checkpoint/checkpoint.ts +55 -18
  854. package/src/checkpoint/checkpoint_data.ts +91 -0
  855. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  856. package/src/checkpoint/digest.ts +28 -0
  857. package/src/checkpoint/index.ts +6 -0
  858. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  859. package/src/checkpoint/published_checkpoint.ts +3 -1
  860. package/src/checkpoint/simulation_overrides.ts +171 -0
  861. package/src/checkpoint/validate.ts +240 -0
  862. package/src/config/chain-config.ts +13 -16
  863. package/src/config/index.ts +2 -0
  864. package/src/config/network-consensus-config.ts +291 -0
  865. package/src/config/sequencer-config.ts +96 -0
  866. package/src/contract/complete_address.ts +7 -3
  867. package/src/contract/contract_address.ts +14 -13
  868. package/src/contract/contract_class.ts +3 -3
  869. package/src/contract/contract_class_id.ts +7 -6
  870. package/src/contract/contract_instance.ts +73 -3
  871. package/src/contract/index.ts +0 -2
  872. package/src/contract/interfaces/contract_class.ts +2 -82
  873. package/src/contract/interfaces/contract_data_source.ts +2 -4
  874. package/src/contract/interfaces/contract_instance.ts +32 -10
  875. package/src/contract/interfaces/node-info.ts +14 -0
  876. package/src/contract/partial_address.ts +8 -2
  877. package/src/contract/private_function.ts +5 -3
  878. package/src/database-version/version_manager.ts +113 -6
  879. package/src/deserialization/index.ts +35 -2
  880. package/src/epoch-helpers/index.ts +30 -0
  881. package/src/file-store/factory.ts +20 -4
  882. package/src/file-store/http.ts +29 -10
  883. package/src/file-store/index.ts +2 -0
  884. package/src/file-store/local.ts +15 -5
  885. package/src/file-store/memory.ts +94 -0
  886. package/src/file-store/s3.ts +12 -3
  887. package/src/gas/README.md +318 -0
  888. package/src/gas/fee_math.ts +120 -0
  889. package/src/gas/gas.ts +8 -3
  890. package/src/gas/gas_fees.ts +29 -10
  891. package/src/gas/gas_settings.ts +63 -15
  892. package/src/gas/index.ts +2 -0
  893. package/src/gas/tx_gas_limits.ts +123 -0
  894. package/src/ha-signing/config.ts +170 -0
  895. package/src/ha-signing/index.ts +29 -0
  896. package/src/ha-signing/local_config.ts +65 -0
  897. package/src/ha-signing/types.ts +126 -0
  898. package/src/hash/hash.ts +75 -18
  899. package/src/hash/map_slot.ts +2 -2
  900. package/src/interfaces/allowed_element.ts +29 -9
  901. package/src/interfaces/api_limit.ts +1 -1
  902. package/src/interfaces/archiver.ts +97 -88
  903. package/src/interfaces/aztec-node-admin.ts +58 -19
  904. package/src/interfaces/aztec-node-debug.ts +92 -0
  905. package/src/interfaces/aztec-node.ts +407 -261
  906. package/src/interfaces/block-builder.ts +65 -14
  907. package/src/interfaces/block_response.ts +92 -0
  908. package/src/interfaces/chain_tips.ts +16 -0
  909. package/src/interfaces/checkpoint_parameter.ts +20 -0
  910. package/src/interfaces/checkpoint_response.ts +84 -0
  911. package/src/interfaces/client.ts +8 -1
  912. package/src/interfaces/configs.ts +102 -14
  913. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  914. package/src/interfaces/l1_publish_info.ts +40 -0
  915. package/src/interfaces/l2_logs_source.ts +13 -39
  916. package/src/interfaces/merkle_tree_operations.ts +12 -21
  917. package/src/interfaces/p2p-bootstrap.ts +2 -2
  918. package/src/interfaces/p2p.ts +60 -31
  919. package/src/interfaces/private_kernel_prover.ts +98 -12
  920. package/src/interfaces/prover-agent.ts +1 -1
  921. package/src/interfaces/prover-broker.ts +22 -0
  922. package/src/interfaces/prover-client.ts +18 -8
  923. package/src/interfaces/prover-node.ts +36 -21
  924. package/src/interfaces/proving-job-source.ts +4 -4
  925. package/src/interfaces/proving-job.ts +18 -6
  926. package/src/interfaces/public_storage_override.ts +26 -0
  927. package/src/interfaces/server.ts +5 -1
  928. package/src/interfaces/server_circuit_prover.ts +2 -2
  929. package/src/interfaces/slasher.ts +21 -10
  930. package/src/interfaces/tx_provider.ts +6 -0
  931. package/src/interfaces/validator.ts +98 -36
  932. package/src/interfaces/world_state.ts +19 -4
  933. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  934. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  935. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  936. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
  937. package/src/kernel/hints/index.ts +2 -2
  938. package/src/kernel/hints/key_validation_request.ts +18 -16
  939. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  940. package/src/kernel/hints/read_request.ts +1 -1
  941. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  942. package/src/kernel/index.ts +5 -1
  943. package/src/kernel/log_hash.ts +36 -13
  944. package/src/kernel/note_hash.ts +1 -1
  945. package/src/kernel/nullifier.ts +1 -1
  946. package/src/kernel/private_circuit_public_inputs.ts +26 -15
  947. package/src/kernel/private_context_inputs.ts +10 -3
  948. package/src/kernel/private_kernel_circuit_public_inputs.ts +11 -2
  949. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +46 -0
  950. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +49 -0
  951. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
  952. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  953. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  954. package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
  955. package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
  956. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +42 -18
  957. package/src/kernel/private_log_data.ts +4 -1
  958. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  959. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  960. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +14 -8
  961. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  962. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +13 -13
  963. package/src/kernel/private_validation_requests.ts +8 -8
  964. package/src/kernel/public_call_request.ts +22 -7
  965. package/src/keys/derivation.ts +83 -26
  966. package/src/keys/key_types.ts +6 -2
  967. package/src/keys/public_key.ts +26 -2
  968. package/src/keys/public_keys.ts +125 -111
  969. package/src/keys/utils.ts +5 -5
  970. package/src/kv-store/config.ts +29 -0
  971. package/src/kv-store/index.ts +1 -0
  972. package/src/l1-contracts/index.ts +1 -1
  973. package/src/logs/app_tagging_secret.ts +160 -0
  974. package/src/logs/app_tagging_secret_kind.ts +21 -0
  975. package/src/logs/contract_class_log.ts +15 -14
  976. package/src/logs/debug_log_store.ts +54 -0
  977. package/src/logs/index.ts +8 -8
  978. package/src/logs/log_cursor.ts +110 -0
  979. package/src/logs/log_result.ts +104 -0
  980. package/src/logs/logs_query.ts +138 -0
  981. package/src/logs/pre_tag.ts +3 -6
  982. package/src/logs/private_log.ts +9 -3
  983. package/src/logs/public_log.ts +4 -2
  984. package/src/logs/query_all_logs_by_tags.ts +98 -0
  985. package/src/logs/shared_secret_derivation.ts +55 -11
  986. package/src/logs/siloed_tag.ts +28 -14
  987. package/src/logs/tag.ts +9 -9
  988. package/src/logs/tagging_index_range.ts +18 -0
  989. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  990. package/src/messaging/index.ts +1 -0
  991. package/src/messaging/l1_to_l2_message.ts +56 -15
  992. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  993. package/src/messaging/l2_to_l1_membership.ts +192 -38
  994. package/src/messaging/l2_to_l1_message.ts +29 -9
  995. package/src/noir/index.ts +4 -2
  996. package/src/note/index.ts +0 -1
  997. package/src/note/note_dao.ts +1 -4
  998. package/src/p2p/attestation_utils.ts +64 -1
  999. package/src/p2p/block_proposal.ts +112 -39
  1000. package/src/p2p/checkpoint_attestation.ts +44 -31
  1001. package/src/p2p/checkpoint_proposal.ts +159 -86
  1002. package/src/p2p/client_type.ts +0 -6
  1003. package/src/p2p/consensus_payload.ts +68 -24
  1004. package/src/p2p/constants.ts +3 -0
  1005. package/src/p2p/gossipable.ts +4 -4
  1006. package/src/p2p/index.ts +0 -1
  1007. package/src/p2p/peer_error.ts +7 -0
  1008. package/src/p2p/signature_utils.ts +117 -23
  1009. package/src/p2p/signed_txs.ts +46 -28
  1010. package/src/p2p/topic_type.ts +8 -15
  1011. package/src/parity/parity_base_private_inputs.ts +10 -4
  1012. package/src/parity/parity_public_inputs.ts +9 -2
  1013. package/src/proofs/chonk_proof.ts +132 -12
  1014. package/src/rollup/avm_proof_data.ts +2 -2
  1015. package/src/rollup/block_headers_hash.ts +11 -2
  1016. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  1017. package/src/rollup/checkpoint_header.ts +18 -4
  1018. package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -5
  1019. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  1020. package/src/schemas/schemas.ts +6 -1
  1021. package/src/slashing/helpers.ts +21 -9
  1022. package/src/slashing/index.ts +1 -2
  1023. package/src/slashing/serialization.ts +1 -81
  1024. package/src/slashing/types.ts +38 -49
  1025. package/src/slashing/{tally.ts → votes.ts} +41 -2
  1026. package/src/stats/stats.ts +6 -2
  1027. package/src/tests/factories.ts +128 -127
  1028. package/src/tests/mocks.ts +111 -84
  1029. package/src/timetable/README.md +609 -0
  1030. package/src/timetable/budgets.ts +87 -0
  1031. package/src/timetable/build_proposer_timetable.ts +42 -0
  1032. package/src/timetable/consensus_timetable.ts +126 -0
  1033. package/src/timetable/index.ts +4 -0
  1034. package/src/timetable/proposer_timetable.ts +190 -0
  1035. package/src/timetable/timetable-example.svg +108 -0
  1036. package/src/trees/append_only_tree_snapshot.ts +8 -3
  1037. package/src/trees/nullifier_leaf.ts +4 -0
  1038. package/src/trees/nullifier_membership_witness.ts +0 -21
  1039. package/src/trees/public_data_leaf.ts +11 -5
  1040. package/src/trees/public_data_witness.ts +0 -31
  1041. package/src/tx/block_header.ts +18 -7
  1042. package/src/tx/capsule.ts +10 -2
  1043. package/src/tx/execution_payload.ts +2 -1
  1044. package/src/tx/fee_provider.ts +10 -0
  1045. package/src/tx/global_variable_builder.ts +3 -20
  1046. package/src/tx/global_variables.ts +15 -23
  1047. package/src/tx/hashed_values.ts +8 -3
  1048. package/src/tx/index.ts +1 -0
  1049. package/src/tx/indexed_tx_effect.ts +18 -6
  1050. package/src/tx/partial_state_reference.ts +8 -3
  1051. package/src/tx/private_execution_result.ts +5 -5
  1052. package/src/tx/private_tx_constant_data.ts +25 -2
  1053. package/src/tx/profiling.ts +18 -9
  1054. package/src/tx/protocol_contracts.ts +2 -2
  1055. package/src/tx/proven_tx.ts +6 -0
  1056. package/src/tx/public_call_request_with_calldata.ts +8 -3
  1057. package/src/tx/public_simulation_output.ts +4 -0
  1058. package/src/tx/simulated_tx.ts +30 -22
  1059. package/src/tx/state_reference.ts +9 -4
  1060. package/src/tx/tree_snapshots.ts +9 -4
  1061. package/src/tx/tx.ts +80 -35
  1062. package/src/tx/tx_constant_data.ts +8 -3
  1063. package/src/tx/tx_context.ts +8 -3
  1064. package/src/tx/tx_hash.ts +20 -5
  1065. package/src/tx/tx_receipt.ts +269 -74
  1066. package/src/tx/tx_request.ts +2 -2
  1067. package/src/tx/validator/empty_validator.ts +1 -1
  1068. package/src/tx/validator/error_texts.ts +15 -2
  1069. package/src/tx/validator/tx_validator.ts +2 -6
  1070. package/src/types/shared.ts +8 -13
  1071. package/src/update-checker/dev_version.ts +2 -0
  1072. package/src/update-checker/index.ts +3 -1
  1073. package/src/update-checker/package_version.ts +17 -0
  1074. package/src/update-checker/version_checker.ts +65 -0
  1075. package/src/validators/errors.ts +9 -0
  1076. package/src/validators/schemas.ts +13 -4
  1077. package/src/validators/types.ts +25 -5
  1078. package/src/versioning/versioning.ts +5 -2
  1079. package/src/vks/verification_key.ts +5 -184
  1080. package/src/world-state/genesis_data.ts +37 -0
  1081. package/src/world-state/index.ts +1 -0
  1082. package/src/world-state/world_state_revision.ts +9 -1
  1083. package/dest/abi/mocked_keys.d.ts +0 -2
  1084. package/dest/abi/mocked_keys.d.ts.map +0 -1
  1085. package/dest/abi/mocked_keys.js +0 -1
  1086. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  1087. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  1088. package/dest/block/checkpointed_l2_block.js +0 -46
  1089. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  1090. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  1091. package/dest/contract/private_function_membership_proof.js +0 -124
  1092. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  1093. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  1094. package/dest/contract/utility_function_membership_proof.js +0 -87
  1095. package/dest/interfaces/epoch-prover.d.ts +0 -57
  1096. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  1097. package/dest/interfaces/epoch-prover.js +0 -1
  1098. package/dest/interfaces/get_logs_response.d.ts +0 -90
  1099. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  1100. package/dest/interfaces/get_logs_response.js +0 -12
  1101. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  1102. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  1103. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -47
  1104. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
  1105. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
  1106. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  1107. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  1108. package/dest/l1-contracts/slash_factory.js +0 -158
  1109. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  1110. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  1111. package/dest/logs/directional_app_tagging_secret.js +0 -64
  1112. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  1113. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  1114. package/dest/logs/extended_contract_class_log.js +0 -67
  1115. package/dest/logs/extended_public_log.d.ts +0 -100
  1116. package/dest/logs/extended_public_log.d.ts.map +0 -1
  1117. package/dest/logs/extended_public_log.js +0 -73
  1118. package/dest/logs/log_filter.d.ts +0 -22
  1119. package/dest/logs/log_filter.d.ts.map +0 -1
  1120. package/dest/logs/log_filter.js +0 -11
  1121. package/dest/logs/log_id.d.ts +0 -82
  1122. package/dest/logs/log_id.d.ts.map +0 -1
  1123. package/dest/logs/log_id.js +0 -92
  1124. package/dest/logs/message_context.d.ts +0 -29
  1125. package/dest/logs/message_context.d.ts.map +0 -1
  1126. package/dest/logs/message_context.js +0 -56
  1127. package/dest/logs/pending_tagged_log.d.ts +0 -14
  1128. package/dest/logs/pending_tagged_log.d.ts.map +0 -1
  1129. package/dest/logs/pending_tagged_log.js +0 -34
  1130. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  1131. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  1132. package/dest/logs/tx_scoped_l2_log.js +0 -70
  1133. package/dest/note/notes_filter.d.ts +0 -27
  1134. package/dest/note/notes_filter.d.ts.map +0 -1
  1135. package/dest/note/notes_filter.js +0 -11
  1136. package/dest/slashing/empire.d.ts +0 -31
  1137. package/dest/slashing/empire.d.ts.map +0 -1
  1138. package/dest/slashing/empire.js +0 -85
  1139. package/dest/slashing/tally.d.ts.map +0 -1
  1140. package/dest/update-checker/update-checker.d.ts +0 -49
  1141. package/dest/update-checker/update-checker.d.ts.map +0 -1
  1142. package/dest/update-checker/update-checker.js +0 -130
  1143. package/src/abi/mocked_keys.ts +0 -2
  1144. package/src/block/checkpointed_l2_block.ts +0 -70
  1145. package/src/contract/private_function_membership_proof.ts +0 -167
  1146. package/src/contract/utility_function_membership_proof.ts +0 -118
  1147. package/src/interfaces/epoch-prover.ts +0 -72
  1148. package/src/interfaces/get_logs_response.ts +0 -35
  1149. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
  1150. package/src/l1-contracts/slash_factory.ts +0 -180
  1151. package/src/logs/directional_app_tagging_secret.ts +0 -79
  1152. package/src/logs/extended_contract_class_log.ts +0 -87
  1153. package/src/logs/extended_public_log.ts +0 -94
  1154. package/src/logs/log_filter.ts +0 -31
  1155. package/src/logs/log_id.ts +0 -122
  1156. package/src/logs/message_context.ts +0 -62
  1157. package/src/logs/pending_tagged_log.ts +0 -41
  1158. package/src/logs/tx_scoped_l2_log.ts +0 -98
  1159. package/src/note/notes_filter.ts +0 -38
  1160. package/src/slashing/empire.ts +0 -102
  1161. package/src/update-checker/update-checker.ts +0 -166
@@ -1,14 +1,37 @@
1
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { AbortError } from '@aztec/foundation/error';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { RunningPromise } from '@aztec/foundation/running-promise';
5
5
 
6
- import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
7
- import { type L2BlockId, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
8
- import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
9
-
10
- /** Maximum number of checkpoints to prefetch at once during sync. Matches MAX_RPC_CHECKPOINTS_LEN. */
11
- export const CHECKPOINT_PREFETCH_LIMIT = 50;
6
+ import type { L2Block } from '../l2_block.js';
7
+ import { type L2BlockId, type L2BlockSource, type LocalL2Tips, makeL2BlockId } from '../l2_block_source.js';
8
+ import {
9
+ type L2BlockStreamEvent,
10
+ type L2BlockStreamEventHandler,
11
+ type L2BlockStreamLocalDataProvider,
12
+ localBlockIdDiffers,
13
+ } from './interfaces.js';
14
+
15
+ /** Subset of the block source the stream depends on. Checkpoint payloads are no longer fetched here. */
16
+ export type L2BlockStreamSource = Pick<L2BlockSource, 'getBlocks' | 'getBlockData' | 'getL2Tips'>;
17
+
18
+ /** Options accepted by {@link L2BlockStream} and {@link EventDrivenL2BlockStream}. */
19
+ export type L2BlockStreamOptions = {
20
+ pollIntervalMS?: number;
21
+ batchSize?: number;
22
+ startingBlock?: number;
23
+ /** Instead of downloading all blocks, only fetch the smallest subset that results in reliable reorg detection. */
24
+ skipFinalized?: boolean;
25
+ /** When true, checkpoint events will not be emitted. Blocks are still fetched but only blocks-added events are emitted. */
26
+ ignoreCheckpoints?: boolean;
27
+ /**
28
+ * When true, the block download loop is skipped entirely: `getBlocks` is never called and `blocks-added` is
29
+ * never emitted. Only the tip events (`chain-proposed`/`chain-checkpointed`/`chain-proven`/`chain-finalized`)
30
+ * and `chain-pruned` are emitted, driven by the `getL2Tips` snapshot. For consumers that track tips but never
31
+ * consume block payloads.
32
+ */
33
+ tipsOnly?: boolean;
34
+ };
12
35
 
13
36
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
14
37
  export class L2BlockStream {
@@ -17,25 +40,18 @@ export class L2BlockStream {
17
40
  private hasStarted = false;
18
41
 
19
42
  constructor(
20
- private l2BlockSource: Pick<
21
- L2BlockSource,
22
- 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
23
- >,
43
+ private l2BlockSource: L2BlockStreamSource,
24
44
  private localData: L2BlockStreamLocalDataProvider,
25
45
  private handler: L2BlockStreamEventHandler,
26
46
  private readonly log = createLogger('types:block_stream'),
27
- private opts: {
28
- pollIntervalMS?: number;
29
- batchSize?: number;
30
- startingBlock?: number;
31
- /** Instead of downloading all blocks, only fetch the smallest subset that results in reliable reorg detection. */
32
- skipFinalized?: boolean;
33
- /** When true, checkpoint events will not be emitted. Blocks are still fetched via checkpoints but only blocks-added events are emitted. */
34
- ignoreCheckpoints?: boolean;
35
- /** Maximum number of checkpoints to prefetch at once during sync. Defaults to CHECKPOINT_PREFETCH_LIMIT (50). */
36
- checkpointPrefetchLimit?: number;
37
- } = {},
47
+ private opts: L2BlockStreamOptions = {},
38
48
  ) {
49
+ if (opts.tipsOnly && (opts.startingBlock !== undefined || opts.batchSize !== undefined || opts.skipFinalized)) {
50
+ throw new Error(
51
+ 'tipsOnly is incompatible with startingBlock, batchSize, and skipFinalized: all three are ' +
52
+ 'block-download options and there is no download loop in tips-only mode.',
53
+ );
54
+ }
39
55
  // Note that RunningPromise is in stopped state by default. This promise won't run until someone invokes `start`,
40
56
  // which makes it run periodically, or `sync`, which triggers it once.
41
57
  // Users of L2BlockStream decide what mode to run it in (_periodically_ vs _manually triggered_).
@@ -69,18 +85,72 @@ export class L2BlockStream {
69
85
 
70
86
  protected async work() {
71
87
  try {
72
- const sourceTips = await this.l2BlockSource.getL2Tips();
88
+ // The source tips snapshot is the plan for this pass; it is re-read after the walk-back if a divergence is found.
89
+ let sourceTips = await this.l2BlockSource.getL2Tips();
73
90
  const localTips = await this.localData.getL2Tips();
74
91
  this.log.trace(`Running L2 block stream`, { sourceTips, localTips });
75
92
 
76
- // Check if there was a reorg and emit a chain-pruned event if so.
93
+ if (!this.opts.ignoreCheckpoints && localTips.checkpointed === undefined) {
94
+ throw new Error(
95
+ 'Local data provider does not expose a checkpointed tip; checkpoint events require one ' +
96
+ '(set ignoreCheckpoints or provide checkpointed tips).',
97
+ );
98
+ }
99
+
100
+ // Baseline for the chain-proposed event; captured before the local store mutates during the pass.
101
+ const prePassProposed = localTips.proposed;
102
+
103
+ // Walk back to find a reorg, floored at the local finalized tip (a legitimate reorg can never reach it, since
104
+ // finalized means the proving tx is itself L1-finalized). Seed the cache with ONLY the proposed tip: a stale
105
+ // tier seed at a reorged height equals the local old-fork hash, faking agreement and stopping the walk above the
106
+ // true divergence (an under-deep prune no later pass re-detects), whereas a stale proposed seed only masks the
107
+ // tip for one pass.
77
108
  let latestBlockNumber = localTips.proposed.number;
78
109
  const sourceCache = new BlockHashCache([sourceTips.proposed]);
79
- while (!(await this.areBlockHashesEqualAt(latestBlockNumber, { sourceCache }))) {
110
+ const walkFloor = localTips.finalized.block.number;
111
+ while (
112
+ !(await this.areBlockHashesEqualAt(latestBlockNumber, {
113
+ sourceCache,
114
+ sourceProposed: sourceTips.proposed.number,
115
+ }))
116
+ ) {
117
+ if (latestBlockNumber === 0) {
118
+ // Walked back to genesis and the hashes still differ: the two sides disagree on block 0 itself (usually
119
+ // different genesisTimestamp/prefilled state). Fail loudly rather than underflow into negative heights.
120
+ this.log.error(`Genesis block hash mismatch between local store and source`, {
121
+ localBlockHash: await this.localData.getL2BlockHash(BlockNumber.ZERO),
122
+ sourceBlockHash: sourceCache.get(0) ?? (await this.getBlockHashFromSource(BlockNumber.ZERO)),
123
+ });
124
+ throw new Error(
125
+ 'Genesis block hash mismatch between local store and source: refusing to walk past block 0. ' +
126
+ 'This usually indicates the two sides were configured with different genesis values ' +
127
+ '(e.g. genesisTimestamp or prefilled public data).',
128
+ );
129
+ }
130
+ if (latestBlockNumber <= walkFloor) {
131
+ // A mismatch at or below the finalized tip cannot be a reorg (it contradicts L1-finalized state), so stop
132
+ // here and prune at most to the finalized tip rather than pruning finalized state on non-reorg evidence.
133
+ this.log.warn(`Block hash mismatch at or below the local finalized tip; stopping the walk-back here`, {
134
+ blockNumber: latestBlockNumber,
135
+ finalizedBlockNumber: walkFloor,
136
+ localBlockHash: await this.localData.getL2BlockHash(latestBlockNumber),
137
+ sourceBlockHash:
138
+ sourceCache.get(latestBlockNumber) ?? (await this.getBlockHashFromSource(latestBlockNumber)),
139
+ });
140
+ break;
141
+ }
80
142
  latestBlockNumber--;
81
143
  }
82
144
 
145
+ let pruned = false;
83
146
  if (latestBlockNumber < localTips.proposed.number) {
147
+ // Re-read the source tips after the (possibly slow) walk-back so the prune event carries fresh checkpointed
148
+ // and proven tips, and the prune-target clamp, download plan, and tier reconciliation track the post-prune
149
+ // source chain. Append only the re-read proposed tip: it is a fresh entry that cannot poison the (already
150
+ // finished) walk and serves the prune-event hash lookup below.
151
+ sourceTips = await this.l2BlockSource.getL2Tips();
152
+ sourceCache.add(sourceTips.proposed);
153
+
84
154
  latestBlockNumber = BlockNumber(Math.min(latestBlockNumber, sourceTips.proposed.number)); // see #13471
85
155
  const hash = sourceCache.get(latestBlockNumber) ?? (await this.getBlockHashFromSource(latestBlockNumber));
86
156
  if (latestBlockNumber !== 0 && !hash) {
@@ -92,144 +162,56 @@ export class L2BlockStream {
92
162
  await this.emitEvent({
93
163
  type: 'chain-pruned',
94
164
  block: makeL2BlockId(latestBlockNumber, hash),
95
- checkpoint: sourceTips.checkpointed.checkpoint,
165
+ checkpointed: sourceTips.checkpointed,
166
+ proven: sourceTips.proven,
96
167
  });
168
+ pruned = true;
97
169
  }
98
170
 
99
- // 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));
102
- }
103
-
104
- // Only log this entry once (for sanity)
105
- if (!this.hasStarted) {
106
- this.log.verbose(`Starting sync from block number ${latestBlockNumber}`);
107
- this.hasStarted = true;
108
- }
109
-
110
- let nextBlockNumber = latestBlockNumber + 1;
111
- let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
112
- if (this.opts.skipFinalized) {
113
- // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
114
- // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
115
- // last finalized block however in order to guarantee that we will eventually find a block in which our local
116
- // store matches the source.
117
- // If the last finalized block is behind our local tip, there is nothing to skip.
118
- nextBlockNumber = Math.max(sourceTips.finalized.block.number, nextBlockNumber);
119
- // If the next checkpoint to emit is behind the finalized tip then skip forward
120
- nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, sourceTips.finalized.checkpoint.number));
121
- }
122
-
123
- // Loop 1: Emit checkpoint events for checkpoints whose blocks are already in local storage.
124
- // This handles the case where blocks were synced as uncheckpointed and later became checkpointed.
125
- // The guard `lastBlockInCheckpoint.number > localTips.proposed.number` ensures we don't emit
126
- // checkpoints for blocks we don't have (e.g., when startingBlock skips earlier blocks).
127
- // Since only one checkpoint can ever be uncheckpointed, this loop should iterate at most once.
128
- if (!this.opts.ignoreCheckpoints) {
129
- let loop1Iterations = 0;
130
- while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
131
- const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
132
- if (checkpoints.length === 0) {
133
- break;
134
- }
135
- const lastBlockInCheckpoint = checkpoints[0].checkpoint.blocks.at(-1)!;
136
- // If this checkpoint has blocks we haven't seen yet, stop - they need to be fetched first
137
- if (lastBlockInCheckpoint.number > localTips.proposed.number) {
138
- break;
139
- }
140
- loop1Iterations++;
141
- if (loop1Iterations > 1) {
142
- this.log.warn(
143
- `Emitting multiple checkpoints (${loop1Iterations}) for already-local blocks. ` +
144
- `Next checkpoint: ${nextCheckpointToEmit}, source checkpointed: ${sourceTips.checkpointed.checkpoint.number}`,
145
- );
146
- }
147
- const lastBlockHash = await lastBlockInCheckpoint.hash();
148
- await this.emitEvent({
149
- type: 'chain-checkpointed',
150
- checkpoint: checkpoints[0],
151
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
152
- });
153
- nextCheckpointToEmit = CheckpointNumber(nextCheckpointToEmit + 1);
154
- }
155
- }
156
-
157
- // Loop 2: Fetch new checkpointed blocks. For each checkpoint, emit all blocks
158
- // from that checkpoint that we need, then emit the checkpoint event.
159
- // We prefetch multiple checkpoints, then process them one by one.
160
- let prefetchedCheckpoints: PublishedCheckpoint[] = [];
161
- let prefetchIdx = 0;
162
- let nextCheckpointNumber: CheckpointNumber | undefined;
163
-
164
- // Find the starting checkpoint number
165
- 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;
169
- }
171
+ // Pass atomicity: a prune mid-download leaves the source unable to serve the planned blocks, so the snapshot's
172
+ // tier tips may reference blocks the consumer never saw — skip tier reconciliation in that case. Tips-only mode
173
+ // has no download plan (the snapshot is one atomic getL2Tips read), so it always reconciles.
174
+ if (!this.opts.tipsOnly && !(await this.downloadBlocks(latestBlockNumber, sourceTips))) {
175
+ return;
170
176
  }
171
177
 
172
- while (nextBlockNumber <= sourceTips.checkpointed.block.number && nextCheckpointNumber !== undefined) {
173
- // Refill the prefetch buffer when exhausted
174
- if (prefetchIdx >= prefetchedCheckpoints.length) {
175
- const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
176
- prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
177
- prefetchIdx = 0;
178
- if (prefetchedCheckpoints.length === 0) {
179
- break;
180
- }
181
- }
182
-
183
- const checkpoint = prefetchedCheckpoints[prefetchIdx]!;
184
-
185
- // Get all blocks from this checkpoint that we need, respecting batchSize
186
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
187
- const blocksForCheckpoint = checkpoint.checkpoint.blocks
188
- .filter(b => b.number >= nextBlockNumber)
189
- .slice(0, limit);
190
- if (blocksForCheckpoint.length === 0) {
191
- break;
192
- }
193
- await this.emitEvent({ type: 'blocks-added', blocks: blocksForCheckpoint });
194
- nextBlockNumber = blocksForCheckpoint.at(-1)!.number + 1;
195
-
196
- // If we've reached the end of this checkpoint, emit the checkpoint event and move to next
197
- const lastBlockInCheckpoint = checkpoint.checkpoint.blocks.at(-1)!;
198
- if (nextBlockNumber > lastBlockInCheckpoint.number) {
199
- if (!this.opts.ignoreCheckpoints) {
200
- const lastBlockHash = await lastBlockInCheckpoint.hash();
201
- await this.emitEvent({
202
- type: 'chain-checkpointed',
203
- checkpoint,
204
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
205
- });
206
- }
207
- prefetchIdx++;
208
- nextCheckpointNumber = CheckpointNumber(nextCheckpointNumber + 1);
209
- }
178
+ // End-of-pass reconciliation: chain-proposed fires against the pre-pass baseline (a post-prune re-read would
179
+ // equal the source tip and suppress it), then the tiers highest-to-lowest so the finalized <= proven <=
180
+ // checkpointed <= proposed invariant holds mid-pass.
181
+ if (localBlockIdDiffers(prePassProposed, sourceTips.proposed)) {
182
+ await this.emitEvent({ type: 'chain-proposed', block: sourceTips.proposed });
210
183
  }
211
184
 
212
- // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
213
- while (nextBlockNumber <= sourceTips.proposed.number) {
214
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
215
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
216
- const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
217
- if (blocks.length === 0) {
218
- break;
219
- }
220
- await this.emitEvent({ type: 'blocks-added', blocks });
221
- nextBlockNumber = blocks.at(-1)!.number + 1;
185
+ const reconcileTips = pruned ? await this.localData.getL2Tips() : localTips;
186
+ if (
187
+ !this.opts.ignoreCheckpoints &&
188
+ localBlockIdDiffers(reconcileTips.checkpointed?.block, sourceTips.checkpointed.block)
189
+ ) {
190
+ await this.emitEvent({
191
+ type: 'chain-checkpointed',
192
+ block: sourceTips.checkpointed.block,
193
+ checkpoint: sourceTips.checkpointed.checkpoint,
194
+ });
222
195
  }
223
-
224
- // Update the proven and finalized tips.
225
- if (localTips.proven !== undefined && sourceTips.proven.block.number !== localTips.proven.block.number) {
196
+ if (
197
+ reconcileTips.proven !== undefined &&
198
+ localBlockIdDiffers(reconcileTips.proven.block, sourceTips.proven.block)
199
+ ) {
226
200
  await this.emitEvent({
227
201
  type: 'chain-proven',
228
202
  block: sourceTips.proven.block,
203
+ checkpoint: sourceTips.proven.checkpoint,
229
204
  });
230
205
  }
231
- if (localTips.finalized !== undefined && sourceTips.finalized.block.number !== localTips.finalized.block.number) {
232
- await this.emitEvent({ type: 'chain-finalized', block: sourceTips.finalized.block });
206
+ if (
207
+ reconcileTips.finalized !== undefined &&
208
+ localBlockIdDiffers(reconcileTips.finalized.block, sourceTips.finalized.block)
209
+ ) {
210
+ await this.emitEvent({
211
+ type: 'chain-finalized',
212
+ block: sourceTips.finalized.block,
213
+ checkpoint: sourceTips.finalized.checkpoint,
214
+ });
233
215
  }
234
216
  } catch (err: any) {
235
217
  if (err.name === 'AbortError') {
@@ -240,14 +222,83 @@ export class L2BlockStream {
240
222
  }
241
223
 
242
224
  /**
243
- * Returns whether the source and local agree on the block hash at a given height.
244
- * @param blockNumber - The block number to test.
245
- * @param args - A cache of data already requested from source, to avoid re-requesting it.
225
+ * Downloads every block from the post-prune cursor through the source's proposed tip, emitting `blocks-added`
226
+ * events. The return value gates tier-cursor advancement (pass atomicity): tier tips may only be reconciled when
227
+ * the plan that backs them ran to the proposed tip.
228
+ * @returns `true` if the plan completed (caught up, or delivered the proposed tip with a matching hash); `false` if
229
+ * the source no longer has a promised block, or served a fork at the proposed height mid-pass.
246
230
  */
247
- private async areBlockHashesEqualAt(blockNumber: BlockNumber, args: { sourceCache: BlockHashCache }) {
248
- if (blockNumber === 0) {
231
+ private async downloadBlocks(latestBlockNumber: BlockNumber, sourceTips: LocalL2Tips): Promise<boolean> {
232
+ // The post-prune cursor: the highest block number both sides agree on. Block downloads resume from here.
233
+ let nextBlockNumber = latestBlockNumber + 1;
234
+
235
+ // From a fresh local store, fast-forward past history the consumer doesn't care about.
236
+ const startingBlock = this.opts.startingBlock !== undefined ? BlockNumber(this.opts.startingBlock) : undefined;
237
+ if (latestBlockNumber === 0 && startingBlock !== undefined) {
238
+ nextBlockNumber = Math.max(startingBlock, 1);
239
+ }
240
+
241
+ if (this.opts.skipFinalized) {
242
+ // Finalized blocks cannot be reorged, so skip them — but keep the last finalized block as the guaranteed point
243
+ // where local and source agree, the floor the walk-back terminates against.
244
+ nextBlockNumber = Math.max(sourceTips.finalized.block.number, nextBlockNumber);
245
+ }
246
+
247
+ if (!this.hasStarted) {
248
+ this.log.verbose(`Starting sync from block number ${nextBlockNumber - 1}`);
249
+ this.hasStarted = true;
250
+ }
251
+
252
+ let lastDeliveredBlock: L2Block | undefined;
253
+
254
+ while (nextBlockNumber <= sourceTips.proposed.number) {
255
+ const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
256
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
257
+ const blocks = await this.l2BlockSource.getBlocks({ from: BlockNumber(nextBlockNumber), limit });
258
+ if (blocks.length === 0) {
259
+ // The source no longer has a block the snapshot promised: the snapshot is provably stale, so report the plan
260
+ // incomplete and skip reconciliation this pass.
261
+ this.log.warn(`Block source returned no blocks for a promised range; skipping reconciliation this pass`, {
262
+ from: nextBlockNumber,
263
+ limit,
264
+ sourceProposed: sourceTips.proposed.number,
265
+ });
266
+ return false;
267
+ }
268
+ await this.emitEvent({ type: 'blocks-added', blocks });
269
+ lastDeliveredBlock = blocks.at(-1)!;
270
+ nextBlockNumber = lastDeliveredBlock.number + 1;
271
+ }
272
+
273
+ if (lastDeliveredBlock === undefined) {
274
+ // Loop never ran: caught up before the plan started, or startingBlock past the tip (A-1061). Trivially complete.
249
275
  return true;
250
276
  }
277
+
278
+ // Complete iff the block delivered at the proposed height carries the snapshot's proposed hash; a different hash
279
+ // means a same-height fork swap happened mid-pass, so the snapshot is stale.
280
+ const deliveredHash = (await lastDeliveredBlock.hash()).toString();
281
+ if (deliveredHash !== sourceTips.proposed.hash) {
282
+ this.log.warn(`Delivered proposed-block hash differs from snapshot; skipping reconciliation this pass`, {
283
+ blockNumber: lastDeliveredBlock.number,
284
+ deliveredHash,
285
+ snapshotHash: sourceTips.proposed.hash,
286
+ });
287
+ return false;
288
+ }
289
+ return true;
290
+ }
291
+
292
+ /**
293
+ * Returns whether the source and local agree on the block hash at a given height.
294
+ * @param blockNumber - The block number to test.
295
+ * @param args - A cache of data already requested from source (to avoid re-requesting it) and the source's
296
+ * advertised proposed tip from the pass snapshot (to detect an incoherent source).
297
+ */
298
+ private async areBlockHashesEqualAt(
299
+ blockNumber: BlockNumber,
300
+ args: { sourceCache: BlockHashCache; sourceProposed: BlockNumber },
301
+ ) {
251
302
  const localBlockHash = await this.localData.getL2BlockHash(blockNumber);
252
303
  if (!localBlockHash && this.opts.skipFinalized) {
253
304
  // Failing to find a block hash when skipping finalized blocks can be highly problematic as we'd potentially need
@@ -257,12 +308,28 @@ export class L2BlockStream {
257
308
  this.log.error(`No local block hash for block number ${blockNumber}`);
258
309
  throw new AbortError();
259
310
  }
311
+ if (!localBlockHash) {
312
+ // A missing local hash compares UNEQUAL: treating both-undefined as equal would stop the walk above the true
313
+ // divergence (an under-deep prune no later pass re-detects). Over-deep is the safe direction, and block 0 always
314
+ // resolves via the store's initialBlockHash so the walk always terminates.
315
+ this.log.trace(`No local block hash for block number ${blockNumber}; treating as unequal`);
316
+ return false;
317
+ }
260
318
 
261
319
  const sourceBlockHashFromCache = args.sourceCache.get(blockNumber);
262
320
  const sourceBlockHash = args.sourceCache.get(blockNumber) ?? (await this.getBlockHashFromSource(blockNumber));
263
321
  if (!sourceBlockHashFromCache && sourceBlockHash) {
264
322
  args.sourceCache.add({ number: blockNumber, hash: sourceBlockHash });
265
323
  }
324
+ if (!sourceBlockHash && blockNumber !== 0 && blockNumber <= args.sourceProposed) {
325
+ // No source data at or below the source's own proposed tip: the source contradicts itself (mid-reorg unwind or
326
+ // a transient read failure), so skip this pass.
327
+ this.log.warn(`Source has no data for a block at or below its proposed tip; skipping this sync pass`, {
328
+ blockNumber,
329
+ sourceProposed: args.sourceProposed,
330
+ });
331
+ throw new AbortError();
332
+ }
266
333
 
267
334
  this.log.trace(`Comparing block hashes for block ${blockNumber}`, { localBlockHash, sourceBlockHash });
268
335
  return localBlockHash === sourceBlockHash;
@@ -270,14 +337,20 @@ export class L2BlockStream {
270
337
 
271
338
  private getBlockHashFromSource(blockNumber: BlockNumber) {
272
339
  return this.l2BlockSource
273
- .getBlockHeader(blockNumber)
274
- .then(h => h?.hash())
340
+ .getBlockData({ number: blockNumber })
341
+ .then(d => d?.header.hash())
275
342
  .then(hash => hash?.toString());
276
343
  }
277
344
 
278
345
  private async emitEvent(event: L2BlockStreamEvent) {
279
346
  this.log.debug(
280
- `Emitting ${event.type} (${event.type === 'blocks-added' ? event.blocks.length : event.type === 'chain-checkpointed' ? event.checkpoint.checkpoint.number : event.block.number})`,
347
+ `Emitting ${event.type} (${
348
+ event.type === 'blocks-added'
349
+ ? event.blocks.length
350
+ : event.type === 'chain-checkpointed'
351
+ ? event.checkpoint.number
352
+ : event.block.number
353
+ })`,
281
354
  );
282
355
  await this.handler.handleBlockStreamEvent(event);
283
356
  if (!this.isRunning() && !this.isSyncing) {
@@ -1,7 +1,7 @@
1
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
1
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
 
3
- import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
4
- import type { L2BlockTag } from '../l2_block_source.js';
3
+ import type { BlockHash } from '../block_hash.js';
4
+ import type { CheckpointId, L2BlockTag } from '../l2_block_source.js';
5
5
  import { L2TipsStoreBase } from './l2_tips_store_base.js';
6
6
 
7
7
  /**
@@ -9,10 +9,13 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
9
9
  * @dev Tests in kv-store/src/stores/l2_tips_memory_store.test.ts
10
10
  */
11
11
  export class L2TipsMemoryStore extends L2TipsStoreBase {
12
+ constructor(initialBlockHash: BlockHash) {
13
+ super(initialBlockHash);
14
+ }
15
+
12
16
  private readonly tips = new Map<L2BlockTag, BlockNumber>();
17
+ private readonly tipCheckpoints = new Map<L2BlockTag, CheckpointId>();
13
18
  private readonly blockHashes = new Map<number, string>();
14
- private readonly blockToCheckpoint = new Map<number, CheckpointNumber>();
15
- private readonly checkpoints = new Map<number, PublishedCheckpoint>();
16
19
 
17
20
  protected getTip(tag: L2BlockTag): Promise<BlockNumber | undefined> {
18
21
  return Promise.resolve(this.tips.get(tag));
@@ -23,6 +26,15 @@ export class L2TipsMemoryStore extends L2TipsStoreBase {
23
26
  return Promise.resolve();
24
27
  }
25
28
 
29
+ protected getTipCheckpoint(tag: L2BlockTag): Promise<CheckpointId | undefined> {
30
+ return Promise.resolve(this.tipCheckpoints.get(tag));
31
+ }
32
+
33
+ protected setTipCheckpoint(tag: L2BlockTag, checkpoint: CheckpointId): Promise<void> {
34
+ this.tipCheckpoints.set(tag, checkpoint);
35
+ return Promise.resolve();
36
+ }
37
+
26
38
  protected getStoredBlockHash(blockNumber: BlockNumber): Promise<string | undefined> {
27
39
  return Promise.resolve(this.blockHashes.get(blockNumber));
28
40
  }
@@ -41,42 +53,6 @@ export class L2TipsMemoryStore extends L2TipsStoreBase {
41
53
  return Promise.resolve();
42
54
  }
43
55
 
44
- protected getCheckpointNumberForBlock(blockNumber: BlockNumber): Promise<CheckpointNumber | undefined> {
45
- return Promise.resolve(this.blockToCheckpoint.get(blockNumber));
46
- }
47
-
48
- protected setCheckpointNumberForBlock(blockNumber: BlockNumber, checkpointNumber: CheckpointNumber): Promise<void> {
49
- this.blockToCheckpoint.set(blockNumber, checkpointNumber);
50
- return Promise.resolve();
51
- }
52
-
53
- protected deleteBlockToCheckpointBefore(blockNumber: BlockNumber): Promise<void> {
54
- for (const key of this.blockToCheckpoint.keys()) {
55
- if (key < blockNumber) {
56
- this.blockToCheckpoint.delete(key);
57
- }
58
- }
59
- return Promise.resolve();
60
- }
61
-
62
- protected getCheckpoint(checkpointNumber: CheckpointNumber): Promise<PublishedCheckpoint | undefined> {
63
- return Promise.resolve(this.checkpoints.get(checkpointNumber));
64
- }
65
-
66
- protected saveCheckpointData(checkpoint: PublishedCheckpoint): Promise<void> {
67
- this.checkpoints.set(checkpoint.checkpoint.number, checkpoint);
68
- return Promise.resolve();
69
- }
70
-
71
- protected deleteCheckpointsBefore(checkpointNumber: CheckpointNumber): Promise<void> {
72
- for (const key of this.checkpoints.keys()) {
73
- if (key < checkpointNumber) {
74
- this.checkpoints.delete(key);
75
- }
76
- }
77
- return Promise.resolve();
78
- }
79
-
80
56
  protected runInTransaction<T>(fn: () => Promise<T>): Promise<T> {
81
57
  // Memory store doesn't need transactions - just execute immediately
82
58
  return fn();