@aztec/stdlib 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0

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 (1502) hide show
  1. package/dest/abi/abi.d.ts +199 -533
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +48 -25
  4. package/dest/abi/authorization_selector.d.ts +5 -8
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/authorization_selector.js +2 -1
  7. package/dest/abi/buffer.d.ts +20 -6
  8. package/dest/abi/buffer.d.ts.map +1 -1
  9. package/dest/abi/buffer.js +39 -6
  10. package/dest/abi/contract_artifact.d.ts +2 -2
  11. package/dest/abi/contract_artifact.d.ts.map +1 -1
  12. package/dest/abi/contract_artifact.js +40 -15
  13. package/dest/abi/decoder.d.ts +7 -46
  14. package/dest/abi/decoder.d.ts.map +1 -1
  15. package/dest/abi/decoder.js +17 -70
  16. package/dest/abi/encoder.d.ts +2 -2
  17. package/dest/abi/encoder.d.ts.map +1 -1
  18. package/dest/abi/encoder.js +65 -8
  19. package/dest/abi/event_metadata_definition.d.ts +3 -1
  20. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  21. package/dest/abi/event_metadata_definition.js +1 -1
  22. package/dest/abi/event_selector.d.ts +5 -8
  23. package/dest/abi/event_selector.d.ts.map +1 -1
  24. package/dest/abi/event_selector.js +2 -1
  25. package/dest/abi/function_call.d.ts +31 -11
  26. package/dest/abi/function_call.d.ts.map +1 -1
  27. package/dest/abi/function_call.js +20 -3
  28. package/dest/abi/function_selector.d.ts +5 -7
  29. package/dest/abi/function_selector.d.ts.map +1 -1
  30. package/dest/abi/function_selector.js +11 -5
  31. package/dest/abi/function_signature_decoder.d.ts +43 -0
  32. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  33. package/dest/abi/function_signature_decoder.js +66 -0
  34. package/dest/abi/index.d.ts +2 -1
  35. package/dest/abi/index.d.ts.map +1 -1
  36. package/dest/abi/index.js +1 -0
  37. package/dest/abi/note_selector.d.ts +5 -8
  38. package/dest/abi/note_selector.d.ts.map +1 -1
  39. package/dest/abi/note_selector.js +3 -5
  40. package/dest/abi/selector.d.ts +3 -3
  41. package/dest/abi/selector.d.ts.map +1 -1
  42. package/dest/abi/selector.js +5 -3
  43. package/dest/abi/utils.d.ts +20 -1
  44. package/dest/abi/utils.d.ts.map +1 -1
  45. package/dest/abi/utils.js +22 -0
  46. package/dest/auth_witness/auth_witness.d.ts +4 -3
  47. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  48. package/dest/auth_witness/auth_witness.js +5 -5
  49. package/dest/avm/avm.d.ts +1827 -10485
  50. package/dest/avm/avm.d.ts.map +1 -1
  51. package/dest/avm/avm.js +94 -29
  52. package/dest/avm/avm_accumulated_data.d.ts +51 -88
  53. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  54. package/dest/avm/avm_accumulated_data.js +6 -3
  55. package/dest/avm/avm_circuit_public_inputs.d.ts +186 -938
  56. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  57. package/dest/avm/avm_circuit_public_inputs.js +4 -2
  58. package/dest/avm/avm_proving_request.d.ts +834 -5627
  59. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  60. package/dest/avm/index.d.ts +1 -6
  61. package/dest/avm/index.d.ts.map +1 -1
  62. package/dest/avm/index.js +0 -5
  63. package/dest/avm/message_pack.d.ts +1 -1
  64. package/dest/avm/message_pack.d.ts.map +1 -1
  65. package/dest/avm/message_pack.js +14 -4
  66. package/dest/avm/public_data_read.d.ts +11 -2
  67. package/dest/avm/public_data_read.d.ts.map +1 -1
  68. package/dest/avm/public_data_read.js +1 -1
  69. package/dest/avm/public_data_write.d.ts +13 -13
  70. package/dest/avm/public_data_write.d.ts.map +1 -1
  71. package/dest/avm/public_data_write.js +1 -1
  72. package/dest/avm/revert_code.d.ts +10 -11
  73. package/dest/avm/revert_code.d.ts.map +1 -1
  74. package/dest/avm/revert_code.js +17 -23
  75. package/dest/aztec-address/index.d.ts +44 -13
  76. package/dest/aztec-address/index.d.ts.map +1 -1
  77. package/dest/aztec-address/index.js +44 -14
  78. package/dest/block/attestation_info.d.ts +7 -6
  79. package/dest/block/attestation_info.d.ts.map +1 -1
  80. package/dest/block/attestation_info.js +12 -7
  81. package/dest/block/block_data.d.ts +27 -0
  82. package/dest/block/block_data.d.ts.map +1 -0
  83. package/dest/block/block_data.js +12 -0
  84. package/dest/block/block_hash.d.ts +20 -15
  85. package/dest/block/block_hash.d.ts.map +1 -1
  86. package/dest/block/block_hash.js +23 -20
  87. package/dest/block/block_parameter.d.ts +38 -4
  88. package/dest/block/block_parameter.d.ts.map +1 -1
  89. package/dest/block/block_parameter.js +55 -2
  90. package/dest/block/body.d.ts +1 -1
  91. package/dest/block/body.d.ts.map +1 -1
  92. package/dest/block/body.js +5 -2
  93. package/dest/block/in_block.d.ts +14 -17
  94. package/dest/block/in_block.d.ts.map +1 -1
  95. package/dest/block/in_block.js +19 -10
  96. package/dest/block/index.d.ts +2 -4
  97. package/dest/block/index.d.ts.map +1 -1
  98. package/dest/block/index.js +1 -3
  99. package/dest/block/l2_block.d.ts +66 -86
  100. package/dest/block/l2_block.d.ts.map +1 -1
  101. package/dest/block/l2_block.js +77 -109
  102. package/dest/block/l2_block_info.d.ts +11 -30
  103. package/dest/block/l2_block_info.d.ts.map +1 -1
  104. package/dest/block/l2_block_info.js +7 -6
  105. package/dest/block/l2_block_source.d.ts +321 -166
  106. package/dest/block/l2_block_source.d.ts.map +1 -1
  107. package/dest/block/l2_block_source.js +105 -6
  108. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
  109. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
  110. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
  111. package/dest/block/l2_block_stream/index.d.ts +3 -1
  112. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  113. package/dest/block/l2_block_stream/index.js +2 -0
  114. package/dest/block/l2_block_stream/interfaces.d.ts +91 -8
  115. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  116. package/dest/block/l2_block_stream/interfaces.js +25 -1
  117. package/dest/block/l2_block_stream/l2_block_stream.d.ts +28 -10
  118. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  119. package/dest/block/l2_block_stream/l2_block_stream.js +177 -60
  120. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +20 -16
  121. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  122. package/dest/block/l2_block_stream/l2_tips_memory_store.js +36 -63
  123. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +51 -0
  124. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  125. package/dest/block/l2_block_stream/l2_tips_store_base.js +223 -0
  126. package/dest/block/proposal/attestations_and_signers.d.ts +38 -31
  127. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  128. package/dest/block/proposal/attestations_and_signers.js +73 -25
  129. package/dest/block/proposal/committee_attestation.d.ts +7 -13
  130. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  131. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  132. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  133. package/dest/block/test/l2_tips_store_test_suite.js +747 -50
  134. package/dest/block/validate_block_result.d.ts +39 -24
  135. package/dest/block/validate_block_result.d.ts.map +1 -1
  136. package/dest/block/validate_block_result.js +33 -17
  137. package/dest/checkpoint/checkpoint.d.ts +76 -88
  138. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  139. package/dest/checkpoint/checkpoint.js +92 -17
  140. package/dest/checkpoint/checkpoint_data.d.ts +97 -0
  141. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  142. package/dest/checkpoint/checkpoint_data.js +38 -0
  143. package/dest/checkpoint/checkpoint_info.d.ts +22 -0
  144. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -0
  145. package/dest/checkpoint/checkpoint_info.js +34 -0
  146. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  147. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  148. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  149. package/dest/checkpoint/digest.d.ts +18 -0
  150. package/dest/checkpoint/digest.d.ts.map +1 -0
  151. package/dest/checkpoint/digest.js +12 -0
  152. package/dest/checkpoint/index.d.ts +8 -1
  153. package/dest/checkpoint/index.d.ts.map +1 -1
  154. package/dest/checkpoint/index.js +7 -0
  155. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  156. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  157. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  158. package/dest/checkpoint/published_checkpoint.d.ts +58 -169
  159. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  160. package/dest/checkpoint/published_checkpoint.js +16 -6
  161. package/dest/checkpoint/simulation_overrides.d.ts +61 -0
  162. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
  163. package/dest/checkpoint/simulation_overrides.js +98 -0
  164. package/dest/checkpoint/validate.d.ts +44 -0
  165. package/dest/checkpoint/validate.d.ts.map +1 -0
  166. package/dest/checkpoint/validate.js +123 -0
  167. package/dest/config/chain-config.d.ts +4 -9
  168. package/dest/config/chain-config.d.ts.map +1 -1
  169. package/dest/config/chain-config.js +13 -12
  170. package/dest/config/index.d.ts +3 -1
  171. package/dest/config/index.d.ts.map +1 -1
  172. package/dest/config/index.js +2 -0
  173. package/dest/config/network-consensus-config.d.ts +72 -0
  174. package/dest/config/network-consensus-config.d.ts.map +1 -0
  175. package/dest/config/network-consensus-config.js +223 -0
  176. package/dest/config/node-rpc-config.js +1 -1
  177. package/dest/config/sequencer-config.d.ts +16 -0
  178. package/dest/config/sequencer-config.d.ts.map +1 -0
  179. package/dest/config/sequencer-config.js +57 -0
  180. package/dest/contract/artifact_hash.d.ts +2 -2
  181. package/dest/contract/artifact_hash.d.ts.map +1 -1
  182. package/dest/contract/artifact_hash.js +2 -2
  183. package/dest/contract/complete_address.d.ts +7 -3
  184. package/dest/contract/complete_address.d.ts.map +1 -1
  185. package/dest/contract/complete_address.js +7 -3
  186. package/dest/contract/contract_address.d.ts +11 -10
  187. package/dest/contract/contract_address.d.ts.map +1 -1
  188. package/dest/contract/contract_address.js +11 -10
  189. package/dest/contract/contract_class.d.ts +3 -4
  190. package/dest/contract/contract_class.d.ts.map +1 -1
  191. package/dest/contract/contract_class.js +3 -2
  192. package/dest/contract/contract_class_id.d.ts +4 -4
  193. package/dest/contract/contract_class_id.d.ts.map +1 -1
  194. package/dest/contract/contract_class_id.js +9 -8
  195. package/dest/contract/contract_deployment_data.d.ts +18 -64
  196. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  197. package/dest/contract/contract_instance.d.ts +20 -4
  198. package/dest/contract/contract_instance.d.ts.map +1 -1
  199. package/dest/contract/contract_instance.js +56 -4
  200. package/dest/contract/contract_instance_update.d.ts +2 -2
  201. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  202. package/dest/contract/contract_instance_update.js +1 -1
  203. package/dest/contract/index.d.ts +1 -6
  204. package/dest/contract/index.d.ts.map +1 -1
  205. package/dest/contract/index.js +0 -5
  206. package/dest/contract/interfaces/contract_class.d.ts +30 -249
  207. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  208. package/dest/contract/interfaces/contract_class.js +24 -34
  209. package/dest/contract/interfaces/contract_data_source.d.ts +4 -6
  210. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  211. package/dest/contract/interfaces/contract_instance.d.ts +133 -117
  212. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  213. package/dest/contract/interfaces/contract_instance.js +39 -7
  214. package/dest/contract/interfaces/contract_instance_update.d.ts +12 -33
  215. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  216. package/dest/contract/interfaces/contract_instance_update.js +5 -5
  217. package/dest/contract/interfaces/node-info.d.ts +13 -1
  218. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  219. package/dest/contract/interfaces/node-info.js +8 -1
  220. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  221. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  222. package/dest/contract/partial_address.d.ts +10 -4
  223. package/dest/contract/partial_address.d.ts.map +1 -1
  224. package/dest/contract/partial_address.js +8 -2
  225. package/dest/contract/private_function.d.ts +2 -2
  226. package/dest/contract/private_function.d.ts.map +1 -1
  227. package/dest/contract/private_function.js +7 -9
  228. package/dest/database-version/database_version.d.ts +52 -0
  229. package/dest/database-version/database_version.d.ts.map +1 -0
  230. package/dest/database-version/database_version.js +69 -0
  231. package/dest/database-version/version_manager.d.ts +23 -51
  232. package/dest/database-version/version_manager.d.ts.map +1 -1
  233. package/dest/database-version/version_manager.js +88 -70
  234. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +3 -3
  235. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  236. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +9 -12
  237. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts +2 -2
  238. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -1
  239. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +1 -1
  240. package/dest/delayed_public_mutable/scheduled_value_change.d.ts +2 -2
  241. package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -1
  242. package/dest/delayed_public_mutable/scheduled_value_change.js +1 -1
  243. package/dest/deserialization/index.d.ts +43 -0
  244. package/dest/deserialization/index.d.ts.map +1 -0
  245. package/dest/deserialization/index.js +41 -0
  246. package/dest/epoch-helpers/index.d.ts +16 -18
  247. package/dest/epoch-helpers/index.d.ts.map +1 -1
  248. package/dest/epoch-helpers/index.js +26 -6
  249. package/dest/errors/proving_error.d.ts +2 -2
  250. package/dest/errors/proving_error.d.ts.map +1 -1
  251. package/dest/errors/simulation_error.d.ts +2 -2
  252. package/dest/errors/simulation_error.d.ts.map +1 -1
  253. package/dest/fees/transaction_fee.d.ts +2 -2
  254. package/dest/fees/transaction_fee.d.ts.map +1 -1
  255. package/dest/file-store/factory.d.ts +4 -3
  256. package/dest/file-store/factory.d.ts.map +1 -1
  257. package/dest/file-store/factory.js +9 -2
  258. package/dest/file-store/http.d.ts +9 -2
  259. package/dest/file-store/http.d.ts.map +1 -1
  260. package/dest/file-store/http.js +20 -9
  261. package/dest/file-store/index.d.ts +3 -1
  262. package/dest/file-store/index.d.ts.map +1 -1
  263. package/dest/file-store/index.js +1 -0
  264. package/dest/file-store/local.d.ts +3 -3
  265. package/dest/file-store/local.d.ts.map +1 -1
  266. package/dest/file-store/local.js +13 -4
  267. package/dest/file-store/memory.d.ts +24 -0
  268. package/dest/file-store/memory.d.ts.map +1 -0
  269. package/dest/file-store/memory.js +80 -0
  270. package/dest/file-store/s3.d.ts +1 -1
  271. package/dest/file-store/s3.d.ts.map +1 -1
  272. package/dest/file-store/s3.js +11 -3
  273. package/dest/gas/fee_math.d.ts +49 -0
  274. package/dest/gas/fee_math.d.ts.map +1 -0
  275. package/dest/gas/fee_math.js +80 -0
  276. package/dest/gas/gas.d.ts +10 -15
  277. package/dest/gas/gas.d.ts.map +1 -1
  278. package/dest/gas/gas.js +10 -5
  279. package/dest/gas/gas_fees.d.ts +14 -15
  280. package/dest/gas/gas_fees.d.ts.map +1 -1
  281. package/dest/gas/gas_fees.js +23 -5
  282. package/dest/gas/gas_settings.d.ts +61 -87
  283. package/dest/gas/gas_settings.d.ts.map +1 -1
  284. package/dest/gas/gas_settings.js +50 -10
  285. package/dest/gas/index.d.ts +3 -1
  286. package/dest/gas/index.d.ts.map +1 -1
  287. package/dest/gas/index.js +2 -0
  288. package/dest/gas/tx_gas_limits.d.ts +72 -0
  289. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  290. package/dest/gas/tx_gas_limits.js +85 -0
  291. package/dest/ha-signing/config.d.ts +86 -0
  292. package/dest/ha-signing/config.d.ts.map +1 -0
  293. package/dest/ha-signing/config.js +94 -0
  294. package/dest/ha-signing/index.d.ts +4 -0
  295. package/dest/ha-signing/index.d.ts.map +1 -0
  296. package/dest/ha-signing/index.js +3 -0
  297. package/dest/ha-signing/local_config.d.ts +40 -0
  298. package/dest/ha-signing/local_config.d.ts.map +1 -0
  299. package/dest/ha-signing/local_config.js +30 -0
  300. package/dest/ha-signing/types.d.ts +90 -0
  301. package/dest/ha-signing/types.d.ts.map +1 -0
  302. package/dest/ha-signing/types.js +39 -0
  303. package/dest/hash/hash.d.ts +34 -9
  304. package/dest/hash/hash.d.ts.map +1 -1
  305. package/dest/hash/hash.js +77 -28
  306. package/dest/hash/map_slot.d.ts +2 -2
  307. package/dest/hash/map_slot.d.ts.map +1 -1
  308. package/dest/hash/map_slot.js +4 -3
  309. package/dest/interfaces/allowed_element.d.ts +22 -41
  310. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  311. package/dest/interfaces/allowed_element.js +11 -11
  312. package/dest/interfaces/api_limit.d.ts +3 -1
  313. package/dest/interfaces/api_limit.d.ts.map +1 -1
  314. package/dest/interfaces/api_limit.js +2 -0
  315. package/dest/interfaces/archiver.d.ts +26 -33
  316. package/dest/interfaces/archiver.d.ts.map +1 -1
  317. package/dest/interfaces/archiver.js +219 -60
  318. package/dest/interfaces/aztec-node-admin.d.ts +131 -218
  319. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  320. package/dest/interfaces/aztec-node-admin.js +71 -20
  321. package/dest/interfaces/aztec-node-debug.d.ts +59 -0
  322. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  323. package/dest/interfaces/aztec-node-debug.js +49 -0
  324. package/dest/interfaces/aztec-node.d.ts +200 -160
  325. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  326. package/dest/interfaces/aztec-node.js +355 -79
  327. package/dest/interfaces/block-builder.d.ts +58 -18
  328. package/dest/interfaces/block-builder.d.ts.map +1 -1
  329. package/dest/interfaces/block-builder.js +23 -1
  330. package/dest/interfaces/block_response.d.ts +90 -0
  331. package/dest/interfaces/block_response.d.ts.map +1 -0
  332. package/dest/interfaces/block_response.js +30 -0
  333. package/dest/interfaces/chain_tips.d.ts +11 -0
  334. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  335. package/dest/interfaces/chain_tips.js +6 -0
  336. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  337. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  338. package/dest/interfaces/checkpoint_parameter.js +18 -0
  339. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  340. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  341. package/dest/interfaces/checkpoint_response.js +26 -0
  342. package/dest/interfaces/client.d.ts +9 -2
  343. package/dest/interfaces/client.d.ts.map +1 -1
  344. package/dest/interfaces/client.js +7 -1
  345. package/dest/interfaces/configs.d.ts +129 -123
  346. package/dest/interfaces/configs.d.ts.map +1 -1
  347. package/dest/interfaces/configs.js +34 -9
  348. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  349. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  350. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  351. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  352. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  353. package/dest/interfaces/l1_publish_info.js +26 -0
  354. package/dest/interfaces/l2_logs_source.d.ts +14 -29
  355. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  356. package/dest/interfaces/l2_logs_source.js +5 -0
  357. package/dest/interfaces/merkle_tree_operations.d.ts +21 -25
  358. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  359. package/dest/interfaces/p2p-bootstrap.js +8 -2
  360. package/dest/interfaces/p2p.d.ts +52 -20
  361. package/dest/interfaces/p2p.d.ts.map +1 -1
  362. package/dest/interfaces/p2p.js +42 -8
  363. package/dest/interfaces/private_kernel_prover.d.ts +131 -12
  364. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  365. package/dest/interfaces/prover-agent.d.ts +5 -23
  366. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  367. package/dest/interfaces/prover-agent.js +4 -1
  368. package/dest/interfaces/prover-broker.d.ts +16 -1
  369. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  370. package/dest/interfaces/prover-broker.js +4 -1
  371. package/dest/interfaces/prover-client.d.ts +22 -23
  372. package/dest/interfaces/prover-client.d.ts.map +1 -1
  373. package/dest/interfaces/prover-client.js +22 -7
  374. package/dest/interfaces/prover-node.d.ts +12 -8
  375. package/dest/interfaces/prover-node.d.ts.map +1 -1
  376. package/dest/interfaces/prover-node.js +37 -16
  377. package/dest/interfaces/proving-job-source.js +24 -4
  378. package/dest/interfaces/proving-job.d.ts +753 -5804
  379. package/dest/interfaces/proving-job.d.ts.map +1 -1
  380. package/dest/interfaces/proving-job.js +3 -9
  381. package/dest/interfaces/public_state_source.d.ts +2 -2
  382. package/dest/interfaces/public_state_source.d.ts.map +1 -1
  383. package/dest/interfaces/public_storage_override.d.ts +22 -0
  384. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  385. package/dest/interfaces/public_storage_override.js +7 -0
  386. package/dest/interfaces/server.d.ts +6 -3
  387. package/dest/interfaces/server.d.ts.map +1 -1
  388. package/dest/interfaces/server.js +5 -2
  389. package/dest/interfaces/server_circuit_prover.d.ts +5 -4
  390. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  391. package/dest/interfaces/slasher.d.ts +27 -59
  392. package/dest/interfaces/slasher.d.ts.map +1 -1
  393. package/dest/interfaces/slasher.js +13 -7
  394. package/dest/interfaces/tx_provider.d.ts +8 -3
  395. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  396. package/dest/interfaces/validator.d.ts +133 -125
  397. package/dest/interfaces/validator.d.ts.map +1 -1
  398. package/dest/interfaces/validator.js +25 -10
  399. package/dest/interfaces/world_state.d.ts +35 -12
  400. package/dest/interfaces/world_state.d.ts.map +1 -1
  401. package/dest/kernel/claimed_length_array.d.ts +2 -2
  402. package/dest/kernel/claimed_length_array.d.ts.map +1 -1
  403. package/dest/kernel/claimed_length_array.js +3 -1
  404. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +7 -6
  405. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  406. package/dest/kernel/hints/build_note_hash_read_request_hints.js +31 -19
  407. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +5 -5
  408. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  409. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  410. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  411. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  412. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  413. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
  414. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  415. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -76
  416. package/dest/kernel/hints/index.d.ts +3 -4
  417. package/dest/kernel/hints/index.d.ts.map +1 -1
  418. package/dest/kernel/hints/index.js +2 -3
  419. package/dest/kernel/hints/key_validation_hint.d.ts +3 -2
  420. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  421. package/dest/kernel/hints/key_validation_hint.js +1 -1
  422. package/dest/kernel/hints/key_validation_request.d.ts +14 -8
  423. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  424. package/dest/kernel/hints/key_validation_request.js +21 -18
  425. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  426. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  427. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +13 -16
  428. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +2 -2
  429. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  430. package/dest/kernel/hints/note_hash_read_request_hints.js +1 -1
  431. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  432. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  433. package/dest/kernel/hints/read_request.d.ts +8 -2
  434. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  435. package/dest/kernel/hints/read_request.js +2 -2
  436. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  437. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  438. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +9 -9
  439. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  440. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  441. package/dest/kernel/hints/scoped_value_cache.d.ts +2 -2
  442. package/dest/kernel/hints/scoped_value_cache.d.ts.map +1 -1
  443. package/dest/kernel/hints/transient_data_squashing_hint.d.ts +2 -2
  444. package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -1
  445. package/dest/kernel/hints/transient_data_squashing_hint.js +4 -2
  446. package/dest/kernel/index.d.ts +10 -2
  447. package/dest/kernel/index.d.ts.map +1 -1
  448. package/dest/kernel/index.js +9 -1
  449. package/dest/kernel/log_hash.d.ts +7 -3
  450. package/dest/kernel/log_hash.d.ts.map +1 -1
  451. package/dest/kernel/log_hash.js +27 -13
  452. package/dest/kernel/note_hash.d.ts +2 -2
  453. package/dest/kernel/note_hash.d.ts.map +1 -1
  454. package/dest/kernel/note_hash.js +2 -2
  455. package/dest/kernel/nullifier.d.ts +2 -2
  456. package/dest/kernel/nullifier.d.ts.map +1 -1
  457. package/dest/kernel/nullifier.js +2 -2
  458. package/dest/kernel/padded_side_effects.d.ts +2 -2
  459. package/dest/kernel/padded_side_effects.d.ts.map +1 -1
  460. package/dest/kernel/padded_side_effects.js +1 -1
  461. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  462. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  463. package/dest/kernel/private_call_data.d.ts +26 -2
  464. package/dest/kernel/private_call_data.d.ts.map +1 -1
  465. package/dest/kernel/private_call_data.js +1 -1
  466. package/dest/kernel/private_call_request.d.ts +17 -2
  467. package/dest/kernel/private_call_request.d.ts.map +1 -1
  468. package/dest/kernel/private_call_request.js +1 -1
  469. package/dest/kernel/private_circuit_public_inputs.d.ts +135 -52
  470. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  471. package/dest/kernel/private_circuit_public_inputs.js +76 -69
  472. package/dest/kernel/private_context_inputs.d.ts +4 -3
  473. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  474. package/dest/kernel/private_context_inputs.js +7 -3
  475. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +38 -10
  476. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  477. package/dest/kernel/private_kernel_circuit_public_inputs.js +14 -11
  478. package/dest/kernel/private_kernel_data.d.ts +7 -1
  479. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  480. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +22 -0
  481. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  482. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +33 -0
  483. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +23 -0
  484. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  485. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +35 -0
  486. package/dest/kernel/private_kernel_init_4_circuit_private_inputs.d.ts +24 -0
  487. package/dest/kernel/private_kernel_init_4_circuit_private_inputs.d.ts.map +1 -0
  488. package/dest/kernel/private_kernel_init_4_circuit_private_inputs.js +37 -0
  489. package/dest/kernel/private_kernel_init_5_circuit_private_inputs.d.ts +25 -0
  490. package/dest/kernel/private_kernel_init_5_circuit_private_inputs.d.ts.map +1 -0
  491. package/dest/kernel/private_kernel_init_5_circuit_private_inputs.js +39 -0
  492. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +20 -7
  493. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  494. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +3 -7
  495. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  496. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  497. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  498. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  499. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  500. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  501. package/dest/kernel/private_kernel_inner_4_circuit_private_inputs.d.ts +18 -0
  502. package/dest/kernel/private_kernel_inner_4_circuit_private_inputs.d.ts.map +1 -0
  503. package/dest/kernel/private_kernel_inner_4_circuit_private_inputs.js +27 -0
  504. package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.d.ts +19 -0
  505. package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.d.ts.map +1 -0
  506. package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.js +29 -0
  507. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  508. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  509. package/dest/kernel/private_kernel_prover_output.d.ts +6 -29
  510. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  511. package/dest/kernel/private_kernel_prover_output.js +4 -1
  512. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  513. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  514. package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
  515. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  516. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
  517. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
  518. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
  519. package/dest/kernel/private_kernel_simulated_output.d.ts +1 -7
  520. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  521. package/dest/kernel/private_kernel_simulated_output.js +2 -1
  522. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +35 -9
  523. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  524. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +33 -14
  525. package/dest/kernel/private_log_data.d.ts +2 -2
  526. package/dest/kernel/private_log_data.d.ts.map +1 -1
  527. package/dest/kernel/private_log_data.js +6 -3
  528. package/dest/kernel/private_to_avm_accumulated_data.d.ts +27 -71
  529. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  530. package/dest/kernel/private_to_avm_accumulated_data.js +17 -8
  531. package/dest/kernel/private_to_public_accumulated_data.d.ts +5 -4
  532. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  533. package/dest/kernel/private_to_public_accumulated_data.js +10 -5
  534. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts +2 -2
  535. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts.map +1 -1
  536. package/dest/kernel/private_to_public_accumulated_data_builder.js +1 -1
  537. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +8 -7
  538. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  539. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +14 -10
  540. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +22 -5
  541. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  542. package/dest/kernel/private_to_rollup_accumulated_data.js +10 -5
  543. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +23 -7
  544. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  545. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +14 -10
  546. package/dest/kernel/private_validation_requests.d.ts +13 -4
  547. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  548. package/dest/kernel/private_validation_requests.js +12 -10
  549. package/dest/kernel/public_call_request.d.ts +37 -31
  550. package/dest/kernel/public_call_request.d.ts.map +1 -1
  551. package/dest/kernel/public_call_request.js +22 -10
  552. package/dest/kernel/utils/index.d.ts +1 -2
  553. package/dest/kernel/utils/index.d.ts.map +1 -1
  554. package/dest/kernel/utils/index.js +0 -1
  555. package/dest/keys/derivation.d.ts +47 -7
  556. package/dest/keys/derivation.d.ts.map +1 -1
  557. package/dest/keys/derivation.js +65 -29
  558. package/dest/keys/key_types.d.ts +3 -3
  559. package/dest/keys/key_types.d.ts.map +1 -1
  560. package/dest/keys/public_key.d.ts +22 -3
  561. package/dest/keys/public_key.d.ts.map +1 -1
  562. package/dest/keys/public_key.js +20 -1
  563. package/dest/keys/public_keys.d.ts +57 -79
  564. package/dest/keys/public_keys.d.ts.map +1 -1
  565. package/dest/keys/public_keys.js +104 -75
  566. package/dest/keys/utils.d.ts +1 -1
  567. package/dest/keys/utils.d.ts.map +1 -1
  568. package/dest/keys/utils.js +8 -4
  569. package/dest/kv-store/config.d.ts +14 -0
  570. package/dest/kv-store/config.d.ts.map +1 -0
  571. package/dest/kv-store/config.js +21 -0
  572. package/dest/kv-store/index.d.ts +2 -0
  573. package/dest/kv-store/index.d.ts.map +1 -0
  574. package/dest/kv-store/index.js +1 -0
  575. package/dest/l1-contracts/index.d.ts +2 -2
  576. package/dest/l1-contracts/index.d.ts.map +1 -1
  577. package/dest/l1-contracts/index.js +1 -1
  578. package/dest/logs/app_tagging_secret.d.ts +69 -0
  579. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  580. package/dest/logs/app_tagging_secret.js +116 -0
  581. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  582. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  583. package/dest/logs/app_tagging_secret_kind.js +17 -0
  584. package/dest/logs/contract_class_log.d.ts +17 -36
  585. package/dest/logs/contract_class_log.d.ts.map +1 -1
  586. package/dest/logs/contract_class_log.js +16 -16
  587. package/dest/logs/debug_log.d.ts +2 -2
  588. package/dest/logs/debug_log.d.ts.map +1 -1
  589. package/dest/logs/debug_log.js +1 -1
  590. package/dest/logs/debug_log_store.d.ts +30 -0
  591. package/dest/logs/debug_log_store.d.ts.map +1 -0
  592. package/dest/logs/debug_log_store.js +30 -0
  593. package/dest/logs/index.d.ts +11 -8
  594. package/dest/logs/index.d.ts.map +1 -1
  595. package/dest/logs/index.js +10 -7
  596. package/dest/logs/log_cursor.d.ts +51 -0
  597. package/dest/logs/log_cursor.d.ts.map +1 -0
  598. package/dest/logs/log_cursor.js +82 -0
  599. package/dest/logs/log_result.d.ts +54 -0
  600. package/dest/logs/log_result.d.ts.map +1 -0
  601. package/dest/logs/log_result.js +56 -0
  602. package/dest/logs/logs_query.d.ts +82 -0
  603. package/dest/logs/logs_query.d.ts.map +1 -0
  604. package/dest/logs/logs_query.js +50 -0
  605. package/dest/logs/message_context.d.ts +4 -16
  606. package/dest/logs/message_context.d.ts.map +1 -1
  607. package/dest/logs/message_context.js +1 -48
  608. package/dest/logs/pending_tagged_log.d.ts +6 -9
  609. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  610. package/dest/logs/pending_tagged_log.js +1 -31
  611. package/dest/logs/pre_tag.d.ts +14 -22
  612. package/dest/logs/pre_tag.d.ts.map +1 -1
  613. package/dest/logs/pre_tag.js +2 -2
  614. package/dest/logs/private_log.d.ts +9 -14
  615. package/dest/logs/private_log.d.ts.map +1 -1
  616. package/dest/logs/private_log.js +12 -6
  617. package/dest/logs/public_log.d.ts +6 -4
  618. package/dest/logs/public_log.d.ts.map +1 -1
  619. package/dest/logs/public_log.js +9 -3
  620. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  621. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  622. package/dest/logs/query_all_logs_by_tags.js +64 -0
  623. package/dest/logs/shared_secret_derivation.d.ts +33 -9
  624. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  625. package/dest/logs/shared_secret_derivation.js +50 -11
  626. package/dest/logs/siloed_tag.d.ts +26 -0
  627. package/dest/logs/siloed_tag.d.ts.map +1 -0
  628. package/dest/logs/siloed_tag.js +42 -0
  629. package/dest/logs/tag.d.ts +20 -0
  630. package/dest/logs/tag.d.ts.map +1 -0
  631. package/dest/logs/tag.js +34 -0
  632. package/dest/logs/tagging_index_range.d.ts +22 -0
  633. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  634. package/dest/logs/tagging_index_range.js +8 -0
  635. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  636. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  637. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  638. package/dest/messaging/in_hash.d.ts +5 -3
  639. package/dest/messaging/in_hash.d.ts.map +1 -1
  640. package/dest/messaging/in_hash.js +4 -2
  641. package/dest/messaging/inbox_leaf.d.ts +10 -7
  642. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  643. package/dest/messaging/inbox_leaf.js +10 -9
  644. package/dest/messaging/index.d.ts +2 -1
  645. package/dest/messaging/index.d.ts.map +1 -1
  646. package/dest/messaging/index.js +1 -0
  647. package/dest/messaging/l1_actor.d.ts +8 -2
  648. package/dest/messaging/l1_actor.d.ts.map +1 -1
  649. package/dest/messaging/l1_actor.js +2 -2
  650. package/dest/messaging/l1_to_l2_message.d.ts +31 -4
  651. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  652. package/dest/messaging/l1_to_l2_message.js +40 -17
  653. package/dest/messaging/l1_to_l2_message_source.d.ts +7 -16
  654. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  655. package/dest/messaging/l2_actor.d.ts +8 -2
  656. package/dest/messaging/l2_actor.d.ts.map +1 -1
  657. package/dest/messaging/l2_actor.js +2 -2
  658. package/dest/messaging/l2_to_l1_membership.d.ts +153 -8
  659. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  660. package/dest/messaging/l2_to_l1_membership.js +269 -48
  661. package/dest/messaging/l2_to_l1_message.d.ts +40 -113
  662. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  663. package/dest/messaging/l2_to_l1_message.js +25 -13
  664. package/dest/messaging/out_hash.d.ts +42 -4
  665. package/dest/messaging/out_hash.d.ts.map +1 -1
  666. package/dest/messaging/out_hash.js +55 -20
  667. package/dest/noir/index.d.ts +7 -5
  668. package/dest/noir/index.d.ts.map +1 -1
  669. package/dest/note/index.d.ts +1 -2
  670. package/dest/note/index.d.ts.map +1 -1
  671. package/dest/note/index.js +0 -1
  672. package/dest/note/note.d.ts +3 -3
  673. package/dest/note/note.d.ts.map +1 -1
  674. package/dest/note/note.js +5 -2
  675. package/dest/note/note_dao.d.ts +41 -6
  676. package/dest/note/note_dao.d.ts.map +1 -1
  677. package/dest/note/note_dao.js +19 -13
  678. package/dest/p2p/attestation_utils.d.ts +13 -3
  679. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  680. package/dest/p2p/attestation_utils.js +54 -2
  681. package/dest/p2p/block_proposal.d.ts +127 -31
  682. package/dest/p2p/block_proposal.d.ts.map +1 -1
  683. package/dest/p2p/block_proposal.js +169 -51
  684. package/dest/p2p/checkpoint_attestation.d.ts +97 -0
  685. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  686. package/dest/p2p/checkpoint_attestation.js +113 -0
  687. package/dest/p2p/checkpoint_proposal.d.ts +194 -0
  688. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  689. package/dest/p2p/checkpoint_proposal.js +241 -0
  690. package/dest/p2p/client_type.d.ts +2 -5
  691. package/dest/p2p/client_type.d.ts.map +1 -1
  692. package/dest/p2p/client_type.js +0 -7
  693. package/dest/p2p/consensus_payload.d.ts +42 -26
  694. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  695. package/dest/p2p/consensus_payload.js +50 -26
  696. package/dest/p2p/constants.d.ts +5 -0
  697. package/dest/p2p/constants.d.ts.map +1 -0
  698. package/dest/p2p/constants.js +3 -0
  699. package/dest/p2p/gossipable.d.ts +7 -6
  700. package/dest/p2p/gossipable.d.ts.map +1 -1
  701. package/dest/p2p/gossipable.js +16 -5
  702. package/dest/p2p/index.d.ts +5 -4
  703. package/dest/p2p/index.d.ts.map +1 -1
  704. package/dest/p2p/index.js +4 -3
  705. package/dest/p2p/message_validator.d.ts +18 -3
  706. package/dest/p2p/message_validator.d.ts.map +1 -1
  707. package/dest/p2p/message_validator.js +2 -1
  708. package/dest/p2p/peer_error.d.ts +3 -1
  709. package/dest/p2p/peer_error.d.ts.map +1 -1
  710. package/dest/p2p/peer_error.js +5 -0
  711. package/dest/p2p/signature_utils.d.ts +35 -15
  712. package/dest/p2p/signature_utils.d.ts.map +1 -1
  713. package/dest/p2p/signature_utils.js +126 -18
  714. package/dest/p2p/signed_txs.d.ts +44 -0
  715. package/dest/p2p/signed_txs.d.ts.map +1 -0
  716. package/dest/p2p/signed_txs.js +77 -0
  717. package/dest/p2p/topic_type.d.ts +5 -5
  718. package/dest/p2p/topic_type.d.ts.map +1 -1
  719. package/dest/p2p/topic_type.js +9 -19
  720. package/dest/parity/parity_base_private_inputs.d.ts +11 -5
  721. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  722. package/dest/parity/parity_base_private_inputs.js +8 -6
  723. package/dest/parity/parity_public_inputs.d.ts +12 -5
  724. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  725. package/dest/parity/parity_public_inputs.js +7 -4
  726. package/dest/parity/parity_root_private_inputs.d.ts +3 -2
  727. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  728. package/dest/proofs/chonk_proof.d.ts +58 -8
  729. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  730. package/dest/proofs/chonk_proof.js +123 -21
  731. package/dest/proofs/proof.d.ts +5 -2
  732. package/dest/proofs/proof.d.ts.map +1 -1
  733. package/dest/proofs/proof.js +1 -1
  734. package/dest/proofs/proof_data.d.ts +13 -1
  735. package/dest/proofs/proof_data.d.ts.map +1 -1
  736. package/dest/proofs/proof_data.js +17 -0
  737. package/dest/proofs/recursive_proof.d.ts +12 -3
  738. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  739. package/dest/proofs/recursive_proof.js +1 -1
  740. package/dest/rollup/avm_proof_data.d.ts +4 -6
  741. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  742. package/dest/rollup/avm_proof_data.js +1 -9
  743. package/dest/rollup/base_rollup_hints.d.ts +35 -2
  744. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  745. package/dest/rollup/base_rollup_hints.js +1 -1
  746. package/dest/rollup/block_constant_data.d.ts +13 -2
  747. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  748. package/dest/rollup/block_constant_data.js +1 -1
  749. package/dest/rollup/block_headers_hash.d.ts +2 -2
  750. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  751. package/dest/rollup/block_headers_hash.js +10 -4
  752. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +5 -2
  753. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  754. package/dest/rollup/block_rollup_public_inputs.d.ts +59 -13
  755. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  756. package/dest/rollup/block_rollup_public_inputs.js +21 -13
  757. package/dest/rollup/block_root_rollup_private_inputs.d.ts +70 -7
  758. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  759. package/dest/rollup/block_root_rollup_private_inputs.js +1 -1
  760. package/dest/rollup/checkpoint_constant_data.d.ts +12 -2
  761. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  762. package/dest/rollup/checkpoint_constant_data.js +5 -2
  763. package/dest/rollup/checkpoint_header.d.ts +54 -15
  764. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  765. package/dest/rollup/checkpoint_header.js +70 -27
  766. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +5 -2
  767. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  768. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +56 -9
  769. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  770. package/dest/rollup/checkpoint_rollup_public_inputs.js +21 -4
  771. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +50 -8
  772. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  773. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +15 -3
  774. package/dest/rollup/epoch_constant_data.d.ts +17 -2
  775. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  776. package/dest/rollup/epoch_constant_data.js +1 -1
  777. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  778. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  779. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +3 -3
  780. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  781. package/dest/rollup/public_chonk_verifier_private_inputs.js +1 -1
  782. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +3 -3
  783. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  784. package/dest/rollup/public_chonk_verifier_public_inputs.js +1 -1
  785. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  786. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  787. package/dest/rollup/public_tx_base_rollup_private_inputs.js +2 -2
  788. package/dest/rollup/root_rollup_private_inputs.d.ts +7 -2
  789. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  790. package/dest/rollup/root_rollup_public_inputs.d.ts +23 -8
  791. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  792. package/dest/rollup/root_rollup_public_inputs.js +11 -5
  793. package/dest/rollup/tree_snapshot_diff_hints.d.ts +25 -2
  794. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  795. package/dest/rollup/tree_snapshot_diff_hints.js +1 -1
  796. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +5 -2
  797. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  798. package/dest/rollup/tx_rollup_public_inputs.d.ts +31 -3
  799. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  800. package/dest/rollup/tx_rollup_public_inputs.js +1 -1
  801. package/dest/schemas/schemas.d.ts +36 -79
  802. package/dest/schemas/schemas.d.ts.map +1 -1
  803. package/dest/schemas/schemas.js +3 -2
  804. package/dest/slashing/helpers.d.ts +2 -2
  805. package/dest/slashing/helpers.d.ts.map +1 -1
  806. package/dest/slashing/helpers.js +16 -7
  807. package/dest/slashing/index.d.ts +2 -3
  808. package/dest/slashing/index.d.ts.map +1 -1
  809. package/dest/slashing/index.js +1 -2
  810. package/dest/slashing/serialization.d.ts +2 -6
  811. package/dest/slashing/serialization.d.ts.map +1 -1
  812. package/dest/slashing/serialization.js +0 -60
  813. package/dest/slashing/types.d.ts +22 -113
  814. package/dest/slashing/types.d.ts.map +1 -1
  815. package/dest/slashing/types.js +31 -27
  816. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  817. package/dest/slashing/votes.d.ts.map +1 -0
  818. package/dest/slashing/{tally.js → votes.js} +35 -3
  819. package/dest/snapshots/types.d.ts +15 -78
  820. package/dest/snapshots/types.d.ts.map +1 -1
  821. package/dest/snapshots/types.js +5 -5
  822. package/dest/stats/stats.d.ts +11 -9
  823. package/dest/stats/stats.d.ts.map +1 -1
  824. package/dest/tests/factories.d.ts +52 -53
  825. package/dest/tests/factories.d.ts.map +1 -1
  826. package/dest/tests/factories.js +170 -130
  827. package/dest/tests/jest.js +1 -1
  828. package/dest/tests/mocks.d.ts +97 -21
  829. package/dest/tests/mocks.d.ts.map +1 -1
  830. package/dest/tests/mocks.js +205 -82
  831. package/dest/timetable/budgets.d.ts +57 -0
  832. package/dest/timetable/budgets.d.ts.map +1 -0
  833. package/dest/timetable/budgets.js +56 -0
  834. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  835. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  836. package/dest/timetable/build_proposer_timetable.js +17 -0
  837. package/dest/timetable/consensus_timetable.d.ts +70 -0
  838. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  839. package/dest/timetable/consensus_timetable.js +89 -0
  840. package/dest/timetable/index.d.ts +5 -0
  841. package/dest/timetable/index.d.ts.map +1 -0
  842. package/dest/timetable/index.js +4 -0
  843. package/dest/timetable/proposer_timetable.d.ts +106 -0
  844. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  845. package/dest/timetable/proposer_timetable.js +132 -0
  846. package/dest/trees/append_only_tree_snapshot.d.ts +22 -15
  847. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  848. package/dest/trees/append_only_tree_snapshot.js +10 -5
  849. package/dest/trees/database_public_state_source.d.ts +2 -2
  850. package/dest/trees/database_public_state_source.d.ts.map +1 -1
  851. package/dest/trees/database_public_state_source.js +1 -1
  852. package/dest/trees/nullifier_leaf.d.ts +32 -43
  853. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  854. package/dest/trees/nullifier_leaf.js +4 -1
  855. package/dest/trees/nullifier_membership_witness.d.ts +26 -63
  856. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  857. package/dest/trees/nullifier_membership_witness.js +0 -21
  858. package/dest/trees/public_data_leaf.d.ts +38 -54
  859. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  860. package/dest/trees/public_data_leaf.js +8 -7
  861. package/dest/trees/public_data_witness.d.ts +29 -71
  862. package/dest/trees/public_data_witness.d.ts.map +1 -1
  863. package/dest/trees/public_data_witness.js +0 -27
  864. package/dest/tx/block_header.d.ts +27 -11
  865. package/dest/tx/block_header.d.ts.map +1 -1
  866. package/dest/tx/block_header.js +26 -8
  867. package/dest/tx/call_context.d.ts +17 -15
  868. package/dest/tx/call_context.d.ts.map +1 -1
  869. package/dest/tx/call_context.js +3 -1
  870. package/dest/tx/capsule.d.ts +11 -4
  871. package/dest/tx/capsule.d.ts.map +1 -1
  872. package/dest/tx/capsule.js +10 -4
  873. package/dest/tx/execution_payload.d.ts +9 -1
  874. package/dest/tx/execution_payload.d.ts.map +1 -1
  875. package/dest/tx/execution_payload.js +1 -1
  876. package/dest/tx/fee_provider.d.ts +10 -0
  877. package/dest/tx/fee_provider.d.ts.map +1 -0
  878. package/dest/tx/fee_provider.js +1 -0
  879. package/dest/tx/function_data.d.ts +8 -12
  880. package/dest/tx/function_data.d.ts.map +1 -1
  881. package/dest/tx/function_data.js +1 -1
  882. package/dest/tx/global_variable_builder.d.ts +5 -14
  883. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  884. package/dest/tx/global_variables.d.ts +30 -50
  885. package/dest/tx/global_variables.d.ts.map +1 -1
  886. package/dest/tx/global_variables.js +15 -17
  887. package/dest/tx/hashed_values.d.ts +11 -4
  888. package/dest/tx/hashed_values.d.ts.map +1 -1
  889. package/dest/tx/hashed_values.js +7 -4
  890. package/dest/tx/in_tx.d.ts +14 -0
  891. package/dest/tx/in_tx.d.ts.map +1 -0
  892. package/dest/tx/in_tx.js +14 -0
  893. package/dest/tx/index.d.ts +3 -3
  894. package/dest/tx/index.d.ts.map +1 -1
  895. package/dest/tx/index.js +2 -2
  896. package/dest/tx/indexed_tx_effect.d.ts +10 -20
  897. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  898. package/dest/tx/indexed_tx_effect.js +13 -9
  899. package/dest/tx/offchain_effect.d.ts +2 -2
  900. package/dest/tx/offchain_effect.d.ts.map +1 -1
  901. package/dest/tx/offchain_effect.js +1 -1
  902. package/dest/tx/partial_state_reference.d.ts +26 -66
  903. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  904. package/dest/tx/partial_state_reference.js +6 -3
  905. package/dest/tx/private_execution_result.d.ts +33 -26
  906. package/dest/tx/private_execution_result.d.ts.map +1 -1
  907. package/dest/tx/private_execution_result.js +10 -27
  908. package/dest/tx/private_tx_constant_data.d.ts +34 -3
  909. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  910. package/dest/tx/private_tx_constant_data.js +14 -5
  911. package/dest/tx/processed_tx.d.ts +4 -3
  912. package/dest/tx/processed_tx.d.ts.map +1 -1
  913. package/dest/tx/processed_tx.js +4 -6
  914. package/dest/tx/profiling.d.ts +116 -279
  915. package/dest/tx/profiling.d.ts.map +1 -1
  916. package/dest/tx/profiling.js +62 -13
  917. package/dest/tx/protocol_contracts.d.ts +6 -10
  918. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  919. package/dest/tx/protocol_contracts.js +3 -3
  920. package/dest/tx/proven_tx.d.ts +30 -74
  921. package/dest/tx/proven_tx.d.ts.map +1 -1
  922. package/dest/tx/proven_tx.js +6 -0
  923. package/dest/tx/public_call_request_with_calldata.d.ts +11 -4
  924. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  925. package/dest/tx/public_call_request_with_calldata.js +10 -5
  926. package/dest/tx/public_simulation_output.d.ts +5 -3
  927. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  928. package/dest/tx/public_simulation_output.js +8 -4
  929. package/dest/tx/simulated_tx.d.ts +77 -125
  930. package/dest/tx/simulated_tx.d.ts.map +1 -1
  931. package/dest/tx/simulated_tx.js +17 -12
  932. package/dest/tx/state_reference.d.ts +33 -118
  933. package/dest/tx/state_reference.d.ts.map +1 -1
  934. package/dest/tx/state_reference.js +9 -5
  935. package/dest/tx/tree_snapshots.d.ts +28 -85
  936. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  937. package/dest/tx/tree_snapshots.js +9 -5
  938. package/dest/tx/tx.d.ts +60 -20
  939. package/dest/tx/tx.d.ts.map +1 -1
  940. package/dest/tx/tx.js +80 -34
  941. package/dest/tx/tx_constant_data.d.ts +5 -4
  942. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  943. package/dest/tx/tx_constant_data.js +7 -4
  944. package/dest/tx/tx_context.d.ts +34 -132
  945. package/dest/tx/tx_context.d.ts.map +1 -1
  946. package/dest/tx/tx_context.js +7 -7
  947. package/dest/tx/tx_effect.d.ts +33 -7
  948. package/dest/tx/tx_effect.d.ts.map +1 -1
  949. package/dest/tx/tx_effect.js +8 -11
  950. package/dest/tx/tx_execution_request.d.ts +31 -2
  951. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  952. package/dest/tx/tx_execution_request.js +7 -3
  953. package/dest/tx/tx_hash.d.ts +8 -5
  954. package/dest/tx/tx_hash.d.ts.map +1 -1
  955. package/dest/tx/tx_hash.js +14 -6
  956. package/dest/tx/tx_receipt.d.ts +170 -36
  957. package/dest/tx/tx_receipt.d.ts.map +1 -1
  958. package/dest/tx/tx_receipt.js +169 -44
  959. package/dest/tx/tx_request.d.ts +7 -2
  960. package/dest/tx/tx_request.d.ts.map +1 -1
  961. package/dest/tx/tx_request.js +4 -4
  962. package/dest/tx/validator/error_texts.d.ts +12 -3
  963. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  964. package/dest/tx/validator/error_texts.js +14 -2
  965. package/dest/tx/validator/tx_validator.d.ts +6 -31
  966. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  967. package/dest/tx/validator/tx_validator.js +4 -8
  968. package/dest/types/shared.d.ts +7 -12
  969. package/dest/types/shared.d.ts.map +1 -1
  970. package/dest/types/shared.js +6 -12
  971. package/dest/update-checker/dev_version.d.ts +3 -0
  972. package/dest/update-checker/dev_version.d.ts.map +1 -0
  973. package/dest/update-checker/dev_version.js +1 -0
  974. package/dest/update-checker/index.d.ts +4 -2
  975. package/dest/update-checker/index.d.ts.map +1 -1
  976. package/dest/update-checker/index.js +3 -1
  977. package/dest/update-checker/package_version.d.ts +6 -0
  978. package/dest/update-checker/package_version.d.ts.map +1 -0
  979. package/dest/update-checker/package_version.js +13 -0
  980. package/dest/update-checker/version_checker.d.ts +25 -0
  981. package/dest/update-checker/version_checker.d.ts.map +1 -0
  982. package/dest/update-checker/version_checker.js +50 -0
  983. package/dest/validators/errors.d.ts +7 -2
  984. package/dest/validators/errors.d.ts.map +1 -1
  985. package/dest/validators/errors.js +7 -0
  986. package/dest/validators/schemas.d.ts +147 -614
  987. package/dest/validators/schemas.d.ts.map +1 -1
  988. package/dest/validators/schemas.js +22 -19
  989. package/dest/validators/types.d.ts +21 -4
  990. package/dest/validators/types.d.ts.map +1 -1
  991. package/dest/versioning/versioning.d.ts +5 -3
  992. package/dest/versioning/versioning.d.ts.map +1 -1
  993. package/dest/versioning/versioning.js +5 -2
  994. package/dest/vks/verification_key.d.ts +4 -118
  995. package/dest/vks/verification_key.d.ts.map +1 -1
  996. package/dest/vks/verification_key.js +5 -126
  997. package/dest/vks/vk_data.d.ts +8 -2
  998. package/dest/vks/vk_data.d.ts.map +1 -1
  999. package/dest/vks/vk_data.js +1 -1
  1000. package/dest/world-state/genesis_data.d.ts +13 -0
  1001. package/dest/world-state/genesis_data.d.ts.map +1 -0
  1002. package/dest/world-state/genesis_data.js +7 -0
  1003. package/dest/world-state/index.d.ts +2 -1
  1004. package/dest/world-state/index.d.ts.map +1 -1
  1005. package/dest/world-state/index.js +1 -0
  1006. package/dest/world-state/world_state_revision.d.ts +11 -39
  1007. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  1008. package/dest/world-state/world_state_revision.js +7 -21
  1009. package/dest/zkpassport/index.d.ts +4 -5
  1010. package/dest/zkpassport/index.d.ts.map +1 -1
  1011. package/dest/zkpassport/index.js +11 -11
  1012. package/package.json +37 -16
  1013. package/src/abi/abi.ts +122 -51
  1014. package/src/abi/authorization_selector.ts +5 -10
  1015. package/src/abi/buffer.ts +39 -6
  1016. package/src/abi/contract_artifact.ts +54 -25
  1017. package/src/abi/decoder.ts +37 -83
  1018. package/src/abi/encoder.ts +86 -7
  1019. package/src/abi/event_metadata_definition.ts +2 -0
  1020. package/src/abi/event_selector.ts +5 -10
  1021. package/src/abi/function_call.ts +26 -4
  1022. package/src/abi/function_selector.ts +15 -15
  1023. package/src/abi/function_signature_decoder.ts +77 -0
  1024. package/src/abi/index.ts +1 -0
  1025. package/src/abi/note_selector.ts +5 -14
  1026. package/src/abi/selector.ts +2 -2
  1027. package/src/abi/utils.ts +44 -0
  1028. package/src/auth_witness/auth_witness.ts +5 -5
  1029. package/src/avm/avm.ts +122 -14
  1030. package/src/avm/avm_accumulated_data.ts +1 -1
  1031. package/src/avm/avm_circuit_public_inputs.ts +1 -1
  1032. package/src/avm/index.ts +0 -5
  1033. package/src/avm/message_pack.ts +14 -4
  1034. package/src/avm/public_data_read.ts +1 -1
  1035. package/src/avm/public_data_write.ts +1 -1
  1036. package/src/avm/revert_code.ts +21 -26
  1037. package/src/aztec-address/index.ts +52 -18
  1038. package/src/block/attestation_info.ts +19 -11
  1039. package/src/block/block_data.ts +25 -0
  1040. package/src/block/block_hash.ts +32 -24
  1041. package/src/block/block_parameter.ts +74 -4
  1042. package/src/block/body.ts +2 -1
  1043. package/src/block/in_block.ts +19 -10
  1044. package/src/block/index.ts +1 -3
  1045. package/src/block/l2_block.ts +116 -143
  1046. package/src/block/l2_block_info.ts +9 -7
  1047. package/src/block/l2_block_source.ts +362 -110
  1048. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
  1049. package/src/block/l2_block_stream/index.ts +2 -0
  1050. package/src/block/l2_block_stream/interfaces.ts +108 -7
  1051. package/src/block/l2_block_stream/l2_block_stream.ts +252 -79
  1052. package/src/block/l2_block_stream/l2_tips_memory_store.ts +41 -59
  1053. package/src/block/l2_block_stream/l2_tips_store_base.ts +251 -0
  1054. package/src/block/proposal/attestations_and_signers.ts +86 -25
  1055. package/src/block/proposal/committee_attestation.ts +1 -1
  1056. package/src/block/test/l2_tips_store_test_suite.ts +736 -42
  1057. package/src/block/validate_block_result.ts +86 -35
  1058. package/src/checkpoint/checkpoint.ts +132 -25
  1059. package/src/checkpoint/checkpoint_data.ts +91 -0
  1060. package/src/checkpoint/checkpoint_info.ts +52 -0
  1061. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  1062. package/src/checkpoint/digest.ts +28 -0
  1063. package/src/checkpoint/index.ts +7 -0
  1064. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  1065. package/src/checkpoint/published_checkpoint.ts +26 -9
  1066. package/src/checkpoint/simulation_overrides.ts +171 -0
  1067. package/src/checkpoint/validate.ts +240 -0
  1068. package/src/config/chain-config.ts +13 -16
  1069. package/src/config/index.ts +2 -0
  1070. package/src/config/network-consensus-config.ts +291 -0
  1071. package/src/config/node-rpc-config.ts +1 -1
  1072. package/src/config/sequencer-config.ts +96 -0
  1073. package/src/contract/artifact_hash.ts +2 -2
  1074. package/src/contract/complete_address.ts +8 -4
  1075. package/src/contract/contract_address.ts +16 -15
  1076. package/src/contract/contract_class.ts +7 -6
  1077. package/src/contract/contract_class_id.ts +9 -8
  1078. package/src/contract/contract_instance.ts +74 -4
  1079. package/src/contract/contract_instance_update.ts +1 -1
  1080. package/src/contract/index.ts +0 -5
  1081. package/src/contract/interfaces/contract_class.ts +48 -97
  1082. package/src/contract/interfaces/contract_data_source.ts +3 -5
  1083. package/src/contract/interfaces/contract_instance.ts +77 -23
  1084. package/src/contract/interfaces/contract_instance_update.ts +12 -10
  1085. package/src/contract/interfaces/node-info.ts +14 -0
  1086. package/src/contract/partial_address.ts +9 -3
  1087. package/src/contract/private_function.ts +8 -6
  1088. package/src/database-version/database_version.ts +87 -0
  1089. package/src/database-version/version_manager.ts +114 -83
  1090. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +11 -12
  1091. package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +1 -1
  1092. package/src/delayed_public_mutable/scheduled_value_change.ts +1 -1
  1093. package/src/deserialization/index.ts +54 -0
  1094. package/src/epoch-helpers/index.ts +51 -10
  1095. package/src/errors/simulation_error.ts +1 -1
  1096. package/src/fees/transaction_fee.ts +1 -1
  1097. package/src/file-store/factory.ts +20 -4
  1098. package/src/file-store/http.ts +29 -10
  1099. package/src/file-store/index.ts +2 -0
  1100. package/src/file-store/local.ts +15 -5
  1101. package/src/file-store/memory.ts +94 -0
  1102. package/src/file-store/s3.ts +12 -3
  1103. package/src/gas/README.md +318 -0
  1104. package/src/gas/fee_math.ts +120 -0
  1105. package/src/gas/gas.ts +9 -4
  1106. package/src/gas/gas_fees.ts +30 -11
  1107. package/src/gas/gas_settings.ts +64 -16
  1108. package/src/gas/index.ts +2 -0
  1109. package/src/gas/tx_gas_limits.ts +123 -0
  1110. package/src/ha-signing/config.ts +170 -0
  1111. package/src/ha-signing/index.ts +29 -0
  1112. package/src/ha-signing/local_config.ts +65 -0
  1113. package/src/ha-signing/types.ts +126 -0
  1114. package/src/hash/hash.ts +74 -27
  1115. package/src/hash/map_slot.ts +4 -3
  1116. package/src/interfaces/allowed_element.ts +35 -13
  1117. package/src/interfaces/api_limit.ts +2 -0
  1118. package/src/interfaces/archiver.ts +98 -86
  1119. package/src/interfaces/aztec-node-admin.ts +64 -22
  1120. package/src/interfaces/aztec-node-debug.ts +92 -0
  1121. package/src/interfaces/aztec-node.ts +445 -329
  1122. package/src/interfaces/block-builder.ts +106 -28
  1123. package/src/interfaces/block_response.ts +92 -0
  1124. package/src/interfaces/chain_tips.ts +16 -0
  1125. package/src/interfaces/checkpoint_parameter.ts +20 -0
  1126. package/src/interfaces/checkpoint_response.ts +84 -0
  1127. package/src/interfaces/client.ts +8 -1
  1128. package/src/interfaces/configs.ts +161 -39
  1129. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  1130. package/src/interfaces/l1_publish_info.ts +40 -0
  1131. package/src/interfaces/l2_logs_source.ts +13 -30
  1132. package/src/interfaces/merkle_tree_operations.ts +24 -24
  1133. package/src/interfaces/p2p-bootstrap.ts +2 -2
  1134. package/src/interfaces/p2p.ts +63 -38
  1135. package/src/interfaces/private_kernel_prover.ts +192 -13
  1136. package/src/interfaces/prover-agent.ts +1 -1
  1137. package/src/interfaces/prover-broker.ts +22 -0
  1138. package/src/interfaces/prover-client.ts +46 -18
  1139. package/src/interfaces/prover-node.ts +36 -21
  1140. package/src/interfaces/proving-job-source.ts +4 -4
  1141. package/src/interfaces/proving-job.ts +6 -15
  1142. package/src/interfaces/public_state_source.ts +1 -1
  1143. package/src/interfaces/public_storage_override.ts +26 -0
  1144. package/src/interfaces/server.ts +5 -2
  1145. package/src/interfaces/server_circuit_prover.ts +4 -4
  1146. package/src/interfaces/slasher.ts +41 -28
  1147. package/src/interfaces/tx_provider.ts +8 -2
  1148. package/src/interfaces/validator.ts +162 -48
  1149. package/src/interfaces/world_state.ts +35 -13
  1150. package/src/kernel/claimed_length_array.ts +1 -1
  1151. package/src/kernel/hints/build_note_hash_read_request_hints.ts +34 -30
  1152. package/src/kernel/hints/build_nullifier_read_request_hints.ts +33 -33
  1153. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  1154. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -114
  1155. package/src/kernel/hints/index.ts +2 -3
  1156. package/src/kernel/hints/key_validation_hint.ts +1 -1
  1157. package/src/kernel/hints/key_validation_request.ts +19 -16
  1158. package/src/kernel/hints/key_validation_request_and_separator.ts +49 -0
  1159. package/src/kernel/hints/note_hash_read_request_hints.ts +1 -1
  1160. package/src/kernel/hints/read_request.ts +2 -2
  1161. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +11 -11
  1162. package/src/kernel/hints/scoped_value_cache.ts +1 -1
  1163. package/src/kernel/hints/transient_data_squashing_hint.ts +1 -1
  1164. package/src/kernel/index.ts +9 -1
  1165. package/src/kernel/log_hash.ts +37 -14
  1166. package/src/kernel/note_hash.ts +2 -2
  1167. package/src/kernel/nullifier.ts +2 -2
  1168. package/src/kernel/padded_side_effects.ts +1 -1
  1169. package/src/kernel/private_call_data.ts +1 -1
  1170. package/src/kernel/private_call_request.ts +1 -1
  1171. package/src/kernel/private_circuit_public_inputs.ts +105 -94
  1172. package/src/kernel/private_context_inputs.ts +10 -3
  1173. package/src/kernel/private_kernel_circuit_public_inputs.ts +12 -10
  1174. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +46 -0
  1175. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +49 -0
  1176. package/src/kernel/private_kernel_init_4_circuit_private_inputs.ts +52 -0
  1177. package/src/kernel/private_kernel_init_5_circuit_private_inputs.ts +55 -0
  1178. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +1 -7
  1179. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  1180. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  1181. package/src/kernel/private_kernel_inner_4_circuit_private_inputs.ts +39 -0
  1182. package/src/kernel/private_kernel_inner_5_circuit_private_inputs.ts +42 -0
  1183. package/src/kernel/private_kernel_prover_output.ts +4 -0
  1184. package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
  1185. package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
  1186. package/src/kernel/private_kernel_simulated_output.ts +0 -7
  1187. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +43 -19
  1188. package/src/kernel/private_log_data.ts +5 -2
  1189. package/src/kernel/private_to_avm_accumulated_data.ts +17 -6
  1190. package/src/kernel/private_to_public_accumulated_data.ts +10 -4
  1191. package/src/kernel/private_to_public_accumulated_data_builder.ts +1 -1
  1192. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +16 -10
  1193. package/src/kernel/private_to_rollup_accumulated_data.ts +9 -4
  1194. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +15 -15
  1195. package/src/kernel/private_validation_requests.ts +8 -8
  1196. package/src/kernel/public_call_request.ts +23 -8
  1197. package/src/kernel/utils/index.ts +0 -1
  1198. package/src/keys/derivation.ts +89 -29
  1199. package/src/keys/key_types.ts +6 -2
  1200. package/src/keys/public_key.ts +26 -2
  1201. package/src/keys/public_keys.ts +127 -112
  1202. package/src/keys/utils.ts +8 -4
  1203. package/src/kv-store/config.ts +29 -0
  1204. package/src/kv-store/index.ts +1 -0
  1205. package/src/l1-contracts/index.ts +1 -1
  1206. package/src/logs/app_tagging_secret.ts +160 -0
  1207. package/src/logs/app_tagging_secret_kind.ts +21 -0
  1208. package/src/logs/contract_class_log.ts +17 -16
  1209. package/src/logs/debug_log.ts +1 -1
  1210. package/src/logs/debug_log_store.ts +54 -0
  1211. package/src/logs/index.ts +10 -7
  1212. package/src/logs/log_cursor.ts +110 -0
  1213. package/src/logs/log_result.ts +104 -0
  1214. package/src/logs/logs_query.ts +138 -0
  1215. package/src/logs/message_context.ts +6 -50
  1216. package/src/logs/pending_tagged_log.ts +6 -35
  1217. package/src/logs/pre_tag.ts +3 -6
  1218. package/src/logs/private_log.ts +12 -5
  1219. package/src/logs/public_log.ts +12 -3
  1220. package/src/logs/query_all_logs_by_tags.ts +98 -0
  1221. package/src/logs/shared_secret_derivation.ts +56 -12
  1222. package/src/logs/siloed_tag.ts +59 -0
  1223. package/src/logs/tag.ts +42 -0
  1224. package/src/logs/tagging_index_range.ts +18 -0
  1225. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  1226. package/src/messaging/in_hash.ts +4 -2
  1227. package/src/messaging/inbox_leaf.ts +11 -10
  1228. package/src/messaging/index.ts +1 -0
  1229. package/src/messaging/l1_actor.ts +2 -2
  1230. package/src/messaging/l1_to_l2_message.ts +58 -16
  1231. package/src/messaging/l1_to_l2_message_source.ts +6 -17
  1232. package/src/messaging/l2_actor.ts +2 -2
  1233. package/src/messaging/l2_to_l1_membership.ts +342 -62
  1234. package/src/messaging/l2_to_l1_message.ts +34 -10
  1235. package/src/messaging/out_hash.ts +63 -22
  1236. package/src/noir/index.ts +6 -3
  1237. package/src/note/index.ts +0 -1
  1238. package/src/note/note.ts +5 -2
  1239. package/src/note/note_dao.ts +37 -14
  1240. package/src/p2p/attestation_utils.ts +67 -4
  1241. package/src/p2p/block_proposal.ts +305 -64
  1242. package/src/p2p/checkpoint_attestation.ts +156 -0
  1243. package/src/p2p/checkpoint_proposal.ts +428 -0
  1244. package/src/p2p/client_type.ts +0 -6
  1245. package/src/p2p/consensus_payload.ts +74 -32
  1246. package/src/p2p/constants.ts +6 -0
  1247. package/src/p2p/gossipable.ts +18 -8
  1248. package/src/p2p/index.ts +4 -3
  1249. package/src/p2p/message_validator.ts +14 -2
  1250. package/src/p2p/peer_error.ts +7 -0
  1251. package/src/p2p/signature_utils.ts +118 -21
  1252. package/src/p2p/signed_txs.ts +106 -0
  1253. package/src/p2p/topic_type.ts +10 -16
  1254. package/src/parity/parity_base_private_inputs.ts +11 -5
  1255. package/src/parity/parity_public_inputs.ts +10 -3
  1256. package/src/proofs/chonk_proof.ts +143 -19
  1257. package/src/proofs/proof.ts +1 -1
  1258. package/src/proofs/proof_data.ts +24 -0
  1259. package/src/proofs/recursive_proof.ts +1 -1
  1260. package/src/rollup/avm_proof_data.ts +3 -10
  1261. package/src/rollup/base_rollup_hints.ts +1 -1
  1262. package/src/rollup/block_constant_data.ts +1 -1
  1263. package/src/rollup/block_headers_hash.ts +13 -4
  1264. package/src/rollup/block_rollup_public_inputs.ts +19 -12
  1265. package/src/rollup/block_root_rollup_private_inputs.ts +1 -1
  1266. package/src/rollup/checkpoint_constant_data.ts +2 -1
  1267. package/src/rollup/checkpoint_header.ts +86 -25
  1268. package/src/rollup/checkpoint_rollup_public_inputs.ts +28 -6
  1269. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +16 -2
  1270. package/src/rollup/epoch_constant_data.ts +1 -1
  1271. package/src/rollup/public_chonk_verifier_private_inputs.ts +1 -1
  1272. package/src/rollup/public_chonk_verifier_public_inputs.ts +1 -1
  1273. package/src/rollup/public_tx_base_rollup_private_inputs.ts +2 -2
  1274. package/src/rollup/root_rollup_public_inputs.ts +17 -8
  1275. package/src/rollup/tree_snapshot_diff_hints.ts +1 -1
  1276. package/src/rollup/tx_rollup_public_inputs.ts +1 -1
  1277. package/src/schemas/schemas.ts +12 -2
  1278. package/src/slashing/helpers.ts +21 -9
  1279. package/src/slashing/index.ts +1 -2
  1280. package/src/slashing/serialization.ts +1 -81
  1281. package/src/slashing/types.ts +47 -54
  1282. package/src/slashing/{tally.ts → votes.ts} +41 -2
  1283. package/src/snapshots/types.ts +33 -29
  1284. package/src/stats/stats.ts +20 -9
  1285. package/src/tests/factories.ts +215 -170
  1286. package/src/tests/jest.ts +1 -1
  1287. package/src/tests/mocks.ts +338 -114
  1288. package/src/timetable/README.md +609 -0
  1289. package/src/timetable/budgets.ts +87 -0
  1290. package/src/timetable/build_proposer_timetable.ts +42 -0
  1291. package/src/timetable/consensus_timetable.ts +126 -0
  1292. package/src/timetable/index.ts +4 -0
  1293. package/src/timetable/proposer_timetable.ts +190 -0
  1294. package/src/timetable/timetable-example.svg +108 -0
  1295. package/src/trees/append_only_tree_snapshot.ts +9 -4
  1296. package/src/trees/database_public_state_source.ts +1 -1
  1297. package/src/trees/nullifier_leaf.ts +5 -1
  1298. package/src/trees/nullifier_membership_witness.ts +0 -21
  1299. package/src/trees/public_data_leaf.ts +12 -6
  1300. package/src/trees/public_data_witness.ts +0 -31
  1301. package/src/tx/block_header.ts +39 -14
  1302. package/src/tx/call_context.ts +1 -1
  1303. package/src/tx/capsule.ts +11 -3
  1304. package/src/tx/execution_payload.ts +2 -1
  1305. package/src/tx/fee_provider.ts +10 -0
  1306. package/src/tx/function_data.ts +1 -1
  1307. package/src/tx/global_variable_builder.ts +7 -17
  1308. package/src/tx/global_variables.ts +20 -22
  1309. package/src/tx/hashed_values.ts +9 -4
  1310. package/src/tx/in_tx.ts +24 -0
  1311. package/src/tx/index.ts +2 -2
  1312. package/src/tx/indexed_tx_effect.ts +21 -8
  1313. package/src/tx/offchain_effect.ts +1 -1
  1314. package/src/tx/partial_state_reference.ts +9 -4
  1315. package/src/tx/private_execution_result.ts +8 -23
  1316. package/src/tx/private_tx_constant_data.ts +26 -3
  1317. package/src/tx/processed_tx.ts +11 -14
  1318. package/src/tx/profiling.ts +63 -10
  1319. package/src/tx/protocol_contracts.ts +4 -4
  1320. package/src/tx/proven_tx.ts +6 -0
  1321. package/src/tx/public_call_request_with_calldata.ts +9 -4
  1322. package/src/tx/public_simulation_output.ts +5 -1
  1323. package/src/tx/simulated_tx.ts +30 -22
  1324. package/src/tx/state_reference.ts +10 -5
  1325. package/src/tx/tree_snapshots.ts +10 -5
  1326. package/src/tx/tx.ts +100 -47
  1327. package/src/tx/tx_constant_data.ts +9 -4
  1328. package/src/tx/tx_context.ts +9 -4
  1329. package/src/tx/tx_effect.ts +5 -12
  1330. package/src/tx/tx_execution_request.ts +3 -1
  1331. package/src/tx/tx_hash.ts +21 -6
  1332. package/src/tx/tx_receipt.ts +301 -49
  1333. package/src/tx/tx_request.ts +4 -4
  1334. package/src/tx/validator/error_texts.ts +18 -2
  1335. package/src/tx/validator/tx_validator.ts +9 -11
  1336. package/src/types/shared.ts +8 -13
  1337. package/src/update-checker/dev_version.ts +2 -0
  1338. package/src/update-checker/index.ts +3 -1
  1339. package/src/update-checker/package_version.ts +17 -0
  1340. package/src/update-checker/version_checker.ts +65 -0
  1341. package/src/validators/errors.ts +10 -1
  1342. package/src/validators/schemas.ts +64 -49
  1343. package/src/validators/types.ts +25 -5
  1344. package/src/versioning/versioning.ts +6 -3
  1345. package/src/vks/verification_key.ts +5 -184
  1346. package/src/vks/vk_data.ts +1 -1
  1347. package/src/world-state/genesis_data.ts +27 -0
  1348. package/src/world-state/index.ts +1 -0
  1349. package/src/world-state/world_state_revision.ts +9 -34
  1350. package/src/zkpassport/index.ts +13 -14
  1351. package/dest/abi/mocked_keys.d.ts +0 -2
  1352. package/dest/abi/mocked_keys.d.ts.map +0 -1
  1353. package/dest/abi/mocked_keys.js +0 -1
  1354. package/dest/avm/contract_storage_read.d.ts +0 -46
  1355. package/dest/avm/contract_storage_read.d.ts.map +0 -1
  1356. package/dest/avm/contract_storage_read.js +0 -65
  1357. package/dest/avm/contract_storage_update_request.d.ts +0 -53
  1358. package/dest/avm/contract_storage_update_request.d.ts.map +0 -1
  1359. package/dest/avm/contract_storage_update_request.js +0 -80
  1360. package/dest/avm/public_call_stack_item_compressed.d.ts +0 -41
  1361. package/dest/avm/public_call_stack_item_compressed.d.ts.map +0 -1
  1362. package/dest/avm/public_call_stack_item_compressed.js +0 -70
  1363. package/dest/avm/public_data_update_request.d.ts +0 -53
  1364. package/dest/avm/public_data_update_request.d.ts.map +0 -1
  1365. package/dest/avm/public_data_update_request.js +0 -65
  1366. package/dest/avm/public_inner_call_request.d.ts +0 -47
  1367. package/dest/avm/public_inner_call_request.d.ts.map +0 -1
  1368. package/dest/avm/public_inner_call_request.js +0 -72
  1369. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  1370. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  1371. package/dest/block/l2_block_code_to_purge.js +0 -61
  1372. package/dest/block/l2_block_header.d.ts +0 -98
  1373. package/dest/block/l2_block_header.d.ts.map +0 -1
  1374. package/dest/block/l2_block_header.js +0 -153
  1375. package/dest/block/l2_block_new.d.ts +0 -110
  1376. package/dest/block/l2_block_new.d.ts.map +0 -1
  1377. package/dest/block/l2_block_new.js +0 -138
  1378. package/dest/block/published_l2_block.d.ts +0 -130
  1379. package/dest/block/published_l2_block.d.ts.map +0 -1
  1380. package/dest/block/published_l2_block.js +0 -48
  1381. package/dest/contract/contract_class_metadata.d.ts +0 -8
  1382. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  1383. package/dest/contract/contract_class_metadata.js +0 -1
  1384. package/dest/contract/contract_metadata.d.ts +0 -7
  1385. package/dest/contract/contract_metadata.d.ts.map +0 -1
  1386. package/dest/contract/contract_metadata.js +0 -1
  1387. package/dest/contract/deployment_info.d.ts +0 -24
  1388. package/dest/contract/deployment_info.d.ts.map +0 -1
  1389. package/dest/contract/deployment_info.js +0 -3
  1390. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  1391. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  1392. package/dest/contract/private_function_membership_proof.js +0 -124
  1393. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  1394. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  1395. package/dest/contract/utility_function_membership_proof.js +0 -87
  1396. package/dest/database-version/index.d.ts +0 -2
  1397. package/dest/database-version/index.d.ts.map +0 -1
  1398. package/dest/database-version/index.js +0 -1
  1399. package/dest/interfaces/epoch-prover.d.ts +0 -57
  1400. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  1401. package/dest/interfaces/epoch-prover.js +0 -1
  1402. package/dest/interfaces/get_logs_response.d.ts +0 -75
  1403. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  1404. package/dest/interfaces/get_logs_response.js +0 -11
  1405. package/dest/interfaces/prover-coordination.d.ts +0 -15
  1406. package/dest/interfaces/prover-coordination.d.ts.map +0 -1
  1407. package/dest/interfaces/prover-coordination.js +0 -1
  1408. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  1409. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  1410. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -14
  1411. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +0 -1
  1412. package/dest/kernel/hints/tree_leaf_read_request.js +0 -33
  1413. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -38
  1414. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
  1415. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
  1416. package/dest/kernel/utils/optional_number.d.ts +0 -25
  1417. package/dest/kernel/utils/optional_number.d.ts.map +0 -1
  1418. package/dest/kernel/utils/optional_number.js +0 -42
  1419. package/dest/l1-contracts/slash_factory.d.ts +0 -44
  1420. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  1421. package/dest/l1-contracts/slash_factory.js +0 -157
  1422. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  1423. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  1424. package/dest/logs/directional_app_tagging_secret.js +0 -63
  1425. package/dest/logs/extended_contract_class_log.d.ts +0 -49
  1426. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  1427. package/dest/logs/extended_contract_class_log.js +0 -67
  1428. package/dest/logs/extended_public_log.d.ts +0 -92
  1429. package/dest/logs/extended_public_log.d.ts.map +0 -1
  1430. package/dest/logs/extended_public_log.js +0 -73
  1431. package/dest/logs/log_filter.d.ts +0 -22
  1432. package/dest/logs/log_filter.d.ts.map +0 -1
  1433. package/dest/logs/log_filter.js +0 -11
  1434. package/dest/logs/log_id.d.ts +0 -70
  1435. package/dest/logs/log_id.d.ts.map +0 -1
  1436. package/dest/logs/log_id.js +0 -84
  1437. package/dest/logs/log_with_tx_data.d.ts +0 -19
  1438. package/dest/logs/log_with_tx_data.d.ts.map +0 -1
  1439. package/dest/logs/log_with_tx_data.js +0 -49
  1440. package/dest/logs/tx_scoped_l2_log.d.ts +0 -58
  1441. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  1442. package/dest/logs/tx_scoped_l2_log.js +0 -76
  1443. package/dest/note/notes_filter.d.ts +0 -27
  1444. package/dest/note/notes_filter.d.ts.map +0 -1
  1445. package/dest/note/notes_filter.js +0 -11
  1446. package/dest/p2p/block_attestation.d.ts +0 -80
  1447. package/dest/p2p/block_attestation.d.ts.map +0 -1
  1448. package/dest/p2p/block_attestation.js +0 -100
  1449. package/dest/p2p/interface.d.ts +0 -5
  1450. package/dest/p2p/interface.d.ts.map +0 -1
  1451. package/dest/p2p/interface.js +0 -1
  1452. package/dest/slashing/empire.d.ts +0 -31
  1453. package/dest/slashing/empire.d.ts.map +0 -1
  1454. package/dest/slashing/empire.js +0 -85
  1455. package/dest/slashing/tally.d.ts.map +0 -1
  1456. package/dest/tx/content_commitment.d.ts +0 -49
  1457. package/dest/tx/content_commitment.d.ts.map +0 -1
  1458. package/dest/tx/content_commitment.js +0 -90
  1459. package/dest/tx/validator/empty_validator.d.ts +0 -5
  1460. package/dest/tx/validator/empty_validator.d.ts.map +0 -1
  1461. package/dest/tx/validator/empty_validator.js +0 -7
  1462. package/dest/update-checker/update-checker.d.ts +0 -49
  1463. package/dest/update-checker/update-checker.d.ts.map +0 -1
  1464. package/dest/update-checker/update-checker.js +0 -130
  1465. package/src/abi/mocked_keys.ts +0 -2
  1466. package/src/avm/contract_storage_read.ts +0 -77
  1467. package/src/avm/contract_storage_update_request.ts +0 -93
  1468. package/src/avm/public_call_stack_item_compressed.ts +0 -113
  1469. package/src/avm/public_data_update_request.ts +0 -106
  1470. package/src/avm/public_inner_call_request.ts +0 -85
  1471. package/src/block/l2_block_code_to_purge.ts +0 -88
  1472. package/src/block/l2_block_header.ts +0 -246
  1473. package/src/block/l2_block_new.ts +0 -176
  1474. package/src/block/published_l2_block.ts +0 -65
  1475. package/src/contract/contract_class_metadata.ts +0 -8
  1476. package/src/contract/contract_metadata.ts +0 -7
  1477. package/src/contract/deployment_info.ts +0 -25
  1478. package/src/contract/private_function_membership_proof.ts +0 -167
  1479. package/src/contract/utility_function_membership_proof.ts +0 -118
  1480. package/src/database-version/index.ts +0 -1
  1481. package/src/interfaces/epoch-prover.ts +0 -72
  1482. package/src/interfaces/get_logs_response.ts +0 -31
  1483. package/src/interfaces/prover-coordination.ts +0 -17
  1484. package/src/kernel/hints/key_validation_request_and_generator.ts +0 -52
  1485. package/src/kernel/hints/tree_leaf_read_request.ts +0 -35
  1486. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
  1487. package/src/kernel/utils/optional_number.ts +0 -50
  1488. package/src/l1-contracts/slash_factory.ts +0 -177
  1489. package/src/logs/directional_app_tagging_secret.ts +0 -77
  1490. package/src/logs/extended_contract_class_log.ts +0 -87
  1491. package/src/logs/extended_public_log.ts +0 -94
  1492. package/src/logs/log_filter.ts +0 -31
  1493. package/src/logs/log_id.ts +0 -111
  1494. package/src/logs/log_with_tx_data.ts +0 -46
  1495. package/src/logs/tx_scoped_l2_log.ts +0 -96
  1496. package/src/note/notes_filter.ts +0 -38
  1497. package/src/p2p/block_attestation.ts +0 -136
  1498. package/src/p2p/interface.ts +0 -4
  1499. package/src/slashing/empire.ts +0 -102
  1500. package/src/tx/content_commitment.ts +0 -113
  1501. package/src/tx/validator/empty_validator.ts +0 -7
  1502. package/src/update-checker/update-checker.ts +0 -165
