@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.2

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 (961) 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 +5 -44
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +12 -67
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +32 -6
  18. package/dest/abi/event_selector.d.ts +4 -7
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +7 -25
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_selector.d.ts +3 -6
  23. package/dest/abi/function_selector.d.ts.map +1 -1
  24. package/dest/abi/function_selector.js +2 -4
  25. package/dest/abi/function_signature_decoder.d.ts +43 -0
  26. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  27. package/dest/abi/function_signature_decoder.js +66 -0
  28. package/dest/abi/index.d.ts +2 -1
  29. package/dest/abi/index.d.ts.map +1 -1
  30. package/dest/abi/index.js +1 -0
  31. package/dest/abi/note_selector.d.ts +4 -7
  32. package/dest/abi/note_selector.d.ts.map +1 -1
  33. package/dest/abi/note_selector.js +1 -3
  34. package/dest/abi/selector.d.ts +2 -2
  35. package/dest/abi/selector.d.ts.map +1 -1
  36. package/dest/abi/selector.js +1 -1
  37. package/dest/abi/utils.d.ts +1 -1
  38. package/dest/abi/utils.d.ts.map +1 -1
  39. package/dest/abi/utils.js +1 -1
  40. package/dest/auth_witness/auth_witness.d.ts +2 -2
  41. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  42. package/dest/avm/avm.d.ts +1756 -10463
  43. package/dest/avm/avm.d.ts.map +1 -1
  44. package/dest/avm/avm.js +7 -4
  45. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  46. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  47. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  48. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  49. package/dest/avm/avm_proving_request.d.ts +653 -5446
  50. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  51. package/dest/avm/message_pack.js +12 -3
  52. package/dest/avm/public_data_write.d.ts +6 -12
  53. package/dest/avm/public_data_write.d.ts.map +1 -1
  54. package/dest/avm/revert_code.d.ts +5 -21
  55. package/dest/avm/revert_code.d.ts.map +1 -1
  56. package/dest/avm/revert_code.js +12 -30
  57. package/dest/aztec-address/index.d.ts +42 -12
  58. package/dest/aztec-address/index.d.ts.map +1 -1
  59. package/dest/aztec-address/index.js +40 -13
  60. package/dest/block/attestation_info.d.ts +3 -2
  61. package/dest/block/attestation_info.d.ts.map +1 -1
  62. package/dest/block/attestation_info.js +7 -5
  63. package/dest/block/block_data.d.ts +13 -38
  64. package/dest/block/block_data.d.ts.map +1 -1
  65. package/dest/block/block_data.js +2 -2
  66. package/dest/block/block_hash.d.ts +11 -10
  67. package/dest/block/block_hash.d.ts.map +1 -1
  68. package/dest/block/block_hash.js +10 -9
  69. package/dest/block/block_parameter.d.ts +37 -4
  70. package/dest/block/block_parameter.d.ts.map +1 -1
  71. package/dest/block/block_parameter.js +53 -2
  72. package/dest/block/in_block.d.ts +5 -24
  73. package/dest/block/in_block.d.ts.map +1 -1
  74. package/dest/block/index.d.ts +1 -2
  75. package/dest/block/index.d.ts.map +1 -1
  76. package/dest/block/index.js +0 -1
  77. package/dest/block/l2_block.d.ts +13 -41
  78. package/dest/block/l2_block.d.ts.map +1 -1
  79. package/dest/block/l2_block_info.d.ts +10 -29
  80. package/dest/block/l2_block_info.d.ts.map +1 -1
  81. package/dest/block/l2_block_info.js +6 -5
  82. package/dest/block/l2_block_source.d.ts +201 -356
  83. package/dest/block/l2_block_source.d.ts.map +1 -1
  84. package/dest/block/l2_block_source.js +66 -1
  85. package/dest/block/l2_block_stream/interfaces.d.ts +69 -10
  86. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.d.ts +29 -7
  88. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/l2_block_stream.js +184 -135
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  91. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +20 -18
  94. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  95. package/dest/block/l2_block_stream/l2_tips_store_base.js +84 -40
  96. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  97. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  98. package/dest/block/proposal/attestations_and_signers.js +26 -18
  99. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  100. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +296 -36
  104. package/dest/checkpoint/checkpoint.d.ts +30 -96
  105. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  106. package/dest/checkpoint/checkpoint.js +11 -3
  107. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  108. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint_data.js +12 -0
  110. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  111. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  112. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  115. package/dest/checkpoint/digest.d.ts +18 -0
  116. package/dest/checkpoint/digest.d.ts.map +1 -0
  117. package/dest/checkpoint/digest.js +12 -0
  118. package/dest/checkpoint/index.d.ts +5 -1
  119. package/dest/checkpoint/index.d.ts.map +1 -1
  120. package/dest/checkpoint/index.js +4 -0
  121. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  124. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  125. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  126. package/dest/checkpoint/simulation_overrides.d.ts +61 -0
  127. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
  128. package/dest/checkpoint/simulation_overrides.js +98 -0
  129. package/dest/checkpoint/validate.d.ts +11 -3
  130. package/dest/checkpoint/validate.d.ts.map +1 -1
  131. package/dest/checkpoint/validate.js +9 -6
  132. package/dest/config/chain-config.d.ts +4 -9
  133. package/dest/config/chain-config.d.ts.map +1 -1
  134. package/dest/config/chain-config.js +13 -12
  135. package/dest/config/index.d.ts +2 -2
  136. package/dest/config/index.d.ts.map +1 -1
  137. package/dest/config/index.js +1 -1
  138. package/dest/config/network-consensus-config.d.ts +72 -0
  139. package/dest/config/network-consensus-config.d.ts.map +1 -0
  140. package/dest/config/network-consensus-config.js +231 -0
  141. package/dest/config/sequencer-config.d.ts +7 -3
  142. package/dest/config/sequencer-config.d.ts.map +1 -1
  143. package/dest/config/sequencer-config.js +38 -5
  144. package/dest/contract/complete_address.d.ts +3 -2
  145. package/dest/contract/complete_address.d.ts.map +1 -1
  146. package/dest/contract/complete_address.js +6 -2
  147. package/dest/contract/contract_address.d.ts +5 -5
  148. package/dest/contract/contract_address.d.ts.map +1 -1
  149. package/dest/contract/contract_address.js +5 -4
  150. package/dest/contract/contract_deployment_data.d.ts +15 -61
  151. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  152. package/dest/contract/contract_instance.d.ts +4 -2
  153. package/dest/contract/contract_instance.d.ts.map +1 -1
  154. package/dest/contract/contract_instance.js +10 -3
  155. package/dest/contract/index.d.ts +1 -3
  156. package/dest/contract/index.d.ts.map +1 -1
  157. package/dest/contract/index.js +0 -2
  158. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  159. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  160. package/dest/contract/interfaces/contract_class.js +1 -28
  161. package/dest/contract/interfaces/contract_data_source.d.ts +3 -5
  162. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  163. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  164. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  165. package/dest/contract/interfaces/contract_instance.js +4 -2
  166. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  167. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  168. package/dest/contract/interfaces/node-info.d.ts +11 -1
  169. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  170. package/dest/contract/interfaces/node-info.js +7 -1
  171. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  172. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  173. package/dest/contract/private_function.d.ts +1 -1
  174. package/dest/contract/private_function.d.ts.map +1 -1
  175. package/dest/contract/private_function.js +2 -4
  176. package/dest/database-version/database_version.d.ts +5 -11
  177. package/dest/database-version/database_version.d.ts.map +1 -1
  178. package/dest/database-version/version_manager.d.ts +6 -2
  179. package/dest/database-version/version_manager.d.ts.map +1 -1
  180. package/dest/database-version/version_manager.js +12 -1
  181. package/dest/deserialization/index.d.ts +35 -3
  182. package/dest/deserialization/index.d.ts.map +1 -1
  183. package/dest/deserialization/index.js +32 -1
  184. package/dest/epoch-helpers/index.d.ts +10 -22
  185. package/dest/epoch-helpers/index.d.ts.map +1 -1
  186. package/dest/epoch-helpers/index.js +12 -0
  187. package/dest/file-store/factory.d.ts +4 -3
  188. package/dest/file-store/factory.d.ts.map +1 -1
  189. package/dest/file-store/factory.js +9 -2
  190. package/dest/file-store/http.d.ts +9 -2
  191. package/dest/file-store/http.d.ts.map +1 -1
  192. package/dest/file-store/http.js +20 -9
  193. package/dest/file-store/index.d.ts +3 -1
  194. package/dest/file-store/index.d.ts.map +1 -1
  195. package/dest/file-store/index.js +1 -0
  196. package/dest/file-store/memory.d.ts +24 -0
  197. package/dest/file-store/memory.d.ts.map +1 -0
  198. package/dest/file-store/memory.js +80 -0
  199. package/dest/gas/fee_math.d.ts +49 -0
  200. package/dest/gas/fee_math.d.ts.map +1 -0
  201. package/dest/gas/fee_math.js +80 -0
  202. package/dest/gas/gas.d.ts +9 -14
  203. package/dest/gas/gas.d.ts.map +1 -1
  204. package/dest/gas/gas.js +6 -3
  205. package/dest/gas/gas_fees.d.ts +13 -14
  206. package/dest/gas/gas_fees.d.ts.map +1 -1
  207. package/dest/gas/gas_fees.js +17 -4
  208. package/dest/gas/gas_settings.d.ts +60 -86
  209. package/dest/gas/gas_settings.d.ts.map +1 -1
  210. package/dest/gas/gas_settings.js +49 -9
  211. package/dest/gas/index.d.ts +3 -1
  212. package/dest/gas/index.d.ts.map +1 -1
  213. package/dest/gas/index.js +2 -0
  214. package/dest/gas/tx_gas_limits.d.ts +72 -0
  215. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  216. package/dest/gas/tx_gas_limits.js +85 -0
  217. package/dest/ha-signing/config.d.ts +11 -75
  218. package/dest/ha-signing/config.d.ts.map +1 -1
  219. package/dest/ha-signing/config.js +9 -18
  220. package/dest/ha-signing/index.d.ts +2 -2
  221. package/dest/ha-signing/index.d.ts.map +1 -1
  222. package/dest/ha-signing/index.js +1 -1
  223. package/dest/ha-signing/local_config.d.ts +3 -34
  224. package/dest/ha-signing/local_config.d.ts.map +1 -1
  225. package/dest/ha-signing/local_config.js +2 -2
  226. package/dest/ha-signing/types.d.ts +37 -32
  227. package/dest/ha-signing/types.d.ts.map +1 -1
  228. package/dest/ha-signing/types.js +13 -6
  229. package/dest/hash/hash.d.ts +19 -1
  230. package/dest/hash/hash.d.ts.map +1 -1
  231. package/dest/hash/hash.js +39 -2
  232. package/dest/interfaces/allowed_element.d.ts +4 -28
  233. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  234. package/dest/interfaces/api_limit.d.ts +1 -1
  235. package/dest/interfaces/api_limit.js +1 -1
  236. package/dest/interfaces/archiver.d.ts +20 -32
  237. package/dest/interfaces/archiver.d.ts.map +1 -1
  238. package/dest/interfaces/archiver.js +215 -70
  239. package/dest/interfaces/aztec-node-admin.d.ts +71 -305
  240. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  241. package/dest/interfaces/aztec-node-admin.js +60 -17
  242. package/dest/interfaces/aztec-node-debug.d.ts +59 -0
  243. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  244. package/dest/interfaces/aztec-node-debug.js +49 -0
  245. package/dest/interfaces/aztec-node.d.ts +160 -116
  246. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  247. package/dest/interfaces/aztec-node.js +350 -74
  248. package/dest/interfaces/block-builder.d.ts +5 -1
  249. package/dest/interfaces/block-builder.d.ts.map +1 -1
  250. package/dest/interfaces/block_response.d.ts +90 -0
  251. package/dest/interfaces/block_response.d.ts.map +1 -0
  252. package/dest/interfaces/block_response.js +30 -0
  253. package/dest/interfaces/chain_tips.d.ts +11 -0
  254. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  255. package/dest/interfaces/chain_tips.js +6 -0
  256. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  257. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  258. package/dest/interfaces/checkpoint_parameter.js +18 -0
  259. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  260. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  261. package/dest/interfaces/checkpoint_response.js +26 -0
  262. package/dest/interfaces/client.d.ts +9 -2
  263. package/dest/interfaces/client.d.ts.map +1 -1
  264. package/dest/interfaces/client.js +7 -1
  265. package/dest/interfaces/configs.d.ts +63 -134
  266. package/dest/interfaces/configs.d.ts.map +1 -1
  267. package/dest/interfaces/configs.js +13 -2
  268. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  269. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  270. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  271. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  272. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  273. package/dest/interfaces/l1_publish_info.js +26 -0
  274. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  275. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  276. package/dest/interfaces/l2_logs_source.js +5 -0
  277. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  278. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  279. package/dest/interfaces/p2p-bootstrap.js +8 -2
  280. package/dest/interfaces/p2p.d.ts +46 -7
  281. package/dest/interfaces/p2p.d.ts.map +1 -1
  282. package/dest/interfaces/p2p.js +41 -6
  283. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  284. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  285. package/dest/interfaces/prover-agent.d.ts +5 -23
  286. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  287. package/dest/interfaces/prover-agent.js +4 -1
  288. package/dest/interfaces/prover-client.d.ts +7 -29
  289. package/dest/interfaces/prover-client.d.ts.map +1 -1
  290. package/dest/interfaces/prover-client.js +0 -3
  291. package/dest/interfaces/prover-node.d.ts +12 -8
  292. package/dest/interfaces/prover-node.d.ts.map +1 -1
  293. package/dest/interfaces/prover-node.js +37 -16
  294. package/dest/interfaces/proving-job-source.js +24 -4
  295. package/dest/interfaces/proving-job.d.ts +763 -5814
  296. package/dest/interfaces/proving-job.d.ts.map +1 -1
  297. package/dest/interfaces/proving-job.js +1 -1
  298. package/dest/interfaces/public_storage_override.d.ts +22 -0
  299. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  300. package/dest/interfaces/public_storage_override.js +7 -0
  301. package/dest/interfaces/server.d.ts +6 -2
  302. package/dest/interfaces/server.d.ts.map +1 -1
  303. package/dest/interfaces/server.js +5 -1
  304. package/dest/interfaces/slasher.d.ts +25 -65
  305. package/dest/interfaces/slasher.d.ts.map +1 -1
  306. package/dest/interfaces/slasher.js +8 -4
  307. package/dest/interfaces/tx_provider.d.ts +6 -1
  308. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  309. package/dest/interfaces/validator.d.ts +55 -248
  310. package/dest/interfaces/validator.d.ts.map +1 -1
  311. package/dest/interfaces/validator.js +8 -2
  312. package/dest/interfaces/world_state.d.ts +2 -2
  313. package/dest/interfaces/world_state.d.ts.map +1 -1
  314. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  315. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  316. package/dest/kernel/hints/key_validation_request.js +20 -18
  317. package/dest/kernel/hints/read_request.js +1 -1
  318. package/dest/kernel/index.d.ts +5 -1
  319. package/dest/kernel/index.d.ts.map +1 -1
  320. package/dest/kernel/index.js +4 -0
  321. package/dest/kernel/log_hash.d.ts +6 -2
  322. package/dest/kernel/log_hash.d.ts.map +1 -1
  323. package/dest/kernel/log_hash.js +23 -11
  324. package/dest/kernel/note_hash.js +1 -1
  325. package/dest/kernel/nullifier.js +1 -1
  326. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  327. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  328. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  329. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  330. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  331. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  332. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  333. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  334. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  335. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  336. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  337. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  338. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  339. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  340. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  341. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  342. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  343. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  344. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  345. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  346. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  347. package/dest/kernel/private_log_data.d.ts +1 -1
  348. package/dest/kernel/private_log_data.d.ts.map +1 -1
  349. package/dest/kernel/private_log_data.js +1 -1
  350. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  351. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  352. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  353. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  354. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  355. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  356. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  357. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  358. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  359. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  360. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  361. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  362. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  363. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  364. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  365. package/dest/kernel/public_call_request.d.ts +15 -30
  366. package/dest/kernel/public_call_request.d.ts.map +1 -1
  367. package/dest/kernel/public_call_request.js +16 -7
  368. package/dest/keys/derivation.d.ts +6 -2
  369. package/dest/keys/derivation.d.ts.map +1 -1
  370. package/dest/keys/derivation.js +16 -6
  371. package/dest/keys/public_key.d.ts +22 -3
  372. package/dest/keys/public_key.d.ts.map +1 -1
  373. package/dest/keys/public_key.js +20 -1
  374. package/dest/keys/public_keys.d.ts +55 -82
  375. package/dest/keys/public_keys.d.ts.map +1 -1
  376. package/dest/keys/public_keys.js +102 -74
  377. package/dest/kv-store/config.d.ts +3 -6
  378. package/dest/kv-store/config.d.ts.map +1 -1
  379. package/dest/kv-store/config.js +2 -7
  380. package/dest/l1-contracts/index.d.ts +2 -2
  381. package/dest/l1-contracts/index.d.ts.map +1 -1
  382. package/dest/l1-contracts/index.js +1 -1
  383. package/dest/logs/app_tagging_secret.d.ts +61 -0
  384. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  385. package/dest/logs/app_tagging_secret.js +119 -0
  386. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  387. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  388. package/dest/logs/app_tagging_secret_kind.js +17 -0
  389. package/dest/logs/contract_class_log.d.ts +16 -35
  390. package/dest/logs/contract_class_log.d.ts.map +1 -1
  391. package/dest/logs/contract_class_log.js +11 -13
  392. package/dest/logs/index.d.ts +7 -7
  393. package/dest/logs/index.d.ts.map +1 -1
  394. package/dest/logs/index.js +6 -6
  395. package/dest/logs/log_cursor.d.ts +51 -0
  396. package/dest/logs/log_cursor.d.ts.map +1 -0
  397. package/dest/logs/log_cursor.js +82 -0
  398. package/dest/logs/log_result.d.ts +54 -0
  399. package/dest/logs/log_result.d.ts.map +1 -0
  400. package/dest/logs/log_result.js +56 -0
  401. package/dest/logs/logs_query.d.ts +82 -0
  402. package/dest/logs/logs_query.d.ts.map +1 -0
  403. package/dest/logs/logs_query.js +50 -0
  404. package/dest/logs/message_context.d.ts +4 -16
  405. package/dest/logs/message_context.d.ts.map +1 -1
  406. package/dest/logs/message_context.js +1 -48
  407. package/dest/logs/pending_tagged_log.d.ts +6 -9
  408. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  409. package/dest/logs/pending_tagged_log.js +1 -31
  410. package/dest/logs/pre_tag.d.ts +11 -24
  411. package/dest/logs/pre_tag.d.ts.map +1 -1
  412. package/dest/logs/pre_tag.js +2 -2
  413. package/dest/logs/private_log.d.ts +7 -12
  414. package/dest/logs/private_log.d.ts.map +1 -1
  415. package/dest/logs/private_log.js +6 -3
  416. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  417. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  418. package/dest/logs/query_all_logs_by_tags.js +64 -0
  419. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  420. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  421. package/dest/logs/shared_secret_derivation.js +15 -9
  422. package/dest/logs/siloed_tag.d.ts +8 -7
  423. package/dest/logs/siloed_tag.d.ts.map +1 -1
  424. package/dest/logs/siloed_tag.js +13 -3
  425. package/dest/logs/tag.d.ts +5 -6
  426. package/dest/logs/tag.d.ts.map +1 -1
  427. package/dest/logs/tag.js +4 -0
  428. package/dest/logs/tagging_index_range.d.ts +13 -31
  429. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  430. package/dest/logs/tagging_index_range.js +2 -2
  431. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  432. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  433. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  434. package/dest/messaging/index.d.ts +2 -1
  435. package/dest/messaging/index.d.ts.map +1 -1
  436. package/dest/messaging/index.js +1 -0
  437. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  438. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  439. package/dest/messaging/l1_to_l2_message.js +11 -13
  440. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  441. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  442. package/dest/messaging/l2_to_l1_membership.js +72 -12
  443. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  444. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  445. package/dest/messaging/l2_to_l1_message.js +21 -12
  446. package/dest/noir/index.d.ts +3 -1
  447. package/dest/noir/index.d.ts.map +1 -1
  448. package/dest/note/note.d.ts +2 -2
  449. package/dest/note/note.d.ts.map +1 -1
  450. package/dest/note/note_dao.d.ts +1 -1
  451. package/dest/note/note_dao.d.ts.map +1 -1
  452. package/dest/note/note_dao.js +1 -4
  453. package/dest/p2p/block_proposal.d.ts +31 -14
  454. package/dest/p2p/block_proposal.d.ts.map +1 -1
  455. package/dest/p2p/block_proposal.js +57 -39
  456. package/dest/p2p/checkpoint_attestation.d.ts +16 -9
  457. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  458. package/dest/p2p/checkpoint_attestation.js +23 -24
  459. package/dest/p2p/checkpoint_proposal.d.ts +36 -16
  460. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  461. package/dest/p2p/checkpoint_proposal.js +59 -51
  462. package/dest/p2p/consensus_payload.d.ts +27 -20
  463. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  464. package/dest/p2p/consensus_payload.js +38 -19
  465. package/dest/p2p/gossipable.d.ts +4 -4
  466. package/dest/p2p/gossipable.d.ts.map +1 -1
  467. package/dest/p2p/signature_utils.d.ts +28 -19
  468. package/dest/p2p/signature_utils.d.ts.map +1 -1
  469. package/dest/p2p/signature_utils.js +118 -21
  470. package/dest/p2p/signed_txs.d.ts +15 -13
  471. package/dest/p2p/signed_txs.d.ts.map +1 -1
  472. package/dest/p2p/signed_txs.js +26 -24
  473. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  474. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  475. package/dest/parity/parity_base_private_inputs.js +7 -5
  476. package/dest/parity/parity_public_inputs.d.ts +8 -4
  477. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  478. package/dest/parity/parity_public_inputs.js +6 -3
  479. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  480. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  481. package/dest/proofs/chonk_proof.d.ts +57 -7
  482. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  483. package/dest/proofs/chonk_proof.js +112 -15
  484. package/dest/proofs/recursive_proof.d.ts +2 -2
  485. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  486. package/dest/rollup/block_headers_hash.d.ts +1 -1
  487. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  488. package/dest/rollup/block_headers_hash.js +8 -2
  489. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  490. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  491. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  492. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  493. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  494. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  495. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  496. package/dest/rollup/checkpoint_header.d.ts +8 -3
  497. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  498. package/dest/rollup/checkpoint_header.js +20 -10
  499. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  500. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  501. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  502. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  503. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  504. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  505. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  506. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  507. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  508. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  509. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  510. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  511. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  512. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  513. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  514. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  515. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  516. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  517. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  518. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  519. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  520. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  521. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  522. package/dest/schemas/schemas.d.ts +32 -78
  523. package/dest/schemas/schemas.d.ts.map +1 -1
  524. package/dest/schemas/schemas.js +2 -2
  525. package/dest/slashing/helpers.d.ts +2 -2
  526. package/dest/slashing/helpers.d.ts.map +1 -1
  527. package/dest/slashing/helpers.js +10 -7
  528. package/dest/slashing/index.d.ts +2 -3
  529. package/dest/slashing/index.d.ts.map +1 -1
  530. package/dest/slashing/index.js +1 -2
  531. package/dest/slashing/serialization.d.ts +2 -6
  532. package/dest/slashing/serialization.d.ts.map +1 -1
  533. package/dest/slashing/serialization.js +0 -60
  534. package/dest/slashing/types.d.ts +18 -112
  535. package/dest/slashing/types.d.ts.map +1 -1
  536. package/dest/slashing/types.js +16 -24
  537. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  538. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  539. package/dest/slashing/{tally.js → votes.js} +1 -1
  540. package/dest/snapshots/types.d.ts +15 -78
  541. package/dest/snapshots/types.d.ts.map +1 -1
  542. package/dest/stats/stats.d.ts +2 -2
  543. package/dest/stats/stats.d.ts.map +1 -1
  544. package/dest/tests/factories.d.ts +25 -32
  545. package/dest/tests/factories.d.ts.map +1 -1
  546. package/dest/tests/factories.js +78 -84
  547. package/dest/tests/mocks.d.ts +8 -5
  548. package/dest/tests/mocks.d.ts.map +1 -1
  549. package/dest/tests/mocks.js +45 -56
  550. package/dest/timetable/budgets.d.ts +57 -0
  551. package/dest/timetable/budgets.d.ts.map +1 -0
  552. package/dest/timetable/budgets.js +56 -0
  553. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  554. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  555. package/dest/timetable/build_proposer_timetable.js +17 -0
  556. package/dest/timetable/consensus_timetable.d.ts +70 -0
  557. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  558. package/dest/timetable/consensus_timetable.js +89 -0
  559. package/dest/timetable/index.d.ts +5 -37
  560. package/dest/timetable/index.d.ts.map +1 -1
  561. package/dest/timetable/index.js +4 -39
  562. package/dest/timetable/proposer_timetable.d.ts +106 -0
  563. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  564. package/dest/timetable/proposer_timetable.js +132 -0
  565. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  566. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  567. package/dest/trees/append_only_tree_snapshot.js +6 -3
  568. package/dest/trees/nullifier_leaf.d.ts +19 -42
  569. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  570. package/dest/trees/nullifier_leaf.js +3 -0
  571. package/dest/trees/nullifier_membership_witness.d.ts +17 -63
  572. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  573. package/dest/trees/nullifier_membership_witness.js +0 -21
  574. package/dest/trees/public_data_leaf.d.ts +21 -53
  575. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  576. package/dest/trees/public_data_witness.d.ts +19 -71
  577. package/dest/trees/public_data_witness.d.ts.map +1 -1
  578. package/dest/trees/public_data_witness.js +0 -27
  579. package/dest/tx/block_header.d.ts +5 -4
  580. package/dest/tx/block_header.d.ts.map +1 -1
  581. package/dest/tx/block_header.js +7 -4
  582. package/dest/tx/call_context.d.ts +4 -14
  583. package/dest/tx/call_context.d.ts.map +1 -1
  584. package/dest/tx/capsule.d.ts +7 -3
  585. package/dest/tx/capsule.d.ts.map +1 -1
  586. package/dest/tx/capsule.js +9 -3
  587. package/dest/tx/execution_payload.d.ts +1 -1
  588. package/dest/tx/execution_payload.d.ts.map +1 -1
  589. package/dest/tx/execution_payload.js +1 -1
  590. package/dest/tx/fee_provider.d.ts +10 -0
  591. package/dest/tx/fee_provider.d.ts.map +1 -0
  592. package/dest/tx/fee_provider.js +1 -0
  593. package/dest/tx/function_data.d.ts +4 -10
  594. package/dest/tx/function_data.d.ts.map +1 -1
  595. package/dest/tx/global_variable_builder.d.ts +4 -15
  596. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  597. package/dest/tx/global_variables.d.ts +16 -49
  598. package/dest/tx/global_variables.d.ts.map +1 -1
  599. package/dest/tx/global_variables.js +10 -14
  600. package/dest/tx/hashed_values.d.ts +4 -3
  601. package/dest/tx/hashed_values.d.ts.map +1 -1
  602. package/dest/tx/hashed_values.js +6 -3
  603. package/dest/tx/in_tx.d.ts +5 -17
  604. package/dest/tx/in_tx.d.ts.map +1 -1
  605. package/dest/tx/index.d.ts +2 -1
  606. package/dest/tx/index.d.ts.map +1 -1
  607. package/dest/tx/index.js +1 -0
  608. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  609. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  610. package/dest/tx/indexed_tx_effect.js +9 -6
  611. package/dest/tx/partial_state_reference.d.ts +22 -65
  612. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  613. package/dest/tx/partial_state_reference.js +6 -3
  614. package/dest/tx/private_execution_result.d.ts +6 -16
  615. package/dest/tx/private_execution_result.d.ts.map +1 -1
  616. package/dest/tx/profiling.d.ts +54 -352
  617. package/dest/tx/profiling.d.ts.map +1 -1
  618. package/dest/tx/profiling.js +4 -4
  619. package/dest/tx/protocol_contracts.d.ts +5 -9
  620. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  621. package/dest/tx/proven_tx.d.ts +30 -74
  622. package/dest/tx/proven_tx.d.ts.map +1 -1
  623. package/dest/tx/proven_tx.js +6 -0
  624. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  625. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  626. package/dest/tx/public_call_request_with_calldata.js +6 -3
  627. package/dest/tx/simulated_tx.d.ts +64 -1143
  628. package/dest/tx/simulated_tx.d.ts.map +1 -1
  629. package/dest/tx/simulated_tx.js +13 -11
  630. package/dest/tx/state_reference.d.ts +30 -117
  631. package/dest/tx/state_reference.d.ts.map +1 -1
  632. package/dest/tx/state_reference.js +6 -4
  633. package/dest/tx/tree_snapshots.d.ts +27 -84
  634. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  635. package/dest/tx/tree_snapshots.js +6 -4
  636. package/dest/tx/tx.d.ts +22 -13
  637. package/dest/tx/tx.d.ts.map +1 -1
  638. package/dest/tx/tx.js +44 -22
  639. package/dest/tx/tx_constant_data.d.ts +4 -3
  640. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  641. package/dest/tx/tx_constant_data.js +6 -3
  642. package/dest/tx/tx_context.d.ts +32 -131
  643. package/dest/tx/tx_context.d.ts.map +1 -1
  644. package/dest/tx/tx_context.js +6 -6
  645. package/dest/tx/tx_hash.d.ts +6 -4
  646. package/dest/tx/tx_hash.d.ts.map +1 -1
  647. package/dest/tx/tx_hash.js +13 -5
  648. package/dest/tx/tx_receipt.d.ts +144 -63
  649. package/dest/tx/tx_receipt.d.ts.map +1 -1
  650. package/dest/tx/tx_receipt.js +143 -60
  651. package/dest/tx/validator/error_texts.d.ts +6 -2
  652. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  653. package/dest/tx/validator/error_texts.js +7 -1
  654. package/dest/tx/validator/tx_validator.d.ts +5 -27
  655. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  656. package/dest/tx/validator/tx_validator.js +0 -4
  657. package/dest/types/shared.d.ts +4 -12
  658. package/dest/types/shared.d.ts.map +1 -1
  659. package/dest/types/shared.js +6 -12
  660. package/dest/update-checker/dev_version.d.ts +3 -0
  661. package/dest/update-checker/dev_version.d.ts.map +1 -0
  662. package/dest/update-checker/dev_version.js +1 -0
  663. package/dest/update-checker/index.d.ts +2 -1
  664. package/dest/update-checker/index.d.ts.map +1 -1
  665. package/dest/update-checker/index.js +1 -0
  666. package/dest/update-checker/package_version.d.ts +6 -3
  667. package/dest/update-checker/package_version.d.ts.map +1 -1
  668. package/dest/update-checker/package_version.js +8 -19
  669. package/dest/validators/schemas.d.ts +147 -614
  670. package/dest/validators/schemas.d.ts.map +1 -1
  671. package/dest/validators/schemas.js +6 -4
  672. package/dest/validators/types.d.ts +20 -3
  673. package/dest/validators/types.d.ts.map +1 -1
  674. package/dest/versioning/versioning.js +1 -1
  675. package/dest/vks/verification_key.d.ts +4 -139
  676. package/dest/vks/verification_key.d.ts.map +1 -1
  677. package/dest/vks/verification_key.js +5 -126
  678. package/dest/world-state/genesis_data.d.ts +13 -0
  679. package/dest/world-state/genesis_data.d.ts.map +1 -0
  680. package/dest/world-state/genesis_data.js +7 -0
  681. package/dest/world-state/index.d.ts +2 -1
  682. package/dest/world-state/index.d.ts.map +1 -1
  683. package/dest/world-state/index.js +1 -0
  684. package/dest/world-state/world_state_revision.d.ts +15 -26
  685. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  686. package/dest/world-state/world_state_revision.js +7 -1
  687. package/package.json +12 -11
  688. package/src/abi/abi.ts +78 -21
  689. package/src/abi/authorization_selector.ts +2 -8
  690. package/src/abi/buffer.ts +38 -5
  691. package/src/abi/contract_artifact.ts +30 -6
  692. package/src/abi/decoder.ts +23 -78
  693. package/src/abi/encoder.ts +42 -6
  694. package/src/abi/event_selector.ts +2 -8
  695. package/src/abi/function_selector.ts +4 -13
  696. package/src/abi/function_signature_decoder.ts +77 -0
  697. package/src/abi/index.ts +1 -0
  698. package/src/abi/note_selector.ts +3 -12
  699. package/src/abi/selector.ts +1 -1
  700. package/src/abi/utils.ts +6 -4
  701. package/src/avm/avm.ts +6 -1
  702. package/src/avm/message_pack.ts +12 -3
  703. package/src/avm/revert_code.ts +19 -39
  704. package/src/aztec-address/index.ts +50 -17
  705. package/src/block/attestation_info.ts +11 -11
  706. package/src/block/block_data.ts +3 -4
  707. package/src/block/block_hash.ts +21 -14
  708. package/src/block/block_parameter.ts +72 -4
  709. package/src/block/index.ts +0 -1
  710. package/src/block/l2_block_info.ts +8 -6
  711. package/src/block/l2_block_source.ts +210 -146
  712. package/src/block/l2_block_stream/interfaces.ts +65 -9
  713. package/src/block/l2_block_stream/l2_block_stream.ts +250 -171
  714. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  715. package/src/block/l2_block_stream/l2_tips_store_base.ts +85 -60
  716. package/src/block/proposal/attestations_and_signers.ts +32 -17
  717. package/src/block/test/l2_tips_store_test_suite.ts +271 -22
  718. package/src/checkpoint/checkpoint.ts +13 -3
  719. package/src/checkpoint/checkpoint_data.ts +44 -4
  720. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  721. package/src/checkpoint/digest.ts +28 -0
  722. package/src/checkpoint/index.ts +4 -0
  723. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  724. package/src/checkpoint/simulation_overrides.ts +171 -0
  725. package/src/checkpoint/validate.ts +16 -6
  726. package/src/config/chain-config.ts +13 -16
  727. package/src/config/index.ts +1 -1
  728. package/src/config/network-consensus-config.ts +302 -0
  729. package/src/config/sequencer-config.ts +68 -9
  730. package/src/contract/complete_address.ts +7 -3
  731. package/src/contract/contract_address.ts +6 -6
  732. package/src/contract/contract_instance.ts +11 -2
  733. package/src/contract/index.ts +0 -2
  734. package/src/contract/interfaces/contract_class.ts +2 -82
  735. package/src/contract/interfaces/contract_data_source.ts +2 -4
  736. package/src/contract/interfaces/contract_instance.ts +6 -2
  737. package/src/contract/interfaces/node-info.ts +11 -0
  738. package/src/contract/private_function.ts +3 -1
  739. package/src/database-version/version_manager.ts +17 -0
  740. package/src/deserialization/index.ts +35 -2
  741. package/src/epoch-helpers/index.ts +24 -0
  742. package/src/file-store/factory.ts +20 -4
  743. package/src/file-store/http.ts +29 -10
  744. package/src/file-store/index.ts +2 -0
  745. package/src/file-store/memory.ts +94 -0
  746. package/src/gas/README.md +123 -0
  747. package/src/gas/fee_math.ts +120 -0
  748. package/src/gas/gas.ts +8 -3
  749. package/src/gas/gas_fees.ts +26 -13
  750. package/src/gas/gas_settings.ts +63 -15
  751. package/src/gas/index.ts +2 -0
  752. package/src/gas/tx_gas_limits.ts +123 -0
  753. package/src/ha-signing/config.ts +14 -18
  754. package/src/ha-signing/index.ts +3 -1
  755. package/src/ha-signing/local_config.ts +2 -2
  756. package/src/ha-signing/types.ts +48 -34
  757. package/src/hash/hash.ts +34 -2
  758. package/src/interfaces/api_limit.ts +1 -1
  759. package/src/interfaces/archiver.ts +88 -93
  760. package/src/interfaces/aztec-node-admin.ts +36 -21
  761. package/src/interfaces/aztec-node-debug.ts +92 -0
  762. package/src/interfaces/aztec-node.ts +398 -271
  763. package/src/interfaces/block-builder.ts +4 -0
  764. package/src/interfaces/block_response.ts +92 -0
  765. package/src/interfaces/chain_tips.ts +16 -0
  766. package/src/interfaces/checkpoint_parameter.ts +20 -0
  767. package/src/interfaces/checkpoint_response.ts +84 -0
  768. package/src/interfaces/client.ts +8 -1
  769. package/src/interfaces/configs.ts +64 -7
  770. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  771. package/src/interfaces/l1_publish_info.ts +40 -0
  772. package/src/interfaces/l2_logs_source.ts +13 -42
  773. package/src/interfaces/merkle_tree_operations.ts +3 -2
  774. package/src/interfaces/p2p-bootstrap.ts +2 -2
  775. package/src/interfaces/p2p.ts +59 -19
  776. package/src/interfaces/private_kernel_prover.ts +88 -0
  777. package/src/interfaces/prover-agent.ts +1 -1
  778. package/src/interfaces/prover-client.ts +3 -8
  779. package/src/interfaces/prover-node.ts +36 -21
  780. package/src/interfaces/proving-job-source.ts +4 -4
  781. package/src/interfaces/proving-job.ts +3 -3
  782. package/src/interfaces/public_storage_override.ts +26 -0
  783. package/src/interfaces/server.ts +5 -1
  784. package/src/interfaces/slasher.ts +17 -10
  785. package/src/interfaces/tx_provider.ts +6 -0
  786. package/src/interfaces/validator.ts +45 -15
  787. package/src/interfaces/world_state.ts +1 -1
  788. package/src/kernel/hints/key_validation_request.ts +18 -16
  789. package/src/kernel/hints/read_request.ts +1 -1
  790. package/src/kernel/index.ts +4 -0
  791. package/src/kernel/log_hash.ts +36 -13
  792. package/src/kernel/note_hash.ts +1 -1
  793. package/src/kernel/nullifier.ts +1 -1
  794. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  795. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  796. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  797. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  798. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  799. package/src/kernel/private_log_data.ts +4 -1
  800. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  801. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  802. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  803. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  804. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  805. package/src/kernel/public_call_request.ts +22 -7
  806. package/src/keys/derivation.ts +21 -9
  807. package/src/keys/public_key.ts +26 -2
  808. package/src/keys/public_keys.ts +124 -110
  809. package/src/kv-store/config.ts +3 -10
  810. package/src/l1-contracts/index.ts +1 -1
  811. package/src/logs/app_tagging_secret.ts +153 -0
  812. package/src/logs/app_tagging_secret_kind.ts +21 -0
  813. package/src/logs/contract_class_log.ts +15 -14
  814. package/src/logs/index.ts +6 -6
  815. package/src/logs/log_cursor.ts +110 -0
  816. package/src/logs/log_result.ts +104 -0
  817. package/src/logs/logs_query.ts +138 -0
  818. package/src/logs/message_context.ts +6 -50
  819. package/src/logs/pending_tagged_log.ts +6 -35
  820. package/src/logs/pre_tag.ts +3 -6
  821. package/src/logs/private_log.ts +9 -3
  822. package/src/logs/query_all_logs_by_tags.ts +98 -0
  823. package/src/logs/shared_secret_derivation.ts +21 -10
  824. package/src/logs/siloed_tag.ts +20 -11
  825. package/src/logs/tag.ts +8 -8
  826. package/src/logs/tagging_index_range.ts +4 -10
  827. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  828. package/src/messaging/index.ts +1 -0
  829. package/src/messaging/l1_to_l2_message.ts +12 -9
  830. package/src/messaging/l2_to_l1_membership.ts +108 -19
  831. package/src/messaging/l2_to_l1_message.ts +29 -9
  832. package/src/noir/index.ts +2 -0
  833. package/src/note/note_dao.ts +1 -4
  834. package/src/p2p/block_proposal.ts +111 -36
  835. package/src/p2p/checkpoint_attestation.ts +27 -31
  836. package/src/p2p/checkpoint_proposal.ts +128 -73
  837. package/src/p2p/consensus_payload.ts +59 -28
  838. package/src/p2p/gossipable.ts +4 -4
  839. package/src/p2p/signature_utils.ts +110 -25
  840. package/src/p2p/signed_txs.ts +46 -28
  841. package/src/parity/parity_base_private_inputs.ts +10 -4
  842. package/src/parity/parity_public_inputs.ts +9 -2
  843. package/src/proofs/chonk_proof.ts +132 -12
  844. package/src/rollup/block_headers_hash.ts +11 -2
  845. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  846. package/src/rollup/checkpoint_header.ts +16 -2
  847. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  848. package/src/schemas/schemas.ts +6 -1
  849. package/src/slashing/helpers.ts +13 -9
  850. package/src/slashing/index.ts +1 -2
  851. package/src/slashing/serialization.ts +1 -81
  852. package/src/slashing/types.ts +24 -49
  853. package/src/slashing/{tally.ts → votes.ts} +1 -1
  854. package/src/stats/stats.ts +4 -0
  855. package/src/tests/factories.ts +108 -113
  856. package/src/tests/mocks.ts +72 -71
  857. package/src/timetable/README.md +609 -0
  858. package/src/timetable/budgets.ts +87 -0
  859. package/src/timetable/build_proposer_timetable.ts +42 -0
  860. package/src/timetable/consensus_timetable.ts +126 -0
  861. package/src/timetable/index.ts +4 -66
  862. package/src/timetable/proposer_timetable.ts +190 -0
  863. package/src/timetable/timetable-example.svg +108 -0
  864. package/src/trees/append_only_tree_snapshot.ts +8 -3
  865. package/src/trees/nullifier_leaf.ts +4 -0
  866. package/src/trees/nullifier_membership_witness.ts +0 -21
  867. package/src/trees/public_data_witness.ts +0 -31
  868. package/src/tx/block_header.ts +10 -5
  869. package/src/tx/capsule.ts +10 -2
  870. package/src/tx/execution_payload.ts +2 -1
  871. package/src/tx/fee_provider.ts +10 -0
  872. package/src/tx/global_variable_builder.ts +3 -20
  873. package/src/tx/global_variables.ts +12 -20
  874. package/src/tx/hashed_values.ts +8 -3
  875. package/src/tx/index.ts +1 -0
  876. package/src/tx/indexed_tx_effect.ts +18 -6
  877. package/src/tx/partial_state_reference.ts +8 -3
  878. package/src/tx/profiling.ts +4 -4
  879. package/src/tx/proven_tx.ts +6 -0
  880. package/src/tx/public_call_request_with_calldata.ts +8 -3
  881. package/src/tx/simulated_tx.ts +22 -21
  882. package/src/tx/state_reference.ts +9 -4
  883. package/src/tx/tree_snapshots.ts +9 -4
  884. package/src/tx/tx.ts +60 -24
  885. package/src/tx/tx_constant_data.ts +8 -3
  886. package/src/tx/tx_context.ts +8 -3
  887. package/src/tx/tx_hash.ts +20 -5
  888. package/src/tx/tx_receipt.ts +265 -85
  889. package/src/tx/validator/error_texts.ts +10 -1
  890. package/src/tx/validator/tx_validator.ts +1 -5
  891. package/src/types/shared.ts +8 -13
  892. package/src/update-checker/dev_version.ts +2 -0
  893. package/src/update-checker/index.ts +1 -0
  894. package/src/update-checker/package_version.ts +10 -23
  895. package/src/validators/schemas.ts +6 -4
  896. package/src/validators/types.ts +21 -2
  897. package/src/versioning/versioning.ts +1 -1
  898. package/src/vks/verification_key.ts +5 -184
  899. package/src/world-state/genesis_data.ts +27 -0
  900. package/src/world-state/index.ts +1 -0
  901. package/src/world-state/world_state_revision.ts +9 -1
  902. package/dest/abi/mocked_keys.d.ts +0 -2
  903. package/dest/abi/mocked_keys.d.ts.map +0 -1
  904. package/dest/abi/mocked_keys.js +0 -1
  905. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  906. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  907. package/dest/block/checkpointed_l2_block.js +0 -46
  908. package/dest/config/pipelining-config.d.ts +0 -19
  909. package/dest/config/pipelining-config.d.ts.map +0 -1
  910. package/dest/config/pipelining-config.js +0 -18
  911. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  912. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  913. package/dest/contract/private_function_membership_proof.js +0 -124
  914. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  915. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  916. package/dest/contract/utility_function_membership_proof.js +0 -87
  917. package/dest/interfaces/epoch-prover.d.ts +0 -57
  918. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  919. package/dest/interfaces/epoch-prover.js +0 -1
  920. package/dest/interfaces/get_logs_response.d.ts +0 -97
  921. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  922. package/dest/interfaces/get_logs_response.js +0 -12
  923. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  924. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  925. package/dest/l1-contracts/slash_factory.js +0 -158
  926. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  927. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  928. package/dest/logs/extended_contract_class_log.js +0 -67
  929. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  930. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  931. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  932. package/dest/logs/extended_public_log.d.ts +0 -106
  933. package/dest/logs/extended_public_log.d.ts.map +0 -1
  934. package/dest/logs/extended_public_log.js +0 -73
  935. package/dest/logs/log_filter.d.ts +0 -25
  936. package/dest/logs/log_filter.d.ts.map +0 -1
  937. package/dest/logs/log_filter.js +0 -12
  938. package/dest/logs/log_id.d.ts +0 -85
  939. package/dest/logs/log_id.d.ts.map +0 -1
  940. package/dest/logs/log_id.js +0 -94
  941. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  942. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  943. package/dest/logs/tx_scoped_l2_log.js +0 -77
  944. package/dest/slashing/empire.d.ts +0 -31
  945. package/dest/slashing/empire.d.ts.map +0 -1
  946. package/dest/slashing/empire.js +0 -87
  947. package/src/abi/mocked_keys.ts +0 -2
  948. package/src/block/checkpointed_l2_block.ts +0 -70
  949. package/src/config/pipelining-config.ts +0 -31
  950. package/src/contract/private_function_membership_proof.ts +0 -167
  951. package/src/contract/utility_function_membership_proof.ts +0 -118
  952. package/src/interfaces/epoch-prover.ts +0 -72
  953. package/src/interfaces/get_logs_response.ts +0 -35
  954. package/src/l1-contracts/slash_factory.ts +0 -180
  955. package/src/logs/extended_contract_class_log.ts +0 -87
  956. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  957. package/src/logs/extended_public_log.ts +0 -94
  958. package/src/logs/log_filter.ts +0 -36
  959. package/src/logs/log_id.ts +0 -125
  960. package/src/logs/tx_scoped_l2_log.ts +0 -114
  961. package/src/slashing/empire.ts +0 -104
