@aztec/stdlib 0.0.1-commit.6d3c34e → 0.0.1-commit.7ac86ea28

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 (632) hide show
  1. package/dest/abi/function_call.d.ts +47 -9
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/function_call.js +20 -3
  4. package/dest/abi/utils.d.ts +7 -1
  5. package/dest/abi/utils.d.ts.map +1 -1
  6. package/dest/abi/utils.js +7 -0
  7. package/dest/auth_witness/auth_witness.d.ts +2 -1
  8. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  9. package/dest/auth_witness/auth_witness.js +3 -3
  10. package/dest/avm/avm.d.ts +62 -62
  11. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  12. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  13. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  14. package/dest/avm/avm_proving_request.d.ts +299 -299
  15. package/dest/avm/contract_storage_read.d.ts +13 -1
  16. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  17. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  18. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  19. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  20. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  21. package/dest/avm/public_data_read.d.ts +10 -1
  22. package/dest/avm/public_data_read.d.ts.map +1 -1
  23. package/dest/avm/public_data_update_request.d.ts +10 -1
  24. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  25. package/dest/avm/public_data_write.d.ts +7 -1
  26. package/dest/avm/public_data_write.d.ts.map +1 -1
  27. package/dest/avm/public_inner_call_request.d.ts +4 -1
  28. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  29. package/dest/avm/revert_code.d.ts +4 -4
  30. package/dest/avm/revert_code.d.ts.map +1 -1
  31. package/dest/block/block_data.d.ts +52 -0
  32. package/dest/block/block_data.d.ts.map +1 -0
  33. package/dest/block/block_data.js +12 -0
  34. package/dest/block/block_hash.d.ts +18 -14
  35. package/dest/block/block_hash.d.ts.map +1 -1
  36. package/dest/block/block_hash.js +22 -20
  37. package/dest/block/block_parameter.d.ts +4 -3
  38. package/dest/block/block_parameter.d.ts.map +1 -1
  39. package/dest/block/block_parameter.js +2 -0
  40. package/dest/block/body.d.ts +1 -1
  41. package/dest/block/body.d.ts.map +1 -1
  42. package/dest/block/body.js +2 -1
  43. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  44. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  45. package/dest/block/checkpointed_l2_block.js +7 -45
  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 -3
  50. package/dest/block/index.d.ts.map +1 -1
  51. package/dest/block/index.js +1 -2
  52. package/dest/block/l2_block.d.ts +56 -59
  53. package/dest/block/l2_block.d.ts.map +1 -1
  54. package/dest/block/l2_block.js +64 -110
  55. package/dest/block/l2_block_source.d.ts +84 -39
  56. package/dest/block/l2_block_source.d.ts.map +1 -1
  57. package/dest/block/l2_block_source.js +2 -1
  58. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  59. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  60. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  61. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  62. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  63. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  64. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  65. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  66. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  67. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  68. package/dest/block/validate_block_result.d.ts +1 -1
  69. package/dest/block/validate_block_result.d.ts.map +1 -1
  70. package/dest/block/validate_block_result.js +5 -4
  71. package/dest/checkpoint/checkpoint.d.ts +43 -19
  72. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  73. package/dest/checkpoint/checkpoint.js +37 -14
  74. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  75. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  76. package/dest/checkpoint/checkpoint_data.js +26 -0
  77. package/dest/checkpoint/index.d.ts +2 -1
  78. package/dest/checkpoint/index.d.ts.map +1 -1
  79. package/dest/checkpoint/index.js +1 -0
  80. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  81. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  82. package/dest/checkpoint/published_checkpoint.js +5 -5
  83. package/dest/config/index.d.ts +2 -1
  84. package/dest/config/index.d.ts.map +1 -1
  85. package/dest/config/index.js +1 -0
  86. package/dest/config/node-rpc-config.js +1 -1
  87. package/dest/config/sequencer-config.d.ts +10 -0
  88. package/dest/config/sequencer-config.d.ts.map +1 -0
  89. package/dest/config/sequencer-config.js +18 -0
  90. package/dest/contract/complete_address.d.ts +4 -1
  91. package/dest/contract/complete_address.d.ts.map +1 -1
  92. package/dest/contract/contract_address.js +4 -4
  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 +2 -2
  96. package/dest/contract/contract_class_id.d.ts.map +1 -1
  97. package/dest/contract/contract_class_id.js +6 -5
  98. package/dest/contract/contract_deployment_data.d.ts +5 -5
  99. package/dest/contract/index.d.ts +1 -3
  100. package/dest/contract/index.d.ts.map +1 -1
  101. package/dest/contract/index.js +0 -2
  102. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  103. package/dest/contract/interfaces/node-info.d.ts +3 -1
  104. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  105. package/dest/contract/interfaces/node-info.js +2 -1
  106. package/dest/contract/private_function.d.ts +1 -1
  107. package/dest/contract/private_function.d.ts.map +1 -1
  108. package/dest/contract/private_function.js +3 -4
  109. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  110. package/dest/contract/private_function_membership_proof.js +1 -1
  111. package/dest/database-version/database_version.d.ts +58 -0
  112. package/dest/database-version/database_version.d.ts.map +1 -0
  113. package/dest/database-version/database_version.js +69 -0
  114. package/dest/database-version/version_manager.d.ts +3 -49
  115. package/dest/database-version/version_manager.d.ts.map +1 -1
  116. package/dest/database-version/version_manager.js +1 -66
  117. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  118. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  119. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  120. package/dest/deserialization/index.d.ts +11 -0
  121. package/dest/deserialization/index.d.ts.map +1 -0
  122. package/dest/deserialization/index.js +10 -0
  123. package/dest/epoch-helpers/index.d.ts +7 -1
  124. package/dest/epoch-helpers/index.d.ts.map +1 -1
  125. package/dest/epoch-helpers/index.js +9 -3
  126. package/dest/errors/proving_error.d.ts +2 -2
  127. package/dest/errors/proving_error.d.ts.map +1 -1
  128. package/dest/file-store/local.d.ts +3 -3
  129. package/dest/file-store/local.d.ts.map +1 -1
  130. package/dest/file-store/local.js +13 -4
  131. package/dest/file-store/s3.d.ts +1 -1
  132. package/dest/file-store/s3.d.ts.map +1 -1
  133. package/dest/file-store/s3.js +11 -3
  134. package/dest/hash/hash.d.ts +2 -1
  135. package/dest/hash/hash.d.ts.map +1 -1
  136. package/dest/hash/hash.js +16 -10
  137. package/dest/hash/map_slot.d.ts +1 -1
  138. package/dest/hash/map_slot.d.ts.map +1 -1
  139. package/dest/hash/map_slot.js +4 -3
  140. package/dest/interfaces/api_limit.d.ts +2 -1
  141. package/dest/interfaces/api_limit.d.ts.map +1 -1
  142. package/dest/interfaces/api_limit.js +1 -0
  143. package/dest/interfaces/archiver.d.ts +1 -1
  144. package/dest/interfaces/archiver.d.ts.map +1 -1
  145. package/dest/interfaces/archiver.js +23 -15
  146. package/dest/interfaces/aztec-node-admin.d.ts +101 -28
  147. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  148. package/dest/interfaces/aztec-node-admin.js +12 -4
  149. package/dest/interfaces/aztec-node.d.ts +66 -69
  150. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  151. package/dest/interfaces/aztec-node.js +10 -16
  152. package/dest/interfaces/block-builder.d.ts +22 -14
  153. package/dest/interfaces/block-builder.d.ts.map +1 -1
  154. package/dest/interfaces/block-builder.js +7 -0
  155. package/dest/interfaces/configs.d.ts +24 -9
  156. package/dest/interfaces/configs.d.ts.map +1 -1
  157. package/dest/interfaces/configs.js +4 -1
  158. package/dest/interfaces/get_logs_response.d.ts +16 -9
  159. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  160. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  161. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  162. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  163. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  164. package/dest/interfaces/p2p.d.ts +2 -2
  165. package/dest/interfaces/p2p.d.ts.map +1 -1
  166. package/dest/interfaces/prover-broker.d.ts +16 -1
  167. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  168. package/dest/interfaces/prover-broker.js +4 -1
  169. package/dest/interfaces/prover-client.d.ts +15 -1
  170. package/dest/interfaces/prover-client.d.ts.map +1 -1
  171. package/dest/interfaces/prover-client.js +12 -1
  172. package/dest/interfaces/proving-job.d.ts +216 -216
  173. package/dest/interfaces/slasher.d.ts +9 -1
  174. package/dest/interfaces/slasher.d.ts.map +1 -1
  175. package/dest/interfaces/slasher.js +2 -0
  176. package/dest/interfaces/tx_provider.d.ts +3 -3
  177. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  178. package/dest/interfaces/validator.d.ts +118 -16
  179. package/dest/interfaces/validator.d.ts.map +1 -1
  180. package/dest/interfaces/validator.js +6 -3
  181. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  182. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  183. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  184. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  185. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  186. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  187. package/dest/kernel/hints/index.d.ts +2 -2
  188. package/dest/kernel/hints/index.js +2 -2
  189. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  190. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  191. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  192. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  193. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  194. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  195. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  196. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  197. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  198. package/dest/kernel/hints/read_request.d.ts +7 -1
  199. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  200. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  201. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  202. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  203. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  204. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  205. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  206. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  207. package/dest/kernel/private_call_data.d.ts +25 -1
  208. package/dest/kernel/private_call_data.d.ts.map +1 -1
  209. package/dest/kernel/private_call_request.d.ts +16 -1
  210. package/dest/kernel/private_call_request.d.ts.map +1 -1
  211. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  212. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  213. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  214. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  215. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  216. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  217. package/dest/kernel/private_kernel_data.d.ts +7 -1
  218. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  219. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  220. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  221. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  222. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  223. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  224. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  225. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -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 +25 -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 +7 -7
  231. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  232. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  233. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  234. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  235. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  236. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  237. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  238. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  239. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  240. package/dest/kernel/private_validation_requests.d.ts +13 -4
  241. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  242. package/dest/kernel/private_validation_requests.js +9 -9
  243. package/dest/kernel/public_call_request.d.ts +22 -1
  244. package/dest/kernel/public_call_request.d.ts.map +1 -1
  245. package/dest/kernel/utils/optional_number.d.ts +7 -1
  246. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  247. package/dest/keys/derivation.d.ts +3 -3
  248. package/dest/keys/derivation.js +15 -15
  249. package/dest/keys/key_types.d.ts +3 -3
  250. package/dest/keys/key_types.d.ts.map +1 -1
  251. package/dest/keys/public_keys.d.ts +5 -1
  252. package/dest/keys/public_keys.d.ts.map +1 -1
  253. package/dest/keys/public_keys.js +2 -2
  254. package/dest/keys/utils.d.ts +1 -1
  255. package/dest/keys/utils.d.ts.map +1 -1
  256. package/dest/keys/utils.js +8 -4
  257. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  258. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  259. package/dest/l1-contracts/slash_factory.js +1 -0
  260. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  261. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  262. package/dest/logs/extended_public_log.d.ts +17 -9
  263. package/dest/logs/extended_public_log.d.ts.map +1 -1
  264. package/dest/logs/log_id.d.ts +21 -14
  265. package/dest/logs/log_id.d.ts.map +1 -1
  266. package/dest/logs/log_id.js +20 -17
  267. package/dest/logs/private_log.d.ts +2 -2
  268. package/dest/logs/private_log.d.ts.map +1 -1
  269. package/dest/logs/siloed_tag.d.ts +1 -1
  270. package/dest/logs/siloed_tag.d.ts.map +1 -1
  271. package/dest/logs/siloed_tag.js +2 -5
  272. package/dest/messaging/inbox_leaf.d.ts +3 -1
  273. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  274. package/dest/messaging/l1_actor.d.ts +7 -1
  275. package/dest/messaging/l1_actor.d.ts.map +1 -1
  276. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  277. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  278. package/dest/messaging/l2_actor.d.ts +7 -1
  279. package/dest/messaging/l2_actor.d.ts.map +1 -1
  280. package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
  281. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  282. package/dest/messaging/l2_to_l1_membership.js +8 -6
  283. package/dest/messaging/out_hash.d.ts +41 -4
  284. package/dest/messaging/out_hash.d.ts.map +1 -1
  285. package/dest/messaging/out_hash.js +52 -26
  286. package/dest/note/index.d.ts +1 -2
  287. package/dest/note/index.d.ts.map +1 -1
  288. package/dest/note/index.js +0 -1
  289. package/dest/note/note_dao.d.ts +36 -5
  290. package/dest/note/note_dao.d.ts.map +1 -1
  291. package/dest/note/note_dao.js +15 -12
  292. package/dest/p2p/block_proposal.d.ts +23 -8
  293. package/dest/p2p/block_proposal.d.ts.map +1 -1
  294. package/dest/p2p/block_proposal.js +26 -10
  295. package/dest/p2p/checkpoint_attestation.d.ts +6 -1
  296. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  297. package/dest/p2p/checkpoint_attestation.js +1 -1
  298. package/dest/p2p/checkpoint_proposal.d.ts +34 -9
  299. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  300. package/dest/p2p/checkpoint_proposal.js +46 -20
  301. package/dest/p2p/consensus_payload.d.ts +15 -5
  302. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  303. package/dest/p2p/consensus_payload.js +22 -18
  304. package/dest/p2p/constants.d.ts +5 -0
  305. package/dest/p2p/constants.d.ts.map +1 -0
  306. package/dest/p2p/constants.js +3 -0
  307. package/dest/p2p/index.d.ts +2 -1
  308. package/dest/p2p/index.d.ts.map +1 -1
  309. package/dest/p2p/index.js +1 -0
  310. package/dest/p2p/message_validator.d.ts +18 -3
  311. package/dest/p2p/message_validator.d.ts.map +1 -1
  312. package/dest/p2p/message_validator.js +2 -1
  313. package/dest/p2p/signed_txs.d.ts +3 -1
  314. package/dest/p2p/signed_txs.d.ts.map +1 -1
  315. package/dest/p2p/signed_txs.js +6 -1
  316. package/dest/p2p/topic_type.js +2 -1
  317. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  318. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  319. package/dest/parity/parity_public_inputs.d.ts +4 -1
  320. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  321. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  322. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  323. package/dest/proofs/chonk_proof.d.ts +1 -1
  324. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  325. package/dest/proofs/chonk_proof.js +9 -4
  326. package/dest/proofs/proof.d.ts +4 -1
  327. package/dest/proofs/proof.d.ts.map +1 -1
  328. package/dest/proofs/recursive_proof.d.ts +10 -1
  329. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  330. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  331. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  332. package/dest/rollup/block_constant_data.d.ts +12 -1
  333. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  334. package/dest/rollup/block_headers_hash.js +1 -1
  335. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  336. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  337. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  338. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  339. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  340. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  341. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  342. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  343. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  344. package/dest/rollup/checkpoint_header.d.ts +31 -4
  345. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  346. package/dest/rollup/checkpoint_header.js +23 -7
  347. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  348. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  349. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  350. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  351. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  352. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  353. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  354. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  355. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  356. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  357. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  358. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  359. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  360. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  361. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  362. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  363. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  364. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  365. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  366. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  367. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  368. package/dest/schemas/schemas.d.ts +1 -1
  369. package/dest/slashing/empire.d.ts +1 -1
  370. package/dest/slashing/empire.d.ts.map +1 -1
  371. package/dest/slashing/empire.js +2 -0
  372. package/dest/slashing/helpers.d.ts +2 -2
  373. package/dest/slashing/helpers.d.ts.map +1 -1
  374. package/dest/slashing/helpers.js +6 -0
  375. package/dest/slashing/tally.d.ts +2 -1
  376. package/dest/slashing/tally.d.ts.map +1 -1
  377. package/dest/slashing/tally.js +6 -2
  378. package/dest/slashing/types.d.ts +7 -3
  379. package/dest/slashing/types.d.ts.map +1 -1
  380. package/dest/slashing/types.js +13 -1
  381. package/dest/stats/stats.d.ts +1 -3
  382. package/dest/stats/stats.d.ts.map +1 -1
  383. package/dest/tests/factories.d.ts +2 -4
  384. package/dest/tests/factories.d.ts.map +1 -1
  385. package/dest/tests/factories.js +18 -27
  386. package/dest/tests/jest.js +1 -1
  387. package/dest/tests/mocks.d.ts +23 -14
  388. package/dest/tests/mocks.d.ts.map +1 -1
  389. package/dest/tests/mocks.js +59 -36
  390. package/dest/timetable/index.d.ts +37 -0
  391. package/dest/timetable/index.d.ts.map +1 -0
  392. package/dest/timetable/index.js +39 -0
  393. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  394. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  395. package/dest/trees/nullifier_leaf.d.ts +13 -1
  396. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  397. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  398. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  399. package/dest/trees/public_data_leaf.d.ts +17 -1
  400. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  401. package/dest/trees/public_data_leaf.js +7 -6
  402. package/dest/trees/public_data_witness.d.ts +11 -1
  403. package/dest/trees/public_data_witness.d.ts.map +1 -1
  404. package/dest/tx/block_header.d.ts +14 -2
  405. package/dest/tx/block_header.d.ts.map +1 -1
  406. package/dest/tx/block_header.js +6 -2
  407. package/dest/tx/call_context.d.ts +13 -1
  408. package/dest/tx/call_context.d.ts.map +1 -1
  409. package/dest/tx/capsule.d.ts +4 -1
  410. package/dest/tx/capsule.d.ts.map +1 -1
  411. package/dest/tx/execution_payload.d.ts +9 -1
  412. package/dest/tx/execution_payload.d.ts.map +1 -1
  413. package/dest/tx/function_data.d.ts +4 -2
  414. package/dest/tx/function_data.d.ts.map +1 -1
  415. package/dest/tx/global_variables.d.ts +12 -4
  416. package/dest/tx/global_variables.d.ts.map +1 -1
  417. package/dest/tx/hashed_values.d.ts +7 -1
  418. package/dest/tx/hashed_values.d.ts.map +1 -1
  419. package/dest/tx/in_tx.d.ts +4 -4
  420. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  421. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  422. package/dest/tx/indexed_tx_effect.js +3 -2
  423. package/dest/tx/partial_state_reference.d.ts +4 -1
  424. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  425. package/dest/tx/private_execution_result.d.ts +23 -2
  426. package/dest/tx/private_execution_result.d.ts.map +1 -1
  427. package/dest/tx/private_execution_result.js +1 -1
  428. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  429. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  430. package/dest/tx/profiling.d.ts +152 -29
  431. package/dest/tx/profiling.d.ts.map +1 -1
  432. package/dest/tx/profiling.js +47 -10
  433. package/dest/tx/protocol_contracts.d.ts +2 -2
  434. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  435. package/dest/tx/protocol_contracts.js +2 -2
  436. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  437. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  438. package/dest/tx/public_simulation_output.d.ts +4 -2
  439. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  440. package/dest/tx/public_simulation_output.js +7 -3
  441. package/dest/tx/state_reference.d.ts +3 -1
  442. package/dest/tx/state_reference.d.ts.map +1 -1
  443. package/dest/tx/tx.d.ts +24 -1
  444. package/dest/tx/tx.d.ts.map +1 -1
  445. package/dest/tx/tx.js +6 -3
  446. package/dest/tx/tx_context.d.ts +2 -1
  447. package/dest/tx/tx_context.d.ts.map +1 -1
  448. package/dest/tx/tx_effect.d.ts +32 -6
  449. package/dest/tx/tx_effect.d.ts.map +1 -1
  450. package/dest/tx/tx_effect.js +0 -7
  451. package/dest/tx/tx_execution_request.d.ts +30 -1
  452. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  453. package/dest/tx/tx_hash.d.ts +2 -1
  454. package/dest/tx/tx_hash.d.ts.map +1 -1
  455. package/dest/tx/tx_receipt.d.ts +47 -13
  456. package/dest/tx/tx_receipt.d.ts.map +1 -1
  457. package/dest/tx/tx_receipt.js +46 -15
  458. package/dest/tx/tx_request.d.ts +6 -1
  459. package/dest/tx/tx_request.d.ts.map +1 -1
  460. package/dest/tx/tx_request.js +2 -2
  461. package/dest/tx/validator/empty_validator.d.ts +2 -2
  462. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  463. package/dest/tx/validator/error_texts.d.ts +3 -2
  464. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  465. package/dest/tx/validator/error_texts.js +3 -1
  466. package/dest/tx/validator/tx_validator.d.ts +2 -2
  467. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  468. package/dest/types/shared.d.ts +4 -1
  469. package/dest/types/shared.d.ts.map +1 -1
  470. package/dest/validators/schemas.d.ts +38 -38
  471. package/dest/validators/schemas.d.ts.map +1 -1
  472. package/dest/validators/schemas.js +4 -3
  473. package/dest/validators/types.d.ts +3 -3
  474. package/dest/validators/types.d.ts.map +1 -1
  475. package/dest/vks/verification_key.d.ts +22 -1
  476. package/dest/vks/verification_key.d.ts.map +1 -1
  477. package/dest/vks/vk_data.d.ts +7 -1
  478. package/dest/vks/vk_data.d.ts.map +1 -1
  479. package/dest/zkpassport/index.d.ts +3 -4
  480. package/dest/zkpassport/index.d.ts.map +1 -1
  481. package/dest/zkpassport/index.js +9 -9
  482. package/package.json +27 -13
  483. package/src/abi/function_call.ts +25 -3
  484. package/src/abi/utils.ts +17 -0
  485. package/src/auth_witness/auth_witness.ts +3 -3
  486. package/src/block/block_data.ts +26 -0
  487. package/src/block/block_hash.ts +26 -25
  488. package/src/block/block_parameter.ts +4 -2
  489. package/src/block/body.ts +2 -1
  490. package/src/block/checkpointed_l2_block.ts +8 -58
  491. package/src/block/in_block.ts +6 -6
  492. package/src/block/index.ts +1 -2
  493. package/src/block/l2_block.ts +102 -150
  494. package/src/block/l2_block_source.ts +93 -42
  495. package/src/block/l2_block_stream/interfaces.ts +8 -5
  496. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  497. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  498. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  499. package/src/block/validate_block_result.ts +5 -4
  500. package/src/checkpoint/checkpoint.ts +61 -21
  501. package/src/checkpoint/checkpoint_data.ts +51 -0
  502. package/src/checkpoint/index.ts +1 -0
  503. package/src/checkpoint/published_checkpoint.ts +7 -4
  504. package/src/config/index.ts +1 -0
  505. package/src/config/node-rpc-config.ts +1 -1
  506. package/src/config/sequencer-config.ts +29 -0
  507. package/src/contract/contract_address.ts +4 -4
  508. package/src/contract/contract_class.ts +3 -3
  509. package/src/contract/contract_class_id.ts +6 -5
  510. package/src/contract/index.ts +0 -2
  511. package/src/contract/interfaces/node-info.ts +3 -0
  512. package/src/contract/private_function.ts +3 -4
  513. package/src/contract/private_function_membership_proof.ts +1 -1
  514. package/src/database-version/database_version.ts +87 -0
  515. package/src/database-version/version_manager.ts +1 -77
  516. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  517. package/src/deserialization/index.ts +21 -0
  518. package/src/epoch-helpers/index.ts +13 -1
  519. package/src/file-store/local.ts +15 -5
  520. package/src/file-store/s3.ts +12 -3
  521. package/src/hash/hash.ts +14 -10
  522. package/src/hash/map_slot.ts +3 -2
  523. package/src/interfaces/api_limit.ts +1 -0
  524. package/src/interfaces/archiver.ts +23 -24
  525. package/src/interfaces/aztec-node-admin.ts +26 -2
  526. package/src/interfaces/aztec-node.ts +86 -135
  527. package/src/interfaces/block-builder.ts +41 -23
  528. package/src/interfaces/configs.ts +13 -4
  529. package/src/interfaces/l2_logs_source.ts +17 -4
  530. package/src/interfaces/merkle_tree_operations.ts +1 -1
  531. package/src/interfaces/p2p.ts +1 -1
  532. package/src/interfaces/prover-broker.ts +22 -0
  533. package/src/interfaces/prover-client.ts +22 -0
  534. package/src/interfaces/slasher.ts +4 -0
  535. package/src/interfaces/tx_provider.ts +2 -2
  536. package/src/interfaces/validator.ts +20 -12
  537. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  538. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  539. package/src/kernel/hints/index.ts +2 -2
  540. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  541. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  542. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  543. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  544. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  545. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  546. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  547. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  548. package/src/kernel/private_validation_requests.ts +8 -8
  549. package/src/keys/derivation.ts +15 -15
  550. package/src/keys/key_types.ts +6 -2
  551. package/src/keys/public_keys.ts +2 -2
  552. package/src/keys/utils.ts +8 -4
  553. package/src/l1-contracts/slash_factory.ts +1 -0
  554. package/src/logs/log_id.ts +22 -18
  555. package/src/logs/siloed_tag.ts +2 -2
  556. package/src/messaging/l2_to_l1_membership.ts +8 -6
  557. package/src/messaging/out_hash.ts +60 -29
  558. package/src/note/index.ts +0 -1
  559. package/src/note/note_dao.ts +18 -13
  560. package/src/p2p/block_proposal.ts +36 -15
  561. package/src/p2p/checkpoint_attestation.ts +6 -1
  562. package/src/p2p/checkpoint_proposal.ts +74 -24
  563. package/src/p2p/consensus_payload.ts +25 -17
  564. package/src/p2p/constants.ts +6 -0
  565. package/src/p2p/index.ts +1 -0
  566. package/src/p2p/message_validator.ts +14 -2
  567. package/src/p2p/signed_txs.ts +6 -1
  568. package/src/p2p/topic_type.ts +1 -1
  569. package/src/proofs/chonk_proof.ts +9 -5
  570. package/src/rollup/block_headers_hash.ts +1 -1
  571. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  572. package/src/rollup/checkpoint_header.ts +22 -2
  573. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  574. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  575. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  576. package/src/slashing/empire.ts +3 -1
  577. package/src/slashing/helpers.ts +8 -0
  578. package/src/slashing/tally.ts +8 -2
  579. package/src/slashing/types.ts +14 -0
  580. package/src/stats/stats.ts +0 -2
  581. package/src/tests/factories.ts +23 -43
  582. package/src/tests/jest.ts +1 -1
  583. package/src/tests/mocks.ts +83 -52
  584. package/src/timetable/index.ts +66 -0
  585. package/src/trees/public_data_leaf.ts +11 -5
  586. package/src/tx/block_header.ts +12 -4
  587. package/src/tx/global_variables.ts +3 -3
  588. package/src/tx/indexed_tx_effect.ts +3 -2
  589. package/src/tx/private_execution_result.ts +1 -1
  590. package/src/tx/profiling.ts +51 -9
  591. package/src/tx/protocol_contracts.ts +2 -2
  592. package/src/tx/public_simulation_output.ts +4 -0
  593. package/src/tx/tx.ts +8 -9
  594. package/src/tx/tx_effect.ts +0 -9
  595. package/src/tx/tx_receipt.ts +75 -18
  596. package/src/tx/tx_request.ts +2 -2
  597. package/src/tx/validator/empty_validator.ts +1 -1
  598. package/src/tx/validator/error_texts.ts +4 -1
  599. package/src/tx/validator/tx_validator.ts +1 -1
  600. package/src/validators/schemas.ts +8 -1
  601. package/src/validators/types.ts +5 -4
  602. package/src/zkpassport/index.ts +11 -12
  603. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  604. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  605. package/dest/block/l2_block_code_to_purge.js +0 -55
  606. package/dest/block/l2_block_header.d.ts +0 -94
  607. package/dest/block/l2_block_header.d.ts.map +0 -1
  608. package/dest/block/l2_block_header.js +0 -160
  609. package/dest/block/l2_block_new.d.ts +0 -134
  610. package/dest/block/l2_block_new.d.ts.map +0 -1
  611. package/dest/block/l2_block_new.js +0 -155
  612. package/dest/contract/contract_class_metadata.d.ts +0 -8
  613. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  614. package/dest/contract/contract_class_metadata.js +0 -1
  615. package/dest/contract/contract_metadata.d.ts +0 -7
  616. package/dest/contract/contract_metadata.d.ts.map +0 -1
  617. package/dest/contract/contract_metadata.js +0 -1
  618. package/dest/database-version/index.d.ts +0 -2
  619. package/dest/database-version/index.d.ts.map +0 -1
  620. package/dest/database-version/index.js +0 -1
  621. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  622. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  623. package/dest/note/notes_filter.d.ts +0 -27
  624. package/dest/note/notes_filter.d.ts.map +0 -1
  625. package/dest/note/notes_filter.js +0 -11
  626. package/src/block/l2_block_code_to_purge.ts +0 -80
  627. package/src/block/l2_block_header.ts +0 -255
  628. package/src/block/l2_block_new.ts +0 -211
  629. package/src/contract/contract_class_metadata.ts +0 -8
  630. package/src/contract/contract_metadata.ts +0 -7
  631. package/src/database-version/index.ts +0 -1
  632. package/src/note/notes_filter.ts +0 -38