@@ -1,92 +1,786 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
- import { BlockNumber } from '@aztec/foundation/branded-types';
1
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
  import { times } from '@aztec/foundation/collection';
4
- import { Fr } from '@aztec/foundation/fields';
5
- import { type L2Block, type L2BlockId, PublishedL2Block } from '@aztec/stdlib/block';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import {
5
+ type CheckpointId,
6
+ GENESIS_CHECKPOINT_HEADER_HASH,
7
+ L2Block,
8
+ type L2BlockId,
9
+ type L2BlockTag,
10
+ type L2TipId,
11
+ } from '@aztec/stdlib/block';
12
+ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
6
13
 
7
- import { jestExpect as expect } from '@jest/expect';
14
+ import { expect } from 'vitest';
8
15
 
16
+ import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
9
17
  import type { L2TipsStore } from '../l2_block_stream/index.js';
10
18
 
11
19
  export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
12
20
  let tipsStore: L2TipsStore;
21
+ // Track blocks and their hashes for test assertions
22
+ const blockHashes: Map<number, string> = new Map();
23
+ // Track checkpoints and their hashes
24
+ const checkpointHashes: Map<number, string> = new Map();
25
+ // Track which blocks belong to which checkpoint
26
+ const blockToCheckpoint: Map<number, number> = new Map();
13
27
 