@@ -1,9 +1,8 @@
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
  import { makeL2BlockId } from '../l2_block_source.js';
6
- /** Maximum number of checkpoints to prefetch at once during sync. Matches MAX_RPC_CHECKPOINTS_LEN. */ export const CHECKPOINT_PREFETCH_LIMIT = 50;
7
6
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */ export class L2BlockStream {
8
7
  l2BlockSource;
9
8
  localData;
@@ -21,6 +20,9 @@ import { makeL2BlockId } from '../l2_block_source.js';
21
20
  this.opts = opts;
22
21
  this.isSyncing = false;
23
22
  this.hasStarted = false;
23
+ if (opts.tipsOnly && (opts.startingBlock !== undefined || opts.batchSize !== undefined || opts.skipFinalized)) {
24
+ throw new Error('tipsOnly is incompatible with startingBlock, batchSize, and skipFinalized: all three are ' + 'block-download options and there is no download loop in tips-only mode.');
25
+ }
24
26
  // Note that RunningPromise is in stopped state by default. This promise won't run until someone invokes `start`,
25
27
  // which makes it run periodically, or `sync`, which triggers it once.
26
28
  // Users of L2BlockStream decide what mode to run it in (_periodically_ vs _manually triggered_).
@@ -48,23 +50,62 @@ import { makeL2BlockId } from '../l2_block_source.js';
48
50
  }
