@aztec/stdlib 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448

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 (650) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/buffer.d.ts +14 -4
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/buffer.js +25 -4
  7. package/dest/abi/decoder.d.ts +6 -45
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +17 -70
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_call.d.ts +39 -9
  17. package/dest/abi/function_call.d.ts.map +1 -1
  18. package/dest/abi/function_call.js +20 -3
  19. package/dest/abi/function_selector.js +1 -1
  20. package/dest/abi/function_signature_decoder.d.ts +43 -0
  21. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  22. package/dest/abi/function_signature_decoder.js +66 -0
  23. package/dest/abi/index.d.ts +2 -1
  24. package/dest/abi/index.d.ts.map +1 -1
  25. package/dest/abi/index.js +1 -0
  26. package/dest/abi/selector.d.ts +2 -2
  27. package/dest/abi/selector.d.ts.map +1 -1
  28. package/dest/abi/selector.js +1 -1
  29. package/dest/abi/utils.d.ts +14 -1
  30. package/dest/abi/utils.d.ts.map +1 -1
  31. package/dest/abi/utils.js +15 -0
  32. package/dest/auth_witness/auth_witness.js +3 -3
  33. package/dest/avm/avm_proving_request.d.ts +166 -166
  34. package/dest/avm/revert_code.d.ts +9 -4
  35. package/dest/avm/revert_code.d.ts.map +1 -1
  36. package/dest/avm/revert_code.js +16 -21
  37. package/dest/block/block_data.d.ts +52 -0
  38. package/dest/block/block_data.d.ts.map +1 -0
  39. package/dest/block/block_data.js +12 -0
  40. package/dest/block/block_hash.d.ts +16 -18
  41. package/dest/block/block_hash.d.ts.map +1 -1
  42. package/dest/block/block_hash.js +21 -31
  43. package/dest/block/block_parameter.d.ts +4 -4
  44. package/dest/block/block_parameter.d.ts.map +1 -1
  45. package/dest/block/block_parameter.js +2 -2
  46. package/dest/block/in_block.d.ts +9 -9
  47. package/dest/block/in_block.d.ts.map +1 -1
  48. package/dest/block/in_block.js +5 -5
  49. package/dest/block/index.d.ts +2 -1
  50. package/dest/block/index.d.ts.map +1 -1
  51. package/dest/block/index.js +1 -0
  52. package/dest/block/l2_block.d.ts +11 -2
  53. package/dest/block/l2_block.d.ts.map +1 -1
  54. package/dest/block/l2_block.js +12 -2
  55. package/dest/block/l2_block_source.d.ts +117 -12
  56. package/dest/block/l2_block_source.d.ts.map +1 -1
  57. package/dest/block/l2_block_source.js +1 -0
  58. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  59. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  60. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  61. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  62. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  63. package/dest/block/l2_block_stream/l2_tips_store_base.js +17 -4
  64. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  65. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  66. package/dest/block/test/l2_tips_store_test_suite.js +3 -2
  67. package/dest/checkpoint/checkpoint.d.ts +28 -7
  68. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  69. package/dest/checkpoint/checkpoint.js +41 -17
  70. package/dest/checkpoint/checkpoint_data.d.ts +186 -0
  71. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  72. package/dest/checkpoint/checkpoint_data.js +36 -0
  73. package/dest/checkpoint/index.d.ts +3 -1
  74. package/dest/checkpoint/index.d.ts.map +1 -1
  75. package/dest/checkpoint/index.js +2 -0
  76. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  77. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  78. package/dest/checkpoint/published_checkpoint.js +1 -2
  79. package/dest/checkpoint/validate.d.ts +36 -0
  80. package/dest/checkpoint/validate.d.ts.map +1 -0
  81. package/dest/checkpoint/validate.js +120 -0
  82. package/dest/config/index.d.ts +3 -1
  83. package/dest/config/index.d.ts.map +1 -1
  84. package/dest/config/index.js +2 -0
  85. package/dest/config/pipelining-config.d.ts +19 -0
  86. package/dest/config/pipelining-config.d.ts.map +1 -0
  87. package/dest/config/pipelining-config.js +18 -0
  88. package/dest/config/sequencer-config.d.ts +12 -0
  89. package/dest/config/sequencer-config.d.ts.map +1 -0
  90. package/dest/config/sequencer-config.js +31 -0
  91. package/dest/contract/contract_address.d.ts +3 -3
  92. package/dest/contract/contract_address.js +7 -7
  93. package/dest/contract/contract_class.d.ts +2 -3
  94. package/dest/contract/contract_class.d.ts.map +1 -1
  95. package/dest/contract/contract_class_id.d.ts +3 -3
  96. package/dest/contract/contract_class_id.d.ts.map +1 -1
  97. package/dest/contract/contract_class_id.js +7 -6
  98. package/dest/contract/index.d.ts +1 -3
  99. package/dest/contract/index.d.ts.map +1 -1
  100. package/dest/contract/index.js +0 -2
  101. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  102. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  103. package/dest/contract/interfaces/contract_class.js +1 -28
  104. package/dest/contract/interfaces/node-info.d.ts +3 -1
  105. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  106. package/dest/contract/interfaces/node-info.js +2 -1
  107. package/dest/contract/private_function.js +2 -2
  108. package/dest/database-version/database_version.d.ts +58 -0
  109. package/dest/database-version/database_version.d.ts.map +1 -0
  110. package/dest/database-version/database_version.js +69 -0
  111. package/dest/database-version/version_manager.d.ts +2 -50
  112. package/dest/database-version/version_manager.d.ts.map +1 -1
  113. package/dest/database-version/version_manager.js +1 -66
  114. package/dest/epoch-helpers/index.d.ts +17 -1
  115. package/dest/epoch-helpers/index.d.ts.map +1 -1
  116. package/dest/epoch-helpers/index.js +22 -2
  117. package/dest/file-store/factory.d.ts +4 -3
  118. package/dest/file-store/factory.d.ts.map +1 -1
  119. package/dest/file-store/factory.js +2 -2
  120. package/dest/file-store/http.d.ts +9 -2
  121. package/dest/file-store/http.d.ts.map +1 -1
  122. package/dest/file-store/http.js +20 -9
  123. package/dest/file-store/index.d.ts +2 -1
  124. package/dest/file-store/index.d.ts.map +1 -1
  125. package/dest/file-store/local.d.ts +3 -3
  126. package/dest/file-store/local.d.ts.map +1 -1
  127. package/dest/file-store/local.js +13 -4
  128. package/dest/file-store/s3.d.ts +1 -1
  129. package/dest/file-store/s3.d.ts.map +1 -1
  130. package/dest/file-store/s3.js +11 -3
  131. package/dest/gas/gas_fees.d.ts +1 -1
  132. package/dest/gas/gas_fees.d.ts.map +1 -1
  133. package/dest/gas/gas_fees.js +13 -1
  134. package/dest/gas/gas_settings.d.ts +40 -3
  135. package/dest/gas/gas_settings.d.ts.map +1 -1
  136. package/dest/gas/gas_settings.js +50 -6
  137. package/dest/ha-signing/config.d.ts +136 -0
  138. package/dest/ha-signing/config.d.ts.map +1 -0
  139. package/dest/ha-signing/config.js +97 -0
  140. package/dest/ha-signing/index.d.ts +4 -0
  141. package/dest/ha-signing/index.d.ts.map +1 -0
  142. package/dest/ha-signing/index.js +3 -0
  143. package/dest/ha-signing/local_config.d.ts +63 -0
  144. package/dest/ha-signing/local_config.d.ts.map +1 -0
  145. package/dest/ha-signing/local_config.js +24 -0
  146. package/dest/ha-signing/types.d.ts +85 -0
  147. package/dest/ha-signing/types.d.ts.map +1 -0
  148. package/dest/ha-signing/types.js +32 -0
  149. package/dest/hash/hash.d.ts +20 -1
  150. package/dest/hash/hash.d.ts.map +1 -1
  151. package/dest/hash/hash.js +45 -10
  152. package/dest/hash/map_slot.d.ts +1 -1
  153. package/dest/hash/map_slot.d.ts.map +1 -1
  154. package/dest/hash/map_slot.js +4 -3
  155. package/dest/interfaces/allowed_element.d.ts +26 -20
  156. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  157. package/dest/interfaces/allowed_element.js +8 -8
  158. package/dest/interfaces/archiver.d.ts +1 -1
  159. package/dest/interfaces/archiver.d.ts.map +1 -1
  160. package/dest/interfaces/archiver.js +14 -5
  161. package/dest/interfaces/aztec-node-admin.d.ts +124 -45
  162. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  163. package/dest/interfaces/aztec-node-admin.js +15 -7
  164. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  165. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  166. package/dest/interfaces/aztec-node-debug.js +18 -0
  167. package/dest/interfaces/aztec-node.d.ts +45 -60
  168. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  169. package/dest/interfaces/aztec-node.js +11 -12
  170. package/dest/interfaces/block-builder.d.ts +44 -11
  171. package/dest/interfaces/block-builder.d.ts.map +1 -1
  172. package/dest/interfaces/block-builder.js +16 -2
  173. package/dest/interfaces/client.d.ts +2 -1
  174. package/dest/interfaces/client.d.ts.map +1 -1
  175. package/dest/interfaces/client.js +1 -0
  176. package/dest/interfaces/configs.d.ts +77 -32
  177. package/dest/interfaces/configs.d.ts.map +1 -1
  178. package/dest/interfaces/configs.js +10 -3
  179. package/dest/interfaces/get_logs_response.d.ts +15 -8
  180. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  181. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  182. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  183. package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
  184. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  185. package/dest/interfaces/p2p.d.ts +4 -9
  186. package/dest/interfaces/p2p.d.ts.map +1 -1
  187. package/dest/interfaces/prover-broker.d.ts +16 -1
  188. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  189. package/dest/interfaces/prover-broker.js +4 -1
  190. package/dest/interfaces/prover-client.d.ts +11 -1
  191. package/dest/interfaces/prover-client.d.ts.map +1 -1
  192. package/dest/interfaces/prover-client.js +12 -1
  193. package/dest/interfaces/proving-job.d.ts +202 -202
  194. package/dest/interfaces/slasher.d.ts +9 -10
  195. package/dest/interfaces/slasher.d.ts.map +1 -1
  196. package/dest/interfaces/slasher.js +2 -2
  197. package/dest/interfaces/validator.d.ts +151 -54
  198. package/dest/interfaces/validator.d.ts.map +1 -1
  199. package/dest/interfaces/validator.js +11 -5
  200. package/dest/interfaces/world_state.d.ts +5 -4
  201. package/dest/interfaces/world_state.d.ts.map +1 -1
  202. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  203. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  204. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  205. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  206. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  207. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  208. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  209. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  210. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  211. package/dest/kernel/hints/index.d.ts +2 -2
  212. package/dest/kernel/hints/index.js +2 -2
  213. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  214. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  215. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  216. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  217. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  218. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  219. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  220. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  221. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  222. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  223. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  224. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  225. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  226. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  227. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  228. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  229. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  230. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  231. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  232. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  233. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  234. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  235. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  236. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  237. package/dest/kernel/private_validation_requests.d.ts +3 -3
  238. package/dest/kernel/private_validation_requests.js +9 -9
  239. package/dest/keys/derivation.d.ts +3 -3
  240. package/dest/keys/derivation.js +15 -15
  241. package/dest/keys/key_types.d.ts +3 -3
  242. package/dest/keys/key_types.d.ts.map +1 -1
  243. package/dest/keys/public_keys.js +2 -2
  244. package/dest/keys/utils.d.ts +1 -1
  245. package/dest/keys/utils.d.ts.map +1 -1
  246. package/dest/keys/utils.js +8 -4
  247. package/dest/kv-store/config.d.ts +17 -0
  248. package/dest/kv-store/config.d.ts.map +1 -0
  249. package/dest/kv-store/config.js +26 -0
  250. package/dest/kv-store/index.d.ts +2 -0
  251. package/dest/kv-store/index.d.ts.map +1 -0
  252. package/dest/kv-store/index.js +1 -0
  253. package/dest/l1-contracts/index.d.ts +2 -2
  254. package/dest/l1-contracts/index.d.ts.map +1 -1
  255. package/dest/l1-contracts/index.js +1 -1
  256. package/dest/logs/debug_log_store.d.ts +30 -0
  257. package/dest/logs/debug_log_store.d.ts.map +1 -0
  258. package/dest/logs/debug_log_store.js +30 -0
  259. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  260. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  261. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  262. package/dest/logs/extended_public_log.d.ts +13 -7
  263. package/dest/logs/extended_public_log.d.ts.map +1 -1
  264. package/dest/logs/index.d.ts +4 -2
  265. package/dest/logs/index.d.ts.map +1 -1
  266. package/dest/logs/index.js +3 -1
  267. package/dest/logs/log_filter.d.ts +4 -1
  268. package/dest/logs/log_filter.d.ts.map +1 -1
  269. package/dest/logs/log_filter.js +2 -1
  270. package/dest/logs/log_id.d.ts +17 -14
  271. package/dest/logs/log_id.d.ts.map +1 -1
  272. package/dest/logs/log_id.js +20 -17
  273. package/dest/logs/message_context.d.ts +4 -7
  274. package/dest/logs/message_context.d.ts.map +1 -1
  275. package/dest/logs/message_context.js +23 -9
  276. package/dest/logs/pending_tagged_log.d.ts +2 -3
  277. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  278. package/dest/logs/pending_tagged_log.js +2 -2
  279. package/dest/logs/pre_tag.d.ts +16 -11
  280. package/dest/logs/pre_tag.d.ts.map +1 -1
  281. package/dest/logs/pre_tag.js +2 -2
  282. package/dest/logs/private_log.d.ts +2 -2
  283. package/dest/logs/private_log.d.ts.map +1 -1
  284. package/dest/logs/public_log.d.ts +4 -3
  285. package/dest/logs/public_log.d.ts.map +1 -1
  286. package/dest/logs/public_log.js +2 -1
  287. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  288. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  289. package/dest/logs/shared_secret_derivation.js +15 -9
  290. package/dest/logs/siloed_tag.d.ts +8 -3
  291. package/dest/logs/siloed_tag.d.ts.map +1 -1
  292. package/dest/logs/siloed_tag.js +12 -6
  293. package/dest/logs/tag.js +1 -1
  294. package/dest/logs/tagging_index_range.d.ts +40 -0
  295. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  296. package/dest/logs/tagging_index_range.js +8 -0
  297. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  298. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  299. package/dest/logs/tx_scoped_l2_log.js +7 -0
  300. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  301. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  302. package/dest/messaging/l1_to_l2_message.js +11 -13
  303. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  304. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  305. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  306. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  307. package/dest/messaging/l2_to_l1_membership.js +72 -29
  308. package/dest/noir/index.d.ts +3 -3
  309. package/dest/noir/index.d.ts.map +1 -1
  310. package/dest/note/index.d.ts +1 -2
  311. package/dest/note/index.d.ts.map +1 -1
  312. package/dest/note/index.js +0 -1
  313. package/dest/note/note_dao.d.ts +1 -1
  314. package/dest/note/note_dao.d.ts.map +1 -1
  315. package/dest/note/note_dao.js +1 -4
  316. package/dest/p2p/attestation_utils.d.ts +11 -1
  317. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  318. package/dest/p2p/attestation_utils.js +45 -0
  319. package/dest/p2p/block_proposal.d.ts +11 -4
  320. package/dest/p2p/block_proposal.d.ts.map +1 -1
  321. package/dest/p2p/block_proposal.js +2 -4
  322. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  323. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  324. package/dest/p2p/checkpoint_attestation.js +1 -1
  325. package/dest/p2p/checkpoint_proposal.d.ts +27 -13
  326. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  327. package/dest/p2p/checkpoint_proposal.js +30 -38
  328. package/dest/p2p/client_type.d.ts +2 -5
  329. package/dest/p2p/client_type.d.ts.map +1 -1
  330. package/dest/p2p/client_type.js +0 -7
  331. package/dest/p2p/consensus_payload.d.ts +12 -3
  332. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  333. package/dest/p2p/consensus_payload.js +22 -15
  334. package/dest/p2p/constants.d.ts +3 -1
  335. package/dest/p2p/constants.d.ts.map +1 -1
  336. package/dest/p2p/constants.js +1 -0
  337. package/dest/p2p/index.d.ts +1 -2
  338. package/dest/p2p/index.d.ts.map +1 -1
  339. package/dest/p2p/index.js +0 -1
  340. package/dest/p2p/peer_error.d.ts +3 -1
  341. package/dest/p2p/peer_error.d.ts.map +1 -1
  342. package/dest/p2p/peer_error.js +5 -0
  343. package/dest/p2p/topic_type.d.ts +3 -4
  344. package/dest/p2p/topic_type.d.ts.map +1 -1
  345. package/dest/p2p/topic_type.js +7 -24
  346. package/dest/proofs/chonk_proof.d.ts +46 -2
  347. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  348. package/dest/proofs/chonk_proof.js +85 -10
  349. package/dest/rollup/checkpoint_header.d.ts +2 -2
  350. package/dest/rollup/checkpoint_header.js +2 -2
  351. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  352. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  353. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  354. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  355. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  356. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  357. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  358. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  359. package/dest/slashing/helpers.d.ts +2 -2
  360. package/dest/slashing/helpers.d.ts.map +1 -1
  361. package/dest/slashing/helpers.js +6 -0
  362. package/dest/slashing/index.d.ts +2 -3
  363. package/dest/slashing/index.d.ts.map +1 -1
  364. package/dest/slashing/index.js +1 -2
  365. package/dest/slashing/serialization.d.ts +2 -6
  366. package/dest/slashing/serialization.d.ts.map +1 -1
  367. package/dest/slashing/serialization.js +0 -60
  368. package/dest/slashing/types.d.ts +10 -92
  369. package/dest/slashing/types.d.ts.map +1 -1
  370. package/dest/slashing/types.js +13 -15
  371. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  372. package/dest/slashing/votes.d.ts.map +1 -0
  373. package/dest/slashing/{tally.js → votes.js} +35 -3
  374. package/dest/stats/stats.d.ts +1 -3
  375. package/dest/stats/stats.d.ts.map +1 -1
  376. package/dest/tests/factories.d.ts +4 -4
  377. package/dest/tests/factories.d.ts.map +1 -1
  378. package/dest/tests/factories.js +32 -41
  379. package/dest/tests/mocks.d.ts +12 -3
  380. package/dest/tests/mocks.d.ts.map +1 -1
  381. package/dest/tests/mocks.js +46 -40
  382. package/dest/timetable/index.d.ts +87 -0
  383. package/dest/timetable/index.d.ts.map +1 -0
  384. package/dest/timetable/index.js +229 -0
  385. package/dest/trees/public_data_leaf.d.ts +2 -1
  386. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  387. package/dest/trees/public_data_leaf.js +7 -6
  388. package/dest/tx/block_header.d.ts +5 -2
  389. package/dest/tx/block_header.d.ts.map +1 -1
  390. package/dest/tx/block_header.js +8 -3
  391. package/dest/tx/capsule.d.ts +6 -2
  392. package/dest/tx/capsule.d.ts.map +1 -1
  393. package/dest/tx/capsule.js +9 -3
  394. package/dest/tx/global_variable_builder.d.ts +3 -2
  395. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  396. package/dest/tx/global_variables.d.ts +4 -4
  397. package/dest/tx/global_variables.d.ts.map +1 -1
  398. package/dest/tx/in_tx.d.ts +3 -3
  399. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  400. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  401. package/dest/tx/indexed_tx_effect.js +3 -2
  402. package/dest/tx/private_execution_result.d.ts +6 -6
  403. package/dest/tx/private_execution_result.d.ts.map +1 -1
  404. package/dest/tx/private_execution_result.js +6 -6
  405. package/dest/tx/profiling.d.ts +17 -5
  406. package/dest/tx/profiling.d.ts.map +1 -1
  407. package/dest/tx/profiling.js +15 -5
  408. package/dest/tx/protocol_contracts.d.ts +1 -1
  409. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  410. package/dest/tx/protocol_contracts.js +2 -2
  411. package/dest/tx/public_simulation_output.d.ts +4 -2
  412. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  413. package/dest/tx/public_simulation_output.js +7 -3
  414. package/dest/tx/simulated_tx.d.ts +116 -5
  415. package/dest/tx/simulated_tx.d.ts.map +1 -1
  416. package/dest/tx/simulated_tx.js +7 -4
  417. package/dest/tx/tx.d.ts +6 -5
  418. package/dest/tx/tx.d.ts.map +1 -1
  419. package/dest/tx/tx.js +18 -6
  420. package/dest/tx/tx_receipt.d.ts +33 -10
  421. package/dest/tx/tx_receipt.d.ts.map +1 -1
  422. package/dest/tx/tx_receipt.js +25 -21
  423. package/dest/tx/tx_request.js +2 -2
  424. package/dest/tx/validator/empty_validator.d.ts +2 -2
  425. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  426. package/dest/tx/validator/error_texts.d.ts +10 -2
  427. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  428. package/dest/tx/validator/error_texts.js +11 -1
  429. package/dest/tx/validator/tx_validator.d.ts +2 -2
  430. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  431. package/dest/update-checker/index.d.ts +3 -2
  432. package/dest/update-checker/index.d.ts.map +1 -1
  433. package/dest/update-checker/index.js +2 -1
  434. package/dest/update-checker/package_version.d.ts +3 -0
  435. package/dest/update-checker/package_version.d.ts.map +1 -0
  436. package/dest/update-checker/package_version.js +24 -0
  437. package/dest/update-checker/version_checker.d.ts +25 -0
  438. package/dest/update-checker/version_checker.d.ts.map +1 -0
  439. package/dest/update-checker/version_checker.js +50 -0
  440. package/dest/validators/errors.d.ts +6 -1
  441. package/dest/validators/errors.d.ts.map +1 -1
  442. package/dest/validators/errors.js +7 -0
  443. package/dest/validators/schemas.d.ts +30 -30
  444. package/dest/validators/schemas.d.ts.map +1 -1
  445. package/dest/validators/schemas.js +4 -3
  446. package/dest/validators/types.d.ts +3 -3
  447. package/dest/validators/types.d.ts.map +1 -1
  448. package/dest/versioning/versioning.d.ts +4 -2
  449. package/dest/versioning/versioning.d.ts.map +1 -1
  450. package/dest/versioning/versioning.js +4 -1
  451. package/dest/world-state/genesis_data.d.ts +11 -0
  452. package/dest/world-state/genesis_data.d.ts.map +1 -0
  453. package/dest/world-state/genesis_data.js +4 -0
  454. package/dest/world-state/index.d.ts +2 -1
  455. package/dest/world-state/index.d.ts.map +1 -1
  456. package/dest/world-state/index.js +1 -0
  457. package/package.json +26 -13
  458. package/src/abi/abi.ts +25 -2
  459. package/src/abi/buffer.ts +25 -4
  460. package/src/abi/decoder.ts +36 -82
  461. package/src/abi/encoder.ts +49 -6
  462. package/src/abi/event_metadata_definition.ts +2 -0
  463. package/src/abi/function_call.ts +25 -3
  464. package/src/abi/function_selector.ts +1 -1
  465. package/src/abi/function_signature_decoder.ts +77 -0
  466. package/src/abi/index.ts +1 -0
  467. package/src/abi/selector.ts +1 -1
  468. package/src/abi/utils.ts +25 -0
  469. package/src/auth_witness/auth_witness.ts +3 -3
  470. package/src/avm/revert_code.ts +26 -25
  471. package/src/block/block_data.ts +26 -0
  472. package/src/block/block_hash.ts +26 -47
  473. package/src/block/block_parameter.ts +3 -3
  474. package/src/block/in_block.ts +6 -6
  475. package/src/block/index.ts +1 -0
  476. package/src/block/l2_block.ts +15 -2
  477. package/src/block/l2_block_source.ts +51 -11
  478. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  479. package/src/block/l2_block_stream/l2_tips_store_base.ts +24 -12
  480. package/src/block/test/l2_tips_store_test_suite.ts +8 -1
  481. package/src/checkpoint/checkpoint.ts +54 -17
  482. package/src/checkpoint/checkpoint_data.ts +87 -0
  483. package/src/checkpoint/index.ts +2 -0
  484. package/src/checkpoint/published_checkpoint.ts +3 -1
  485. package/src/checkpoint/validate.ts +230 -0
  486. package/src/config/index.ts +2 -0
  487. package/src/config/pipelining-config.ts +31 -0
  488. package/src/config/sequencer-config.ts +47 -0
  489. package/src/contract/contract_address.ts +7 -7
  490. package/src/contract/contract_class.ts +3 -3
  491. package/src/contract/contract_class_id.ts +7 -6
  492. package/src/contract/index.ts +0 -2
  493. package/src/contract/interfaces/contract_class.ts +2 -82
  494. package/src/contract/interfaces/node-info.ts +3 -0
  495. package/src/contract/private_function.ts +2 -2
  496. package/src/database-version/database_version.ts +87 -0
  497. package/src/database-version/version_manager.ts +1 -77
  498. package/src/epoch-helpers/index.ts +39 -0
  499. package/src/file-store/factory.ts +13 -4
  500. package/src/file-store/http.ts +29 -10
  501. package/src/file-store/index.ts +1 -0
  502. package/src/file-store/local.ts +15 -5
  503. package/src/file-store/s3.ts +12 -3
  504. package/src/gas/README.md +123 -0
  505. package/src/gas/gas_fees.ts +15 -1
  506. package/src/gas/gas_settings.ts +65 -12
  507. package/src/ha-signing/config.ts +156 -0
  508. package/src/ha-signing/index.ts +27 -0
  509. package/src/ha-signing/local_config.ts +46 -0
  510. package/src/ha-signing/types.ts +112 -0
  511. package/src/hash/hash.ts +48 -10
  512. package/src/hash/map_slot.ts +3 -2
  513. package/src/interfaces/allowed_element.ts +29 -9
  514. package/src/interfaces/archiver.ts +14 -5
  515. package/src/interfaces/aztec-node-admin.ts +31 -9
  516. package/src/interfaces/aztec-node-debug.ts +40 -0
  517. package/src/interfaces/aztec-node.ts +67 -99
  518. package/src/interfaces/block-builder.ts +68 -11
  519. package/src/interfaces/client.ts +1 -0
  520. package/src/interfaces/configs.ts +36 -8
  521. package/src/interfaces/l2_logs_source.ts +4 -1
  522. package/src/interfaces/merkle_tree_operations.ts +9 -19
  523. package/src/interfaces/p2p.ts +3 -14
  524. package/src/interfaces/prover-broker.ts +22 -0
  525. package/src/interfaces/prover-client.ts +15 -0
  526. package/src/interfaces/slasher.ts +4 -6
  527. package/src/interfaces/validator.ts +57 -33
  528. package/src/interfaces/world_state.ts +4 -3
  529. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  530. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  531. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  532. package/src/kernel/hints/index.ts +2 -2
  533. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  534. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  535. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  536. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  537. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  538. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  539. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  540. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  541. package/src/kernel/private_validation_requests.ts +8 -8
  542. package/src/keys/derivation.ts +15 -15
  543. package/src/keys/key_types.ts +6 -2
  544. package/src/keys/public_keys.ts +2 -2
  545. package/src/keys/utils.ts +8 -4
  546. package/src/kv-store/config.ts +36 -0
  547. package/src/kv-store/index.ts +1 -0
  548. package/src/l1-contracts/index.ts +1 -1
  549. package/src/logs/debug_log_store.ts +54 -0
  550. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  551. package/src/logs/index.ts +3 -1
  552. package/src/logs/log_filter.ts +5 -0
  553. package/src/logs/log_id.ts +22 -18
  554. package/src/logs/message_context.ts +17 -7
  555. package/src/logs/pending_tagged_log.ts +1 -3
  556. package/src/logs/pre_tag.ts +5 -5
  557. package/src/logs/public_log.ts +4 -2
  558. package/src/logs/shared_secret_derivation.ts +21 -10
  559. package/src/logs/siloed_tag.ts +15 -4
  560. package/src/logs/tag.ts +1 -1
  561. package/src/logs/tagging_index_range.ts +24 -0
  562. package/src/logs/tx_scoped_l2_log.ts +16 -0
  563. package/src/messaging/l1_to_l2_message.ts +12 -9
  564. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  565. package/src/messaging/l2_to_l1_membership.ts +101 -36
  566. package/src/noir/index.ts +2 -2
  567. package/src/note/index.ts +0 -1
  568. package/src/note/note_dao.ts +1 -4
  569. package/src/p2p/attestation_utils.ts +56 -0
  570. package/src/p2p/block_proposal.ts +10 -5
  571. package/src/p2p/checkpoint_attestation.ts +6 -1
  572. package/src/p2p/checkpoint_proposal.ts +61 -52
  573. package/src/p2p/client_type.ts +0 -6
  574. package/src/p2p/consensus_payload.ts +25 -12
  575. package/src/p2p/constants.ts +3 -0
  576. package/src/p2p/index.ts +0 -1
  577. package/src/p2p/peer_error.ts +7 -0
  578. package/src/p2p/topic_type.ts +8 -15
  579. package/src/proofs/chonk_proof.ts +91 -5
  580. package/src/rollup/checkpoint_header.ts +2 -2
  581. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  582. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  583. package/src/slashing/helpers.ts +8 -0
  584. package/src/slashing/index.ts +1 -2
  585. package/src/slashing/serialization.ts +1 -81
  586. package/src/slashing/types.ts +17 -35
  587. package/src/slashing/{tally.ts → votes.ts} +41 -2
  588. package/src/stats/stats.ts +0 -2
  589. package/src/tests/factories.ts +31 -51
  590. package/src/tests/mocks.ts +63 -33
  591. package/src/timetable/index.ts +346 -0
  592. package/src/trees/public_data_leaf.ts +11 -5
  593. package/src/tx/block_header.ts +14 -5
  594. package/src/tx/capsule.ts +10 -2
  595. package/src/tx/global_variable_builder.ts +2 -0
  596. package/src/tx/global_variables.ts +3 -3
  597. package/src/tx/indexed_tx_effect.ts +3 -2
  598. package/src/tx/private_execution_result.ts +5 -5
  599. package/src/tx/profiling.ts +14 -5
  600. package/src/tx/protocol_contracts.ts +2 -2
  601. package/src/tx/public_simulation_output.ts +4 -0
  602. package/src/tx/simulated_tx.ts +14 -3
  603. package/src/tx/tx.ts +20 -11
  604. package/src/tx/tx_receipt.ts +32 -20
  605. package/src/tx/tx_request.ts +2 -2
  606. package/src/tx/validator/empty_validator.ts +1 -1
  607. package/src/tx/validator/error_texts.ts +13 -1
  608. package/src/tx/validator/tx_validator.ts +1 -1
  609. package/src/update-checker/index.ts +2 -1
  610. package/src/update-checker/package_version.ts +30 -0
  611. package/src/update-checker/version_checker.ts +65 -0
  612. package/src/validators/errors.ts +9 -0
  613. package/src/validators/schemas.ts +8 -1
  614. package/src/validators/types.ts +5 -4
  615. package/src/versioning/versioning.ts +4 -1
  616. package/src/world-state/genesis_data.ts +15 -0
  617. package/src/world-state/index.ts +1 -0
  618. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  619. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  620. package/dest/contract/private_function_membership_proof.js +0 -124
  621. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  622. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  623. package/dest/contract/utility_function_membership_proof.js +0 -87
  624. package/dest/database-version/index.d.ts +0 -2
  625. package/dest/database-version/index.d.ts.map +0 -1
  626. package/dest/database-version/index.js +0 -1
  627. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  628. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  629. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  630. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  631. package/dest/l1-contracts/slash_factory.js +0 -157
  632. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  633. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  634. package/dest/note/notes_filter.d.ts +0 -27
  635. package/dest/note/notes_filter.d.ts.map +0 -1
  636. package/dest/note/notes_filter.js +0 -11
  637. package/dest/slashing/empire.d.ts +0 -31
  638. package/dest/slashing/empire.d.ts.map +0 -1
  639. package/dest/slashing/empire.js +0 -85
  640. package/dest/slashing/tally.d.ts.map +0 -1
  641. package/dest/update-checker/update-checker.d.ts +0 -49
  642. package/dest/update-checker/update-checker.d.ts.map +0 -1
  643. package/dest/update-checker/update-checker.js +0 -130
  644. package/src/contract/private_function_membership_proof.ts +0 -167
  645. package/src/contract/utility_function_membership_proof.ts +0 -118
  646. package/src/database-version/index.ts +0 -1
  647. package/src/l1-contracts/slash_factory.ts +0 -179
  648. package/src/note/notes_filter.ts +0 -38
  649. package/src/slashing/empire.ts +0 -102
  650. package/src/update-checker/update-checker.ts +0 -166
