@aztec/stdlib 0.0.1-commit.3469e52 → 0.0.1-commit.381b1a9

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 (509) hide show
  1. package/dest/abi/decoder.d.ts +2 -2
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +7 -5
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +37 -6
  7. package/dest/abi/event_metadata_definition.d.ts +3 -1
  8. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  9. package/dest/abi/event_metadata_definition.js +1 -1
  10. package/dest/abi/function_call.d.ts +39 -9
  11. package/dest/abi/function_call.d.ts.map +1 -1
  12. package/dest/abi/function_call.js +20 -3
  13. package/dest/abi/utils.d.ts +14 -1
  14. package/dest/abi/utils.d.ts.map +1 -1
  15. package/dest/abi/utils.js +15 -0
  16. package/dest/auth_witness/auth_witness.js +3 -3
  17. package/dest/avm/avm.d.ts +300 -300
  18. package/dest/avm/avm_proving_request.d.ts +166 -166
  19. package/dest/avm/revert_code.d.ts +16 -1
  20. package/dest/avm/revert_code.d.ts.map +1 -1
  21. package/dest/avm/revert_code.js +15 -5
  22. package/dest/block/block_data.d.ts +52 -0
  23. package/dest/block/block_data.d.ts.map +1 -0
  24. package/dest/block/block_data.js +12 -0
  25. package/dest/block/block_hash.d.ts +16 -18
  26. package/dest/block/block_hash.d.ts.map +1 -1
  27. package/dest/block/block_hash.js +21 -31
  28. package/dest/block/block_parameter.d.ts +4 -4
  29. package/dest/block/block_parameter.d.ts.map +1 -1
  30. package/dest/block/block_parameter.js +2 -2
  31. package/dest/block/checkpointed_l2_block.d.ts +6 -6
  32. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  33. package/dest/block/checkpointed_l2_block.js +3 -3
  34. package/dest/block/in_block.d.ts +11 -11
  35. package/dest/block/in_block.d.ts.map +1 -1
  36. package/dest/block/in_block.js +5 -5
  37. package/dest/block/index.d.ts +3 -2
  38. package/dest/block/index.d.ts.map +1 -1
  39. package/dest/block/index.js +2 -1
  40. package/dest/block/{l2_block_new.d.ts → l2_block.d.ts} +16 -7
  41. package/dest/block/l2_block.d.ts.map +1 -0
  42. package/dest/block/{l2_block_new.js → l2_block.js} +17 -11
  43. package/dest/block/l2_block_source.d.ts +68 -34
  44. package/dest/block/l2_block_source.d.ts.map +1 -1
  45. package/dest/block/l2_block_stream/interfaces.d.ts +3 -3
  46. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  47. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -3
  48. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  49. package/dest/block/l2_block_stream/l2_block_stream.js +14 -4
  50. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  51. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  52. package/dest/block/test/l2_tips_store_test_suite.js +2 -2
  53. package/dest/checkpoint/checkpoint.d.ts +28 -13
  54. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  55. package/dest/checkpoint/checkpoint.js +35 -19
  56. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  57. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  58. package/dest/checkpoint/checkpoint_data.js +26 -0
  59. package/dest/checkpoint/index.d.ts +3 -1
  60. package/dest/checkpoint/index.d.ts.map +1 -1
  61. package/dest/checkpoint/index.js +2 -0
  62. package/dest/checkpoint/published_checkpoint.d.ts +19 -4
  63. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  64. package/dest/checkpoint/published_checkpoint.js +1 -2
  65. package/dest/checkpoint/validate.d.ts +36 -0
  66. package/dest/checkpoint/validate.d.ts.map +1 -0
  67. package/dest/checkpoint/validate.js +120 -0
  68. package/dest/config/index.d.ts +2 -1
  69. package/dest/config/index.d.ts.map +1 -1
  70. package/dest/config/index.js +1 -0
  71. package/dest/config/node-rpc-config.js +1 -1
  72. package/dest/config/sequencer-config.d.ts +10 -0
  73. package/dest/config/sequencer-config.d.ts.map +1 -0
  74. package/dest/config/sequencer-config.js +23 -0
  75. package/dest/contract/contract_address.js +4 -4
  76. package/dest/contract/contract_class.d.ts +2 -3
  77. package/dest/contract/contract_class.d.ts.map +1 -1
  78. package/dest/contract/contract_class_id.d.ts +2 -2
  79. package/dest/contract/contract_class_id.d.ts.map +1 -1
  80. package/dest/contract/contract_class_id.js +6 -5
  81. package/dest/contract/interfaces/node-info.d.ts +3 -1
  82. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  83. package/dest/contract/interfaces/node-info.js +2 -1
  84. package/dest/contract/private_function.d.ts +1 -1
  85. package/dest/contract/private_function.d.ts.map +1 -1
  86. package/dest/contract/private_function.js +3 -4
  87. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  88. package/dest/contract/private_function_membership_proof.js +1 -1
  89. package/dest/database-version/database_version.d.ts +58 -0
  90. package/dest/database-version/database_version.d.ts.map +1 -0
  91. package/dest/database-version/database_version.js +69 -0
  92. package/dest/database-version/version_manager.d.ts +2 -50
  93. package/dest/database-version/version_manager.d.ts.map +1 -1
  94. package/dest/database-version/version_manager.js +1 -66
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  97. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  98. package/dest/epoch-helpers/index.d.ts +11 -1
  99. package/dest/epoch-helpers/index.d.ts.map +1 -1
  100. package/dest/epoch-helpers/index.js +11 -3
  101. package/dest/file-store/local.d.ts +3 -3
  102. package/dest/file-store/local.d.ts.map +1 -1
  103. package/dest/file-store/local.js +13 -4
  104. package/dest/file-store/s3.d.ts +1 -1
  105. package/dest/file-store/s3.d.ts.map +1 -1
  106. package/dest/file-store/s3.js +11 -3
  107. package/dest/hash/hash.d.ts +2 -1
  108. package/dest/hash/hash.d.ts.map +1 -1
  109. package/dest/hash/hash.js +16 -10
  110. package/dest/hash/map_slot.d.ts +1 -1
  111. package/dest/hash/map_slot.d.ts.map +1 -1
  112. package/dest/hash/map_slot.js +4 -3
  113. package/dest/interfaces/allowed_element.d.ts +26 -20
  114. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  115. package/dest/interfaces/allowed_element.js +8 -8
  116. package/dest/interfaces/archiver.d.ts +1 -1
  117. package/dest/interfaces/archiver.d.ts.map +1 -1
  118. package/dest/interfaces/archiver.js +25 -18
  119. package/dest/interfaces/aztec-node-admin.d.ts +109 -29
  120. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  121. package/dest/interfaces/aztec-node-admin.js +12 -4
  122. package/dest/interfaces/aztec-node.d.ts +60 -62
  123. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  124. package/dest/interfaces/aztec-node.js +18 -19
  125. package/dest/interfaces/block-builder.d.ts +26 -12
  126. package/dest/interfaces/block-builder.d.ts.map +1 -1
  127. package/dest/interfaces/block-builder.js +16 -2
  128. package/dest/interfaces/configs.d.ts +73 -33
  129. package/dest/interfaces/configs.d.ts.map +1 -1
  130. package/dest/interfaces/configs.js +9 -3
  131. package/dest/interfaces/get_logs_response.d.ts +15 -8
  132. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  133. package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
  134. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  135. package/dest/interfaces/p2p.d.ts +4 -9
  136. package/dest/interfaces/p2p.d.ts.map +1 -1
  137. package/dest/interfaces/prover-broker.d.ts +16 -1
  138. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  139. package/dest/interfaces/prover-broker.js +4 -1
  140. package/dest/interfaces/prover-client.d.ts +20 -1
  141. package/dest/interfaces/prover-client.d.ts.map +1 -1
  142. package/dest/interfaces/prover-client.js +18 -1
  143. package/dest/interfaces/proving-job.d.ts +202 -202
  144. package/dest/interfaces/slasher.d.ts +9 -1
  145. package/dest/interfaces/slasher.d.ts.map +1 -1
  146. package/dest/interfaces/slasher.js +2 -0
  147. package/dest/interfaces/tx_provider.d.ts +3 -3
  148. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  149. package/dest/interfaces/validator.d.ts +116 -28
  150. package/dest/interfaces/validator.d.ts.map +1 -1
  151. package/dest/interfaces/validator.js +9 -2
  152. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  153. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  154. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  155. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  156. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  157. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -15
  158. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  159. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  160. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  161. package/dest/kernel/hints/index.d.ts +2 -2
  162. package/dest/kernel/hints/index.js +2 -2
  163. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  164. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  165. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  166. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  167. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  168. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  169. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  170. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  171. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  172. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  173. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  175. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  176. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  178. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  179. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  180. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  181. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  182. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  183. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  184. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  185. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  187. package/dest/kernel/private_validation_requests.d.ts +3 -3
  188. package/dest/kernel/private_validation_requests.js +9 -9
  189. package/dest/keys/derivation.d.ts +3 -3
  190. package/dest/keys/derivation.js +15 -15
  191. package/dest/keys/key_types.d.ts +3 -3
  192. package/dest/keys/key_types.d.ts.map +1 -1
  193. package/dest/keys/public_keys.js +2 -2
  194. package/dest/keys/utils.d.ts +1 -1
  195. package/dest/keys/utils.d.ts.map +1 -1
  196. package/dest/keys/utils.js +8 -4
  197. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  198. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  199. package/dest/l1-contracts/slash_factory.js +1 -0
  200. package/dest/logs/debug_log_store.d.ts +30 -0
  201. package/dest/logs/debug_log_store.d.ts.map +1 -0
  202. package/dest/logs/debug_log_store.js +30 -0
  203. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  204. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  205. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  206. package/dest/logs/extended_public_log.d.ts +13 -7
  207. package/dest/logs/extended_public_log.d.ts.map +1 -1
  208. package/dest/logs/index.d.ts +3 -2
  209. package/dest/logs/index.d.ts.map +1 -1
  210. package/dest/logs/index.js +2 -1
  211. package/dest/logs/log_filter.d.ts +4 -1
  212. package/dest/logs/log_filter.d.ts.map +1 -1
  213. package/dest/logs/log_filter.js +2 -1
  214. package/dest/logs/log_id.d.ts +17 -14
  215. package/dest/logs/log_id.d.ts.map +1 -1
  216. package/dest/logs/log_id.js +20 -17
  217. package/dest/logs/pre_tag.d.ts +16 -11
  218. package/dest/logs/pre_tag.d.ts.map +1 -1
  219. package/dest/logs/pre_tag.js +2 -2
  220. package/dest/logs/private_log.d.ts +2 -2
  221. package/dest/logs/private_log.d.ts.map +1 -1
  222. package/dest/logs/public_log.d.ts +4 -3
  223. package/dest/logs/public_log.d.ts.map +1 -1
  224. package/dest/logs/public_log.js +2 -1
  225. package/dest/logs/siloed_tag.d.ts +5 -3
  226. package/dest/logs/siloed_tag.d.ts.map +1 -1
  227. package/dest/logs/siloed_tag.js +8 -6
  228. package/dest/logs/tag.js +1 -1
  229. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  230. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  231. package/dest/logs/tx_scoped_l2_log.js +7 -0
  232. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  233. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  234. package/dest/messaging/l2_to_l1_membership.js +72 -29
  235. package/dest/note/index.d.ts +1 -2
  236. package/dest/note/index.d.ts.map +1 -1
  237. package/dest/note/index.js +0 -1
  238. package/dest/p2p/attestation_utils.d.ts +11 -1
  239. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  240. package/dest/p2p/attestation_utils.js +45 -0
  241. package/dest/p2p/block_proposal.d.ts +13 -6
  242. package/dest/p2p/block_proposal.d.ts.map +1 -1
  243. package/dest/p2p/block_proposal.js +2 -4
  244. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  245. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  246. package/dest/p2p/checkpoint_attestation.js +1 -1
  247. package/dest/p2p/checkpoint_proposal.d.ts +26 -12
  248. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  249. package/dest/p2p/checkpoint_proposal.js +40 -36
  250. package/dest/p2p/client_type.d.ts +2 -5
  251. package/dest/p2p/client_type.d.ts.map +1 -1
  252. package/dest/p2p/client_type.js +0 -7
  253. package/dest/p2p/consensus_payload.d.ts +12 -3
  254. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  255. package/dest/p2p/consensus_payload.js +22 -15
  256. package/dest/p2p/constants.d.ts +3 -1
  257. package/dest/p2p/constants.d.ts.map +1 -1
  258. package/dest/p2p/constants.js +1 -0
  259. package/dest/p2p/index.d.ts +1 -2
  260. package/dest/p2p/index.d.ts.map +1 -1
  261. package/dest/p2p/index.js +0 -1
  262. package/dest/p2p/message_validator.d.ts +18 -3
  263. package/dest/p2p/message_validator.d.ts.map +1 -1
  264. package/dest/p2p/message_validator.js +2 -1
  265. package/dest/p2p/peer_error.d.ts +3 -1
  266. package/dest/p2p/peer_error.d.ts.map +1 -1
  267. package/dest/p2p/peer_error.js +5 -0
  268. package/dest/p2p/topic_type.d.ts +3 -4
  269. package/dest/p2p/topic_type.d.ts.map +1 -1
  270. package/dest/p2p/topic_type.js +7 -24
  271. package/dest/rollup/checkpoint_header.d.ts +2 -2
  272. package/dest/rollup/checkpoint_header.js +2 -2
  273. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  274. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  275. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  276. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  277. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  278. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  279. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  280. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  281. package/dest/slashing/empire.d.ts +1 -1
  282. package/dest/slashing/empire.d.ts.map +1 -1
  283. package/dest/slashing/empire.js +2 -0
  284. package/dest/slashing/helpers.d.ts +2 -2
  285. package/dest/slashing/helpers.d.ts.map +1 -1
  286. package/dest/slashing/helpers.js +6 -0
  287. package/dest/slashing/tally.d.ts +8 -2
  288. package/dest/slashing/tally.d.ts.map +1 -1
  289. package/dest/slashing/tally.js +35 -3
  290. package/dest/slashing/types.d.ts +7 -3
  291. package/dest/slashing/types.d.ts.map +1 -1
  292. package/dest/slashing/types.js +13 -1
  293. package/dest/stats/stats.d.ts +1 -3
  294. package/dest/stats/stats.d.ts.map +1 -1
  295. package/dest/tests/factories.d.ts +3 -1
  296. package/dest/tests/factories.d.ts.map +1 -1
  297. package/dest/tests/factories.js +22 -14
  298. package/dest/tests/jest.d.ts +4 -4
  299. package/dest/tests/jest.js +9 -9
  300. package/dest/tests/mocks.d.ts +21 -11
  301. package/dest/tests/mocks.d.ts.map +1 -1
  302. package/dest/tests/mocks.js +49 -33
  303. package/dest/timetable/index.d.ts +37 -0
  304. package/dest/timetable/index.d.ts.map +1 -0
  305. package/dest/timetable/index.js +39 -0
  306. package/dest/trees/public_data_leaf.d.ts +2 -1
  307. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  308. package/dest/trees/public_data_leaf.js +7 -6
  309. package/dest/tx/block_header.d.ts +5 -2
  310. package/dest/tx/block_header.d.ts.map +1 -1
  311. package/dest/tx/block_header.js +8 -3
  312. package/dest/tx/global_variables.d.ts +4 -4
  313. package/dest/tx/global_variables.d.ts.map +1 -1
  314. package/dest/tx/in_tx.d.ts +3 -3
  315. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  316. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  317. package/dest/tx/indexed_tx_effect.js +3 -2
  318. package/dest/tx/profiling.d.ts +4 -4
  319. package/dest/tx/profiling.d.ts.map +1 -1
  320. package/dest/tx/profiling.js +3 -3
  321. package/dest/tx/protocol_contracts.d.ts +1 -1
  322. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  323. package/dest/tx/protocol_contracts.js +2 -2
  324. package/dest/tx/public_simulation_output.d.ts +4 -2
  325. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  326. package/dest/tx/public_simulation_output.js +7 -3
  327. package/dest/tx/simulated_tx.d.ts +5 -2
  328. package/dest/tx/simulated_tx.d.ts.map +1 -1
  329. package/dest/tx/simulated_tx.js +4 -1
  330. package/dest/tx/tx.d.ts +6 -5
  331. package/dest/tx/tx.d.ts.map +1 -1
  332. package/dest/tx/tx.js +18 -6
  333. package/dest/tx/tx_receipt.d.ts +63 -16
  334. package/dest/tx/tx_receipt.d.ts.map +1 -1
  335. package/dest/tx/tx_receipt.js +59 -17
  336. package/dest/tx/tx_request.js +2 -2
  337. package/dest/tx/validator/empty_validator.d.ts +2 -2
  338. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  339. package/dest/tx/validator/error_texts.d.ts +8 -2
  340. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  341. package/dest/tx/validator/error_texts.js +8 -1
  342. package/dest/tx/validator/tx_validator.d.ts +2 -2
  343. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  344. package/dest/update-checker/index.d.ts +3 -2
  345. package/dest/update-checker/index.d.ts.map +1 -1
  346. package/dest/update-checker/index.js +2 -1
  347. package/dest/update-checker/package_version.d.ts +3 -0
  348. package/dest/update-checker/package_version.d.ts.map +1 -0
  349. package/dest/update-checker/package_version.js +24 -0
  350. package/dest/update-checker/version_checker.d.ts +25 -0
  351. package/dest/update-checker/version_checker.d.ts.map +1 -0
  352. package/dest/update-checker/version_checker.js +50 -0
  353. package/dest/validators/errors.d.ts +6 -1
  354. package/dest/validators/errors.d.ts.map +1 -1
  355. package/dest/validators/errors.js +7 -0
  356. package/dest/validators/schemas.d.ts +30 -30
  357. package/dest/validators/schemas.d.ts.map +1 -1
  358. package/dest/validators/schemas.js +4 -3
  359. package/dest/validators/types.d.ts +3 -3
  360. package/dest/validators/types.d.ts.map +1 -1
  361. package/dest/versioning/versioning.d.ts +4 -2
  362. package/dest/versioning/versioning.d.ts.map +1 -1
  363. package/dest/versioning/versioning.js +4 -1
  364. package/package.json +25 -13
  365. package/src/abi/decoder.ts +15 -6
  366. package/src/abi/encoder.ts +49 -6
  367. package/src/abi/event_metadata_definition.ts +2 -0
  368. package/src/abi/function_call.ts +25 -3
  369. package/src/abi/utils.ts +25 -0
  370. package/src/auth_witness/auth_witness.ts +3 -3
  371. package/src/avm/revert_code.ts +15 -0
  372. package/src/block/block_data.ts +26 -0
  373. package/src/block/block_hash.ts +26 -47
  374. package/src/block/block_parameter.ts +3 -3
  375. package/src/block/checkpointed_l2_block.ts +4 -4
  376. package/src/block/in_block.ts +8 -8
  377. package/src/block/index.ts +2 -1
  378. package/src/block/{l2_block_new.ts → l2_block.ts} +21 -13
  379. package/src/block/l2_block_source.ts +73 -35
  380. package/src/block/l2_block_stream/interfaces.ts +2 -2
  381. package/src/block/l2_block_stream/l2_block_stream.ts +26 -6
  382. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  383. package/src/block/test/l2_tips_store_test_suite.ts +4 -4
  384. package/src/checkpoint/checkpoint.ts +49 -22
  385. package/src/checkpoint/checkpoint_data.ts +51 -0
  386. package/src/checkpoint/index.ts +2 -0
  387. package/src/checkpoint/published_checkpoint.ts +3 -1
  388. package/src/checkpoint/validate.ts +230 -0
  389. package/src/config/index.ts +1 -0
  390. package/src/config/node-rpc-config.ts +1 -1
  391. package/src/config/sequencer-config.ts +34 -0
  392. package/src/contract/contract_address.ts +4 -4
  393. package/src/contract/contract_class.ts +3 -3
  394. package/src/contract/contract_class_id.ts +6 -5
  395. package/src/contract/interfaces/node-info.ts +3 -0
  396. package/src/contract/private_function.ts +3 -4
  397. package/src/contract/private_function_membership_proof.ts +1 -1
  398. package/src/database-version/database_version.ts +87 -0
  399. package/src/database-version/version_manager.ts +1 -77
  400. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  401. package/src/epoch-helpers/index.ts +16 -1
  402. package/src/file-store/local.ts +15 -5
  403. package/src/file-store/s3.ts +12 -3
  404. package/src/hash/hash.ts +14 -10
  405. package/src/hash/map_slot.ts +3 -2
  406. package/src/interfaces/allowed_element.ts +29 -9
  407. package/src/interfaces/archiver.ts +25 -27
  408. package/src/interfaces/aztec-node-admin.ts +26 -2
  409. package/src/interfaces/aztec-node.ts +91 -117
  410. package/src/interfaces/block-builder.ts +45 -12
  411. package/src/interfaces/configs.ts +34 -11
  412. package/src/interfaces/merkle_tree_operations.ts +9 -19
  413. package/src/interfaces/p2p.ts +3 -14
  414. package/src/interfaces/prover-broker.ts +22 -0
  415. package/src/interfaces/prover-client.ts +30 -0
  416. package/src/interfaces/slasher.ts +4 -0
  417. package/src/interfaces/tx_provider.ts +2 -2
  418. package/src/interfaces/validator.ts +31 -7
  419. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  420. package/src/kernel/hints/build_nullifier_read_request_hints.ts +16 -28
  421. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  422. package/src/kernel/hints/index.ts +2 -2
  423. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  424. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  425. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  426. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  427. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  428. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  429. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  430. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  431. package/src/kernel/private_validation_requests.ts +8 -8
  432. package/src/keys/derivation.ts +15 -15
  433. package/src/keys/key_types.ts +6 -2
  434. package/src/keys/public_keys.ts +2 -2
  435. package/src/keys/utils.ts +8 -4
  436. package/src/l1-contracts/slash_factory.ts +1 -0
  437. package/src/logs/debug_log_store.ts +54 -0
  438. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  439. package/src/logs/index.ts +2 -1
  440. package/src/logs/log_filter.ts +5 -0
  441. package/src/logs/log_id.ts +22 -18
  442. package/src/logs/pre_tag.ts +5 -5
  443. package/src/logs/public_log.ts +4 -2
  444. package/src/logs/siloed_tag.ts +10 -4
  445. package/src/logs/tag.ts +1 -1
  446. package/src/logs/tx_scoped_l2_log.ts +16 -0
  447. package/src/messaging/l2_to_l1_membership.ts +101 -36
  448. package/src/note/index.ts +0 -1
  449. package/src/p2p/attestation_utils.ts +56 -0
  450. package/src/p2p/block_proposal.ts +12 -7
  451. package/src/p2p/checkpoint_attestation.ts +6 -1
  452. package/src/p2p/checkpoint_proposal.ts +75 -50
  453. package/src/p2p/client_type.ts +0 -6
  454. package/src/p2p/consensus_payload.ts +25 -12
  455. package/src/p2p/constants.ts +3 -0
  456. package/src/p2p/index.ts +0 -1
  457. package/src/p2p/message_validator.ts +14 -2
  458. package/src/p2p/peer_error.ts +7 -0
  459. package/src/p2p/topic_type.ts +8 -15
  460. package/src/rollup/checkpoint_header.ts +2 -2
  461. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  462. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  463. package/src/slashing/empire.ts +3 -1
  464. package/src/slashing/helpers.ts +8 -0
  465. package/src/slashing/tally.ts +41 -2
  466. package/src/slashing/types.ts +14 -0
  467. package/src/stats/stats.ts +0 -2
  468. package/src/tests/factories.ts +27 -18
  469. package/src/tests/jest.ts +9 -9
  470. package/src/tests/mocks.ts +71 -36
  471. package/src/timetable/index.ts +66 -0
  472. package/src/trees/public_data_leaf.ts +11 -5
  473. package/src/tx/block_header.ts +14 -5
  474. package/src/tx/global_variables.ts +3 -3
  475. package/src/tx/indexed_tx_effect.ts +3 -2
  476. package/src/tx/profiling.ts +5 -5
  477. package/src/tx/protocol_contracts.ts +2 -2
  478. package/src/tx/public_simulation_output.ts +4 -0
  479. package/src/tx/simulated_tx.ts +8 -1
  480. package/src/tx/tx.ts +20 -11
  481. package/src/tx/tx_receipt.ts +91 -19
  482. package/src/tx/tx_request.ts +2 -2
  483. package/src/tx/validator/empty_validator.ts +1 -1
  484. package/src/tx/validator/error_texts.ts +9 -1
  485. package/src/tx/validator/tx_validator.ts +1 -1
  486. package/src/update-checker/index.ts +2 -1
  487. package/src/update-checker/package_version.ts +30 -0
  488. package/src/update-checker/version_checker.ts +65 -0
  489. package/src/validators/errors.ts +9 -0
  490. package/src/validators/schemas.ts +8 -1
  491. package/src/validators/types.ts +5 -4
  492. package/src/versioning/versioning.ts +4 -1
  493. package/dest/block/l2_block_new.d.ts.map +0 -1
  494. package/dest/database-version/index.d.ts +0 -2
  495. package/dest/database-version/index.d.ts.map +0 -1
  496. package/dest/database-version/index.js +0 -1
  497. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  498. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  499. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  500. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  501. package/dest/note/notes_filter.d.ts +0 -27
  502. package/dest/note/notes_filter.d.ts.map +0 -1
  503. package/dest/note/notes_filter.js +0 -11
  504. package/dest/update-checker/update-checker.d.ts +0 -49
  505. package/dest/update-checker/update-checker.d.ts.map +0 -1
  506. package/dest/update-checker/update-checker.js +0 -130
  507. package/src/database-version/index.ts +0 -1
  508. package/src/note/notes_filter.ts +0 -38
  509. package/src/update-checker/update-checker.ts +0 -166