49
51
  async work() {
50
52
  try {
51
- const sourceTips = await this.l2BlockSource.getL2Tips();
53
+ // The source tips snapshot is the plan for this pass; it is re-read after the walk-back if a divergence is found.
54
+ let sourceTips = await this.l2BlockSource.getL2Tips();
52
55
  const localTips = await this.localData.getL2Tips();
53
56
  this.log.trace(`Running L2 block stream`, {
54
57
  sourceTips,
55
58
  localTips
56
59
  });
57
- // Check if there was a reorg and emit a chain-pruned event if so.
60
+ if (!this.opts.ignoreCheckpoints && localTips.checkpointed === undefined) {
61
+ throw new Error('Local data provider does not expose a checkpointed tip; checkpoint events require one ' + '(set ignoreCheckpoints or provide checkpointed tips).');
62
+ }
63
+ // Baseline for the chain-proposed event; captured before the local store mutates during the pass.
64
+ const prePassProposed = localTips.proposed;
65
+ // Walk back to find a reorg, floored at the local finalized tip (a legitimate reorg can never reach it, since
66
+ // finalized means the proving tx is itself L1-finalized). Seed the cache with ONLY the proposed tip: a stale
67
+ // tier seed at a reorged height equals the local old-fork hash, faking agreement and stopping the walk above the
68
+ // true divergence (an under-deep prune no later pass re-detects), whereas a stale proposed seed only masks the
69
+ // tip for one pass.
58
70
  let latestBlockNumber = localTips.proposed.number;
59
71
  const sourceCache = new BlockHashCache([
60
72
  sourceTips.proposed
61
73
  ]);
74
+ const walkFloor = localTips.finalized.block.number;
62
75
  while(!await this.areBlockHashesEqualAt(latestBlockNumber, {
63
- sourceCache
76
+ sourceCache,
77
+ sourceProposed: sourceTips.proposed.number
64
78
  })){
79
+ if (latestBlockNumber === 0) {
80
+ // Walked back to genesis and the hashes still differ: the two sides disagree on block 0 itself (usually
81
+ // different genesisTimestamp/prefilled state). Fail loudly rather than underflow into negative heights.
82
+ this.log.error(`Genesis block hash mismatch between local store and source`, {
83
+ localBlockHash: await this.localData.getL2BlockHash(BlockNumber.ZERO),
84
+ sourceBlockHash: sourceCache.get(0) ?? await this.getBlockHashFromSource(BlockNumber.ZERO)
85
+ });
86
+ throw new Error('Genesis block hash mismatch between local store and source: refusing to walk past block 0. ' + 'This usually indicates the two sides were configured with different genesis values ' + '(e.g. genesisTimestamp or prefilled public data).');
87
+ }
88
+ if (latestBlockNumber <= walkFloor) {
89
+ // A mismatch at or below the finalized tip cannot be a reorg (it contradicts L1-finalized state), so stop
90
+ // here and prune at most to the finalized tip rather than pruning finalized state on non-reorg evidence.
91
+ this.log.warn(`Block hash mismatch at or below the local finalized tip; stopping the walk-back here`, {
92
+ blockNumber: latestBlockNumber,
93
+ finalizedBlockNumber: walkFloor,
94
+ localBlockHash: await this.localData.getL2BlockHash(latestBlockNumber),
95
+ sourceBlockHash: sourceCache.get(latestBlockNumber) ?? await this.getBlockHashFromSource(latestBlockNumber)
96
+ });
97
+ break;
98
+ }
65
99
  latestBlockNumber--;
66
100
  }
101
+ let pruned = false;
67
102
  if (latestBlockNumber < localTips.proposed.number) {
103
+ // Re-read the source tips after the (possibly slow) walk-back so the prune event carries fresh checkpointed
104
+ // and proven tips, and the prune-target clamp, download plan, and tier reconciliation track the post-prune
105
+ // source chain. Append only the re-read proposed tip: it is a fresh entry that cannot poison the (already
106
+ // finished) walk and serves the prune-event hash lookup below.
107
+ sourceTips = await this.l2BlockSource.getL2Tips();
108
+ sourceCache.add(sourceTips.proposed);
68
109
  latestBlockNumber = BlockNumber(Math.min(latestBlockNumber, sourceTips.proposed.number)); // see #13471
69
110
  const hash = sourceCache.get(latestBlockNumber) ?? await this.getBlockHashFromSource(latestBlockNumber);
70
111
  if (latestBlockNumber !== 0 && !hash) {
@@ -74,145 +115,46 @@ import { makeL2BlockId } from '../l2_block_source.js';
74
115
  await this.emitEvent({
75
116
  type: 'chain-pruned',
76
117
  block: makeL2BlockId(latestBlockNumber, hash),
77
- checkpoint: sourceTips.checkpointed.checkpoint
118
+ checkpointed: sourceTips.checkpointed,
119
+ proven: sourceTips.proven
78
120
  });
121
+ pruned = true;
79
122
  }
80
- // If we are just starting, use the starting block number from the options.
81
- if (latestBlockNumber === 0 && this.opts.startingBlock !== undefined) {
82
- latestBlockNumber = BlockNumber(Math.max(this.opts.startingBlock - 1, 0));
83
- }
84
- // Only log this entry once (for sanity)
85
- if (!this.hasStarted) {
86
- this.log.verbose(`Starting sync from block number ${latestBlockNumber}`);
87
- this.hasStarted = true;
88
- }
89
- let nextBlockNumber = latestBlockNumber + 1;
90
- let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
91
- // When startingBlock is set, also skip ahead for checkpoints.
92
- if (this.opts.startingBlock !== undefined && this.opts.startingBlock >= 1 && nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
93
- const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(this.opts.startingBlock), 1);
94
- if (startingBlockCheckpoints.length > 0) {
95
- nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber));
96
- } else {
97
- // startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
98
- nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
99
- }
100
- }
101
- if (this.opts.skipFinalized) {
102
- // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
103
- // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
104
- // last finalized block however in order to guarantee that we will eventually find a block in which our local
105
- // store matches the source.
106
- // If the last finalized block is behind our local tip, there is nothing to skip.
107
- nextBlockNumber = Math.max(sourceTips.finalized.block.number, nextBlockNumber);
108
- // If the next checkpoint to emit is behind the finalized tip then skip forward
109
- nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, sourceTips.finalized.checkpoint.number));
110
- }
111
- // Loop 1: Emit checkpoint events for checkpoints whose blocks are already in local storage.
112
- // This handles the case where blocks were synced as uncheckpointed and later became checkpointed.
113
- // The guard `lastBlockInCheckpoint.number > localTips.proposed.number` ensures we don't emit
114
- // checkpoints for blocks we don't have (e.g., when startingBlock skips earlier blocks).
115
- // Since only one checkpoint can ever be uncheckpointed, this loop should iterate at most once.
116
- if (!this.opts.ignoreCheckpoints) {
117
- let loop1Iterations = 0;
118
- while(nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number){
119
- const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
120
- if (checkpoints.length === 0) {
121
- break;
122
- }
123
- const lastBlockInCheckpoint = checkpoints[0].checkpoint.blocks.at(-1);
124
- // If this checkpoint has blocks we haven't seen yet, stop - they need to be fetched first
125
- if (lastBlockInCheckpoint.number > localTips.proposed.number) {
126
- break;
127
- }
128
- loop1Iterations++;
129
- if (loop1Iterations > 1) {
130
- this.log.warn(`Emitting multiple checkpoints (${loop1Iterations}) for already-local blocks. ` + `Next checkpoint: ${nextCheckpointToEmit}, source checkpointed: ${sourceTips.checkpointed.checkpoint.number}`);
131
- }
132
- const lastBlockHash = await lastBlockInCheckpoint.hash();
133
- await this.emitEvent({
134
- type: 'chain-checkpointed',
135
- checkpoint: checkpoints[0],
136
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString())
137
- });
138
- nextCheckpointToEmit = CheckpointNumber(nextCheckpointToEmit + 1);
139
- }
140
- }
141
- // Loop 2: Fetch new checkpointed blocks. For each checkpoint, emit all blocks
142
- // from that checkpoint that we need, then emit the checkpoint event.
143
- // We prefetch multiple checkpoints, then process them one by one.
144
- let prefetchedCheckpoints = [];
145
- let prefetchIdx = 0;
146
- let nextCheckpointNumber;
147
- // Find the starting checkpoint number
148
- if (nextBlockNumber <= sourceTips.checkpointed.block.number) {
149
- const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
150
- if (blocks.length > 0) {
151
- nextCheckpointNumber = blocks[0].checkpointNumber;
152
- }
123
+ // Pass atomicity: a prune mid-download leaves the source unable to serve the planned blocks, so the snapshot's
124
+ // tier tips may reference blocks the consumer never saw — skip tier reconciliation in that case. Tips-only mode
125
+ // has no download plan (the snapshot is one atomic getL2Tips read), so it always reconciles.
126
+ if (!this.opts.tipsOnly && !await this.downloadBlocks(latestBlockNumber, sourceTips)) {
127
+ return;
153
128
  }
154
- while(nextBlockNumber <= sourceTips.checkpointed.block.number && nextCheckpointNumber !== undefined){
155
- // Refill the prefetch buffer when exhausted
156
- if (prefetchIdx >= prefetchedCheckpoints.length) {
157
- const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
158
- prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
159
- prefetchIdx = 0;
160
- if (prefetchedCheckpoints.length === 0) {
161
- break;
162
- }
163
- }
164
- const checkpoint = prefetchedCheckpoints[prefetchIdx];
165
- // Get all blocks from this checkpoint that we need, respecting batchSize
166
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
167
- const blocksForCheckpoint = checkpoint.checkpoint.blocks.filter((b)=>b.number >= nextBlockNumber).slice(0, limit);
168
- if (blocksForCheckpoint.length === 0) {
169
- break;
170
- }
129
+ // End-of-pass reconciliation: chain-proposed fires against the pre-pass baseline (a post-prune re-read would
130
+ // equal the source tip and suppress it), then the tiers highest-to-lowest so the finalized <= proven <=
131
+ // checkpointed <= proposed invariant holds mid-pass.
132
+ if (this.blockTipDiffers(prePassProposed, sourceTips.proposed)) {
171
133
  await this.emitEvent({
172
- type: 'blocks-added',
173
- blocks: blocksForCheckpoint
134
+ type: 'chain-proposed',
135
+ block: sourceTips.proposed
174
136
  });
175
- nextBlockNumber = blocksForCheckpoint.at(-1).number + 1;
176
- // If we've reached the end of this checkpoint, emit the checkpoint event and move to next
177
- const lastBlockInCheckpoint = checkpoint.checkpoint.blocks.at(-1);
178
- if (nextBlockNumber > lastBlockInCheckpoint.number) {
179
- if (!this.opts.ignoreCheckpoints) {
180
- const lastBlockHash = await lastBlockInCheckpoint.hash();
181
- await this.emitEvent({
182
- type: 'chain-checkpointed',
183
- checkpoint,
184
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString())
185
- });
186
- }
187
- prefetchIdx++;
188
- nextCheckpointNumber = CheckpointNumber(nextCheckpointNumber + 1);
189
- }
190
137
  }
191
- // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
192
- while(nextBlockNumber <= sourceTips.proposed.number){
193
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
194
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
195
- const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
196
- if (blocks.length === 0) {
197
- break;
198
- }
138
+ const reconcileTips = pruned ? await this.localData.getL2Tips() : localTips;
139
+ if (!this.opts.ignoreCheckpoints && this.tipDiffers(reconcileTips.checkpointed?.block, sourceTips.checkpointed)) {
199
140
  await this.emitEvent({
200
- type: 'blocks-added',
201
- blocks
141
+ type: 'chain-checkpointed',
142
+ block: sourceTips.checkpointed.block,
143
+ checkpoint: sourceTips.checkpointed.checkpoint
202
144
  });
203
- nextBlockNumber = blocks.at(-1).number + 1;
204
145
  }
205
- // Update the proven and finalized tips.
206
- if (localTips.proven !== undefined && sourceTips.proven.block.number !== localTips.proven.block.number) {
146
+ if (reconcileTips.proven !== undefined && this.tipDiffers(reconcileTips.proven.block, sourceTips.proven)) {
207
147
  await this.emitEvent({
208
148
  type: 'chain-proven',
209
- block: sourceTips.proven.block
149
+ block: sourceTips.proven.block,
150
+ checkpoint: sourceTips.proven.checkpoint
210
151
  });
211
152
  }
212
- if (localTips.finalized !== undefined && sourceTips.finalized.block.number !== localTips.finalized.block.number) {
153
+ if (reconcileTips.finalized !== undefined && this.tipDiffers(reconcileTips.finalized.block, sourceTips.finalized)) {
213
154
  await this.emitEvent({
214
155
  type: 'chain-finalized',
215
- block: sourceTips.finalized.block
156
+ block: sourceTips.finalized.block,
157
+ checkpoint: sourceTips.finalized.checkpoint
216
158
  });
217
159
  }
218
160
  } catch (err) {
@@ -223,13 +165,102 @@ import { makeL2BlockId } from '../l2_block_source.js';
223
165
  }
224
166
  }
225
167
  /**
168
+ * Downloads every block from the post-prune cursor through the source's proposed tip, emitting `blocks-added`
169
+ * events. The return value gates tier-cursor advancement (pass atomicity): tier tips may only be reconciled when
170
+ * the plan that backs them ran to the proposed tip.
171
+ * @returns `true` if the plan completed (caught up, or delivered the proposed tip with a matching hash); `false` if
172
+ * the source no longer has a promised block, or served a fork at the proposed height mid-pass.
173
+ */ async downloadBlocks(latestBlockNumber, sourceTips) {
174
+ // The post-prune cursor: the highest block number both sides agree on. Block downloads resume from here.
175
+ let nextBlockNumber = latestBlockNumber + 1;
176
+ // From a fresh local store, fast-forward past history the consumer doesn't care about.
177
+ const startingBlock = this.opts.startingBlock !== undefined ? BlockNumber(this.opts.startingBlock) : undefined;
178
+ if (latestBlockNumber === 0 && startingBlock !== undefined) {
179
+ nextBlockNumber = Math.max(startingBlock, 1);
180
+ }
181
+ if (this.opts.skipFinalized) {
182
+ // Finalized blocks cannot be reorged, so skip them — but keep the last finalized block as the guaranteed point
183
+ // where local and source agree, the floor the walk-back terminates against.
184
+ nextBlockNumber = Math.max(sourceTips.finalized.block.number, nextBlockNumber);
185
+ }
186
+ if (!this.hasStarted) {
187
+ this.log.verbose(`Starting sync from block number ${nextBlockNumber - 1}`);
188
+ this.hasStarted = true;
189
+ }
190
+ let lastDeliveredBlock;
191
+ while(nextBlockNumber <= sourceTips.proposed.number){
192
+ const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
193
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
194
+ const blocks = await this.l2BlockSource.getBlocks({
195
+ from: BlockNumber(nextBlockNumber),
196
+ limit
197
+ });
198
+ if (blocks.length === 0) {
199
+ // The source no longer has a block the snapshot promised: the snapshot is provably stale, so report the plan
200
+ // incomplete and skip reconciliation this pass.
201
+ this.log.warn(`Block source returned no blocks for a promised range; skipping reconciliation this pass`, {
202
+ from: nextBlockNumber,
203
+ limit,
204
+ sourceProposed: sourceTips.proposed.number
205
+ });
206
+ return false;
207
+ }
208
+ await this.emitEvent({
209
+ type: 'blocks-added',
210
+ blocks
211
+ });
212
+ lastDeliveredBlock = blocks.at(-1);
213
+ nextBlockNumber = lastDeliveredBlock.number + 1;
214
+ }
215
+ if (lastDeliveredBlock === undefined) {
216
+ // Loop never ran: caught up before the plan started, or startingBlock past the tip (A-1061). Trivially complete.
217
+ return true;
218
+ }
219
+ // Complete iff the block delivered at the proposed height carries the snapshot's proposed hash; a different hash
220
+ // means a same-height fork swap happened mid-pass, so the snapshot is stale.
221
+ const deliveredHash = (await lastDeliveredBlock.hash()).toString();
222
+ if (deliveredHash !== sourceTips.proposed.hash) {
223
+ this.log.warn(`Delivered proposed-block hash differs from snapshot; skipping reconciliation this pass`, {
224
+ blockNumber: lastDeliveredBlock.number,
225
+ deliveredHash,
226
+ snapshotHash: sourceTips.proposed.hash
227
+ });
228
+ return false;
229
+ }
230
+ return true;
231
+ }
232
+ /**
233
+ * Returns whether the source tip differs from the local one and therefore warrants a tier event. Compares block
234
+ * number and, when both hashes are known, block hash. The hash comparison is skipped when the local hash is
235
+ * undefined or missing: world-state legitimately reports `undefined` hashes for tips ahead of its synced range,
236
+ * and comparing against an undefined hash would re-emit the event on every poll.
237
+ */ tipDiffers(localBlock, sourceTip) {
238
+ return this.blockTipDiffers(localBlock, sourceTip.block);
239
+ }
240
+ /**
241
+ * Block-only variant of {@link tipDiffers} for the proposed tip (an {@link L2BlockId}, with no checkpoint). Compares
242
+ * block number and, when the local hash is known, block hash. The hash comparison is skipped when the local hash is
243
+ * undefined: world-state reports `undefined` for its proposed hash, and a strict comparison would re-emit
244
+ * `chain-proposed` on every poll for it. ({@link L2TipsStoreBase} consumers always carry a hash, so the leniency is
245
+ * inert for them.)
246
+ */ blockTipDiffers(localBlock, sourceBlock) {
247
+ if (localBlock === undefined) {
248
+ return true;
249
+ }
250
+ if (sourceBlock.number !== localBlock.number) {
251
+ return true;
252
+ }
253
+ if (localBlock.hash === undefined) {
254
+ return false;
255
+ }
256
+ return sourceBlock.hash !== localBlock.hash;
257
+ }
258
+ /**
226
259
  * Returns whether the source and local agree on the block hash at a given height.
227
260
  * @param blockNumber - The block number to test.
228
- * @param args - A cache of data already requested from source, to avoid re-requesting it.
261
+ * @param args - A cache of data already requested from source (to avoid re-requesting it) and the source's
262
+ * advertised proposed tip from the pass snapshot (to detect an incoherent source).
229
263
  */ async areBlockHashesEqualAt(blockNumber, args) {
230
- if (blockNumber === 0) {
231
- return true;
232
- }
233
264
  const localBlockHash = await this.localData.getL2BlockHash(blockNumber);
234
265
  if (!localBlockHash && this.opts.skipFinalized) {
235
266
  // Failing to find a block hash when skipping finalized blocks can be highly problematic as we'd potentially need
@@ -239,6 +270,13 @@ import { makeL2BlockId } from '../l2_block_source.js';
239
270
  this.log.error(`No local block hash for block number ${blockNumber}`);
240
271
  throw new AbortError();
241
272
  }
273
+ if (!localBlockHash) {
274
+ // A missing local hash compares UNEQUAL: treating both-undefined as equal would stop the walk above the true
275
+ // divergence (an under-deep prune no later pass re-detects). Over-deep is the safe direction, and block 0 always
276
+ // resolves via the store's initialBlockHash so the walk always terminates.
277
+ this.log.trace(`No local block hash for block number ${blockNumber}; treating as unequal`);
278
+ return false;
279
+ }
242
280
  const sourceBlockHashFromCache = args.sourceCache.get(blockNumber);
243
281
  const sourceBlockHash = args.sourceCache.get(blockNumber) ?? await this.getBlockHashFromSource(blockNumber);
244
282
  if (!sourceBlockHashFromCache && sourceBlockHash) {
@@ -247,6 +285,15 @@ import { makeL2BlockId } from '../l2_block_source.js';
247
285
  hash: sourceBlockHash
248
286
  });
249
287
  }
288
+ if (!sourceBlockHash && blockNumber !== 0 && blockNumber <= args.sourceProposed) {
289
+ // No source data at or below the source's own proposed tip: the source contradicts itself (mid-reorg unwind or
290
+ // a transient read failure), so skip this pass.
291
+ this.log.warn(`Source has no data for a block at or below its proposed tip; skipping this sync pass`, {
292
+ blockNumber,
293
+ sourceProposed: args.sourceProposed
294
+ });
295
+ throw new AbortError();
296
+ }
250
297
  this.log.trace(`Comparing block hashes for block ${blockNumber}`, {
251
298
  localBlockHash,
252
299
  sourceBlockHash
@@ -254,10 +301,12 @@ import { makeL2BlockId } from '../l2_block_source.js';
254
301
  return localBlockHash === sourceBlockHash;
255
302
  }
256
303
  getBlockHashFromSource(blockNumber) {
257
- return this.l2BlockSource.getBlockHeader(blockNumber).then((h)=>h?.hash()).then((hash)=>hash?.toString());
304
+ return this.l2BlockSource.getBlockData({
305
+ number: blockNumber
306
+ }).then((d)=>d?.header.hash()).then((hash)=>hash?.toString());
258
307
  }
259
308
  async emitEvent(event) {
260
- this.log.debug(`Emitting ${event.type} (${event.type === 'blocks-added' ? event.blocks.length : event.type === 'chain-checkpointed' ? event.checkpoint.checkpoint.number : event.block.number})`);
309
+ this.log.debug(`Emitting ${event.type} (${event.type === 'blocks-added' ? event.blocks.length : event.type === 'chain-checkpointed' ? event.checkpoint.number : event.block.number})`);
261
310
  await this.handler.handleBlockStreamEvent(event);
262
311
  if (!this.isRunning() && !this.isSyncing) {
263
312
  throw new AbortError();
@@ -1,27 +1,23 @@
1
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
3
- import type { L2BlockTag } from '../l2_block_source.js';
1
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import type { BlockHash } from '../block_hash.js';
3
+ import type { CheckpointId, L2BlockTag } from '../l2_block_source.js';
4
4
  import { L2TipsStoreBase } from './l2_tips_store_base.js';
5
5
  /**
6
6
  * In-memory implementation of L2 tips store. Useful for testing and lightweight clients.
7
7
  * @dev Tests in kv-store/src/stores/l2_tips_memory_store.test.ts
8
8
  */
9
9
  export declare class L2TipsMemoryStore extends L2TipsStoreBase {
10
+ constructor(initialBlockHash: BlockHash);
10
11
  private readonly tips;
12
+ private readonly tipCheckpoints;
11
13
  private readonly blockHashes;
12
- private readonly blockToCheckpoint;
13
- private readonly checkpoints;
14
14
  protected getTip(tag: L2BlockTag): Promise<BlockNumber | undefined>;
15
15
  protected setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void>;
16
+ protected getTipCheckpoint(tag: L2BlockTag): Promise<CheckpointId | undefined>;
17
+ protected setTipCheckpoint(tag: L2BlockTag, checkpoint: CheckpointId): Promise<void>;
16
18
  protected getStoredBlockHash(blockNumber: BlockNumber): Promise<string | undefined>;
17
19
  protected setBlockHash(blockNumber: BlockNumber, hash: string): Promise<void>;
18
20
  protected deleteBlockHashesBefore(blockNumber: BlockNumber): Promise<void>;
19
- protected getCheckpointNumberForBlock(blockNumber: BlockNumber): Promise<CheckpointNumber | undefined>;
20
- protected setCheckpointNumberForBlock(blockNumber: BlockNumber, checkpointNumber: CheckpointNumber): Promise<void>;
21
- protected deleteBlockToCheckpointBefore(blockNumber: BlockNumber): Promise<void>;
22
- protected getCheckpoint(checkpointNumber: CheckpointNumber): Promise<PublishedCheckpoint | undefined>;
23
- protected saveCheckpointData(checkpoint: PublishedCheckpoint): Promise<void>;
24
- protected deleteCheckpointsBefore(checkpointNumber: CheckpointNumber): Promise<void>;
25
21
  protected runInTransaction<T>(fn: () => Promise<T>): Promise<T>;
26
22
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19tZW1vcnlfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9jay9sMl9ibG9ja19zdHJlYW0vbDJfdGlwc19tZW1vcnlfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEOzs7R0FHRztBQUNILHFCQUFhLGlCQUFrQixTQUFRLGVBQWU7SUFDcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQXNDO0lBQzNELE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUE2QjtJQUN6RCxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUF1QztJQUN6RSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBMEM7SUFFdEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBRWxFO0lBRUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUd6RTtJQUVELFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRWxGO0lBRUQsU0FBUyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUc1RTtJQUVELFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FPekU7SUFFRCxTQUFTLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBRXJHO0lBRUQsU0FBUyxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdqSDtJQUVELFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FPL0U7SUFFRCxTQUFTLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsQ0FFcEc7SUFFRCxTQUFTLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHM0U7SUFFRCxTQUFTLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9uRjtJQUVELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FHOUQ7Q0FDRiJ9
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19tZW1vcnlfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9jay9sMl9ibG9ja19zdHJlYW0vbDJfdGlwc19tZW1vcnlfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRDs7O0dBR0c7QUFDSCxxQkFBYSxpQkFBa0IsU0FBUSxlQUFlO0lBQ3BELFlBQVksZ0JBQWdCLEVBQUUsU0FBUyxFQUV0QztJQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFzQztJQUMzRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBdUM7SUFDdEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQTZCO0lBRXpELFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUVsRTtJQUVELFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHekU7SUFFRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUU3RTtJQUVELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUduRjtJQUVELFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRWxGO0lBRUQsU0FBUyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUc1RTtJQUVELFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FPekU7SUFFRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBRzlEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"l2_tips_memory_store.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_tips_memory_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IAEtE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAElE;IAED,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;IAED,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElF;IAED,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5E;IAED,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE;IAED,SAAS,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAErG;IAED,SAAS,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjH;IAED,SAAS,CAAC,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/E;IAED,SAAS,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAEpG;IAED,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;IAED,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnF;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;CACF"}
1
+ {"version":3,"file":"l2_tips_memory_store.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_tips_memory_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,YAAY,gBAAgB,EAAE,SAAS,EAEtC;IAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAElE;IAED,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;IAED,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAE7E;IAED,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnF;IAED,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElF;IAED,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5E;IAED,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;CACF"}
@@ -3,10 +3,12 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
3
3
  * In-memory implementation of L2 tips store. Useful for testing and lightweight clients.
4
4
  * @dev Tests in kv-store/src/stores/l2_tips_memory_store.test.ts
5
5
  */ export class L2TipsMemoryStore extends L2TipsStoreBase {
6
+ constructor(initialBlockHash){
7
+ super(initialBlockHash);
8
+ }
6
9
  tips = new Map();
10
+ tipCheckpoints = new Map();
7
11
  blockHashes = new Map();
8
- blockToCheckpoint = new Map();
9
- checkpoints = new Map();
10
12
  getTip(tag) {
11
13
  return Promise.resolve(this.tips.get(tag));
12
14
  }
@@ -14,6 +16,13 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
14
16
  this.tips.set(tag, blockNumber);
15
17
  return Promise.resolve();
16
18
  }
19
+ getTipCheckpoint(tag) {
20
+ return Promise.resolve(this.tipCheckpoints.get(tag));
21
+ }
22
+ setTipCheckpoint(tag, checkpoint) {
23
+ this.tipCheckpoints.set(tag, checkpoint);
24
+ return Promise.resolve();
25
+ }
17
26
  getStoredBlockHash(blockNumber) {
18
27
  return Promise.resolve(this.blockHashes.get(blockNumber));
19
28
  }
@@ -29,36 +38,6 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
29
38
  }
30
39
  return Promise.resolve();
31
40
  }
32
- getCheckpointNumberForBlock(blockNumber) {
33
- return Promise.resolve(this.blockToCheckpoint.get(blockNumber));
34
- }
35
- setCheckpointNumberForBlock(blockNumber, checkpointNumber) {
36
- this.blockToCheckpoint.set(blockNumber, checkpointNumber);
37
- return Promise.resolve();
38
- }
39
- deleteBlockToCheckpointBefore(blockNumber) {
40
- for (const key of this.blockToCheckpoint.keys()){
41
- if (key < blockNumber) {
42
- this.blockToCheckpoint.delete(key);
43
- }
44
- }
45
- return Promise.resolve();
46
- }
47
- getCheckpoint(checkpointNumber) {
48
- return Promise.resolve(this.checkpoints.get(checkpointNumber));
49
- }
50
- saveCheckpointData(checkpoint) {
51
- this.checkpoints.set(checkpoint.checkpoint.number, checkpoint);
52
- return Promise.resolve();
53
- }
54
- deleteCheckpointsBefore(checkpointNumber) {
55
- for (const key of this.checkpoints.keys()){
56
- if (key < checkpointNumber) {
57
- this.checkpoints.delete(key);
58
- }
59
- }
60
- return Promise.resolve();
61
- }
62
41
  runInTransaction(fn) {
63
42
  // Memory store doesn't need transactions - just execute immediately
64
43
  return fn();
@@ -1,49 +1,51 @@
1
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import type { BlockHash } from '../block_hash.js';
3
3
  import type { L2Block } from '../l2_block.js';
4
- import { type L2BlockTag, type L2Tips } from '../l2_block_source.js';
4
+ import { type CheckpointId, type L2BlockId, type L2BlockTag, type LocalL2Tips } from '../l2_block_source.js';
5
5
  import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
6
6
  /**
7
7
  * Abstract base class for L2 tips stores. Provides common event handling logic
8
8
  * while delegating storage operations to subclasses.
9
9
  */
10
10
  export declare abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider {
11
+ protected readonly initialBlockHash: BlockHash;
12
+ constructor(initialBlockHash: BlockHash);
11
13
  /** Gets the block number for a given tag. */
12
14
  protected abstract getTip(tag: L2BlockTag): Promise<BlockNumber | undefined>;
13
15
  /** Sets the block number for a given tag. */
14
16
  protected abstract setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void>;
17
+ /** Gets the checkpoint id recorded for a given tag, if any. */
18
+ protected abstract getTipCheckpoint(tag: L2BlockTag): Promise<CheckpointId | undefined>;
19
+ /** Records the checkpoint id for a given tag. */
20
+ protected abstract setTipCheckpoint(tag: L2BlockTag, checkpoint: CheckpointId): Promise<void>;
15
21
  /** Gets the block hash for a given block number. */
16
22
  protected abstract getStoredBlockHash(blockNumber: BlockNumber): Promise<string | undefined>;
17
23
  /** Sets the block hash for a given block number. */
18
24
  protected abstract setBlockHash(blockNumber: BlockNumber, hash: string): Promise<void>;
19
25
  /** Deletes all block hashes for blocks before the given block number. */
20
26
  protected abstract deleteBlockHashesBefore(blockNumber: BlockNumber): Promise<void>;
21
- /** Gets the checkpoint number for a given block number. */
22
- protected abstract getCheckpointNumberForBlock(blockNumber: BlockNumber): Promise<CheckpointNumber | undefined>;
23
- /** Sets the checkpoint number for a given block number. */
24
- protected abstract setCheckpointNumberForBlock(blockNumber: BlockNumber, checkpointNumber: CheckpointNumber): Promise<void>;
25
- /** Deletes all block-to-checkpoint mappings for blocks before the given block number. */
26
- protected abstract deleteBlockToCheckpointBefore(blockNumber: BlockNumber): Promise<void>;
27
- /** Gets a checkpoint by its number. */
28
- protected abstract getCheckpoint(checkpointNumber: CheckpointNumber): Promise<PublishedCheckpoint | undefined>;
29
- /** Saves a checkpoint. */
30
- protected abstract saveCheckpointData(checkpoint: PublishedCheckpoint): Promise<void>;
31
- /** Deletes all checkpoints before the given checkpoint number. */
32
- protected abstract deleteCheckpointsBefore(checkpointNumber: CheckpointNumber): Promise<void>;
33
27
  /** Runs the given function in a transaction. Memory stores can just execute immediately. */
34
28
  protected abstract runInTransaction<T>(fn: () => Promise<T>): Promise<T>;
35
29
  getL2BlockHash(number: BlockNumber): Promise<string | undefined>;
36
- getL2Tips(): Promise<L2Tips>;
30
+ getL2Tips(): Promise<LocalL2Tips>;
31
+ /**
32
+ * Records `(number → hash)` witnesses into the block-hash index without moving any tip cursor. In tips-only mode
33
+ * the hash history is sparse (one anchor per tip-moving poll), so a consumer that materializes per-height state
34
+ * should witness those heights or its prunes are over-deep by the gap to the nearest anchor. Witnesses are compared
35
+ * against the source, not trusted, so they cannot cause under-deep prunes; this is always safe to call.
36
+ */
37
+ recordBlockHashes(blocks: L2BlockId[]): Promise<void>;
37
38
  handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
38
39
  protected computeBlockHash(block: L2Block): Promise<string>;
39
40
  private getBlockId;
40
41
  private getCheckpointId;
42
+ private genesisCheckpointId;
41
43
  private handleBlocksAdded;
44
+ private handleChainProposed;
42
45
  private handleChainCheckpointed;
43
46
  private handleChainPruned;
44
47
  private handleChainProven;
45
48
  private handleChainFinalized;
46
49
  private saveTag;
47
- private saveCheckpoint;
48
50
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZV9iYXNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc3RyZWFtL2wyX3RpcHNfc3RvcmVfYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBSUwsS0FBSyxVQUFVLEVBQ2YsS0FBSyxNQUFNLEVBQ1osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJIOzs7R0FHRztBQUNILDhCQUFzQixlQUFnQixZQUFXLHlCQUF5QixFQUFFLDhCQUE4QjtJQUd4Ryw2Q0FBNkM7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTdFLDZDQUE2QztJQUM3QyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBGLG9EQUFvRDtJQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztJQUU3RixvREFBb0Q7SUFDcEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2Rix5RUFBeUU7SUFDekUsU0FBUyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRiwyREFBMkQ7SUFDM0QsU0FBUyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUVoSCwyREFBMkQ7SUFDM0QsU0FBUyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FDNUMsV0FBVyxFQUFFLFdBQVcsRUFDeEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQix5RkFBeUY7SUFDekYsU0FBUyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRix1Q0FBdUM7SUFDdkMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRS9HLDBCQUEwQjtJQUMxQixTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEYsa0VBQWtFO0lBQ2xFLFNBQVMsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlGLDRGQUE0RjtJQUM1RixTQUFTLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBSWxFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRXRFO0lBRU0sU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FzQmxDO0lBRVksc0JBQXNCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FrQjVFO0lBR0QsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUUxRDtZQUlhLFVBQVU7WUFZVixlQUFlO1lBaUJmLGlCQUFpQjtZQWFqQix1QkFBdUI7WUFVdkIsaUJBQWlCO1lBY2pCLGlCQUFpQjtZQVNqQixvQkFBb0I7WUFpQnBCLE9BQU87WUFPUCxjQUFjO0NBUzdCIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZV9iYXNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc3RyZWFtL2wyX3RpcHNfc3RvcmVfYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxLQUFLLFlBQVksRUFFakIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxVQUFVLEVBQ2YsS0FBSyxXQUFXLEVBQ2pCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVySDs7O0dBR0c7QUFDSCw4QkFBc0IsZUFBZ0IsWUFBVyx5QkFBeUIsRUFBRSw4QkFBOEI7SUFDNUYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO0lBQTFELFlBQStCLGdCQUFnQixFQUFFLFNBQVMsRUFBSTtJQUc5RCw2Q0FBNkM7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTdFLDZDQUE2QztJQUM3QyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBGLCtEQUErRDtJQUMvRCxTQUFTLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQztJQUV4RixpREFBaUQ7SUFDakQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlGLG9EQUFvRDtJQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztJQUU3RixvREFBb0Q7SUFDcEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2Rix5RUFBeUU7SUFDekUsU0FBUyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRiw0RkFBNEY7SUFDNUYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUk1RCxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUs1RTtJQUVNLFNBQVMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBc0J2QztJQUVEOzs7OztPQUtHO0lBQ1UsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRakU7SUFFWSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXFCNUU7SUFHRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRTFEO1lBSWEsVUFBVTtZQVlWLGVBQWU7SUFnQjdCLE9BQU8sQ0FBQyxtQkFBbUI7WUFJYixpQkFBaUI7WUFhakIsbUJBQW1CO1lBU25CLHVCQUF1QjtZQVV2QixpQkFBaUI7WUEyQmpCLGlCQUFpQjtZQVVqQixvQkFBb0I7WUFtQnBCLE9BQU87Q0FNdEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"l2_tips_store_base.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_tips_store_base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAErH;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,yBAAyB,EAAE,8BAA8B;IAGxG,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAE7E,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,oDAAoD;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE7F,oDAAoD;IACpD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAEhH,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAC5C,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yFAAyF;IACzF,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F,uCAAuC;IACvC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAE/G,0BAA0B;IAC1B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtF,kEAAkE;IAClE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9F,4FAA4F;IAC5F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAIlE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEtE;IAEM,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAsBlC;IAEY,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5E;IAGD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1D;YAIa,UAAU;YAYV,eAAe;YAiBf,iBAAiB;YAajB,uBAAuB;YAUvB,iBAAiB;YAcjB,iBAAiB;YASjB,oBAAoB;YAiBpB,OAAO;YAOP,cAAc;CAS7B"}
1
+ {"version":3,"file":"l2_tips_store_base.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_tips_store_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAErH;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,yBAAyB,EAAE,8BAA8B;IAC5F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS;IAA1D,YAA+B,gBAAgB,EAAE,SAAS,EAAI;IAG9D,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAE7E,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAExF,iDAAiD;IACjD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9F,oDAAoD;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE7F,oDAAoD;IACpD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,4FAA4F;IAC5F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAI5D,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK5E;IAEM,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAsBvC;IAED;;;;;OAKG;IACU,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjE;IAEY,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5E;IAGD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1D;YAIa,UAAU;YAYV,eAAe;IAgB7B,OAAO,CAAC,mBAAmB;YAIb,iBAAiB;YAajB,mBAAmB;YASnB,uBAAuB;YAUvB,iBAAiB;YA2BjB,iBAAiB;YAUjB,oBAAoB;YAmBpB,OAAO;CAMtB"}