@@ -0,0 +1,77 @@
1
+ import type { ABIParameter, ABIVariable, AbiType } from './abi.js';
2
+
3
+ /**
4
+ * Decodes the signature of a function from the name and parameters.
5
+ */
6
+ export class FunctionSignatureDecoder {
7
+ private separator: string;
8
+ constructor(
9
+ private name: string,
10
+ private parameters: ABIParameter[],
11
+ private includeNames = false,
12
+ ) {
13
+ this.separator = includeNames ? ', ' : ',';
14
+ }
15
+
16
+ /**
17
+ * Decodes a single function parameter type for the function signature.
18
+ * @param param - The parameter type to decode.
19
+ * @returns A string representing the parameter type.
20
+ */
21
+ private getParameterType(param: AbiType): string {
22
+ switch (param.kind) {
23
+ case 'field':
24
+ return 'Field';
25
+ case 'integer':
26
+ return param.sign === 'signed' ? `i${param.width}` : `u${param.width}`;
27
+ case 'boolean':
28
+ return 'bool';
29
+ case 'array':
30
+ return `[${this.getParameterType(param.type)};${param.length}]`;
31
+ case 'string':
32
+ return `str<${param.length}>`;
33
+ case 'struct':
34
+ return `(${param.fields.map(field => `${this.decodeParameter(field)}`).join(this.separator)})`;
35
+ default:
36
+ throw new Error(`Unsupported type: ${param.kind}`);
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Decodes a single function parameter for the function signature.
42
+ * @param param - The parameter to decode.
43
+ * @returns A string representing the parameter type and optionally its name.
44
+ */
45
+ private decodeParameter(param: ABIVariable): string {
46
+ const type = this.getParameterType(param.type);
47
+ return this.includeNames ? `${param.name}: ${type}` : type;
48
+ }
49
+
50
+ /**
51
+ * Decodes all the parameters and build the function signature
52
+ * @returns The function signature.
53
+ */
54
+ public decode(): string {
55
+ return `${this.name}(${this.parameters.map(param => this.decodeParameter(param)).join(this.separator)})`;
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Decodes a function signature from the name and parameters.
61
+ * @param name - The name of the function.
62
+ * @param parameters - The parameters of the function.
63
+ * @returns - The function signature.
64
+ */
65
+ export function decodeFunctionSignature(name: string, parameters: ABIParameter[]) {
66
+ return new FunctionSignatureDecoder(name, parameters).decode();
67
+ }
68
+
69
+ /**
70
+ * Decodes a function signature from the name and parameters including parameter names.
71
+ * @param name - The name of the function.
72
+ * @param parameters - The parameters of the function.
73
+ * @returns - The user-friendly function signature.
74
+ */
75
+ export function decodeFunctionSignatureWithParameterNames(name: string, parameters: ABIParameter[]) {
76
+ return new FunctionSignatureDecoder(name, parameters, true).decode();
77
+ }
package/src/abi/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './abi.js';
2
2
  export * from './buffer.js';
3
3
  export * from './decoder.js';
4
+ export * from './function_signature_decoder.js';
4
5
  export * from './encoder.js';
5
6
  export * from './authorization_selector.js';
6
7
  export * from './event_metadata_definition.js';
@@ -4,7 +4,7 @@ import { bufferToHex } from '@aztec/foundation/string';
4
4
 
5
5
  import { inspect } from 'util';
6
6
 
7
- /** A selector is the first 4 bytes of the hash of a signature. */
7
+ /** A selector is the low 4 bytes of the poseidon2 hash of a signature. */
8
8
  export abstract class Selector {
9
9
  /** The size of the selector in bytes. */
10
10
  public static SIZE = 4;
package/src/abi/utils.ts CHANGED
@@ -81,6 +81,31 @@ export function isBoundedVecStruct(abiType: AbiType) {
81
81
  );
82
82
  }
83
83
 
84
+ /**
85
+ * Returns whether the ABI type is Noir's std::option::Option lowered to a struct.
86
+ * @param abiType - Type to check.
87
+ * @returns A boolean indicating whether the ABI type is an Option struct.
88
+ */
89
+ export function isOptionStruct(abiType: AbiType) {
90
+ return (
91
+ abiType.kind === 'struct' &&
92
+ abiType.path === 'std::option::Option' &&
93
+ abiType.fields.length === 2 &&
94
+ abiType.fields[0].name === '_is_some' &&
95
+ abiType.fields[1].name === '_value'
96
+ );
97
+ }
98
+
99
+ /**
100
+ * Returns whether `null` or `undefined` can be mapped to a valid ABI value for this type.
101
+ *
102
+ * @param abiType - Type to check.
103
+ * @returns A boolean indicating whether nullish values are valid shorthand for this ABI type.
104
+ */
105
+ export function canBeMappedFromNullOrUndefined(abiType: AbiType) {
106
+ return isOptionStruct(abiType);
107
+ }
108
+
84
109
  /**
85
110
  * Returns a bigint by parsing a serialized 2's complement signed int.
86
111
  * @param b - The signed int as a buffer
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -61,7 +61,7 @@ export class AuthWitness {
61
61
  * @returns The inner hash for the witness
62
62
  */
63
63
  export const computeInnerAuthWitHash = (args: Fr[]) => {
64
- return poseidon2HashWithSeparator(args, GeneratorIndex.AUTHWIT_INNER);
64
+ return poseidon2HashWithSeparator(args, DomainSeparator.AUTHWIT_INNER);
65
65
  };
66
66
 
67
67
  /**
@@ -77,5 +77,5 @@ export const computeInnerAuthWitHash = (args: Fr[]) => {
77
77
  * @returns The outer hash for the witness
78
78
  */
79
79
  export const computeOuterAuthWitHash = (consumer: AztecAddress, chainId: Fr, version: Fr, innerHash: Fr) => {
80
- return poseidon2HashWithSeparator([consumer.toField(), chainId, version, innerHash], GeneratorIndex.AUTHWIT_OUTER);
80
+ return poseidon2HashWithSeparator([consumer.toField(), chainId, version, innerHash], DomainSeparator.AUTHWIT_OUTER);
81
81
  };
@@ -5,20 +5,17 @@ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
5
5
  import { inspect } from 'util';
6
6
  import { z } from 'zod';
7
7
 
8
+ /** Whether a transaction's public execution reverted. */
8
9
  export enum RevertCodeEnum {
10
+ /** All phases completed successfully; no state was rolled back. */
9
11
  OK = 0,
10
- APP_LOGIC_REVERTED = 1,
11
- TEARDOWN_REVERTED = 2,
12
- BOTH_REVERTED = 3,
12
+ /** One or more revertible phases reverted; their state changes were discarded. */
13
+ REVERTED = 1,
13
14
  }
14
15
 
15
- function isRevertCodeEnum(value: number): value is RevertCodeEnum {
16
- return (
17
- (value as RevertCodeEnum) === RevertCodeEnum.OK ||
18
- (value as RevertCodeEnum) === RevertCodeEnum.APP_LOGIC_REVERTED ||
19
- (value as RevertCodeEnum) === RevertCodeEnum.TEARDOWN_REVERTED ||
20
- (value as RevertCodeEnum) === RevertCodeEnum.BOTH_REVERTED
21
- );
16
+ /** Returns a valid RevertCodeEnum, coercing any value >= 1 to REVERTED. */
17
+ function toRevertCodeEnum(value: number): RevertCodeEnum {
18
+ return value >= 1 ? RevertCodeEnum.REVERTED : RevertCodeEnum.OK;
22
19
  }
23
20
 
24
21
  /**
@@ -30,9 +27,13 @@ export class RevertCode {
30
27
  this.code = e.valueOf();
31
28
  }
32
29
  static readonly OK: RevertCode = new RevertCode(RevertCodeEnum.OK);
33
- static readonly APP_LOGIC_REVERTED: RevertCode = new RevertCode(RevertCodeEnum.APP_LOGIC_REVERTED);
34
- static readonly TEARDOWN_REVERTED: RevertCode = new RevertCode(RevertCodeEnum.TEARDOWN_REVERTED);
35
- static readonly BOTH_REVERTED: RevertCode = new RevertCode(RevertCodeEnum.BOTH_REVERTED);
30
+ static readonly REVERTED: RevertCode = new RevertCode(RevertCodeEnum.REVERTED);
31
+ /** @deprecated Use REVERTED instead. */
32
+ static readonly APP_LOGIC_REVERTED: RevertCode = RevertCode.REVERTED;
33
+ /** @deprecated Use REVERTED instead. */
34
+ static readonly TEARDOWN_REVERTED: RevertCode = RevertCode.REVERTED;
35
+ /** @deprecated Use REVERTED instead. */
36
+ static readonly BOTH_REVERTED: RevertCode = RevertCode.REVERTED;
36
37
 
37
38
  public getCode(): RevertCodeEnum {
38
39
  return this.code;
@@ -50,12 +51,8 @@ export class RevertCode {
50
51
  switch (this.code as RevertCodeEnum) {
51
52
  case RevertCodeEnum.OK:
52
53
  return 'OK';
53
- case RevertCodeEnum.APP_LOGIC_REVERTED:
54
- return 'Application logic reverted';
55
- case RevertCodeEnum.TEARDOWN_REVERTED:
56
- return 'Teardown reverted';
57
- case RevertCodeEnum.BOTH_REVERTED:
58
- return 'Both reverted';
54
+ case RevertCodeEnum.REVERTED:
55
+ return 'Reverted';
59
56
  default:
60
57
  return `Unknown RevertCode: ${this.code}`;
61
58
  }
@@ -66,7 +63,11 @@ export class RevertCode {
66
63
  }
67
64
 
68
65
  static get schema(): ZodFor<RevertCode> {
69
- return z.nativeEnum(RevertCodeEnum).transform(value => new RevertCode(value));
66
+ return z
67
+ .number()
68
+ .int()
69
+ .min(0)
70
+ .transform(value => new RevertCode(toRevertCodeEnum(value)));
70
71
  }
71
72
 
72
73
  /**
@@ -81,10 +82,10 @@ export class RevertCode {
81
82
  return obj;
82
83
  }
83
84
  const code = typeof obj === 'number' ? obj : (obj.code ?? obj);
84
- if (!isRevertCodeEnum(code)) {
85
+ if (typeof code !== 'number' || code < 0) {
85
86
  throw new Error(`Invalid RevertCode: ${code}`);
86
87
  }
87
- return new RevertCode(code);
88
+ return new RevertCode(toRevertCodeEnum(code));
88
89
  }
89
90
 
90
91
  /**
@@ -116,10 +117,10 @@ export class RevertCode {
116
117
  }
117
118
 
118
119
  public static fromNumber(code: number): RevertCode {
119
- if (!isRevertCodeEnum(code)) {
120
+ if (code < 0) {
120
121
  throw new Error(`Invalid RevertCode: ${code}`);
121
122
  }
122
- return new RevertCode(code);
123
+ return new RevertCode(toRevertCodeEnum(code));
123
124
  }
124
125
 
125
126
  public static fromField(field: Fr): RevertCode {
@@ -137,7 +138,7 @@ export class RevertCode {
137
138
  return RevertCode.fromNumber(code);
138
139
  }
139
140
 
140
- private static readonly NUM_OPTIONS = 4;
141
+ private static readonly NUM_OPTIONS = 2;
141
142
  static random(): RevertCode {
142
143
  return new RevertCode(Math.floor(Math.random() * RevertCode.NUM_OPTIONS));
143
144
  }
@@ -0,0 +1,26 @@
1
+ import { CheckpointNumberSchema, IndexWithinCheckpointSchema } from '@aztec/foundation/branded-types';
2
+ import type { CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
+ import type { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { schemas } from '@aztec/foundation/schemas';
5
+
6
+ import { z } from 'zod';
7
+
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
+ import { BlockHeader } from '../tx/block_header.js';
10
+
11
+ /** L2Block metadata. Equivalent to L2Block but without block body containing tx data. */
12
+ export type BlockData = {
13
+ header: BlockHeader;
14
+ archive: AppendOnlyTreeSnapshot;
15
+ blockHash: Fr;
16
+ checkpointNumber: CheckpointNumber;
17
+ indexWithinCheckpoint: IndexWithinCheckpoint;
18
+ };
19
+
20
+ export const BlockDataSchema = z.object({
21
+ header: BlockHeader.schema,
22
+ archive: AppendOnlyTreeSnapshot.schema,
23
+ blockHash: schemas.Fr,
24
+ checkpointNumber: CheckpointNumberSchema,
25
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
26
+ });
@@ -1,66 +1,45 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
1
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import type { ZodFor } from '@aztec/foundation/schemas';
4
3
 
5
- import { schemas } from '../schemas/schemas.js';
4
+ import { inspect } from 'util';
6
5
 
7
- /** Hash of an L2 block. */
8
- export class L2BlockHash extends Buffer32 {
9
- constructor(
10
- /** The buffer containing the hash. */
11
- hash: Buffer,
12
- ) {
13
- super(hash);
14
- }
6
+ import { hexSchemaFor } from '../schemas/schemas.js';
15
7
 
16
- /**
17
- * Type guard that checks if a value is an L2BlockHash instance.
18
- * Uses duck typing to handle cases where instanceof fails due to module duplication.
19
- * Checks for Buffer32-like structure with a 32-byte buffer.
20
- */
21
- static isL2BlockHash(value: unknown): value is L2BlockHash {
22
- if (value instanceof L2BlockHash) {
23
- return true;
24
- }
25
- // Duck typing fallback: check if it looks like a Buffer32 with a 32-byte buffer
26
- // This helps when instanceof fails due to module duplication
27
- return (
28
- typeof value === 'object' &&
29
- value !== null &&
30
- 'buffer' in value &&
31
- Buffer.isBuffer((value as Buffer32).buffer) &&
32
- (value as Buffer32).buffer.length === 32 &&
33
- 'toBuffer' in value &&
34
- typeof (value as Buffer32).toBuffer === 'function'
35
- );
36
- }
8
+ const BLOCK_HASH_BRAND = Symbol.for('aztec.BlockHash');
37
9
 
38
- static override random() {
39
- return new L2BlockHash(Fr.random().toBuffer());
10
+ /** Hash of an L2 block. */
11
+ export class BlockHash extends Fr {
12
+ readonly [BLOCK_HASH_BRAND] = true as const;
13
+
14
+ constructor(hash: Fr) {
15
+ super(hash);
40
16
  }
41
17
 
42
- static override fromNumber(num: number): L2BlockHash {
43
- return new L2BlockHash(super.fromNumber(num).toBuffer());
18
+ override [inspect.custom]() {
19
+ return `BlockHash<${this.toString()}>`;
44
20
  }
45
21
 
46
- static override fromBuffer(buffer: Buffer | BufferReader) {
47
- const reader = BufferReader.asReader(buffer);
48
- return new L2BlockHash(reader.readBytes(L2BlockHash.SIZE));
22
+ toFr(): Fr {
23
+ return new Fr(this.toBigInt());
49
24
  }
50
25
 
51
- static override fromString(str: string): Buffer32 {
52
- return new L2BlockHash(super.fromString(str).toBuffer());
26
+ /**
27
+ * Type guard that checks if a value is a BlockHash instance.
28
+ * Uses Symbol.for to ensure cross-module compatibility.
29
+ */
30
+ static isBlockHash(value: unknown): value is BlockHash {
31
+ return typeof value === 'object' && value !== null && BLOCK_HASH_BRAND in value;
53
32
  }
54
33
 
55
- static get schema() {
56
- return schemas.BufferHex.transform(value => new L2BlockHash(value));
34
+ static override random() {
35
+ return new BlockHash(Fr.random());
57
36
  }
58
37
 
59
- static zero() {
60
- return new L2BlockHash(Buffer32.ZERO.toBuffer());
38
+ static override fromString(str: string): BlockHash {
39
+ return new BlockHash(Fr.fromString(str));
61
40
  }
62
41
 
63
- static override fromField(hash: Fr) {
64
- return new L2BlockHash(hash.toBuffer());
42
+ static override get schema() {
43
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
65
44
  }
66
45
  }
@@ -2,9 +2,9 @@ import { BlockNumberSchema } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import { z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
5
+ import { BlockHash } from './block_hash.js';
6
6
 
7
- export const BlockParameterSchema = z.union([L2BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
7
+ export const BlockParameterSchema = z.union([BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
8
8
 
9
- /** Block parameter - either a specific BlockNumber, block hash (L2BlockHash), or 'latest' */
9
+ /** Block parameter - either a specific BlockNumber, block hash (BlockHash), or 'latest' */
10
10
  export type BlockParameter = z.infer<typeof BlockParameterSchema>;
@@ -2,12 +2,12 @@ import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types'
2
2
 
3
3
  import { type ZodTypeAny, z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
5
+ import { BlockHash } from './block_hash.js';
6
6
  import type { L2Block } from './l2_block.js';
7
7
 
8
8
  export type InBlock = {
9
9
  l2BlockNumber: BlockNumber;
10
- l2BlockHash: L2BlockHash;
10
+ l2BlockHash: BlockHash;
11
11
  };
12
12
 
13
13
  // Note: If you expand this type with indexInBlock, then delete `IndexedTxEffect` and use this type instead.
@@ -17,8 +17,8 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
21
- l2BlockHash: L2BlockHash.random(),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
+ l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
24
24
 
@@ -33,14 +33,14 @@ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataI
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: L2BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
40
40
  export function inBlockSchema() {
41
41
  return z.object({
42
42
  l2BlockNumber: BlockNumberSchema,
43
- l2BlockHash: L2BlockHash.schema,
43
+ l2BlockHash: BlockHash.schema,
44
44
  });
45
45
  }
46
46
 
@@ -1,3 +1,4 @@
1
+ export * from './block_data.js';
1
2
  export * from './l2_block.js';
2
3
  export * from './l2_block_stream/index.js';
3
4
  export * from './in_block.js';
@@ -1,4 +1,5 @@
1
1
  import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
+ import { DA_GAS_PER_FIELD } from '@aztec/constants';
2
3
  import {
3
4
  BlockNumber,
4
5
  CheckpointNumber,
@@ -15,6 +16,7 @@ import { z } from 'zod';
15
16
  import type { PrivateLog } from '../logs/private_log.js';
16
17
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
17
18
  import { BlockHeader } from '../tx/block_header.js';
19
+ import type { BlockHash } from './block_hash.js';
18
20
  import { Body } from './body.js';
19
21
  import type { L2BlockInfo } from './l2_block_info.js';
20
22
 
@@ -89,7 +91,7 @@ export class L2Block {
89
91
  * Returns the block's hash (hash of block header).
90
92
  * @returns The block's hash.
91
93
  */
92
- public hash(): Promise<Fr> {
94
+ public hash(): Promise<BlockHash> {
93
95
  return this.header.hash();
94
96
  }
95
97
 
@@ -174,7 +176,7 @@ export class L2Block {
174
176
  } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
175
177
  ): Promise<L2Block> {
176
178
  const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
177
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
178
180
  const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
179
181
  return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
180
182
  }
@@ -220,4 +222,15 @@ export class L2Block {
220
222
  timestamp: this.header.globalVariables.timestamp,
221
223
  };
222
224
  }
225
+
226
+ /**
227
+ * Compute how much DA gas this block uses.
228
+ *
229
+ * @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
230
+ * This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
231
+ * in the L2BlockHeader, so we have to rely on recomputing it.
232
+ */
233
+ computeDAGasUsed(): number {
234
+ return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
235
+ }
223
236
  }
@@ -13,6 +13,7 @@ import type { TypedEventEmitter } from '@aztec/foundation/types';
13
13
  import { z } from 'zod';
14
14
 
15
15
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
16
+ import type { CheckpointData, CommonCheckpointData, ProposedCheckpointData } from '../checkpoint/checkpoint_data.js';
16
17
  import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
17
18
  import type { L1RollupConstants } from '../epoch-helpers/index.js';
18
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
@@ -20,6 +21,8 @@ import type { BlockHeader } from '../tx/block_header.js';
20
21
  import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
21
22
  import type { TxHash } from '../tx/tx_hash.js';
22
23
  import type { TxReceipt } from '../tx/tx_receipt.js';
24
+ import type { BlockData } from './block_data.js';
25
+ import type { BlockHash } from './block_hash.js';
23
26
  import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
24
27
  import type { L2Block } from './l2_block.js';
25
28
  import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
@@ -46,6 +49,12 @@ export interface L2BlockSource {
46
49
  */
47
50
  getBlockNumber(): Promise<BlockNumber>;
48
51
 
52
+ /**
53
+ * Gets the number of the latest L2 checkpoint processed by the block source implementation.
54
+ * @returns The number of the latest L2 checkpoint processed by the block source implementation.
55
+ */
56
+ getCheckpointNumber(): Promise<CheckpointNumber>;
57
+
49
58
  /**
50
59
  * Gets the number of the latest L2 block proven seen by the block source implementation.
51
60
  * @returns The number of the latest L2 block proven seen by the block source implementation.
@@ -59,9 +68,8 @@ export interface L2BlockSource {
59
68
  getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
60
69
 
61
70
  /**
62
- * Computes the finalized block number based on the proven block number.
63
- * A block is considered finalized when it's 2 epochs behind the proven block.
64
- * TODO(#13569): Compute proper finalized block number based on L1 finalized block.
71
+ * Returns the finalized L2 block number. A block is finalized when it was proven
72
+ * in an L1 block that has itself been finalized on Ethereum.
65
73
  * @returns The finalized block number.
66
74
  */
67
75
  getFinalizedL2BlockNumber(): Promise<BlockNumber>;
@@ -97,12 +105,18 @@ export interface L2BlockSource {
97
105
  */
98
106
  getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
99
107
 
108
+ /**
109
+ * Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
110
+ * @param epochNumber - Epoch for which we want checkpoint data
111
+ */
112
+ getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
113
+
100
114
  /**
101
115
  * Gets a block header by its hash.
102
116
  * @param blockHash - The block hash to retrieve.
103
117
  * @returns The requested block header (or undefined if not found).
104
118
  */
105
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
119
+ getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
106
120
 
107
121
  /**
108
122
  * Gets a block header by its archive root.
@@ -111,6 +125,20 @@ export interface L2BlockSource {
111
125
  */
112
126
  getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
113
127
 
128
+ /**
129
+ * Gets block metadata (without tx data) by block number.
130
+ * @param number - The block number to retrieve.
131
+ * @returns The requested block data (or undefined if not found).
132
+ */
133
+ getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
134
+
135
+ /**
136
+ * Gets block metadata (without tx data) by archive root.
137
+ * @param archive - The archive root to retrieve.
138
+ * @returns The requested block data (or undefined if not found).
139
+ */
140
+ getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
141
+
114
142
  /**
115
143
  * Gets an L2 block by block number.
116
144
  * @param number - The block number to return.
@@ -123,7 +151,7 @@ export interface L2BlockSource {
123
151
  * @param blockHash - The block hash to retrieve.
124
152
  * @returns The requested L2 block (or undefined if not found).
125
153
  */
126
- getL2BlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
154
+ getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
127
155
 
128
156
  /**
129
157
  * Gets an L2 block by its archive root.
@@ -147,14 +175,18 @@ export interface L2BlockSource {
147
175
  getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
148
176
 
149
177
  /**
150
- * Returns the current L2 slot number based on the currently synced L1 timestamp.
178
+ * Returns the last L2 slot number for which we have all L1 data needed to build the next checkpoint.
179
+ * Determined by the max of two signals: L1 block sync progress and latest synced checkpoint slot.
180
+ * The checkpoint signal handles missed L1 blocks, since a published checkpoint seals the message tree
181
+ * for the next checkpoint via the inbox LAG mechanism.
151
182
  */
152
- getL2SlotNumber(): Promise<SlotNumber | undefined>;
183
+ getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
153
184
 
154
185
  /**
155
- * Returns the current L2 epoch number based on the currently synced L1 timestamp.
186
+ * Returns the last L2 epoch number that has been fully synchronized from L1.
187
+ * An epoch is fully synced when all its L2 slots have been fully synced.
156
188
  */
157
- getL2EpochNumber(): Promise<EpochNumber | undefined>;
189
+ getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
158
190
 
159
191
  /**
160
192
  * Returns all checkpointed block headers for a given epoch.
@@ -197,6 +229,12 @@ export interface L2BlockSource {
197
229
  */
198
230
  getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
199
231
 
232
+ /** Returns the checkpoint at the proposed chain tip. */
233
+ getProposedCheckpoint(): Promise<CommonCheckpointData | undefined>;
234
+
235
+ /** Returns proposed checkpoint, if set, undefined if not*/
236
+ getProposedCheckpointOnly(): Promise<ProposedCheckpointData | undefined>;
237
+
200
238
  /** Force a sync. */
201
239
  syncImmediate(): Promise<void>;
202
240
 
@@ -228,7 +266,7 @@ export interface L2BlockSource {
228
266
  * @param blockHash - The block hash to retrieve.
229
267
  * @returns The requested block (or undefined if not found).
230
268
  */
231
- getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
269
+ getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
232
270
 
233
271
  /**
234
272
  * Gets a checkpointed block by its archive root.
@@ -280,12 +318,13 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource {
280
318
  * - proven: Proven block on L1.
281
319
  * - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
282
320
  */
283
- export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
321
+ export type L2BlockTag = 'proposed' | 'proposedCheckpoint' | 'checkpointed' | 'proven' | 'finalized';
284
322
 
285
323
  /** Tips of the L2 chain. */
286
324
  export type L2Tips = {
287
325
  proposed: L2BlockId;
288
326
  checkpointed: L2TipId;
327
+ proposedCheckpoint: L2TipId;
289
328
  proven: L2TipId;
290
329
  finalized: L2TipId;
291
330
  };
@@ -330,6 +369,7 @@ const L2TipIdSchema = z.object({
330
369
  export const L2TipsSchema = z.object({
331
370
  proposed: L2BlockIdSchema,
332
371
  checkpointed: L2TipIdSchema,
372
+ proposedCheckpoint: L2TipIdSchema,
333
373
  proven: L2TipIdSchema,
334
374
  finalized: L2TipIdSchema,
335
375
  });