@@ -7,11 +7,11 @@ import {
7
7
  import {
8
8
  ARCHIVE_HEIGHT,
9
9
  AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
10
- AZTEC_MAX_EPOCH_DURATION,
11
10
  CHONK_PROOF_LENGTH,
12
11
  CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
13
- GeneratorIndex,
12
+ DomainSeparator,
14
13
  L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
14
+ MAX_CHECKPOINTS_PER_EPOCH,
15
15
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
16
16
  MAX_ENQUEUED_CALLS_PER_CALL,
17
17
  MAX_ENQUEUED_CALLS_PER_TX,
@@ -87,7 +87,6 @@ import {
87
87
  import { PublicDataRead } from '../avm/public_data_read.js';
88
88
  import { PublicDataWrite } from '../avm/public_data_write.js';
89
89
  import { AztecAddress } from '../aztec-address/index.js';
90
- import { L2BlockHeader } from '../block/l2_block_header.js';
91
90
  import type { L2Tips } from '../block/l2_block_source.js';
92
91
  import {
93
92
  type ContractClassPublic,
@@ -103,7 +102,7 @@ import {
103
102
  import { Gas, GasFees, GasSettings } from '../gas/index.js';
104
103
  import { computeCalldataHash } from '../hash/hash.js';
105
104
  import { KeyValidationRequest } from '../kernel/hints/key_validation_request.js';
106
- import { KeyValidationRequestAndGenerator } from '../kernel/hints/key_validation_request_and_generator.js';
105
+ import { KeyValidationRequestAndSeparator } from '../kernel/hints/key_validation_request_and_separator.js';
107
106
  import { ReadRequest, ScopedReadRequest } from '../kernel/hints/read_request.js';
108
107
  import {
109
108
  ClaimedLengthArray,
@@ -260,12 +259,12 @@ function makeKeyValidationRequests(seed: number): KeyValidationRequest {
260
259
  }
261
260
 
262
261
  /**
263
- * Creates arbitrary KeyValidationRequestAndGenerator from the given seed.
264
- * @param seed - The seed to use for generating the KeyValidationRequestAndGenerator.
265
- * @returns A KeyValidationRequestAndGenerator.
262
+ * Creates arbitrary KeyValidationRequestAndSeparator from the given seed.
263
+ * @param seed - The seed to use for generating the KeyValidationRequestAndSeparator.
264
+ * @returns A KeyValidationRequestAndSeparator.
266
265
  */
267
- function makeKeyValidationRequestAndGenerators(seed: number): KeyValidationRequestAndGenerator {
268
- return new KeyValidationRequestAndGenerator(makeKeyValidationRequests(seed), fr(seed + 4));
266
+ function makeKeyValidationRequestAndSeparators(seed: number): KeyValidationRequestAndSeparator {
267
+ return new KeyValidationRequestAndSeparator(makeKeyValidationRequests(seed), fr(seed + 4));
269
268
  }
270
269
 
271
270
  export function makePublicDataWrite(seed = 1) {
@@ -657,7 +656,7 @@ function makeClaimedLengthArray<T extends Serializable, N extends number>(
657
656
  */
658
657
  export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicInputs {
659
658
  return PrivateCircuitPublicInputs.from({
660
- includeByTimestamp: BigInt(seed + 0x31415),
659
+ expirationTimestamp: BigInt(seed + 0x31415),
661
660
  callContext: makeCallContext(seed, { isStaticCall: true }),
662
661
  argsHash: fr(seed + 0x100),
663
662
  returnsHash: fr(seed + 0x200),
@@ -672,9 +671,9 @@ export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicIn
672
671
  makeScopedReadRequest,
673
672
  seed + 0x310,
674
673
  ),
675
- keyValidationRequestsAndGenerators: makeClaimedLengthArray(
674
+ keyValidationRequestsAndSeparators: makeClaimedLengthArray(
676
675
  MAX_KEY_VALIDATION_REQUESTS_PER_CALL,
677
- makeKeyValidationRequestAndGenerators,
676
+ makeKeyValidationRequestAndSeparators,
678
677
  seed + 0x320,
679
678
  ),
680
679
  noteHashes: makeClaimedLengthArray(MAX_NOTE_HASHES_PER_CALL, makeNoteHash, seed + 0x400),
@@ -850,9 +849,10 @@ export function makeCheckpointRollupPublicInputs(seed = 0) {
850
849
  makeEpochConstantData(seed),
851
850
  makeAppendOnlyTreeSnapshot(seed + 0x100),
852
851
  makeAppendOnlyTreeSnapshot(seed + 0x200),
853
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
854
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
855
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
852
+ makeAppendOnlyTreeSnapshot(seed + 0x300),
853
+ makeAppendOnlyTreeSnapshot(seed + 0x350),
854
+ makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => fr(seed), 0x400),
855
+ makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => makeFeeRecipient(seed), 0x500),
856
856
  makeBlobAccumulator(seed + 0x600),
857
857
  makeBlobAccumulator(seed + 0x700),
858
858
  makeFinalBlobBatchingChallenges(seed + 0x800),
@@ -888,8 +888,8 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
888
888
  fr(seed + 0x100),
889
889
  fr(seed + 0x200),
890
890
  fr(seed + 0x300),
891
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x400),
892
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
891
+ makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => fr(seed), 0x400),
892
+ makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => makeFeeRecipient(seed), 0x500),
893
893
  makeEpochConstantData(seed + 0x600),
894
894
  makeFinalBlobAccumulator(seed + 0x700),
895
895
  );
@@ -910,40 +910,20 @@ export function makeBlockHeader(
910
910
  });
911
911
  }
912
912
 
913
- export function makeL2BlockHeader(
914
- seed = 0,
915
- blockNumber?: number,
916
- slotNumber?: number,
917
- overrides: Partial<FieldsOf<L2BlockHeader>> = {},
918
- ) {
919
- return new L2BlockHeader(
920
- makeAppendOnlyTreeSnapshot(seed + 0x100),
921
- overrides?.blobsHash ?? fr(seed + 0x200),
922
- overrides?.inHash ?? fr(seed + 0x300),
923
- overrides?.state ?? makeStateReference(seed + 0x600),
924
- makeGlobalVariables((seed += 0x700), {
925
- ...(blockNumber !== undefined ? { blockNumber: BlockNumber(blockNumber) } : {}),
926
- ...(slotNumber !== undefined ? { slotNumber: SlotNumber(slotNumber) } : {}),
927
- }),
928
- new Fr(seed + 0x800),
929
- new Fr(seed + 0x900),
930
- new Fr(seed + 0xa00),
931
- new Fr(seed + 0xb00),
932
- );
933
- }
934
-
935
- export function makeCheckpointHeader(seed = 0) {
913
+ export function makeCheckpointHeader(seed = 0, overrides: Partial<FieldsOf<CheckpointHeader>> = {}) {
936
914
  return CheckpointHeader.from({
937
915
  lastArchiveRoot: fr(seed + 0x100),
938
916
  blockHeadersHash: fr(seed + 0x150),
939
917
  blobsHash: fr(seed + 0x200),
940
918
  inHash: fr(seed + 0x210),
919
+ epochOutHash: fr(seed + 0x220),
941
920
  slotNumber: SlotNumber(seed + 0x300),
942
921
  timestamp: BigInt(seed + 0x400),
943
922
  coinbase: makeEthAddress(seed + 0x500),
944
923
  feeRecipient: makeAztecAddress(seed + 0x600),
945
924
  gasFees: makeGasFees(seed + 0x700),
946
925
  totalManaUsed: fr(seed + 0x800),
926
+ ...overrides,
947
927
  });
948
928
  }
949
929
 
@@ -1307,11 +1287,11 @@ export async function makeContractInstanceFromClassId(
1307
1287
 
1308
1288
  const saltedInitializationHash = await poseidon2HashWithSeparator(
1309
1289
  [salt, initializationHash, deployer],
1310
- GeneratorIndex.PARTIAL_ADDRESS,
1290
+ DomainSeparator.PARTIAL_ADDRESS,
1311
1291
  );
1312
1292
  const partialAddress = await poseidon2HashWithSeparator(
1313
1293
  [classId, saltedInitializationHash],
1314
- GeneratorIndex.PARTIAL_ADDRESS,
1294
+ DomainSeparator.PARTIAL_ADDRESS,
1315
1295
  );
1316
1296
  const address = await computeAddress(publicKeys, partialAddress);
1317
1297
  return new SerializableContractInstance({
@@ -1759,7 +1739,7 @@ export function makeL2Tips(
1759
1739
  ? typeof checkpointNumber === 'number'
1760
1740
  ? CheckpointNumber(checkpointNumber)
1761
1741
  : checkpointNumber
1762
- : CheckpointNumber(bn);
1742
+ : CheckpointNumber.fromBlockNumber(bn);
1763
1743
  const cph = checkpointHash ?? hash;
1764
1744
  return {
1765
1745
  proposed: { number: bn, hash },
package/src/tests/jest.ts CHANGED
@@ -20,7 +20,7 @@ export function equalL2Blocks(a: any, b: any) {
20
20
  // use a custom comparator because the blockHash property is lazily computed and one instance might not have it
21
21
  return aAsL2Block.toBuffer().equals(bAsL2Block.toBuffer());
22
22
  } else if (aAsL2Block || bAsL2Block) {
23
- // one value is an L2block and the other isn't. Definitely not equal.
23
+ // one value is an L2Block and the other isn't. Definitely not equal.
24
24
  return false;
25
25
  } else {
26
26
  // we don't know what they are, tell Jest to keep looking
@@ -2,12 +2,12 @@ import {
2
2
  FIXED_DA_GAS,
3
3
  FIXED_L2_GAS,
4
4
  MAX_ENQUEUED_CALLS_PER_TX,
5
- MAX_INCLUDE_BY_TIMESTAMP_DURATION,
6
5
  MAX_NULLIFIERS_PER_TX,
7
6
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
7
+ MAX_TX_LIFETIME,
8
8
  } from '@aztec/constants';
9
9
  import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
10
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
10
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
11
11
  import { Buffer32 } from '@aztec/foundation/buffer';
12
12
  import { padArrayEnd, times } from '@aztec/foundation/collection';
13
13
  import { randomBytes } from '@aztec/foundation/crypto/random';
@@ -22,8 +22,7 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
22
22
  import { PublicDataWrite } from '../avm/public_data_write.js';
23
23
  import { RevertCode } from '../avm/revert_code.js';
24
24
  import { AztecAddress } from '../aztec-address/index.js';
25
- import { CommitteeAttestation, L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
26
- import { L2Block } from '../block/l2_block.js';
25
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
27
26
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
28
27
  import { Checkpoint } from '../checkpoint/checkpoint.js';
29
28
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
@@ -76,9 +75,9 @@ import {
76
75
  makeAvmCircuitInputs,
77
76
  makeAztecAddress,
78
77
  makeBlockHeader,
78
+ makeCheckpointHeader,
79
79
  makeGas,
80
80
  makeGlobalVariables,
81
- makeL2BlockHeader,
82
81
  makePrivateToPublicAccumulatedData,
83
82
  makePrivateToRollupAccumulatedData,
84
83
  makeProtocolContracts,
@@ -98,12 +97,14 @@ export const mockTx = async (
98
97
  publicCalldataSize = 2,
99
98
  feePayer,
100
99
  chonkProof = ChonkProof.random(),
100
+ maxFeesPerGas = new GasFees(10, 10),
101
101
  maxPriorityFeesPerGas,
102
102
  gasUsed = Gas.empty(),
103
103
  chainId = Fr.ZERO,
104
104
  version = Fr.ZERO,
105
105
  vkTreeRoot = Fr.ZERO,
106
106
  protocolContractsHash = Fr.ZERO,
107
+ anchorBlockHeader = BlockHeader.empty(),
107
108
  }: {
108
109
  numberOfNonRevertiblePublicCallRequests?: number;
109
110
  numberOfRevertiblePublicCallRequests?: number;
@@ -112,12 +113,14 @@ export const mockTx = async (
112
113
  publicCalldataSize?: number;
113
114
  feePayer?: AztecAddress;
114
115
  chonkProof?: ChonkProof;
116
+ maxFeesPerGas?: GasFees;
115
117
  maxPriorityFeesPerGas?: GasFees;
116
118
  gasUsed?: Gas;
117
119
  chainId?: Fr;
118
120
  version?: Fr;
119
121
  vkTreeRoot?: Fr;
120
122
  protocolContractsHash?: Fr;
123
+ anchorBlockHeader?: BlockHeader;
121
124
  } = {},
122
125
  ) => {
123
126
  const totalPublicCallRequests =
@@ -127,10 +130,8 @@ export const mockTx = async (
127
130
  const isForPublic = totalPublicCallRequests > 0;
128
131
  const data = PrivateKernelTailCircuitPublicInputs.empty();
129
132
  const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
130
- data.constants.txContext.gasSettings = GasSettings.default({
131
- maxFeesPerGas: new GasFees(10, 10),
132
- maxPriorityFeesPerGas,
133
- });
133
+ data.constants.anchorBlockHeader = anchorBlockHeader;
134
+ data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
134
135
  data.feePayer = feePayer ?? (await AztecAddress.random());
135
136
  data.gasUsed = gasUsed;
136
137
  data.constants.txContext.chainId = chainId;
@@ -138,8 +139,8 @@ export const mockTx = async (
138
139
  data.constants.vkTreeRoot = vkTreeRoot;
139
140
  data.constants.protocolContractsHash = protocolContractsHash;
140
141
 
141
- // Set includeByTimestamp to the maximum allowed duration from the current time.
142
- data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
142
+ // Set expirationTimestamp to the maximum allowed duration from the current time.
143
+ data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
143
144
 
144
145
  const publicFunctionCalldata: HashedValues[] = [];
145
146
  if (!isForPublic) {
@@ -400,38 +401,47 @@ export async function mockCheckpointAndMessages(
400
401
  {
401
402
  startBlockNumber = BlockNumber(1),
402
403
  numBlocks = 1,
404
+ blocks,
403
405
  numTxsPerBlock = 1,
404
406
  numL1ToL2Messages = 1,
405
407
  makeBlockOptions = () => ({}),
406
408
  previousArchive,
409
+ maxEffects,
407
410
  ...options
408
411
  }: {
409
412
  startBlockNumber?: BlockNumber;
410
413
  numBlocks?: number;
411
414
  numTxsPerBlock?: number;
412
415
  numL1ToL2Messages?: number;
413
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
416
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
414
417
  previousArchive?: AppendOnlyTreeSnapshot;
418
+ blocks?: L2Block[];
419
+ maxEffects?: number;
415
420
  } & Partial<Parameters<typeof Checkpoint.random>[1]> &
416
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
421
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
417
422
  ) {
418
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
423
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
419
424
  const blocksAndMessages = [];
420
425
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
421
426
  // The current block's header.lastArchive must equal the previous block's archive.
422
427
  let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
423
- for (let i = 0; i < numBlocks; i++) {
428
+ // Pass maxEffects via txOptions so it reaches TxEffect.random
429
+ const txOptions = maxEffects !== undefined ? { maxEffects } : {};
430
+ for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
424
431
  const blockNumber = BlockNumber(startBlockNumber + i);
425
432
  const { block, messages } = {
426
- block: await L2BlockNew.random(blockNumber, {
427
- checkpointNumber,
428
- indexWithinCheckpoint: i,
429
- txsPerBlock: numTxsPerBlock,
430
- slotNumber,
431
- ...options,
432
- ...makeBlockOptions(blockNumber),
433
- ...(lastArchive ? { lastArchive } : {}),
434
- }),
433
+ block:
434
+ blocks?.[i] ??
435
+ (await L2Block.random(blockNumber, {
436
+ checkpointNumber,
437
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
438
+ txsPerBlock: numTxsPerBlock,
439
+ txOptions,
440
+ slotNumber,
441
+ ...options,
442
+ ...makeBlockOptions(blockNumber),
443
+ ...(lastArchive ? { lastArchive } : {}),
444
+ })),
435
445
  messages: mockL1ToL2Messages(numL1ToL2Messages),
436
446
  };
437
447
  // Update lastArchive for the next block
@@ -489,16 +499,17 @@ export interface MakeConsensusPayloadOptions {
489
499
  signer?: Secp256k1Signer;
490
500
  attesterSigner?: Secp256k1Signer;
491
501
  proposerSigner?: Secp256k1Signer;
492
- header?: L2BlockHeader;
502
+ header?: CheckpointHeader;
493
503
  archive?: Fr;
494
504
  txHashes?: TxHash[];
495
505
  txs?: Tx[];
506
+ feeAssetPriceModifier?: bigint;
496
507
  }
497
508
 
498
509
  export interface MakeBlockProposalOptions {
499
510
  signer?: Secp256k1Signer;
500
- blockHeader?: L2BlockHeader;
501
- indexWithinCheckpoint?: number;
511
+ blockHeader?: BlockHeader;
512
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
502
513
  inHash?: Fr;
503
514
  archiveRoot?: Fr;
504
515
  txHashes?: TxHash[];
@@ -509,10 +520,11 @@ export interface MakeCheckpointProposalOptions {
509
520
  signer?: Secp256k1Signer;
510
521
  checkpointHeader?: CheckpointHeader;
511
522
  archiveRoot?: Fr;
523
+ feeAssetPriceModifier?: bigint;
512
524
  /** Options for the lastBlock - if undefined, no lastBlock is included */
513
525
  lastBlock?: {
514
- blockHeader?: L2BlockHeader;
515
- indexWithinCheckpoint?: number;
526
+ blockHeader?: BlockHeader;
527
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
516
528
  txHashes?: TxHash[];
517
529
  txs?: Tx[];
518
530
  };
@@ -523,18 +535,19 @@ const makeAndSignConsensusPayload = (
523
535
  domainSeparator: SignatureDomainSeparator,
524
536
  options?: MakeConsensusPayloadOptions,
525
537
  ) => {
526
- const header = options?.header ?? makeL2BlockHeader(1);
527
- const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
538
+ const header = options?.header ?? makeCheckpointHeader(1);
539
+ const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
528
540
 
529
541
  const payload = ConsensusPayload.fromFields({
530
- header: header.toCheckpointHeader(),
542
+ header,
531
543
  archive,
544
+ feeAssetPriceModifier,
532
545
  });
533
546
 
534
547
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
535
548
  const signature = signer.sign(hash);
536
549
 
537
- return { blockNumber: header.globalVariables.blockNumber, payload, signature };
550
+ return { blockNumber: header.slotNumber, payload, signature };
538
551
  };
539
552
 
540
553
  export const makeAndSignCommitteeAttestationsAndSigners = (
@@ -549,9 +562,8 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
549
562
  };
550
563
 
551
564
  export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
552
- const l2BlockHeader = options?.blockHeader ?? makeL2BlockHeader(1);
553
- const blockHeader = l2BlockHeader.toBlockHeader();
554
- const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
565
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
566
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
555
567
  const inHash = options?.inHash ?? Fr.random();
556
568
  const archiveRoot = options?.archiveRoot ?? Fr.random();
557
569
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
@@ -565,28 +577,33 @@ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<B
565
577
  archiveRoot,
566
578
  txHashes,
567
579
  txs,
568
- payload => Promise.resolve(signer.signMessage(payload)),
580
+ (_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
569
581
  );
570
582
  };
571
583
 
572
584
  export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
573
- const l2BlockHeader = options?.lastBlock?.blockHeader ?? makeL2BlockHeader(1);
574
- const checkpointHeader = options?.checkpointHeader ?? l2BlockHeader.toCheckpointHeader();
585
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
586
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
575
587
  const archiveRoot = options?.archiveRoot ?? Fr.random();
588
+ const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
576
589
  const signer = options?.signer ?? Secp256k1Signer.random();
577
590
 
578
591
  // Build lastBlock info if provided
579
592
  const lastBlockInfo = options?.lastBlock
580
593
  ? {
581
- blockHeader: l2BlockHeader.toBlockHeader(),
582
- indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4, // Last block in a 5-block checkpoint
594
+ blockHeader,
595
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
583
596
  txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
584
597
  txs: options.lastBlock.txs,
585
598
  }
586
599
  : undefined;
587
600
 
588
- return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payload =>
589
- Promise.resolve(signer.signMessage(payload)),
601
+ return CheckpointProposal.createProposalFromSigner(
602
+ checkpointHeader,
603
+ archiveRoot,
604
+ feeAssetPriceModifier,
605
+ lastBlockInfo,
606
+ payload => Promise.resolve(signer.signMessage(payload)),
590
607
  );
591
608
  };
592
609
 
@@ -596,6 +613,7 @@ export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions):
596
613
  export type MakeCheckpointAttestationOptions = {
597
614
  header?: CheckpointHeader;
598
615
  archive?: Fr;
616
+ feeAssetPriceModifier?: bigint;
599
617
  attesterSigner?: Secp256k1Signer;
600
618
  proposerSigner?: Secp256k1Signer;
601
619
  signer?: Secp256k1Signer;
@@ -605,11 +623,12 @@ export type MakeCheckpointAttestationOptions = {
605
623
  * Create a checkpoint attestation for testing
606
624
  */
607
625
  export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
608
- const header = options.header ?? makeL2BlockHeader(1).toCheckpointHeader();
626
+ const header = options.header ?? makeCheckpointHeader(1);
609
627
  const archive = options.archive ?? Fr.random();
628
+ const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
610
629
  const { signer, attesterSigner = signer, proposerSigner = signer } = options;
611
630
 
612
- const payload = new ConsensusPayload(header, archive);
631
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
613
632
 
614
633
  // Sign as attester
615
634
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(
@@ -622,7 +641,7 @@ export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOpti
622
641
  // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
623
642
  // This is different from ConsensusPayload's format (ABI encoding)
624
643
  const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
625
- const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
644
+ const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
626
645
  const proposalHash = getHashedSignaturePayloadEthSignedMessage(
627
646
  tempProposal,
628
647
  SignatureDomainSeparator.checkpointProposal,
@@ -639,7 +658,7 @@ export const makeCheckpointAttestationFromProposal = (
639
658
  proposal: CheckpointProposal,
640
659
  attesterSigner?: Secp256k1Signer,
641
660
  ): CheckpointAttestation => {
642
- const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
661
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
643
662
 
644
663
  // Sign as attester
645
664
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(
@@ -663,19 +682,27 @@ export const makeCheckpointAttestationFromCheckpoint = (
663
682
  ): CheckpointAttestation => {
664
683
  const header = checkpoint.header;
665
684
  const archive = checkpoint.archive.root;
685
+ const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
666
686
 
667
- return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
687
+ return makeCheckpointAttestation({ header, archive, feeAssetPriceModifier, attesterSigner, proposerSigner });
668
688
  };
669
689
 
670
690
  /**
671
691
  * Create a checkpoint attestation from an L2Block
692
+ * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
672
693
  */
673
694
  export const makeCheckpointAttestationFromBlock = (
674
695
  block: L2Block,
675
696
  attesterSigner?: Secp256k1Signer,
676
697
  proposerSigner?: Secp256k1Signer,
677
698
  ): CheckpointAttestation => {
678
- const header = block.header.toCheckpointHeader();
699
+ // For L2Block, we create a minimal checkpoint header for testing purposes
700
+ const header = CheckpointHeader.empty({
701
+ lastArchiveRoot: block.header.lastArchive.root,
702
+ slotNumber: block.slot,
703
+ timestamp: block.timestamp,
704
+ blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
705
+ });
679
706
  const archive = block.archive.root;
680
707
 
681
708
  return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
@@ -684,7 +711,7 @@ export const makeCheckpointAttestationFromBlock = (
684
711
  export async function randomPublishedL2Block(
685
712
  l2BlockNumber: number,
686
713
  opts: { signers?: Secp256k1Signer[] } = {},
687
- ): Promise<PublishedL2Block> {
714
+ ): Promise<CheckpointedL2Block> {
688
715
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
689
716
  const l1 = L1PublishedData.fromFields({
690
717
  blockNumber: BigInt(block.number),
@@ -693,15 +720,19 @@ export async function randomPublishedL2Block(
693
720
  });
694
721
 
695
722
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
723
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
724
+ numBlocks: 0,
725
+ });
726
+ checkpoint.blocks = [block];
696
727
  const atts = signers.map(signer =>
697
728
  makeCheckpointAttestation({
698
729
  signer,
699
730
  archive: block.archive.root,
700
- header: block.header.toCheckpointHeader(),
731
+ header: checkpoint.header,
701
732
  }),
702
733
  );
703
734
  const attestations = atts.map(
704
735
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
705
736
  );
706
- return new PublishedL2Block(block, l1, attestations);
737
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
707
738
  }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Timetable constants used for sequencer timing calculations.
3
+ * These define the time budgets for various phases of block production.
4
+ *
5
+ * The sequencer slot is divided into phases:
6
+ * 1. Checkpoint initialization (sync + proposer check)
7
+ * 2. Block building (execution)
8
+ * 3. Checkpoint assembly
9
+ * 4. P2P propagation for proposal and attestations (round-trip)
10
+ * 5. L1 publishing
11
+ */
12
+
13
+ /** Time budget for checkpoint initialization (sync + proposer check) in seconds */
14
+ export const CHECKPOINT_INITIALIZATION_TIME = 1;
15
+
16
+ /** Time budget for assembling a checkpoint after building the last block in seconds */
17
+ export const CHECKPOINT_ASSEMBLE_TIME = 1;
18
+
19
+ /** Default one-way P2P propagation time for proposals and attestations in seconds */
20
+ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
21
+
22
+ /** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
23
+ export const DEFAULT_L1_PUBLISHING_TIME = 12;
24
+
25
+ /** Minimum execution time for building a block in seconds */
26
+ export const MIN_EXECUTION_TIME = 2;
27
+
28
+ /**
29
+ * Calculates the maximum number of blocks that can be built in a slot.
30
+ * Used by both the sequencer timetable and p2p gossipsub scoring.
31
+ *
32
+ * @param aztecSlotDurationSec - Aztec slot duration in seconds
33
+ * @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
34
+ * @param opts - Optional overrides for timing constants
35
+ * @returns Maximum number of blocks per slot
36
+ */
37
+ export function calculateMaxBlocksPerSlot(
38
+ aztecSlotDurationSec: number,
39
+ blockDurationSec: number | undefined,
40
+ opts: {
41
+ checkpointInitializationTime?: number;
42
+ checkpointAssembleTime?: number;
43
+ p2pPropagationTime?: number;
44
+ l1PublishingTime?: number;
45
+ } = {},
46
+ ): number {
47
+ if (!blockDurationSec) {
48
+ return 1; // Single block per slot
49
+ }
50
+
51
+ const initOffset = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
52
+ const assembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
53
+ const p2pTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
54
+ const l1Time = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
55
+
56
+ // Calculate checkpoint finalization time (assembly + round-trip propagation + L1 publishing)
57
+ const checkpointFinalizationTime = assembleTime + p2pTime * 2 + l1Time;
58
+
59
+ // Time reserved at end for last sub-slot (validator re-execution) + finalization
60
+ const timeReservedAtEnd = blockDurationSec + checkpointFinalizationTime;
61
+
62
+ // Time available for building blocks
63
+ const timeAvailableForBlocks = aztecSlotDurationSec - initOffset - timeReservedAtEnd;
64
+
65
+ return Math.max(1, Math.floor(timeAvailableForBlocks / blockDurationSec));
66
+ }
@@ -1,4 +1,5 @@
1
1
  import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
2
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { schemas } from '@aztec/foundation/schemas';
4
5
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -81,11 +82,15 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
81
82
  toHashInputs(): Buffer[] {
82
83
  return [
83
84
  ...this.leaf.toHashInputs(),
84
- Buffer.from(toBufferBE(this.nextIndex, 32)),
85
85
  Buffer.from(this.nextKey.toBuffer()),
86
+ Buffer.from(toBufferBE(this.nextIndex, 32)),
86
87
  ];
87
88
  }
88
89
 
90
+ hash(): Promise<Fr> {
91
+ return poseidon2Hash(this.toHashInputs());
92
+ }
93
+
89
94
  clone(): PublicDataTreeLeafPreimage {
90
95
  return new PublicDataTreeLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
91
96
  }
@@ -104,10 +109,11 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
104
109
 
105
110
  static fromBuffer(buffer: Buffer | BufferReader): PublicDataTreeLeafPreimage {
106
111
  const reader = BufferReader.asReader(buffer);
107
- const value = PublicDataTreeLeaf.fromBuffer(reader);
108
- const nextIndex = toBigIntBE(reader.readBytes(32));
109
- const nextSlot = Fr.fromBuffer(reader);
110
- return new PublicDataTreeLeafPreimage(value, nextSlot, nextIndex);
112
+ return new PublicDataTreeLeafPreimage(
113
+ PublicDataTreeLeaf.fromBuffer(reader),
114
+ Fr.fromBuffer(reader),
115
+ toBigIntBE(reader.readBytes(32)),
116
+ );
111
117
  }
112
118
 
113
119
  static fromLeaf(leaf: PublicDataTreeLeaf, nextKey: bigint, nextIndex: bigint): PublicDataTreeLeafPreimage {