14
28
  beforeEach(async () => {
15
29
  tipsStore = await makeTipsStore();
30
+ blockHashes.clear();
31
+ checkpointHashes.clear();
32
+ blockToCheckpoint.clear();
16
33
  });
17
34
 
18
- const makeBlock = (number: number): PublishedL2Block =>
19
- PublishedL2Block.fromFields({
20
- block: { number: BlockNumber(number), hash: () => Promise.resolve(new Fr(number)) } as L2Block,
21
- l1: { blockNumber: BigInt(number), blockHash: `0x${number}`, timestamp: BigInt(number) },
22
- attestations: [],
23
- });
35
+ const makeBlock = async (number: number): Promise<L2Block> => {
36
+ const block = await L2Block.random(BlockNumber(number));
37
+ blockHashes.set(number, (await block.hash()).toString());
38
+ return block;
39
+ };
24
40
 
25
41
  const makeBlockId = (number: number): L2BlockId => ({
26
42
  number: BlockNumber(number),
27
- hash: new Fr(number).toString(),
43
+ hash: blockHashes.get(number) ?? new Fr(number).toString(),
28
44
  });
29
45
 
30
46
  const makeTip = (number: number): L2BlockId => ({
31
47
  number: BlockNumber(number),
32
- hash: number === 0 ? GENESIS_BLOCK_HEADER_HASH.toString() : new Fr(number).toString(),
48
+ hash: number === 0 ? GENESIS_BLOCK_HEADER_HASH.toString() : (blockHashes.get(number) ?? new Fr(number).toString()),
49
+ });
50
+
51
+ const makeCheckpointIdForBlock = (blockNumber: number): CheckpointId => {
52
+ if (blockNumber === 0) {
53
+ return { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() };
54
+ }
55
+ const checkpointNum = blockToCheckpoint.get(blockNumber);
56
+ if (checkpointNum === undefined) {
57
+ return { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() };
58
+ }
59
+ const hash = checkpointHashes.get(checkpointNum);
60
+ if (!hash) {
61
+ return { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() };
62
+ }
63
+ return { number: CheckpointNumber(checkpointNum), hash };
64
+ };
65
+
66
+ const makeTipId = (blockNumber: number): L2TipId => ({
67
+ block: makeTip(blockNumber),
68
+ checkpoint: makeCheckpointIdForBlock(blockNumber),
33
69
  });