@@ -19,13 +19,12 @@ export class L2BlockStream {
19
19
  constructor(
20
20
  private l2BlockSource: Pick<
21
21
  L2BlockSource,
22
- 'getL2BlocksNew' | 'getBlockHeader' | 'getL2Tips' | 'getPublishedCheckpoints' | 'getCheckpointedBlocks'
22
+ 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
23
23
  >,
24
24
  private localData: L2BlockStreamLocalDataProvider,
25
25
  private handler: L2BlockStreamEventHandler,
26
26
  private readonly log = createLogger('types:block_stream'),
27
27
  private opts: {
28
- proven?: boolean;
29
28
  pollIntervalMS?: number;
30
29
  batchSize?: number;
31
30
  startingBlock?: number;
@@ -110,6 +109,27 @@ export class L2BlockStream {
110
109
 
111
110
  let nextBlockNumber = latestBlockNumber + 1;
112
111
  let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
112
+
113
+ // When startingBlock is set, also skip ahead for checkpoints.
114
+ if (
115
+ this.opts.startingBlock !== undefined &&
116
+ this.opts.startingBlock >= 1 &&
117
+ nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number
118
+ ) {
119
+ const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(
120
+ BlockNumber(this.opts.startingBlock),
121
+ 1,
122
+ );
123
+ if (startingBlockCheckpoints.length > 0) {
124
+ nextCheckpointToEmit = CheckpointNumber(
125
+ Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber),
126
+ );
127
+ } else {
128
+ // startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
129
+ nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
130
+ }
131
+ }
132
+
113
133
  if (this.opts.skipFinalized) {
114
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
115
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
@@ -129,7 +149,7 @@ export class L2BlockStream {
129
149
  if (!this.opts.ignoreCheckpoints) {
130
150
  let loop1Iterations = 0;
131
151
  while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
132
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointToEmit, 1);
152
+ const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
133
153
  if (checkpoints.length === 0) {
134
154
  break;
135
155
  }
@@ -174,7 +194,7 @@ export class L2BlockStream {
174
194
  // Refill the prefetch buffer when exhausted
175
195
  if (prefetchIdx >= prefetchedCheckpoints.length) {
176
196
  const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
177
- prefetchedCheckpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointNumber, prefetchLimit);
197
+ prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
178
198
  prefetchIdx = 0;
179
199
  if (prefetchedCheckpoints.length === 0) {
180
200
  break;
@@ -213,8 +233,8 @@ export class L2BlockStream {
213
233
  // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
214
234
  while (nextBlockNumber <= sourceTips.proposed.number) {
215
235
  const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
216
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit} proven=${this.opts.proven}`);
217
- const blocks = await this.l2BlockSource.getL2BlocksNew(BlockNumber(nextBlockNumber), limit, this.opts.proven);
236
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
237
+ const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
218
238
  if (blocks.length === 0) {
219
239
  break;
220
240
  }
@@ -2,7 +2,7 @@ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
2
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
3
 
4
4
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
5
- import type { L2BlockNew } from '../l2_block_new.js';
5
+ import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
8
8
  GENESIS_CHECKPOINT_HEADER_HASH,
@@ -109,7 +109,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
109
109
  }
110
110
 
111
111
  // Protected helper that subclasses can override for block hash computation
112
- protected computeBlockHash(block: L2BlockNew): Promise<string> {
112
+ protected computeBlockHash(block: L2Block): Promise<string> {
113
113
  return block.hash().then(hash => hash.toString());
114
114
  }
115
115
 
@@ -5,8 +5,8 @@ import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import {
6
6
  type CheckpointId,
7
7
  GENESIS_CHECKPOINT_HEADER_HASH,
8
+ L2Block,
8
9
  type L2BlockId,
9
- L2BlockNew,
10
10
  type L2TipId,
11
11
  } from '@aztec/stdlib/block';
12
12
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
@@ -31,8 +31,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
31
31
  blockToCheckpoint.clear();
32
32
  });
33
33
 
34
- const makeBlock = async (number: number): Promise<L2BlockNew> => {
35
- const block = await L2BlockNew.random(BlockNumber(number));
34
+ const makeBlock = async (number: number): Promise<L2Block> => {
35
+ const block = await L2Block.random(BlockNumber(number));
36
36
  blockHashes.set(number, (await block.hash()).toString());
37
37
  return block;
38
38
  };
@@ -74,7 +74,7 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
74
74
  checkpointed: makeTipId(checkpointed),
75
75
  });
76
76
 
77
- const makeCheckpoint = async (checkpointNumber: number, blocks: L2BlockNew[]): Promise<PublishedCheckpoint> => {
77
+ const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
78
78
  const checkpoint = await Checkpoint.random(CheckpointNumber(checkpointNumber), {
79
79
  numBlocks: blocks.length,
80
80
  startBlockNumber: blocks[0].number,
@@ -6,17 +6,18 @@ import {
6
6
  IndexWithinCheckpoint,
7
7
  SlotNumber,
8
8
  } from '@aztec/foundation/branded-types';
9
- import { sum } from '@aztec/foundation/collection';
9
+ import { pick, sum } from '@aztec/foundation/collection';
10
10
  import { Fr } from '@aztec/foundation/curves/bn254';
11
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
11
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
12
12
  import type { FieldsOf } from '@aztec/foundation/types';
13
13
 
14
14
  import { z } from 'zod';
15
15
 
16
- import { L2BlockNew } from '../block/l2_block_new.js';
16
+ import { L2Block } from '../block/l2_block.js';
17
17
  import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
18
18
  import { computeCheckpointOutHash } from '../messaging/out_hash.js';
19
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
+ import { schemas } from '../schemas/schemas.js';
20
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
21
22
  import type { CheckpointInfo } from './checkpoint_info.js';
22
23
 
@@ -29,9 +30,11 @@ export class Checkpoint {
29
30
  /** Header of the checkpoint. */
30
31
  public header: CheckpointHeader,
31
32
  /** L2 blocks in the checkpoint. */
32
- public blocks: L2BlockNew[],
33
+ public blocks: L2Block[],
33
34
  /** Number of the checkpoint. */
34
35
  public number: CheckpointNumber,
36
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
37
+ public feeAssetPriceModifier: bigint = 0n,
35
38
  ) {}
36
39
 
37
40
  get slot(): SlotNumber {
@@ -43,10 +46,14 @@ export class Checkpoint {
43
46
  .object({
44
47
  archive: AppendOnlyTreeSnapshot.schema,
45
48
  header: CheckpointHeader.schema,
46
- blocks: z.array(L2BlockNew.schema),
49
+ blocks: z.array(L2Block.schema),
47
50
  number: CheckpointNumberSchema,
51
+ feeAssetPriceModifier: schemas.BigInt,
48
52
  })
49
- .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
53
+ .transform(
54
+ ({ archive, header, blocks, number, feeAssetPriceModifier }) =>
55
+ new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier),
56
+ );
50
57
  }
51
58
 
52
59
  static from(fields: FieldsOfCheckpoint) {
@@ -54,21 +61,28 @@ export class Checkpoint {
54
61
  }
55
62
 
56
63
  static getFields(fields: FieldsOfCheckpoint) {
57
- return [fields.archive, fields.header, fields.blocks, fields.number] as const;
64
+ return [fields.archive, fields.header, fields.blocks, fields.number, fields.feeAssetPriceModifier] as const;
58
65
  }
59
66
 
60
67
  static fromBuffer(buf: Buffer | BufferReader) {
61
68
  const reader = BufferReader.asReader(buf);
62
- return new Checkpoint(
63
- reader.readObject(AppendOnlyTreeSnapshot),
64
- reader.readObject(CheckpointHeader),
65
- reader.readVector(L2BlockNew, MAX_BLOCKS_PER_CHECKPOINT),
66
- CheckpointNumber(reader.readNumber()),
67
- );
69
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
70
+ const header = reader.readObject(CheckpointHeader);
71
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
72
+ const number = CheckpointNumber(reader.readNumber());
73
+ const feeAssetPriceModifier = reader.readInt256();
74
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
68
75
  }
69
76
 
70
77
  public toBuffer() {
71
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
78
+ return serializeToBuffer(
79
+ this.archive,
80
+ this.header,
81
+ this.blocks.length,
82
+ this.blocks,
83
+ this.number,
84
+ serializeSignedBigInt(this.feeAssetPriceModifier),
85
+ );
72
86
  }
73
87
 
74
88
  public toBlobFields(): Fr[] {
@@ -80,9 +94,11 @@ export class Checkpoint {
80
94
  return this.header.hash();
81
95
  }
82
96
 
83
- // Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
84
- // Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
85
- // checkpoints up to and including this one in the epoch.
97
+ /**
98
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
99
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
100
+ * checkpoints up to and including this one in the epoch.
101
+ */
86
102
  public getCheckpointOutHash(): Fr {
87
103
  const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
88
104
  return computeCheckpointOutHash(msgs);
@@ -129,30 +145,41 @@ export class Checkpoint {
129
145
  numBlocks = 1,
130
146
  startBlockNumber = 1,
131
147
  previousArchive,
148
+ feeAssetPriceModifier = 0n,
132
149
  ...options
133
150
  }: {
134
151
  numBlocks?: number;
135
152
  startBlockNumber?: number;
136
153
  previousArchive?: AppendOnlyTreeSnapshot;
154
+ feeAssetPriceModifier?: bigint;
155
+ archive?: AppendOnlyTreeSnapshot;
137
156
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
138
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
157
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
139
158
  ) {
140
- const header = CheckpointHeader.random(options);
159
+ const headerOptions = previousArchive ? { lastArchiveRoot: previousArchive.root, ...options } : options;
160
+ const header = CheckpointHeader.random(headerOptions);
141
161
 
142
162
  // Create blocks sequentially to chain archive roots properly.
143
163
  // Each block's header.lastArchive must equal the previous block's archive.
144
- const blocks: L2BlockNew[] = [];
164
+ const blocks: L2Block[] = [];
145
165
  let lastArchive = previousArchive;
146
166
  for (let i = 0; i < numBlocks; i++) {
147
- const block = await L2BlockNew.random(BlockNumber(startBlockNumber + i), {
167
+ const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
148
168
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
149
169
  ...options,
150
170
  ...(lastArchive ? { lastArchive } : {}),
171
+ ...pick(header, 'slotNumber', 'timestamp', 'coinbase', 'feeRecipient', 'gasFees'),
151
172
  });
152
173
  lastArchive = block.archive;
153
174
  blocks.push(block);
154
175
  }
155
176
 
156
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
177
+ return new Checkpoint(
178
+ options.archive ?? AppendOnlyTreeSnapshot.random(),
179
+ header,
180
+ blocks,
181
+ checkpointNumber,
182
+ feeAssetPriceModifier,
183
+ );
157
184
  }
158
185
  }
@@ -0,0 +1,51 @@
1
+ import {
2
+ BlockNumber,
3
+ BlockNumberSchema,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ } from '@aztec/foundation/branded-types';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { schemas } from '@aztec/foundation/schemas';
9
+
10
+ import { z } from 'zod';
11
+
12
+ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
13
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
+ import { L1PublishedData } from './published_checkpoint.js';
16
+
17
+ /** Lightweight checkpoint metadata without full block data. */
18
+ export type CheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ archive: AppendOnlyTreeSnapshot;
22
+ checkpointOutHash: Fr;
23
+ startBlock: BlockNumber;
24
+ blockCount: number;
25
+ attestations: CommitteeAttestation[];
26
+ l1: L1PublishedData;
27
+ };
28
+
29
+ export const CheckpointDataSchema = z
30
+ .object({
31
+ checkpointNumber: CheckpointNumberSchema,
32
+ header: CheckpointHeader.schema,
33
+ archive: AppendOnlyTreeSnapshot.schema,
34
+ checkpointOutHash: schemas.Fr,
35
+ startBlock: BlockNumberSchema,
36
+ blockCount: schemas.Integer,
37
+ attestations: z.array(CommitteeAttestation.schema),
38
+ l1: L1PublishedData.schema,
39
+ })
40
+ .transform(
41
+ (obj): CheckpointData => ({
42
+ checkpointNumber: obj.checkpointNumber,
43
+ header: obj.header,
44
+ archive: obj.archive,
45
+ checkpointOutHash: obj.checkpointOutHash,
46
+ startBlock: obj.startBlock,
47
+ blockCount: obj.blockCount,
48
+ attestations: obj.attestations,
49
+ l1: obj.l1,
50
+ }),
51
+ );
@@ -1,3 +1,5 @@
1
1
  export * from './checkpoint.js';
2
+ export * from './checkpoint_data.js';
2
3
  export * from './checkpoint_info.js';
3
4
  export * from './published_checkpoint.js';
5
+ export * from './validate.js';
@@ -55,9 +55,11 @@ export class L1PublishedData {
55
55
 
56
56
  export class PublishedCheckpoint {
57
57
  constructor(
58
+ /** The checkpoint itself. */
58
59
  public checkpoint: Checkpoint,
60
+ /** Info on when this checkpoint was published on L1. */
59
61
  public l1: L1PublishedData,
60
- // The attestations for the last block in the checkpoint.
62
+ /** The attestations for the last block in the checkpoint. */
61
63
  public attestations: CommitteeAttestation[],
62
64
  ) {}
63
65
 
@@ -0,0 +1,230 @@
1
+ import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT } from '@aztec/constants';
2
+ import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { sum } from '@aztec/foundation/collection';
4
+
5
+ import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
6
+ import type { Checkpoint } from './checkpoint.js';
7
+
8
+ export class CheckpointValidationError extends Error {
9
+ constructor(
10
+ message: string,
11
+ public readonly checkpointNumber: CheckpointNumber,
12
+ public readonly slot: SlotNumber,
13
+ ) {
14
+ super(message);
15
+ this.name = 'CheckpointValidationError';
16
+ }
17
+ }
18
+
19
+ /**
20
+ * Validates a checkpoint. Throws a CheckpointValidationError if any validation fails.
21
+ * - Validates structural integrity (non-empty, block count, sequential numbers, archive chaining, slot consistency)
22
+ * - Validates checkpoint blob field count against maxBlobFields limit
23
+ * - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit
24
+ * - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT
25
+ * - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits
26
+ */
27
+ export function validateCheckpoint(
28
+ checkpoint: Checkpoint,
29
+ opts: {
30
+ rollupManaLimit?: number;
31
+ maxL2BlockGas?: number;
32
+ maxDABlockGas?: number;
33
+ maxTxsPerCheckpoint?: number;
34
+ maxTxsPerBlock?: number;
35
+ },
36
+ ): void {
37
+ validateCheckpointStructure(checkpoint);
38
+ validateCheckpointLimits(checkpoint, opts);
39
+ validateCheckpointBlocksGasLimits(checkpoint, opts);
40
+ }
41
+
42
+ /**
43
+ * Validates structural integrity of a checkpoint.
44
+ * - Non-empty block list
45
+ * - Block count within MAX_BLOCKS_PER_CHECKPOINT
46
+ * - Checkpoint slot matches the first block's slot
47
+ * - Checkpoint lastArchiveRoot matches the first block's lastArchive root
48
+ * - Sequential block numbers without gaps
49
+ * - Sequential indexWithinCheckpoint starting at 0
50
+ * - Archive root chaining between consecutive blocks
51
+ * - Consistent slot number across all blocks
52
+ * - Global variables (slot, timestamp, coinbase, feeRecipient, gasFees) match checkpoint header for each block
53
+ */
54
+ export function validateCheckpointStructure(checkpoint: Checkpoint): void {
55
+ const { blocks, number, slot } = checkpoint;
56
+
57
+ if (blocks.length === 0) {
58
+ throw new CheckpointValidationError('Checkpoint has no blocks', number, slot);
59
+ }
60
+
61
+ if (blocks.length > MAX_BLOCKS_PER_CHECKPOINT) {
62
+ throw new CheckpointValidationError(
63
+ `Checkpoint has ${blocks.length} blocks, exceeding limit of ${MAX_BLOCKS_PER_CHECKPOINT}`,
64
+ number,
65
+ slot,
66
+ );
67
+ }
68
+
69
+ const firstBlock = blocks[0];
70
+
71
+ if (!checkpoint.header.lastArchiveRoot.equals(firstBlock.header.lastArchive.root)) {
72
+ throw new CheckpointValidationError(
73
+ `Checkpoint lastArchiveRoot does not match first block's lastArchive root`,
74
+ number,
75
+ slot,
76
+ );
77
+ }
78
+
79
+ for (let i = 0; i < blocks.length; i++) {
80
+ const block = blocks[i];
81
+
82
+ if (block.indexWithinCheckpoint !== i) {
83
+ throw new CheckpointValidationError(
84
+ `Block at index ${i} has indexWithinCheckpoint ${block.indexWithinCheckpoint}, expected ${i}`,
85
+ number,
86
+ slot,
87
+ );
88
+ }
89
+
90
+ if (block.slot !== slot) {
91
+ throw new CheckpointValidationError(
92
+ `Block ${block.number} has slot ${block.slot}, expected ${slot} (all blocks must share the same slot)`,
93
+ number,
94
+ slot,
95
+ );
96
+ }
97
+
98
+ if (!checkpoint.header.matchesGlobalVariables(block.header.globalVariables)) {
99
+ throw new CheckpointValidationError(
100
+ `Block ${block.number} global variables (slot, timestamp, coinbase, feeRecipient, gasFees) do not match checkpoint header`,
101
+ number,
102
+ slot,
103
+ );
104
+ }
105
+
106
+ if (i > 0) {
107
+ const prev = blocks[i - 1];
108
+ if (block.number !== prev.number + 1) {
109
+ throw new CheckpointValidationError(
110
+ `Block numbers are not sequential: block at index ${i - 1} has number ${prev.number}, block at index ${i} has number ${block.number}`,
111
+ number,
112
+ slot,
113
+ );
114
+ }
115
+
116
+ if (!block.header.lastArchive.root.equals(prev.archive.root)) {
117
+ throw new CheckpointValidationError(
118
+ `Block ${block.number} lastArchive root does not match archive root of block ${prev.number}`,
119
+ number,
120
+ slot,
121
+ );
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ /** Validates checkpoint blocks gas limits */
128
+ function validateCheckpointBlocksGasLimits(
129
+ checkpoint: Checkpoint,
130
+ opts: {
131
+ maxL2BlockGas?: number;
132
+ maxDABlockGas?: number;
133
+ maxTxsPerBlock?: number;
134
+ },
135
+ ): void {
136
+ const { maxL2BlockGas, maxDABlockGas, maxTxsPerBlock } = opts;
137
+
138
+ if (maxL2BlockGas !== undefined) {
139
+ for (const block of checkpoint.blocks) {
140
+ const blockL2Gas = block.header.totalManaUsed.toNumber();
141
+ if (blockL2Gas > maxL2BlockGas) {
142
+ throw new CheckpointValidationError(
143
+ `Block ${block.number} in checkpoint has L2 gas used ${blockL2Gas} exceeding limit of ${maxL2BlockGas}`,
144
+ checkpoint.number,
145
+ checkpoint.slot,
146
+ );
147
+ }
148
+ }
149
+ }
150
+
151
+ if (maxDABlockGas !== undefined) {
152
+ for (const block of checkpoint.blocks) {
153
+ const blockDAGas = block.computeDAGasUsed();
154
+ if (blockDAGas > maxDABlockGas) {
155
+ throw new CheckpointValidationError(
156
+ `Block ${block.number} in checkpoint has DA gas used ${blockDAGas} exceeding limit of ${maxDABlockGas}`,
157
+ checkpoint.number,
158
+ checkpoint.slot,
159
+ );
160
+ }
161
+ }
162
+ }
163
+
164
+ if (maxTxsPerBlock !== undefined) {
165
+ for (const block of checkpoint.blocks) {
166
+ const blockTxCount = block.body.txEffects.length;
167
+ if (blockTxCount > maxTxsPerBlock) {
168
+ throw new CheckpointValidationError(
169
+ `Block ${block.number} in checkpoint has ${blockTxCount} txs exceeding limit of ${maxTxsPerBlock}`,
170
+ checkpoint.number,
171
+ checkpoint.slot,
172
+ );
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ /** Validates checkpoint max blob fields, gas limits, and tx limits */
179
+ function validateCheckpointLimits(
180
+ checkpoint: Checkpoint,
181
+ opts: {
182
+ rollupManaLimit?: number;
183
+ maxTxsPerCheckpoint?: number;
184
+ },
185
+ ): void {
186
+ const { rollupManaLimit, maxTxsPerCheckpoint } = opts;
187
+
188
+ const maxBlobFields = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
189
+ const maxDAGas = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
190
+
191
+ if (rollupManaLimit !== undefined) {
192
+ const checkpointMana = sum(checkpoint.blocks.map(block => block.header.totalManaUsed.toNumber()));
193
+ if (checkpointMana > rollupManaLimit) {
194
+ throw new CheckpointValidationError(
195
+ `Checkpoint mana cost ${checkpointMana} exceeds rollup limit of ${rollupManaLimit}`,
196
+ checkpoint.number,
197
+ checkpoint.slot,
198
+ );
199
+ }
200
+ }
201
+
202
+ const checkpointDAGas = sum(checkpoint.blocks.map(block => block.computeDAGasUsed()));
203
+ if (checkpointDAGas > maxDAGas) {
204
+ throw new CheckpointValidationError(
205
+ `Checkpoint DA gas cost ${checkpointDAGas} exceeds limit of ${maxDAGas}`,
206
+ checkpoint.number,
207
+ checkpoint.slot,
208
+ );
209
+ }
210
+
211
+ const checkpointBlobFields = checkpoint.toBlobFields().length;
212
+ if (checkpointBlobFields > maxBlobFields) {
213
+ throw new CheckpointValidationError(
214
+ `Checkpoint blob field count ${checkpointBlobFields} exceeds limit of ${maxBlobFields}`,
215
+ checkpoint.number,
216
+ checkpoint.slot,
217
+ );
218
+ }
219
+
220
+ if (maxTxsPerCheckpoint !== undefined) {
221
+ const checkpointTxCount = sum(checkpoint.blocks.map(block => block.body.txEffects.length));
222
+ if (checkpointTxCount > maxTxsPerCheckpoint) {
223
+ throw new CheckpointValidationError(
224
+ `Checkpoint tx count ${checkpointTxCount} exceeds limit of ${maxTxsPerCheckpoint}`,
225
+ checkpoint.number,
226
+ checkpoint.slot,
227
+ );
228
+ }
229
+ }
230
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
+ export * from './sequencer-config.js';
@@ -21,7 +21,7 @@ export const nodeRpcConfigMappings: ConfigMappingsType<NodeRPCConfig> = {
21
21
  rpcMaxBodySize: {
22
22
  env: 'RPC_MAX_BODY_SIZE',
23
23
  description: 'Maximum allowed batch size for JSON RPC batch requests.',
24
- defaultValue: '50mb',
24
+ defaultValue: '1mb',
25
25
  },
26
26
  };
27
27
 
@@ -0,0 +1,34 @@
1
+ import type { ConfigMappingsType } from '@aztec/foundation/config';
2
+
3
+ import type { SequencerConfig } from '../interfaces/configs.js';
4
+
5
+ /**
6
+ * Partial sequencer config mappings for fields that need to be shared across packages.
7
+ * The full sequencer config mappings remain in sequencer-client, but shared fields
8
+ * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
9
+ * to avoid duplication.
10
+ */
11
+ export const sharedSequencerConfigMappings: ConfigMappingsType<
12
+ Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>
13
+ > = {
14
+ blockDurationMs: {
15
+ env: 'SEQ_BLOCK_DURATION_MS',
16
+ description:
17
+ 'Duration per block in milliseconds when building multiple blocks per slot. ' +
18
+ 'If undefined (default), builds a single block per slot using the full slot duration.',
19
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
20
+ },
21
+ expectedBlockProposalsPerSlot: {
22
+ env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
23
+ description:
24
+ 'Expected number of block proposals per slot for P2P peer scoring. ' +
25
+ '0 (default) disables block proposal scoring. Set to a positive value to enable.',
26
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : 0),
27
+ defaultValue: 0,
28
+ },
29
+ maxTxsPerBlock: {
30
+ env: 'SEQ_MAX_TX_PER_BLOCK',
31
+ description: 'The maximum number of txs to include in a block.',
32
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
33
+ },
34
+ };
@@ -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
 
@@ -44,7 +44,7 @@ export async function computePartialAddress(
44
44
 
45
45
  return poseidon2HashWithSeparator(
46
46
  [instance.originalContractClassId, saltedInitializationHash],
47
- GeneratorIndex.PARTIAL_ADDRESS,
47
+ DomainSeparator.PARTIAL_ADDRESS,
48
48
  );
49
49
  }
50
50
 
@@ -57,7 +57,7 @@ export function computeSaltedInitializationHash(
57
57
  ): Promise<Fr> {
58
58
  return poseidon2HashWithSeparator(
59
59
  [instance.salt, instance.initializationHash, instance.deployer],
60
- GeneratorIndex.PARTIAL_ADDRESS,
60
+ DomainSeparator.PARTIAL_ADDRESS,
61
61
  );
62
62
  }
63
63
 
@@ -87,5 +87,5 @@ export async function computeInitializationHashFromEncodedArgs(
87
87
  encodedArgs: Fr[],
88
88
  ): Promise<Fr> {
89
89
  const argsHash = await computeVarArgsHash(encodedArgs);
90
- return poseidon2HashWithSeparator([initFn, argsHash], GeneratorIndex.CONSTRUCTOR);
90
+ return poseidon2HashWithSeparator([initFn, argsHash], DomainSeparator.INITIALIZER);
91
91
  }
@@ -8,7 +8,7 @@ import { type ContractClassIdPreimage, computeContractClassIdWithPreimage } from
8
8
  import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
9
9
 
10
10
  /** Contract artifact including its artifact hash */
11
- type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
11
+ export type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
12
12
 
13
13
  const cmpFunctionArtifacts = <T extends { selector: FunctionSelector }>(a: T, b: T) =>
14
14
  a.selector.toField().cmp(b.selector.toField());
@@ -35,8 +35,8 @@ export async function getContractClassFromArtifact(
35
35
 
36
36
  privateArtifactFunctions.sort(cmpFunctionArtifacts);
37
37
 
38
- const contractClass: ContractClass = {
39
- version: 1,
38
+ const contractClass = {
39
+ version: 1 as const,
40
40
  artifactHash,
41
41
  packedBytecode,
42
42
  privateFunctions: privateArtifactFunctions,