34
70
 
35
- const makeTips = (latest: number, proven: number, finalized: number) => ({
36
- latest: makeTip(latest),
37
- proven: makeTip(proven),
38
- finalized: makeTip(finalized),
71
+ const makeTips = (proposed: number, proven: number, finalized: number, checkpointed: number = 0) => ({
72
+ proposed: makeTip(proposed),
73
+ proven: makeTipId(proven),
74
+ finalized: makeTipId(finalized),
75
+ checkpointed: makeTipId(checkpointed),
39
76
  });
40
77
 
78
+ const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
79
+ const checkpoint = await Checkpoint.random(CheckpointNumber(checkpointNumber), {
80
+ numBlocks: blocks.length,
81
+ startBlockNumber: blocks[0].number,
82
+ });
83
+ // Override the blocks with our actual blocks (to keep hashes consistent)
84
+ (checkpoint as any).blocks = blocks;
85
+
86
+ const checkpointHash = checkpoint.hash().toString();
87
+ checkpointHashes.set(checkpointNumber, checkpointHash);
88
+
89
+ // Track which blocks belong to this checkpoint
90
+ for (const block of blocks) {
91
+ blockToCheckpoint.set(block.number, checkpointNumber);
92
+ }
93
+
94
+ return new PublishedCheckpoint(checkpoint, L1PublishedData.random(), []);
95
+ };
96
+
97
+ /** Creates a thin chain-checkpointed event carrying the block + checkpoint ids of the checkpoint's last block. */
98
+ const makeCheckpointedEvent = async (published: PublishedCheckpoint) => {
99
+ const lastBlock = published.checkpoint.blocks.at(-1)!;
100
+ const blockId: L2BlockId = {
101
+ number: lastBlock.number,
102
+ hash: (await lastBlock.hash()).toString(),
103
+ };
104
+ const checkpointId = {
105
+ number: published.checkpoint.number,
106
+ hash: published.checkpoint.hash().toString(),
107
+ };
108
+ return { type: 'chain-checkpointed' as const, checkpoint: checkpointId, block: blockId };
109
+ };
110
+
41
111
  it('returns zero if no tips are stored', async () => {
42
112
  const tips = await tipsStore.getL2Tips();
43
113
  expect(tips).toEqual(makeTips(0, 0, 0));
44
114
  });
45
115
 
46
- it('stores chain tips', async () => {
47
- await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: times(20, i => makeBlock(i + 1)) });
116
+ it('sets proposed tip from blocks added', async () => {
117
+ await tipsStore.handleBlockStreamEvent({
118
+ type: 'blocks-added',
119
+ blocks: await Promise.all(times(3, i => makeBlock(i + 1))),
120
+ });
48
121
 
49
- await tipsStore.handleBlockStreamEvent({ type: 'chain-finalized', block: makeBlockId(5) });
50
- await tipsStore.handleBlockStreamEvent({ type: 'chain-proven', block: makeBlockId(8) });
51
- await tipsStore.handleBlockStreamEvent({ type: 'chain-pruned', block: makeBlockId(10) });
122
+ const tips = await tipsStore.getL2Tips();
123
+ expect(tips).toEqual(makeTips(3, 0, 0));
124
+
125
+ expect(await tipsStore.getL2BlockHash(1)).toEqual(blockHashes.get(1));
126
+ expect(await tipsStore.getL2BlockHash(2)).toEqual(blockHashes.get(2));
127
+ expect(await tipsStore.getL2BlockHash(3)).toEqual(blockHashes.get(3));
128
+ });
129
+
130
+ it('records the proposed tip number and hash from a chain-proposed event', async () => {
131
+ // chain-proposed is the sole writer of proposed-tip history in tips-only mode: no preceding blocks-added.
132
+ await tipsStore.handleBlockStreamEvent({
133
+ type: 'chain-proposed',
134
+ block: { number: BlockNumber(5), hash: new Fr(500).toString() },
135
+ });
52
136
 
53
137
  const tips = await tipsStore.getL2Tips();
54
- expect(tips).toEqual(makeTips(10, 8, 5));
138
+ expect(tips.proposed).toEqual({ number: BlockNumber(5), hash: new Fr(500).toString() });
139
+ // The hash is recorded in the same index the walk-back reads, so it resolves as a sparse anchor.
140
+ expect(await tipsStore.getL2BlockHash(5)).toEqual(new Fr(500).toString());
55
141
  });
56
142
 
57
- it('sets latest tip from blocks added', async () => {
58
- await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: times(3, i => makeBlock(i + 1)) });
143
+ it('serves sparse proposed anchors from chain-proposed events for the walk-back', async () => {
144
+ // Two tip-moving polls in tips-only mode, with no blocks in between (sparse history).
145
+ await tipsStore.handleBlockStreamEvent({
146
+ type: 'chain-proposed',
147
+ block: { number: BlockNumber(4), hash: new Fr(400).toString() },
148
+ });
149
+ await tipsStore.handleBlockStreamEvent({
150
+ type: 'chain-proposed',
151
+ block: { number: BlockNumber(9), hash: new Fr(900).toString() },
152
+ });
153
+
154
+ // Both recorded heights resolve; the heights between them were never seen and stay undefined.
155
+ expect(await tipsStore.getL2BlockHash(4)).toEqual(new Fr(400).toString());
156
+ expect(await tipsStore.getL2BlockHash(9)).toEqual(new Fr(900).toString());
157
+ expect(await tipsStore.getL2BlockHash(6)).toBeUndefined();
59
158
 
60
159
  const tips = await tipsStore.getL2Tips();
61
- expect(tips).toEqual(makeTips(3, 0, 0));
160
+ expect(tips.proposed).toEqual({ number: BlockNumber(9), hash: new Fr(900).toString() });
161
+ });
162
+
163
+ it('records block-hash witnesses without moving any tip cursor', async () => {
164
+ // Establish a proposed tip at 9 in tips-only fashion (sole writer of proposed history).
165
+ await tipsStore.handleBlockStreamEvent({
166
+ type: 'chain-proposed',
167
+ block: { number: BlockNumber(9), hash: new Fr(900).toString() },
168
+ });
169
+
170
+ // Record sparse witnesses at heights below the tip (e.g. a consumer materializing per-height state).
171
+ await tipsStore.recordBlockHashes([
172
+ { number: BlockNumber(4), hash: new Fr(404).toString() },
173
+ { number: BlockNumber(6), hash: new Fr(606).toString() },
174
+ ]);
175
+
176
+ // Each recorded height resolves; an unrecorded gap stays undefined.
177
+ expect(await tipsStore.getL2BlockHash(4)).toEqual(new Fr(404).toString());
178
+ expect(await tipsStore.getL2BlockHash(6)).toEqual(new Fr(606).toString());
179
+ expect(await tipsStore.getL2BlockHash(5)).toBeUndefined();
62
180
 
63
- expect(await tipsStore.getL2BlockHash(1)).toEqual(new Fr(1).toString());
64
- expect(await tipsStore.getL2BlockHash(2)).toEqual(new Fr(2).toString());
65
- expect(await tipsStore.getL2BlockHash(3)).toEqual(new Fr(3).toString());
181
+ // No tip cursor moved: the proposed tip is still 9, and every other tier is at genesis.
182
+ const tips = await tipsStore.getL2Tips();
183
+ expect(tips.proposed).toEqual({ number: BlockNumber(9), hash: new Fr(900).toString() });
184
+ expect(tips.checkpointed.block).toEqual(makeTip(0));
185
+ expect(tips.proven.block).toEqual(makeTip(0));
186
+ expect(tips.finalized.block).toEqual(makeTip(0));
66
187
  });
67
188
 
68
- it('clears block hashes when setting finalized chain', async () => {
69
- await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: times(5, i => makeBlock(i + 1)) });
70
- await tipsStore.handleBlockStreamEvent({ type: 'chain-proven', block: makeBlockId(3) });
71
- await tipsStore.handleBlockStreamEvent({ type: 'chain-finalized', block: makeBlockId(3) });
189
+ it('skips witnesses with no hash and tolerates an empty list', async () => {
190
+ await tipsStore.recordBlockHashes([]);
191
+ await tipsStore.recordBlockHashes([{ number: BlockNumber(3), hash: '' }]);
192
+ expect(await tipsStore.getL2BlockHash(3)).toBeUndefined();
193
+ });
194
+
195
+ it('checkpoints all proposed blocks', async () => {
196
+ // Propose blocks 1-5
197
+ const blocks = await Promise.all(times(5, i => makeBlock(i + 1)));
198
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks });
199
+
200
+ // Checkpoint all proposed blocks (1-5)
201
+ const checkpoint1 = await makeCheckpoint(1, blocks);
202
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
203
+
204
+ const tips = await tipsStore.getL2Tips();
205
+ // Proposed and checkpointed should be the same
206
+ expect(tips.proposed).toEqual(makeTip(5));
207
+ expect(tips.checkpointed.block).toEqual(makeTip(5));
208
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(1));
209
+ });
210
+
211
+ it('advances proven chain with checkpoint info', async () => {
212
+ // Propose and checkpoint blocks 1-5
213
+ const blocks = await Promise.all(times(5, i => makeBlock(i + 1)));
214
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks });
215
+ const checkpoint1 = await makeCheckpoint(1, blocks);
216
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
217
+
218
+ // Prove up to block 5
219
+ await tipsStore.handleBlockStreamEvent({
220
+ type: 'chain-proven',
221
+ block: makeBlockId(5),
222
+ checkpoint: makeCheckpointIdForBlock(5),
223
+ });
224
+
225
+ const tips = await tipsStore.getL2Tips();
226
+ expect(tips.proposed).toEqual(makeTip(5));
227
+ expect(tips.checkpointed.block).toEqual(makeTip(5));
228
+ expect(tips.proven.block).toEqual(makeTip(5));
229
+
230
+ // Proven tip should have the checkpoint info
231
+ expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
232
+ expect(tips.proven.checkpoint.hash).toEqual(checkpointHashes.get(1));
233
+ });
234
+
235
+ it('advances finalized chain with checkpoint info', async () => {
236
+ // Propose and checkpoint blocks 1-5
237
+ const blocks = await Promise.all(times(5, i => makeBlock(i + 1)));
238
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks });
239
+ const checkpoint1 = await makeCheckpoint(1, blocks);
240
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
241
+
242
+ // Prove and finalize
243
+ await tipsStore.handleBlockStreamEvent({
244
+ type: 'chain-proven',
245
+ block: makeBlockId(5),
246
+ checkpoint: makeCheckpointIdForBlock(5),
247
+ });
248
+ await tipsStore.handleBlockStreamEvent({
249
+ type: 'chain-finalized',
250
+ block: makeBlockId(5),
251
+ checkpoint: makeCheckpointIdForBlock(5),
252
+ });
72
253
 
73
254
  const tips = await tipsStore.getL2Tips();
74
- expect(tips).toEqual(makeTips(5, 3, 3));
255
+ expect(tips.proposed).toEqual(makeTip(5));
256
+ expect(tips.checkpointed.block).toEqual(makeTip(5));
257
+ expect(tips.proven.block).toEqual(makeTip(5));
258
+ expect(tips.finalized.block).toEqual(makeTip(5));
259
+
260
+ // Finalized tip should have checkpoint info
261
+ expect(tips.finalized.checkpoint.number).toEqual(CheckpointNumber(1));
262
+ expect(tips.finalized.checkpoint.hash).toEqual(checkpointHashes.get(1));
263
+ });
264
+
265
+ it('handles multiple checkpoints advancing the chain', async () => {
266
+ // Propose blocks 1-5
267
+ const blocks1 = await Promise.all(times(5, i => makeBlock(i + 1)));
268
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1 });
269
+
270
+ // Checkpoint 1: all proposed blocks 1-5
271
+ const checkpoint1 = await makeCheckpoint(1, blocks1);
272
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
273
+
274
+ // Propose more blocks 6-10
275
+ const blocks2 = await Promise.all(times(5, i => makeBlock(i + 6)));
276
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks2 });
277
+
278
+ // Checkpoint 2: all remaining proposed blocks 6-10
279
+ const checkpoint2 = await makeCheckpoint(2, blocks2);
280
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
281
+
282
+ const tips = await tipsStore.getL2Tips();
283
+ expect(tips.proposed).toEqual(makeTip(10));
284
+ expect(tips.checkpointed.block).toEqual(makeTip(10));
285
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
286
+ expect(tips.checkpointed.checkpoint.hash).toEqual(checkpointHashes.get(2));
287
+ });
288
+
289
+ it('clears block hashes when setting finalized chain', async () => {
290
+ // Propose blocks 1-3
291
+ const blocks1to3 = await Promise.all(times(3, i => makeBlock(i + 1)));
292
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to3 });
293
+
294
+ // Checkpoint all proposed blocks (1-3)
295
+ const checkpoint1 = await makeCheckpoint(1, blocks1to3);
296
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
297
+
298
+ // Propose more blocks 4-5
299
+ const blocks4to5 = await Promise.all(times(2, i => makeBlock(i + 4)));
300
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks4to5 });
301
+
302
+ // Checkpoint all remaining proposed blocks (4-5)
303
+ const checkpoint2 = await makeCheckpoint(2, blocks4to5);
304
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
305
+
306
+ // Prove and finalize up to block 3 (checkpoint 1)
307
+ await tipsStore.handleBlockStreamEvent({
308
+ type: 'chain-proven',
309
+ block: makeBlockId(3),
310
+ checkpoint: makeCheckpointIdForBlock(3),
311
+ });
312
+ await tipsStore.handleBlockStreamEvent({
313
+ type: 'chain-finalized',
314
+ block: makeBlockId(3),
315
+ checkpoint: makeCheckpointIdForBlock(3),
316
+ });
75
317
 
318
+ // Blocks before finalized should be cleared
76
319
  expect(await tipsStore.getL2BlockHash(1)).toBeUndefined();
77
320
  expect(await tipsStore.getL2BlockHash(2)).toBeUndefined();
78
321
 
79
- expect(await tipsStore.getL2BlockHash(3)).toEqual(new Fr(3).toString());
80
- expect(await tipsStore.getL2BlockHash(4)).toEqual(new Fr(4).toString());
81
- expect(await tipsStore.getL2BlockHash(5)).toEqual(new Fr(5).toString());
322
+ // Finalized and later blocks should remain
323
+ expect(await tipsStore.getL2BlockHash(3)).toEqual(blockHashes.get(3));
324
+ expect(await tipsStore.getL2BlockHash(4)).toEqual(blockHashes.get(4));
325
+ expect(await tipsStore.getL2BlockHash(5)).toEqual(blockHashes.get(5));
326
+ });
327
+
328
+ it('handles chain pruning by updating proposed tip', async () => {
329
+ const blocks = await Promise.all(times(10, i => makeBlock(i + 1)));
330
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks });
331
+
332
+ // Prune to block 5
333
+ await tipsStore.handleBlockStreamEvent({
334
+ type: 'chain-pruned',
335
+ block: makeBlockId(5),
336
+ checkpointed: makeTipId(0),
337
+ proven: makeTipId(0),
338
+ });
339
+
340
+ const tips = await tipsStore.getL2Tips();
341
+ expect(tips.proposed).toEqual(makeTip(5));
342
+ });
343
+
344
+ it('handles pruning proposed chain to genesis, re-proposing, and checkpointing', async () => {
345
+ // Propose blocks 1-3
346
+ const firstBlocks = await Promise.all(times(3, i => makeBlock(i + 1)));
347
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: firstBlocks });
348
+
349
+ let tips = await tipsStore.getL2Tips();
350
+ expect(tips.proposed).toEqual(makeTip(3));
351
+
352
+ // Store original hashes
353
+ const originalHash1 = blockHashes.get(1);
354
+ const originalHash2 = blockHashes.get(2);
355
+ const originalHash3 = blockHashes.get(3);
356
+
357
+ // Prune back to genesis (block 0)
358
+ await tipsStore.handleBlockStreamEvent({
359
+ type: 'chain-pruned',
360
+ block: makeTip(0),
361
+ checkpointed: makeTipId(0),
362
+ proven: makeTipId(0),
363
+ });
364
+
365
+ tips = await tipsStore.getL2Tips();
366
+ expect(tips.proposed).toEqual(makeTip(0));
367
+ expect(tips.checkpointed.block).toEqual(makeTip(0));
368
+
369
+ // Clear hashes and propose new blocks 1-3 (different from original)
370
+ blockHashes.delete(1);
371
+ blockHashes.delete(2);
372
+ blockHashes.delete(3);
373
+ const newBlocks = await Promise.all(times(3, i => makeBlock(i + 1)));
374
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: newBlocks });
375
+
376
+ // Verify new blocks have different hashes
377
+ expect(blockHashes.get(1)).not.toEqual(originalHash1);
378
+ expect(blockHashes.get(2)).not.toEqual(originalHash2);
379
+ expect(blockHashes.get(3)).not.toEqual(originalHash3);
380
+
381
+ tips = await tipsStore.getL2Tips();
382
+ expect(tips.proposed).toEqual(makeTip(3));
383
+ expect(tips.checkpointed.block).toEqual(makeTip(0)); // Not yet checkpointed
384
+
385
+ // Checkpoint all the new proposed blocks (1-3)
386
+ const checkpoint1 = await makeCheckpoint(1, newBlocks);
387
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
388
+
389
+ tips = await tipsStore.getL2Tips();
390
+ expect(tips.proposed).toEqual(makeTip(3));
391
+ expect(tips.checkpointed.block).toEqual(makeTip(3));
392
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(1));
393
+
394
+ // Verify block hashes in store are the new ones
395
+ expect(await tipsStore.getL2BlockHash(1)).toEqual(blockHashes.get(1));
396
+ expect(await tipsStore.getL2BlockHash(2)).toEqual(blockHashes.get(2));
397
+ expect(await tipsStore.getL2BlockHash(3)).toEqual(blockHashes.get(3));
398
+ });
399
+
400
+ it('handles reorg: prune proposed blocks back to checkpoint, then re-propose with different blocks', async () => {
401
+ // Propose blocks 1-5
402
+ const firstBlocks = await Promise.all(times(5, i => makeBlock(i + 1)));
403
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: firstBlocks });
404
+
405
+ // Checkpoint all proposed blocks (1-5) - these are now committed
406
+ const checkpoint1 = await makeCheckpoint(1, firstBlocks);
407
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
408
+
409
+ // Propose more blocks 6-10 (not yet checkpointed, can be pruned)
410
+ const originalBlocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
411
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: originalBlocks6to10 });
412
+
413
+ let tips = await tipsStore.getL2Tips();
414
+ expect(tips.proposed).toEqual(makeTip(10));
415
+ expect(tips.checkpointed.block).toEqual(makeTip(5)); // Only blocks 1-5 are checkpointed
416
+
417
+ // Store original hashes for proposed (non-checkpointed) blocks 6-8
418
+ const originalHash6 = blockHashes.get(6);
419
+ const originalHash7 = blockHashes.get(7);
420
+ const originalHash8 = blockHashes.get(8);
421
+
422
+ // Prune proposed blocks back to checkpoint (block 5)
423
+ // This removes proposed blocks 6-10, but checkpoint remains at 5
424
+ await tipsStore.handleBlockStreamEvent({
425
+ type: 'chain-pruned',
426
+ block: makeBlockId(5),
427
+ checkpointed: makeTipId(5),
428
+ proven: makeTipId(0),
429
+ });
430
+
431
+ tips = await tipsStore.getL2Tips();
432
+ expect(tips.proposed).toEqual(makeTip(5));
433
+ expect(tips.checkpointed.block).toEqual(makeTip(5)); // Checkpoint unchanged
434
+
435
+ // Propose new blocks 6-8 (different from original 6-10)
436
+ blockHashes.delete(6);
437
+ blockHashes.delete(7);
438
+ blockHashes.delete(8);
439
+ const newBlocks = await Promise.all(times(3, i => makeBlock(i + 6)));
440
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: newBlocks });
441
+
442
+ // Verify the new blocks have different hashes than the original ones
443
+ expect(blockHashes.get(6)).not.toEqual(originalHash6);
444
+ expect(blockHashes.get(7)).not.toEqual(originalHash7);
445
+ expect(blockHashes.get(8)).not.toEqual(originalHash8);
446
+
447
+ tips = await tipsStore.getL2Tips();
448
+ expect(tips.proposed).toEqual(makeTip(8));
449
+ expect(tips.checkpointed.block).toEqual(makeTip(5)); // Still at checkpoint 1
450
+
451
+ // Checkpoint all the new proposed blocks (6-8)
452
+ const checkpoint2 = await makeCheckpoint(2, newBlocks);
453
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
454
+
455
+ tips = await tipsStore.getL2Tips();
456
+ expect(tips.proposed).toEqual(makeTip(8));
457
+ expect(tips.checkpointed.block).toEqual(makeTip(8));
458
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
459
+
460
+ // Block hashes in the store should reflect the new blocks
461
+ expect(await tipsStore.getL2BlockHash(6)).toEqual(blockHashes.get(6));
462
+ expect(await tipsStore.getL2BlockHash(7)).toEqual(blockHashes.get(7));
463
+ expect(await tipsStore.getL2BlockHash(8)).toEqual(blockHashes.get(8));
464
+
465
+ // And should NOT equal the original hashes
466
+ expect(await tipsStore.getL2BlockHash(6)).not.toEqual(originalHash6);
467
+ expect(await tipsStore.getL2BlockHash(7)).not.toEqual(originalHash7);
468
+ expect(await tipsStore.getL2BlockHash(8)).not.toEqual(originalHash8);
469
+ });
470
+
471
+ it('handles reorg with different chain length after prune', async () => {
472
+ // Propose blocks 1-3
473
+ const firstBlocks = await Promise.all(times(3, i => makeBlock(i + 1)));
474
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: firstBlocks });
475
+
476
+ // Checkpoint all proposed blocks (1-3) - these are now committed
477
+ const checkpoint1 = await makeCheckpoint(1, firstBlocks);
478
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
479
+
480
+ // Propose more blocks 4-10 (not yet checkpointed, can be pruned)
481
+ const originalBlocks4to10 = await Promise.all(times(7, i => makeBlock(i + 4)));
482
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: originalBlocks4to10 });
483
+
484
+ let tips = await tipsStore.getL2Tips();
485
+ expect(tips.proposed).toEqual(makeTip(10));
486
+ expect(tips.checkpointed.block).toEqual(makeTip(3)); // Only blocks 1-3 are checkpointed
487
+
488
+ // Prune proposed blocks back to checkpoint (block 3)
489
+ await tipsStore.handleBlockStreamEvent({
490
+ type: 'chain-pruned',
491
+ block: makeBlockId(3),
492
+ checkpointed: makeTipId(3),
493
+ proven: makeTipId(0),
494
+ });
495
+
496
+ tips = await tipsStore.getL2Tips();
497
+ expect(tips.proposed).toEqual(makeTip(3));
498
+ expect(tips.checkpointed.block).toEqual(makeTip(3)); // Checkpoint unchanged
499
+
500
+ // Now propose only 2 new blocks (4-5) instead of the original 7 blocks (4-10)
501
+ blockHashes.delete(4);
502
+ blockHashes.delete(5);
503
+ const newBlocks = await Promise.all(times(2, i => makeBlock(i + 4)));
504
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: newBlocks });
505
+
506
+ tips = await tipsStore.getL2Tips();
507
+ expect(tips.proposed).toEqual(makeTip(5));
508
+ expect(tips.checkpointed.block).toEqual(makeTip(3)); // Still at checkpoint 1
509
+
510
+ // Checkpoint all the new proposed blocks (4-5)
511
+ const checkpoint2 = await makeCheckpoint(2, newBlocks);
512
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
513
+
514
+ tips = await tipsStore.getL2Tips();
515
+ expect(tips.proposed).toEqual(makeTip(5));
516
+ expect(tips.checkpointed.block).toEqual(makeTip(5));
517
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
518
+ });
519
+
520
+ it('handles reorg: prune back to proven tip (including checkpointed blocks), then re-propose and checkpoint', async () => {
521
+ // Propose blocks 1-3
522
+ const firstBlocks = await Promise.all(times(3, i => makeBlock(i + 1)));
523
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: firstBlocks });
524
+
525
+ // Checkpoint all proposed blocks (1-3)
526
+ const checkpoint1 = await makeCheckpoint(1, firstBlocks);
527
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
528
+
529
+ // Prove up to block 3
530
+ await tipsStore.handleBlockStreamEvent({
531
+ type: 'chain-proven',
532
+ block: makeBlockId(3),
533
+ checkpoint: makeCheckpointIdForBlock(3),
534
+ });
535
+
536
+ let tips = await tipsStore.getL2Tips();
537
+ expect(tips.proposed).toEqual(makeTip(3));
538
+ expect(tips.checkpointed.block).toEqual(makeTip(3));
539
+ expect(tips.proven.block).toEqual(makeTip(3));
540
+
541
+ // Propose more blocks 4-6
542
+ const blocks4to6 = await Promise.all(times(3, i => makeBlock(i + 4)));
543
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks4to6 });
544
+
545
+ // Checkpoint blocks 4-6 (now checkpointed is ahead of proven)
546
+ const checkpoint2 = await makeCheckpoint(2, blocks4to6);
547
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
548
+
549
+ tips = await tipsStore.getL2Tips();
550
+ expect(tips.proposed).toEqual(makeTip(6));
551
+ expect(tips.checkpointed.block).toEqual(makeTip(6));
552
+ expect(tips.proven.block).toEqual(makeTip(3)); // Proven is behind checkpointed
553
+
554
+ // Propose even more blocks 7-10 (proposed is now ahead of checkpointed)
555
+ const originalBlocks7to10 = await Promise.all(times(4, i => makeBlock(i + 7)));
556
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: originalBlocks7to10 });
557
+
558
+ tips = await tipsStore.getL2Tips();
559
+ // Now all three tips are different: proposed=10, checkpointed=6, proven=3
560
+ expect(tips.proposed).toEqual(makeTip(10));
561
+ expect(tips.checkpointed.block).toEqual(makeTip(6));
562
+ expect(tips.proven.block).toEqual(makeTip(3));
563
+
564
+ // Store original hashes for blocks 4-7
565
+ const originalHash4 = blockHashes.get(4);
566
+ const originalHash5 = blockHashes.get(5);
567
+ const originalHash6 = blockHashes.get(6);
568
+ const originalHash7 = blockHashes.get(7);
569
+
570
+ // Prune all the way back to proven tip (block 3)
571
+ // This prunes both proposed blocks (7-10) AND checkpointed blocks (4-6)
572
+ await tipsStore.handleBlockStreamEvent({
573
+ type: 'chain-pruned',
574
+ block: makeBlockId(3),
575
+ checkpointed: makeTipId(3),
576
+ proven: makeTipId(3),
577
+ });
578
+
579
+ tips = await tipsStore.getL2Tips();
580
+ expect(tips.proposed).toEqual(makeTip(3));
581
+ expect(tips.checkpointed.block).toEqual(makeTip(3)); // Checkpointed also pruned back
582
+ expect(tips.proven.block).toEqual(makeTip(3));
583
+
584
+ // Propose new blocks 4-7 (different from original)
585
+ blockHashes.delete(4);
586
+ blockHashes.delete(5);
587
+ blockHashes.delete(6);
588
+ blockHashes.delete(7);
589
+ const newBlocks = await Promise.all(times(4, i => makeBlock(i + 4)));
590
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: newBlocks });
591
+
592
+ // Verify the new blocks have different hashes than the original ones
593
+ expect(blockHashes.get(4)).not.toEqual(originalHash4);
594
+ expect(blockHashes.get(5)).not.toEqual(originalHash5);
595
+ expect(blockHashes.get(6)).not.toEqual(originalHash6);
596
+ expect(blockHashes.get(7)).not.toEqual(originalHash7);
597
+
598
+ tips = await tipsStore.getL2Tips();
599
+ expect(tips.proposed).toEqual(makeTip(7));
600
+ expect(tips.proven.block).toEqual(makeTip(3));
601
+
602
+ // Checkpoint all the new proposed blocks (4-7)
603
+ const checkpoint3 = await makeCheckpoint(3, newBlocks);
604
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint3));
605
+
606
+ tips = await tipsStore.getL2Tips();
607
+ expect(tips.proposed).toEqual(makeTip(7));
608
+ expect(tips.checkpointed.block).toEqual(makeTip(7));
609
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(3));
610
+ expect(tips.proven.block).toEqual(makeTip(3)); // Proven hasn't moved yet
611
+
612
+ // Block hashes in the store should reflect the new blocks
613
+ expect(await tipsStore.getL2BlockHash(4)).toEqual(blockHashes.get(4));
614
+ expect(await tipsStore.getL2BlockHash(5)).toEqual(blockHashes.get(5));
615
+ expect(await tipsStore.getL2BlockHash(6)).toEqual(blockHashes.get(6));
616
+ expect(await tipsStore.getL2BlockHash(7)).toEqual(blockHashes.get(7));
617
+
618
+ // And should NOT equal the original hashes
619
+ expect(await tipsStore.getL2BlockHash(4)).not.toEqual(originalHash4);
620
+ expect(await tipsStore.getL2BlockHash(5)).not.toEqual(originalHash5);
621
+ expect(await tipsStore.getL2BlockHash(6)).not.toEqual(originalHash6);
622
+ expect(await tipsStore.getL2BlockHash(7)).not.toEqual(originalHash7);
82
623
  });
83
624
 
84
- // Regression test for #13142
85
- it('does not blow up when setting proven chain on an unseen block number', async () => {
86
- await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [makeBlock(5)] });
87
- await tipsStore.handleBlockStreamEvent({ type: 'chain-proven', block: makeBlockId(3) });
625
+ // Regression test for #13142: proving an unseen block number (one with no local block->checkpoint
626
+ // mapping) must not blow up. With per-cursor checkpoint ids, the proven tip resolves to the
627
+ // checkpoint id carried by the event rather than falling back to checkpoint zero.
628
+ it('resolves the proven checkpoint from the carried id when setting proven on an unseen block number', async () => {
629
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
630
+ // Block 3 has no local block->checkpoint mapping, but the event carries a real checkpoint id.
631
+ const carriedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(42).toString() };
632
+ await tipsStore.handleBlockStreamEvent({
633
+ type: 'chain-proven',
634
+ block: makeBlockId(3),
635
+ checkpoint: carriedCheckpoint,
636
+ });
88
637
 
89
638
  const tips = await tipsStore.getL2Tips();
90
- expect(tips).toEqual(makeTips(5, 3, 0));
639
+ expect(tips.proposed).toEqual(makeTip(5));
640
+ expect(tips.proven.block).toEqual(makeTip(3));
641
+ // Resolved from the carried id, not the (missing) local mapping.
642
+ expect(tips.proven.checkpoint).toEqual(carriedCheckpoint);
643
+ });
644
+
645
+ // proven/finalized resolve to the carried checkpoint id even when the block has no local
646
+ // block->checkpoint mapping (the cursor legitimately leads the locally-checkpointed frontier).
647
+ it('resolves proven and finalized checkpoints from carried ids without a local mapping', async () => {
648
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(7)] });
649
+ const provenCheckpoint: CheckpointId = { number: CheckpointNumber(2), hash: new Fr(101).toString() };
650
+ const finalizedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(100).toString() };
651
+ await tipsStore.handleBlockStreamEvent({
652
+ type: 'chain-proven',
653
+ block: makeBlockId(5),
654
+ checkpoint: provenCheckpoint,
655
+ });
656
+ await tipsStore.handleBlockStreamEvent({
657
+ type: 'chain-finalized',
658
+ block: makeBlockId(3),
659
+ checkpoint: finalizedCheckpoint,
660
+ });
661
+
662
+ const tips = await tipsStore.getL2Tips();
663
+ expect(tips.proven.checkpoint).toEqual(provenCheckpoint);
664
+ expect(tips.finalized.checkpoint).toEqual(finalizedCheckpoint);
665
+ });
666
+
667
+ // Genuine corruption: a cursor points at a real (non-genesis) block that has a block hash but
668
+ // neither a stored per-cursor checkpoint id nor a block->checkpoint mapping. getL2Tips must throw
669
+ // loudly rather than silently report checkpoint zero. We reach this state by reaching past the
670
+ // event API to place the tip directly, since the normal writers always record an id.
671
+ it('throws when a cursor points at a real block with neither a stored id nor a mapping', async () => {
672
+ // blocks-added records the block hash for block 5 (so getBlockId succeeds) but no checkpoint id.
673
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
674
+ // Corrupt the proven cursor to point at block 5 without any id or mapping.
675
+ const internal = tipsStore as unknown as { setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void> };
676
+ await internal.setTip('proven', BlockNumber(5));
677
+
678
+ await expect(tipsStore.getL2Tips()).rejects.toThrow(/checkpoint/i);
679
+ });
680
+
681
+ // Backward prune of a leading cursor: a checkpoint-bearing cursor that legitimately leads the source's
682
+ // confirmed checkpointed tip is clamped down to that tip, resolving to the id the prune event carries
683
+ // (never genesis, never a throw). This is the skipped-history shape where the cursor sits on a block
684
+ // ahead of the checkpointed frontier.
685
+ it('clamps a leading checkpoint cursor down to the source checkpointed tip carried by the prune event', async () => {
686
+ // Checkpoint blocks 1-5 (checkpointed = block 5 / ckpt 1), then add uncheckpointed blocks 6-10.
687
+ const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
688
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
689
+ const checkpoint1 = await makeCheckpoint(1, blocks1to5);
690
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
691
+ const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
692
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
693
+
694
+ // Advance the proven cursor onto an uncheckpointed block (8) via a carried id, so it LEADS the
695
+ // source checkpointed tip (block 5) and will be clamped down to it on prune.
696
+ await tipsStore.handleBlockStreamEvent({
697
+ type: 'chain-proven',
698
+ block: makeBlockId(8),
699
+ checkpoint: { number: CheckpointNumber(2), hash: new Fr(202).toString() },
700
+ });
701
+
702
+ // Prune to block 7, carrying the source's confirmed checkpointed and proven tips (both block 5 / ckpt 1
703
+ // here, the source's proven tip having rolled back together with its checkpointed tip).
704
+ await tipsStore.handleBlockStreamEvent({
705
+ type: 'chain-pruned',
706
+ block: makeBlockId(7),
707
+ checkpointed: makeTipId(5),
708
+ proven: makeTipId(5),
709
+ });
710
+
711
+ // Must not throw; the proven cursor is clamped to the carried proven tip, resolving to ckpt 1.
712
+ const tips = await tipsStore.getL2Tips();
713
+ expect(tips.proposed).toEqual(makeTip(7));
714
+ expect(tips.proven.block).toEqual(makeTip(5));
715
+ expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
716
+ });
717
+
718
+ it('keeps the checkpointed tip when pruning to an uncheckpointed block ahead of it', async () => {
719
+ const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
720
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
721
+ const checkpoint1 = await makeCheckpoint(1, blocks1to5);
722
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1)); // checkpointed = block 5 / ckpt 1
723
+
724
+ const blocks6to7 = await Promise.all(times(2, i => makeBlock(i + 6)));
725
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to7 }); // proposed = 7
726
+
727
+ // Prune to block 6: an uncheckpointed block AHEAD of the checkpointed tip (block 5). The source
728
+ // checkpointed tip is still block 5 / ckpt 1, so the checkpointed cursor must not move.
729
+ await tipsStore.handleBlockStreamEvent({
730
+ type: 'chain-pruned',
731
+ block: makeBlockId(6),
732
+ checkpointed: makeTipId(5),
733
+ proven: makeTipId(0),
734
+ });
735
+
736
+ const tips = await tipsStore.getL2Tips();
737
+ expect(tips.proposed).toEqual(makeTip(6));
738
+ expect(tips.checkpointed.block).toEqual(makeTip(5));
739
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(1)); // must NOT be zero
740
+ });
741
+
742
+ // Per-cursor clamping on prune: when the source rolls back its proven tip below its checkpointed tip
743
+ // (e.g. a proof tx dropped by an L1 reorg), the prune event carries both source tips and each local
744
+ // cursor must clamp to its OWN source tip. Clamping the proven cursor onto the (higher) checkpointed
745
+ // tip would transiently report unproven blocks as proven until the corrective chain-proven event lands.
746
+ it('clamps the proven cursor to the source proven tip, separately from the checkpointed cursor, on prune', async () => {
747
+ // Checkpoint blocks 1-15 across three checkpoints (ckpt 1 = 1-5, ckpt 2 = 6-10, ckpt 3 = 11-15).
748
+ const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
749
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
750
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(1, blocks1to5)));
751
+ const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
752
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
753
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(2, blocks6to10)));
754
+ const blocks11to15 = await Promise.all(times(5, i => makeBlock(i + 11)));
755
+ await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks11to15 });
756
+ await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(3, blocks11to15)));
757
+
758
+ // Prove the whole chain up to block 15 (ckpt 3), so the local proven cursor leads both source tips below.
759
+ await tipsStore.handleBlockStreamEvent({
760
+ type: 'chain-proven',
761
+ block: makeBlockId(15),
762
+ checkpoint: makeCheckpointIdForBlock(15),
763
+ });
764
+
765
+ let tips = await tipsStore.getL2Tips();
766
+ expect(tips.checkpointed.block).toEqual(makeTip(15));
767
+ expect(tips.proven.block).toEqual(makeTip(15));
768
+
769
+ // Prune arrives with the source's proven tip (block 5 / ckpt 1) BELOW its checkpointed tip (block 10 /
770
+ // ckpt 2) and below the local proven cursor (block 15). Each cursor must clamp to its own source tip.
771
+ await tipsStore.handleBlockStreamEvent({
772
+ type: 'chain-pruned',
773
+ block: makeBlockId(10),
774
+ checkpointed: makeTipId(10),
775
+ proven: makeTipId(5),
776
+ });
777
+
778
+ tips = await tipsStore.getL2Tips();
779
+ // The proven cursor lands exactly on the source proven tip, NOT on the (higher) checkpointed tip.
780
+ expect(tips.proven.block).toEqual(makeTip(5));
781
+ expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
782
+ // The checkpointed cursor lands on the source checkpointed tip.
783
+ expect(tips.checkpointed.block).toEqual(makeTip(10));
784
+ expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
91
785
  });
92
786
  }