@aztec/stdlib 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c

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 (732) hide show
  1. package/dest/abi/contract_artifact.d.ts +2 -2
  2. package/dest/abi/contract_artifact.d.ts.map +1 -1
  3. package/dest/abi/contract_artifact.js +1 -1
  4. package/dest/abi/function_call.d.ts +47 -9
  5. package/dest/abi/function_call.d.ts.map +1 -1
  6. package/dest/abi/function_call.js +20 -3
  7. package/dest/abi/selector.js +3 -1
  8. package/dest/abi/utils.d.ts +7 -1
  9. package/dest/abi/utils.d.ts.map +1 -1
  10. package/dest/abi/utils.js +7 -0
  11. package/dest/auth_witness/auth_witness.d.ts +2 -1
  12. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  13. package/dest/auth_witness/auth_witness.js +3 -3
  14. package/dest/avm/avm.d.ts +62 -62
  15. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  16. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  17. package/dest/avm/avm_accumulated_data.js +5 -2
  18. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  19. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  20. package/dest/avm/avm_proving_request.d.ts +299 -299
  21. package/dest/avm/contract_storage_read.d.ts +13 -1
  22. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  23. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  24. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  25. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  26. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  27. package/dest/avm/public_data_read.d.ts +10 -1
  28. package/dest/avm/public_data_read.d.ts.map +1 -1
  29. package/dest/avm/public_data_update_request.d.ts +10 -1
  30. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  31. package/dest/avm/public_data_update_request.js +3 -1
  32. package/dest/avm/public_data_write.d.ts +7 -1
  33. package/dest/avm/public_data_write.d.ts.map +1 -1
  34. package/dest/avm/public_inner_call_request.d.ts +4 -1
  35. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  36. package/dest/avm/public_inner_call_request.js +3 -1
  37. package/dest/avm/revert_code.d.ts +4 -4
  38. package/dest/avm/revert_code.d.ts.map +1 -1
  39. package/dest/avm/revert_code.js +3 -1
  40. package/dest/aztec-address/index.js +4 -2
  41. package/dest/block/attestation_info.d.ts +5 -5
  42. package/dest/block/attestation_info.d.ts.map +1 -1
  43. package/dest/block/attestation_info.js +4 -4
  44. package/dest/block/block_data.d.ts +52 -0
  45. package/dest/block/block_data.d.ts.map +1 -0
  46. package/dest/block/block_data.js +12 -0
  47. package/dest/block/block_hash.d.ts +18 -14
  48. package/dest/block/block_hash.d.ts.map +1 -1
  49. package/dest/block/block_hash.js +22 -20
  50. package/dest/block/block_parameter.d.ts +4 -3
  51. package/dest/block/block_parameter.d.ts.map +1 -1
  52. package/dest/block/block_parameter.js +2 -0
  53. package/dest/block/body.d.ts +1 -1
  54. package/dest/block/body.d.ts.map +1 -1
  55. package/dest/block/body.js +5 -2
  56. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  57. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  58. package/dest/block/checkpointed_l2_block.js +7 -45
  59. package/dest/block/in_block.d.ts +9 -9
  60. package/dest/block/in_block.d.ts.map +1 -1
  61. package/dest/block/in_block.js +5 -5
  62. package/dest/block/index.d.ts +2 -3
  63. package/dest/block/index.d.ts.map +1 -1
  64. package/dest/block/index.js +1 -2
  65. package/dest/block/l2_block.d.ts +57 -57
  66. package/dest/block/l2_block.d.ts.map +1 -1
  67. package/dest/block/l2_block.js +64 -108
  68. package/dest/block/l2_block_source.d.ts +317 -68
  69. package/dest/block/l2_block_source.d.ts.map +1 -1
  70. package/dest/block/l2_block_source.js +25 -6
  71. package/dest/block/l2_block_stream/index.d.ts +2 -1
  72. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  73. package/dest/block/l2_block_stream/index.js +1 -0
  74. package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
  75. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  76. package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -3
  77. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  78. package/dest/block/l2_block_stream/l2_block_stream.js +106 -31
  79. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  80. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  82. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  83. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  84. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  85. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  86. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  87. package/dest/block/test/l2_tips_store_test_suite.js +478 -38
  88. package/dest/block/validate_block_result.d.ts +24 -24
  89. package/dest/block/validate_block_result.d.ts.map +1 -1
  90. package/dest/block/validate_block_result.js +18 -17
  91. package/dest/checkpoint/checkpoint.d.ts +43 -19
  92. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  93. package/dest/checkpoint/checkpoint.js +38 -14
  94. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  95. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  96. package/dest/checkpoint/checkpoint_data.js +26 -0
  97. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  98. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  99. package/dest/checkpoint/checkpoint_info.js +34 -1
  100. package/dest/checkpoint/index.d.ts +3 -1
  101. package/dest/checkpoint/index.d.ts.map +1 -1
  102. package/dest/checkpoint/index.js +2 -0
  103. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  104. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  105. package/dest/checkpoint/published_checkpoint.js +5 -5
  106. package/dest/config/index.d.ts +2 -1
  107. package/dest/config/index.d.ts.map +1 -1
  108. package/dest/config/index.js +1 -0
  109. package/dest/config/node-rpc-config.js +1 -1
  110. package/dest/config/sequencer-config.d.ts +10 -0
  111. package/dest/config/sequencer-config.d.ts.map +1 -0
  112. package/dest/config/sequencer-config.js +18 -0
  113. package/dest/contract/complete_address.d.ts +4 -1
  114. package/dest/contract/complete_address.d.ts.map +1 -1
  115. package/dest/contract/contract_address.js +4 -4
  116. package/dest/contract/contract_class.d.ts +2 -3
  117. package/dest/contract/contract_class.d.ts.map +1 -1
  118. package/dest/contract/contract_class_id.d.ts +2 -2
  119. package/dest/contract/contract_class_id.d.ts.map +1 -1
  120. package/dest/contract/contract_class_id.js +6 -5
  121. package/dest/contract/contract_deployment_data.d.ts +5 -5
  122. package/dest/contract/index.d.ts +1 -3
  123. package/dest/contract/index.d.ts.map +1 -1
  124. package/dest/contract/index.js +0 -2
  125. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  126. package/dest/contract/interfaces/node-info.d.ts +3 -1
  127. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  128. package/dest/contract/interfaces/node-info.js +2 -1
  129. package/dest/contract/private_function.d.ts +1 -1
  130. package/dest/contract/private_function.d.ts.map +1 -1
  131. package/dest/contract/private_function.js +3 -4
  132. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  133. package/dest/contract/private_function_membership_proof.js +1 -1
  134. package/dest/database-version/database_version.d.ts +58 -0
  135. package/dest/database-version/database_version.d.ts.map +1 -0
  136. package/dest/database-version/database_version.js +69 -0
  137. package/dest/database-version/version_manager.d.ts +3 -49
  138. package/dest/database-version/version_manager.d.ts.map +1 -1
  139. package/dest/database-version/version_manager.js +1 -64
  140. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  141. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  142. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  143. package/dest/deserialization/index.d.ts +11 -0
  144. package/dest/deserialization/index.d.ts.map +1 -0
  145. package/dest/deserialization/index.js +10 -0
  146. package/dest/epoch-helpers/index.d.ts +7 -1
  147. package/dest/epoch-helpers/index.d.ts.map +1 -1
  148. package/dest/epoch-helpers/index.js +9 -3
  149. package/dest/errors/proving_error.d.ts +2 -2
  150. package/dest/errors/proving_error.d.ts.map +1 -1
  151. package/dest/file-store/local.d.ts +3 -3
  152. package/dest/file-store/local.d.ts.map +1 -1
  153. package/dest/file-store/local.js +13 -4
  154. package/dest/file-store/s3.d.ts +1 -1
  155. package/dest/file-store/s3.d.ts.map +1 -1
  156. package/dest/file-store/s3.js +11 -3
  157. package/dest/gas/gas.js +3 -1
  158. package/dest/gas/gas_fees.js +3 -1
  159. package/dest/ha-signing/config.d.ts +101 -0
  160. package/dest/ha-signing/config.d.ts.map +1 -0
  161. package/dest/ha-signing/config.js +92 -0
  162. package/dest/ha-signing/index.d.ts +3 -0
  163. package/dest/ha-signing/index.d.ts.map +1 -0
  164. package/dest/ha-signing/index.js +2 -0
  165. package/dest/ha-signing/types.d.ts +85 -0
  166. package/dest/ha-signing/types.d.ts.map +1 -0
  167. package/dest/ha-signing/types.js +32 -0
  168. package/dest/hash/hash.d.ts +2 -1
  169. package/dest/hash/hash.d.ts.map +1 -1
  170. package/dest/hash/hash.js +16 -10
  171. package/dest/hash/map_slot.d.ts +1 -1
  172. package/dest/hash/map_slot.d.ts.map +1 -1
  173. package/dest/hash/map_slot.js +4 -3
  174. package/dest/interfaces/api_limit.d.ts +3 -1
  175. package/dest/interfaces/api_limit.d.ts.map +1 -1
  176. package/dest/interfaces/api_limit.js +2 -0
  177. package/dest/interfaces/archiver.d.ts +6 -6
  178. package/dest/interfaces/archiver.d.ts.map +1 -1
  179. package/dest/interfaces/archiver.js +27 -17
  180. package/dest/interfaces/aztec-node-admin.d.ts +111 -32
  181. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  182. package/dest/interfaces/aztec-node-admin.js +14 -6
  183. package/dest/interfaces/aztec-node.d.ts +75 -77
  184. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  185. package/dest/interfaces/aztec-node.js +15 -16
  186. package/dest/interfaces/block-builder.d.ts +22 -14
  187. package/dest/interfaces/block-builder.d.ts.map +1 -1
  188. package/dest/interfaces/block-builder.js +7 -0
  189. package/dest/interfaces/configs.d.ts +28 -8
  190. package/dest/interfaces/configs.d.ts.map +1 -1
  191. package/dest/interfaces/configs.js +5 -1
  192. package/dest/interfaces/get_logs_response.d.ts +16 -9
  193. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  194. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  195. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  196. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  197. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  198. package/dest/interfaces/p2p.d.ts +7 -9
  199. package/dest/interfaces/p2p.d.ts.map +1 -1
  200. package/dest/interfaces/p2p.js +3 -4
  201. package/dest/interfaces/prover-broker.d.ts +16 -1
  202. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  203. package/dest/interfaces/prover-broker.js +4 -1
  204. package/dest/interfaces/prover-client.d.ts +15 -1
  205. package/dest/interfaces/prover-client.d.ts.map +1 -1
  206. package/dest/interfaces/prover-client.js +12 -1
  207. package/dest/interfaces/proving-job.d.ts +52 -52
  208. package/dest/interfaces/proving-job.d.ts.map +1 -1
  209. package/dest/interfaces/proving-job.js +1 -7
  210. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  211. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  212. package/dest/interfaces/slasher.d.ts +9 -1
  213. package/dest/interfaces/slasher.d.ts.map +1 -1
  214. package/dest/interfaces/slasher.js +2 -0
  215. package/dest/interfaces/tx_provider.d.ts +3 -3
  216. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  217. package/dest/interfaces/validator.d.ts +155 -19
  218. package/dest/interfaces/validator.d.ts.map +1 -1
  219. package/dest/interfaces/validator.js +8 -3
  220. package/dest/kernel/claimed_length_array.js +3 -1
  221. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  222. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  223. package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
  224. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  225. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  226. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  227. package/dest/kernel/hints/index.d.ts +2 -2
  228. package/dest/kernel/hints/index.js +2 -2
  229. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  230. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  231. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  232. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  233. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  234. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  235. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  236. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  237. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  238. package/dest/kernel/hints/read_request.d.ts +7 -1
  239. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  240. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  241. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  242. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  243. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  244. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  245. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  246. package/dest/kernel/log_hash.js +3 -1
  247. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  248. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  249. package/dest/kernel/private_call_data.d.ts +25 -1
  250. package/dest/kernel/private_call_data.d.ts.map +1 -1
  251. package/dest/kernel/private_call_request.d.ts +16 -1
  252. package/dest/kernel/private_call_request.d.ts.map +1 -1
  253. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  254. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  255. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  256. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  257. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  258. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  259. package/dest/kernel/private_kernel_data.d.ts +7 -1
  260. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  261. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  262. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  263. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  264. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  265. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  266. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  267. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  268. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  269. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  270. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +25 -3
  271. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
  273. package/dest/kernel/private_log_data.js +5 -2
  274. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  275. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  276. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  277. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  278. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  279. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  280. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  281. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  282. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  283. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  284. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  285. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  286. package/dest/kernel/private_validation_requests.d.ts +13 -4
  287. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  288. package/dest/kernel/private_validation_requests.js +12 -10
  289. package/dest/kernel/public_call_request.d.ts +22 -1
  290. package/dest/kernel/public_call_request.d.ts.map +1 -1
  291. package/dest/kernel/public_call_request.js +5 -2
  292. package/dest/kernel/utils/optional_number.d.ts +7 -1
  293. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  294. package/dest/keys/derivation.d.ts +3 -3
  295. package/dest/keys/derivation.js +15 -15
  296. package/dest/keys/key_types.d.ts +3 -3
  297. package/dest/keys/key_types.d.ts.map +1 -1
  298. package/dest/keys/public_keys.d.ts +5 -1
  299. package/dest/keys/public_keys.d.ts.map +1 -1
  300. package/dest/keys/public_keys.js +2 -2
  301. package/dest/keys/utils.d.ts +1 -1
  302. package/dest/keys/utils.d.ts.map +1 -1
  303. package/dest/keys/utils.js +8 -4
  304. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  305. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  306. package/dest/l1-contracts/slash_factory.js +1 -0
  307. package/dest/logs/contract_class_log.js +3 -1
  308. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  309. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  310. package/dest/logs/extended_public_log.d.ts +17 -9
  311. package/dest/logs/extended_public_log.d.ts.map +1 -1
  312. package/dest/logs/log_id.d.ts +21 -14
  313. package/dest/logs/log_id.d.ts.map +1 -1
  314. package/dest/logs/log_id.js +20 -17
  315. package/dest/logs/private_log.d.ts +2 -2
  316. package/dest/logs/private_log.d.ts.map +1 -1
  317. package/dest/logs/private_log.js +3 -1
  318. package/dest/logs/public_log.js +3 -1
  319. package/dest/logs/siloed_tag.d.ts +1 -1
  320. package/dest/logs/siloed_tag.d.ts.map +1 -1
  321. package/dest/logs/siloed_tag.js +2 -5
  322. package/dest/messaging/in_hash.d.ts +4 -2
  323. package/dest/messaging/in_hash.d.ts.map +1 -1
  324. package/dest/messaging/in_hash.js +3 -1
  325. package/dest/messaging/inbox_leaf.d.ts +3 -1
  326. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  327. package/dest/messaging/l1_actor.d.ts +7 -1
  328. package/dest/messaging/l1_actor.d.ts.map +1 -1
  329. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  330. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  331. package/dest/messaging/l2_actor.d.ts +7 -1
  332. package/dest/messaging/l2_actor.d.ts.map +1 -1
  333. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  334. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  335. package/dest/messaging/l2_to_l1_membership.js +160 -42
  336. package/dest/messaging/out_hash.d.ts +41 -3
  337. package/dest/messaging/out_hash.d.ts.map +1 -1
  338. package/dest/messaging/out_hash.js +54 -19
  339. package/dest/note/index.d.ts +1 -2
  340. package/dest/note/index.d.ts.map +1 -1
  341. package/dest/note/index.js +0 -1
  342. package/dest/note/note_dao.d.ts +36 -5
  343. package/dest/note/note_dao.d.ts.map +1 -1
  344. package/dest/note/note_dao.js +15 -12
  345. package/dest/p2p/attestation_utils.d.ts +3 -3
  346. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  347. package/dest/p2p/attestation_utils.js +1 -1
  348. package/dest/p2p/block_proposal.d.ts +102 -23
  349. package/dest/p2p/block_proposal.d.ts.map +1 -1
  350. package/dest/p2p/block_proposal.js +138 -39
  351. package/dest/p2p/checkpoint_attestation.d.ts +82 -0
  352. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  353. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  354. package/dest/p2p/checkpoint_proposal.d.ts +179 -0
  355. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  356. package/dest/p2p/checkpoint_proposal.js +243 -0
  357. package/dest/p2p/consensus_payload.d.ts +20 -11
  358. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  359. package/dest/p2p/consensus_payload.js +24 -19
  360. package/dest/p2p/constants.d.ts +5 -0
  361. package/dest/p2p/constants.d.ts.map +1 -0
  362. package/dest/p2p/constants.js +3 -0
  363. package/dest/p2p/gossipable.d.ts +4 -3
  364. package/dest/p2p/gossipable.d.ts.map +1 -1
  365. package/dest/p2p/gossipable.js +16 -5
  366. package/dest/p2p/index.d.ts +5 -2
  367. package/dest/p2p/index.d.ts.map +1 -1
  368. package/dest/p2p/index.js +4 -1
  369. package/dest/p2p/message_validator.d.ts +18 -3
  370. package/dest/p2p/message_validator.d.ts.map +1 -1
  371. package/dest/p2p/message_validator.js +2 -1
  372. package/dest/p2p/signature_utils.d.ts +5 -3
  373. package/dest/p2p/signature_utils.d.ts.map +1 -1
  374. package/dest/p2p/signature_utils.js +3 -1
  375. package/dest/p2p/signed_txs.d.ts +42 -0
  376. package/dest/p2p/signed_txs.d.ts.map +1 -0
  377. package/dest/p2p/signed_txs.js +75 -0
  378. package/dest/p2p/topic_type.d.ts +3 -2
  379. package/dest/p2p/topic_type.d.ts.map +1 -1
  380. package/dest/p2p/topic_type.js +10 -3
  381. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  382. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  383. package/dest/parity/parity_public_inputs.d.ts +4 -1
  384. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  385. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  386. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  387. package/dest/proofs/chonk_proof.d.ts +1 -1
  388. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  389. package/dest/proofs/chonk_proof.js +9 -4
  390. package/dest/proofs/proof.d.ts +4 -1
  391. package/dest/proofs/proof.d.ts.map +1 -1
  392. package/dest/proofs/recursive_proof.d.ts +10 -1
  393. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  394. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  395. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  396. package/dest/rollup/block_constant_data.d.ts +12 -1
  397. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  398. package/dest/rollup/block_headers_hash.js +1 -1
  399. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  400. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  401. package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
  402. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  403. package/dest/rollup/block_rollup_public_inputs.js +8 -12
  404. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  405. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  406. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  407. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  408. package/dest/rollup/checkpoint_constant_data.js +3 -1
  409. package/dest/rollup/checkpoint_header.d.ts +43 -13
  410. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  411. package/dest/rollup/checkpoint_header.js +50 -20
  412. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  413. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  414. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +46 -6
  415. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  416. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
  417. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  418. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  419. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  420. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  421. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  422. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  423. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  424. package/dest/rollup/root_rollup_public_inputs.d.ts +21 -6
  425. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  426. package/dest/rollup/root_rollup_public_inputs.js +10 -4
  427. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  428. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  429. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  430. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  431. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  432. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  433. package/dest/schemas/schemas.d.ts +1 -1
  434. package/dest/slashing/empire.d.ts +1 -1
  435. package/dest/slashing/empire.d.ts.map +1 -1
  436. package/dest/slashing/empire.js +2 -0
  437. package/dest/slashing/helpers.d.ts +2 -2
  438. package/dest/slashing/helpers.d.ts.map +1 -1
  439. package/dest/slashing/helpers.js +6 -0
  440. package/dest/slashing/tally.d.ts +2 -1
  441. package/dest/slashing/tally.d.ts.map +1 -1
  442. package/dest/slashing/tally.js +6 -2
  443. package/dest/slashing/types.d.ts +7 -3
  444. package/dest/slashing/types.d.ts.map +1 -1
  445. package/dest/slashing/types.js +13 -1
  446. package/dest/stats/stats.d.ts +1 -3
  447. package/dest/stats/stats.d.ts.map +1 -1
  448. package/dest/tests/factories.d.ts +16 -10
  449. package/dest/tests/factories.d.ts.map +1 -1
  450. package/dest/tests/factories.js +71 -36
  451. package/dest/tests/jest.js +1 -1
  452. package/dest/tests/mocks.d.ts +77 -19
  453. package/dest/tests/mocks.d.ts.map +1 -1
  454. package/dest/tests/mocks.js +133 -62
  455. package/dest/timetable/index.d.ts +37 -0
  456. package/dest/timetable/index.d.ts.map +1 -0
  457. package/dest/timetable/index.js +39 -0
  458. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  459. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  460. package/dest/trees/append_only_tree_snapshot.js +3 -1
  461. package/dest/trees/nullifier_leaf.d.ts +13 -1
  462. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  463. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  464. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  465. package/dest/trees/public_data_leaf.d.ts +17 -1
  466. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  467. package/dest/trees/public_data_leaf.js +7 -6
  468. package/dest/trees/public_data_witness.d.ts +11 -1
  469. package/dest/trees/public_data_witness.d.ts.map +1 -1
  470. package/dest/tx/block_header.d.ts +14 -2
  471. package/dest/tx/block_header.d.ts.map +1 -1
  472. package/dest/tx/block_header.js +9 -3
  473. package/dest/tx/call_context.d.ts +13 -1
  474. package/dest/tx/call_context.d.ts.map +1 -1
  475. package/dest/tx/call_context.js +3 -1
  476. package/dest/tx/capsule.d.ts +4 -1
  477. package/dest/tx/capsule.d.ts.map +1 -1
  478. package/dest/tx/execution_payload.d.ts +9 -1
  479. package/dest/tx/execution_payload.d.ts.map +1 -1
  480. package/dest/tx/function_data.d.ts +4 -2
  481. package/dest/tx/function_data.d.ts.map +1 -1
  482. package/dest/tx/global_variable_builder.d.ts +2 -2
  483. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  484. package/dest/tx/global_variables.d.ts +12 -4
  485. package/dest/tx/global_variables.d.ts.map +1 -1
  486. package/dest/tx/global_variables.js +3 -1
  487. package/dest/tx/hashed_values.d.ts +7 -1
  488. package/dest/tx/hashed_values.d.ts.map +1 -1
  489. package/dest/tx/in_tx.d.ts +4 -4
  490. package/dest/tx/index.d.ts +1 -2
  491. package/dest/tx/index.d.ts.map +1 -1
  492. package/dest/tx/index.js +0 -1
  493. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  494. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  495. package/dest/tx/indexed_tx_effect.js +3 -2
  496. package/dest/tx/partial_state_reference.d.ts +4 -1
  497. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  498. package/dest/tx/private_execution_result.d.ts +23 -6
  499. package/dest/tx/private_execution_result.d.ts.map +1 -1
  500. package/dest/tx/private_execution_result.js +4 -21
  501. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  502. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  503. package/dest/tx/profiling.d.ts +152 -29
  504. package/dest/tx/profiling.d.ts.map +1 -1
  505. package/dest/tx/profiling.js +47 -10
  506. package/dest/tx/protocol_contracts.d.ts +2 -2
  507. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  508. package/dest/tx/protocol_contracts.js +2 -2
  509. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  510. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  511. package/dest/tx/public_call_request_with_calldata.js +3 -1
  512. package/dest/tx/public_simulation_output.d.ts +4 -2
  513. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  514. package/dest/tx/public_simulation_output.js +7 -3
  515. package/dest/tx/state_reference.d.ts +3 -1
  516. package/dest/tx/state_reference.d.ts.map +1 -1
  517. package/dest/tx/state_reference.js +3 -1
  518. package/dest/tx/tree_snapshots.js +3 -1
  519. package/dest/tx/tx.d.ts +24 -1
  520. package/dest/tx/tx.d.ts.map +1 -1
  521. package/dest/tx/tx.js +9 -4
  522. package/dest/tx/tx_context.d.ts +2 -1
  523. package/dest/tx/tx_context.d.ts.map +1 -1
  524. package/dest/tx/tx_effect.d.ts +32 -6
  525. package/dest/tx/tx_effect.d.ts.map +1 -1
  526. package/dest/tx/tx_effect.js +3 -8
  527. package/dest/tx/tx_execution_request.d.ts +30 -1
  528. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  529. package/dest/tx/tx_execution_request.js +6 -2
  530. package/dest/tx/tx_hash.d.ts +2 -1
  531. package/dest/tx/tx_hash.d.ts.map +1 -1
  532. package/dest/tx/tx_receipt.d.ts +47 -13
  533. package/dest/tx/tx_receipt.d.ts.map +1 -1
  534. package/dest/tx/tx_receipt.js +46 -15
  535. package/dest/tx/tx_request.d.ts +6 -1
  536. package/dest/tx/tx_request.d.ts.map +1 -1
  537. package/dest/tx/tx_request.js +2 -2
  538. package/dest/tx/validator/empty_validator.d.ts +2 -2
  539. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  540. package/dest/tx/validator/error_texts.d.ts +3 -2
  541. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  542. package/dest/tx/validator/error_texts.js +3 -1
  543. package/dest/tx/validator/tx_validator.d.ts +2 -2
  544. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  545. package/dest/types/shared.d.ts +4 -1
  546. package/dest/types/shared.d.ts.map +1 -1
  547. package/dest/validators/schemas.d.ts +38 -38
  548. package/dest/validators/schemas.d.ts.map +1 -1
  549. package/dest/validators/schemas.js +4 -3
  550. package/dest/validators/types.d.ts +3 -3
  551. package/dest/validators/types.d.ts.map +1 -1
  552. package/dest/vks/verification_key.d.ts +22 -1
  553. package/dest/vks/verification_key.d.ts.map +1 -1
  554. package/dest/vks/vk_data.d.ts +7 -1
  555. package/dest/vks/vk_data.d.ts.map +1 -1
  556. package/dest/zkpassport/index.d.ts +3 -4
  557. package/dest/zkpassport/index.d.ts.map +1 -1
  558. package/dest/zkpassport/index.js +9 -9
  559. package/package.json +27 -13
  560. package/src/abi/contract_artifact.ts +10 -10
  561. package/src/abi/function_call.ts +25 -3
  562. package/src/abi/utils.ts +17 -0
  563. package/src/auth_witness/auth_witness.ts +3 -3
  564. package/src/block/attestation_info.ts +9 -6
  565. package/src/block/block_data.ts +26 -0
  566. package/src/block/block_hash.ts +26 -25
  567. package/src/block/block_parameter.ts +4 -2
  568. package/src/block/body.ts +2 -1
  569. package/src/block/checkpointed_l2_block.ts +8 -58
  570. package/src/block/in_block.ts +6 -6
  571. package/src/block/index.ts +1 -2
  572. package/src/block/l2_block.ts +102 -149
  573. package/src/block/l2_block_source.ts +145 -44
  574. package/src/block/l2_block_stream/index.ts +1 -0
  575. package/src/block/l2_block_stream/interfaces.ts +15 -4
  576. package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
  577. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  578. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  579. package/src/block/test/l2_tips_store_test_suite.ts +480 -36
  580. package/src/block/validate_block_result.ts +40 -35
  581. package/src/checkpoint/checkpoint.ts +62 -21
  582. package/src/checkpoint/checkpoint_data.ts +51 -0
  583. package/src/checkpoint/checkpoint_info.ts +45 -2
  584. package/src/checkpoint/index.ts +2 -0
  585. package/src/checkpoint/published_checkpoint.ts +7 -4
  586. package/src/config/index.ts +1 -0
  587. package/src/config/node-rpc-config.ts +1 -1
  588. package/src/config/sequencer-config.ts +29 -0
  589. package/src/contract/contract_address.ts +4 -4
  590. package/src/contract/contract_class.ts +3 -3
  591. package/src/contract/contract_class_id.ts +6 -5
  592. package/src/contract/index.ts +0 -2
  593. package/src/contract/interfaces/node-info.ts +3 -0
  594. package/src/contract/private_function.ts +3 -4
  595. package/src/contract/private_function_membership_proof.ts +1 -1
  596. package/src/database-version/database_version.ts +87 -0
  597. package/src/database-version/version_manager.ts +1 -77
  598. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  599. package/src/deserialization/index.ts +21 -0
  600. package/src/epoch-helpers/index.ts +13 -1
  601. package/src/file-store/local.ts +15 -5
  602. package/src/file-store/s3.ts +12 -3
  603. package/src/ha-signing/config.ts +149 -0
  604. package/src/ha-signing/index.ts +18 -0
  605. package/src/ha-signing/types.ts +112 -0
  606. package/src/hash/hash.ts +14 -10
  607. package/src/hash/map_slot.ts +3 -2
  608. package/src/interfaces/api_limit.ts +2 -0
  609. package/src/interfaces/archiver.ts +31 -24
  610. package/src/interfaces/aztec-node-admin.ts +31 -4
  611. package/src/interfaces/aztec-node.ts +110 -129
  612. package/src/interfaces/block-builder.ts +41 -23
  613. package/src/interfaces/configs.ts +15 -1
  614. package/src/interfaces/l2_logs_source.ts +17 -4
  615. package/src/interfaces/merkle_tree_operations.ts +1 -1
  616. package/src/interfaces/p2p.ts +8 -12
  617. package/src/interfaces/prover-broker.ts +22 -0
  618. package/src/interfaces/prover-client.ts +22 -0
  619. package/src/interfaces/proving-job.ts +2 -11
  620. package/src/interfaces/server_circuit_prover.ts +3 -2
  621. package/src/interfaces/slasher.ts +4 -0
  622. package/src/interfaces/tx_provider.ts +2 -2
  623. package/src/interfaces/validator.ts +73 -15
  624. package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
  625. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  626. package/src/kernel/hints/index.ts +2 -2
  627. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  628. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  629. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  630. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  631. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  632. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  633. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  634. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  635. package/src/kernel/private_validation_requests.ts +8 -8
  636. package/src/keys/derivation.ts +15 -15
  637. package/src/keys/key_types.ts +6 -2
  638. package/src/keys/public_keys.ts +2 -2
  639. package/src/keys/utils.ts +8 -4
  640. package/src/l1-contracts/slash_factory.ts +1 -0
  641. package/src/logs/log_id.ts +22 -18
  642. package/src/logs/siloed_tag.ts +2 -2
  643. package/src/messaging/in_hash.ts +3 -1
  644. package/src/messaging/l2_to_l1_membership.ts +178 -52
  645. package/src/messaging/out_hash.ts +62 -21
  646. package/src/note/index.ts +0 -1
  647. package/src/note/note_dao.ts +18 -13
  648. package/src/p2p/attestation_utils.ts +3 -3
  649. package/src/p2p/block_proposal.ts +211 -46
  650. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
  651. package/src/p2p/checkpoint_proposal.ts +387 -0
  652. package/src/p2p/consensus_payload.ts +29 -18
  653. package/src/p2p/constants.ts +6 -0
  654. package/src/p2p/gossipable.ts +14 -4
  655. package/src/p2p/index.ts +4 -1
  656. package/src/p2p/message_validator.ts +14 -2
  657. package/src/p2p/signature_utils.ts +3 -1
  658. package/src/p2p/signed_txs.ts +88 -0
  659. package/src/p2p/topic_type.ts +4 -3
  660. package/src/proofs/chonk_proof.ts +9 -5
  661. package/src/rollup/block_headers_hash.ts +1 -1
  662. package/src/rollup/block_rollup_public_inputs.ts +5 -11
  663. package/src/rollup/checkpoint_header.ts +64 -21
  664. package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
  665. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  666. package/src/rollup/root_rollup_public_inputs.ts +16 -7
  667. package/src/slashing/empire.ts +3 -1
  668. package/src/slashing/helpers.ts +8 -0
  669. package/src/slashing/tally.ts +8 -2
  670. package/src/slashing/types.ts +14 -0
  671. package/src/stats/stats.ts +0 -2
  672. package/src/tests/factories.ts +70 -54
  673. package/src/tests/jest.ts +1 -1
  674. package/src/tests/mocks.ts +228 -95
  675. package/src/timetable/index.ts +66 -0
  676. package/src/trees/public_data_leaf.ts +11 -5
  677. package/src/tx/block_header.ts +12 -4
  678. package/src/tx/global_variable_builder.ts +1 -1
  679. package/src/tx/global_variables.ts +3 -3
  680. package/src/tx/index.ts +0 -1
  681. package/src/tx/indexed_tx_effect.ts +3 -2
  682. package/src/tx/private_execution_result.ts +1 -16
  683. package/src/tx/profiling.ts +51 -9
  684. package/src/tx/protocol_contracts.ts +2 -2
  685. package/src/tx/public_simulation_output.ts +4 -0
  686. package/src/tx/tx.ts +10 -9
  687. package/src/tx/tx_effect.ts +0 -9
  688. package/src/tx/tx_execution_request.ts +2 -0
  689. package/src/tx/tx_receipt.ts +75 -18
  690. package/src/tx/tx_request.ts +2 -2
  691. package/src/tx/validator/empty_validator.ts +1 -1
  692. package/src/tx/validator/error_texts.ts +4 -1
  693. package/src/tx/validator/tx_validator.ts +1 -1
  694. package/src/validators/schemas.ts +8 -1
  695. package/src/validators/types.ts +5 -4
  696. package/src/zkpassport/index.ts +11 -12
  697. package/dest/block/l2_block_code_to_purge.d.ts +0 -12
  698. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  699. package/dest/block/l2_block_code_to_purge.js +0 -61
  700. package/dest/block/l2_block_header.d.ts +0 -98
  701. package/dest/block/l2_block_header.d.ts.map +0 -1
  702. package/dest/block/l2_block_header.js +0 -153
  703. package/dest/block/l2_block_new.d.ts +0 -135
  704. package/dest/block/l2_block_new.d.ts.map +0 -1
  705. package/dest/block/l2_block_new.js +0 -152
  706. package/dest/contract/contract_class_metadata.d.ts +0 -8
  707. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  708. package/dest/contract/contract_class_metadata.js +0 -1
  709. package/dest/contract/contract_metadata.d.ts +0 -7
  710. package/dest/contract/contract_metadata.d.ts.map +0 -1
  711. package/dest/contract/contract_metadata.js +0 -1
  712. package/dest/database-version/index.d.ts +0 -2
  713. package/dest/database-version/index.d.ts.map +0 -1
  714. package/dest/database-version/index.js +0 -1
  715. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  716. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  717. package/dest/note/notes_filter.d.ts +0 -27
  718. package/dest/note/notes_filter.d.ts.map +0 -1
  719. package/dest/note/notes_filter.js +0 -11
  720. package/dest/p2p/block_attestation.d.ts +0 -80
  721. package/dest/p2p/block_attestation.d.ts.map +0 -1
  722. package/dest/tx/content_commitment.d.ts +0 -49
  723. package/dest/tx/content_commitment.d.ts.map +0 -1
  724. package/dest/tx/content_commitment.js +0 -90
  725. package/src/block/l2_block_code_to_purge.ts +0 -88
  726. package/src/block/l2_block_header.ts +0 -246
  727. package/src/block/l2_block_new.ts +0 -207
  728. package/src/contract/contract_class_metadata.ts +0 -8
  729. package/src/contract/contract_metadata.ts +0 -7
  730. package/src/database-version/index.ts +0 -1
  731. package/src/note/notes_filter.ts +0 -38
  732. package/src/tx/content_commitment.ts +0 -113
@@ -2,26 +2,27 @@ 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
- import { makeTuple } from '@aztec/foundation/array';
10
- import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
9
+ import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
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';
14
14
  import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
15
15
  import { Fr } from '@aztec/foundation/curves/bn254';
16
+ import { Signature } from '@aztec/foundation/eth-signature';
16
17
 
17
18
  import type { ContractArtifact } from '../abi/abi.js';
18
19
  import { PublicTxEffect } from '../avm/avm.js';
20
+ import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
19
21
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
20
22
  import { PublicDataWrite } from '../avm/public_data_write.js';
21
23
  import { RevertCode } from '../avm/revert_code.js';
22
24
  import { AztecAddress } from '../aztec-address/index.js';
23
- import { CommitteeAttestation, L2BlockHeader, L2BlockNew, PublishedL2Block } from '../block/index.js';
24
- import { L2Block } from '../block/l2_block.js';
25
+ import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
25
26
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
26
27
  import { Checkpoint } from '../checkpoint/checkpoint.js';
27
28
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
@@ -45,12 +46,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
45
46
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
46
47
  import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
47
48
  import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
48
- import { BlockAttestation } from '../p2p/block_attestation.js';
49
49
  import { BlockProposal } from '../p2p/block_proposal.js';
50
+ import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
51
+ import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
50
52
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
51
53
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
52
54
  import { ChonkProof } from '../proofs/chonk_proof.js';
53
55
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
56
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
54
57
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
55
58
  import {
56
59
  BlockHeader,
@@ -72,9 +75,9 @@ import {
72
75
  makeAvmCircuitInputs,
73
76
  makeAztecAddress,
74
77
  makeBlockHeader,
78
+ makeCheckpointHeader,
75
79
  makeGas,
76
80
  makeGlobalVariables,
77
- makeL2BlockHeader,
78
81
  makePrivateToPublicAccumulatedData,
79
82
  makePrivateToRollupAccumulatedData,
80
83
  makeProtocolContracts,
@@ -94,12 +97,14 @@ export const mockTx = async (
94
97
  publicCalldataSize = 2,
95
98
  feePayer,
96
99
  chonkProof = ChonkProof.random(),
100
+ maxFeesPerGas = new GasFees(10, 10),
97
101
  maxPriorityFeesPerGas,
98
102
  gasUsed = Gas.empty(),
99
103
  chainId = Fr.ZERO,
100
104
  version = Fr.ZERO,
101
105
  vkTreeRoot = Fr.ZERO,
102
106
  protocolContractsHash = Fr.ZERO,
107
+ anchorBlockHeader = BlockHeader.empty(),
103
108
  }: {
104
109
  numberOfNonRevertiblePublicCallRequests?: number;
105
110
  numberOfRevertiblePublicCallRequests?: number;
@@ -108,12 +113,14 @@ export const mockTx = async (
108
113
  publicCalldataSize?: number;
109
114
  feePayer?: AztecAddress;
110
115
  chonkProof?: ChonkProof;
116
+ maxFeesPerGas?: GasFees;
111
117
  maxPriorityFeesPerGas?: GasFees;
112
118
  gasUsed?: Gas;
113
119
  chainId?: Fr;
114
120
  version?: Fr;
115
121
  vkTreeRoot?: Fr;
116
122
  protocolContractsHash?: Fr;
123
+ anchorBlockHeader?: BlockHeader;
117
124
  } = {},
118
125
  ) => {
119
126
  const totalPublicCallRequests =
@@ -123,10 +130,8 @@ export const mockTx = async (
123
130
  const isForPublic = totalPublicCallRequests > 0;
124
131
  const data = PrivateKernelTailCircuitPublicInputs.empty();
125
132
  const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
126
- data.constants.txContext.gasSettings = GasSettings.default({
127
- maxFeesPerGas: new GasFees(10, 10),
128
- maxPriorityFeesPerGas,
129
- });
133
+ data.constants.anchorBlockHeader = anchorBlockHeader;
134
+ data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
130
135
  data.feePayer = feePayer ?? (await AztecAddress.random());
131
136
  data.gasUsed = gasUsed;
132
137
  data.constants.txContext.chainId = chainId;
@@ -134,8 +139,8 @@ export const mockTx = async (
134
139
  data.constants.vkTreeRoot = vkTreeRoot;
135
140
  data.constants.protocolContractsHash = protocolContractsHash;
136
141
 
137
- // Set includeByTimestamp to the maximum allowed duration from the current time.
138
- 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);
139
144
 
140
145
  const publicFunctionCalldata: HashedValues[] = [];
141
146
  if (!isForPublic) {
@@ -202,6 +207,7 @@ export async function mockProcessedTx({
202
207
  // The default gasUsed is the tx overhead.
203
208
  gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
204
209
  privateOnly = false,
210
+ avmAccumulatedData,
205
211
  ...mockTxOpts
206
212
  }: {
207
213
  seed?: number;
@@ -213,6 +219,7 @@ export async function mockProcessedTx({
213
219
  protocolContracts?: ProtocolContracts;
214
220
  feePaymentPublicDataWrite?: PublicDataWrite;
215
221
  privateOnly?: boolean;
222
+ avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
216
223
  } & Parameters<typeof mockTx>[1] = {}) {
217
224
  seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
218
225
  anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
@@ -292,19 +299,22 @@ export async function mockProcessedTx({
292
299
  avmOutput.previousRevertibleAccumulatedDataArrayLengths =
293
300
  avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
294
301
  // Assign final data emitted from avm.
295
- avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
296
- avmOutput.accumulatedData.nullifiers = padArrayEnd(
297
- nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
298
- Fr.ZERO,
299
- MAX_NULLIFIERS_PER_TX,
300
- );
301
- avmOutput.accumulatedData.l2ToL1Msgs = revertibleData.l2ToL1Msgs;
302
- avmOutput.accumulatedData.publicDataWrites = makeTuple(
303
- MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
304
- i => new PublicDataWrite(new Fr(i), new Fr(i + 10)),
305
- seed + 0x2000,
306
- );
307
- avmOutput.accumulatedData.publicDataWrites[0] = feePaymentPublicDataWrite;
302
+ avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
303
+ avmOutput.accumulatedData.nullifiers =
304
+ avmAccumulatedData?.nullifiers ??
305
+ padArrayEnd(
306
+ nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
307
+ Fr.ZERO,
308
+ MAX_NULLIFIERS_PER_TX,
309
+ );
310
+ avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
311
+ avmOutput.accumulatedData.publicDataWrites =
312
+ avmAccumulatedData?.publicDataWrites ??
313
+ makeTuple(
314
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
315
+ i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
316
+ seed + 0x2000,
317
+ );
308
318
  avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
309
319
  avmOutput.gasSettings = gasSettings;
310
320
  // Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
@@ -353,7 +363,6 @@ const emptyPrivateCallExecutionResult = () =>
353
363
  Buffer.from(''),
354
364
  new Map(),
355
365
  PrivateCircuitPublicInputs.empty(),
356
- new Map(),
357
366
  [],
358
367
  new Map(),
359
368
  [],
@@ -392,38 +401,47 @@ export async function mockCheckpointAndMessages(
392
401
  {
393
402
  startBlockNumber = BlockNumber(1),
394
403
  numBlocks = 1,
404
+ blocks,
395
405
  numTxsPerBlock = 1,
396
406
  numL1ToL2Messages = 1,
397
407
  makeBlockOptions = () => ({}),
398
408
  previousArchive,
409
+ maxEffects,
399
410
  ...options
400
411
  }: {
401
412
  startBlockNumber?: BlockNumber;
402
413
  numBlocks?: number;
403
414
  numTxsPerBlock?: number;
404
415
  numL1ToL2Messages?: number;
405
- makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2BlockNew.random>[1]>;
416
+ makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
406
417
  previousArchive?: AppendOnlyTreeSnapshot;
418
+ blocks?: L2Block[];
419
+ maxEffects?: number;
407
420
  } & Partial<Parameters<typeof Checkpoint.random>[1]> &
408
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
421
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
409
422
  ) {
410
- const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
423
+ const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
411
424
  const blocksAndMessages = [];
412
425
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
413
426
  // The current block's header.lastArchive must equal the previous block's archive.
414
427
  let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
415
- 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++) {
416
431
  const blockNumber = BlockNumber(startBlockNumber + i);
417
432
  const { block, messages } = {
418
- block: await L2BlockNew.random(blockNumber, {
419
- checkpointNumber,
420
- indexWithinCheckpoint: i,
421
- txsPerBlock: numTxsPerBlock,
422
- slotNumber,
423
- ...options,
424
- ...makeBlockOptions(blockNumber),
425
- ...(lastArchive ? { lastArchive } : {}),
426
- }),
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
+ })),
427
445
  messages: mockL1ToL2Messages(numL1ToL2Messages),
428
446
  };
429
447
  // Update lastArchive for the next block
@@ -481,28 +499,55 @@ export interface MakeConsensusPayloadOptions {
481
499
  signer?: Secp256k1Signer;
482
500
  attesterSigner?: Secp256k1Signer;
483
501
  proposerSigner?: Secp256k1Signer;
484
- header?: L2BlockHeader;
502
+ header?: CheckpointHeader;
485
503
  archive?: Fr;
486
504
  txHashes?: TxHash[];
487
505
  txs?: Tx[];
506
+ feeAssetPriceModifier?: bigint;
488
507
  }
489
508
 
509
+ export interface MakeBlockProposalOptions {
510
+ signer?: Secp256k1Signer;
511
+ blockHeader?: BlockHeader;
512
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
513
+ inHash?: Fr;
514
+ archiveRoot?: Fr;
515
+ txHashes?: TxHash[];
516
+ txs?: Tx[];
517
+ }
518
+
519
+ export interface MakeCheckpointProposalOptions {
520
+ signer?: Secp256k1Signer;
521
+ checkpointHeader?: CheckpointHeader;
522
+ archiveRoot?: Fr;
523
+ feeAssetPriceModifier?: bigint;
524
+ /** Options for the lastBlock - if undefined, no lastBlock is included */
525
+ lastBlock?: {
526
+ blockHeader?: BlockHeader;
527
+ indexWithinCheckpoint?: IndexWithinCheckpoint;
528
+ txHashes?: TxHash[];
529
+ txs?: Tx[];
530
+ };
531
+ }
532
+
533
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
490
534
  const makeAndSignConsensusPayload = (
491
535
  domainSeparator: SignatureDomainSeparator,
492
536
  options?: MakeConsensusPayloadOptions,
493
537
  ) => {
494
- const header = options?.header ?? makeL2BlockHeader(1);
495
- 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 ?? {};
496
540
 
497
541
  const payload = ConsensusPayload.fromFields({
498
- header: header.toCheckpointHeader(),
542
+ header,
499
543
  archive,
544
+ feeAssetPriceModifier,
500
545
  });
501
546
 
502
547
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
503
548
  const signature = signer.sign(hash);
504
549
 
505
- return { blockNumber: header.globalVariables.blockNumber, payload, signature };
550
+ return { blockNumber: header.slotNumber, payload, signature };
506
551
  };
507
552
 
508
553
  export const makeAndSignCommitteeAttestationsAndSigners = (
@@ -516,79 +561,157 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
516
561
  return signer.sign(hash);
517
562
  };
518
563
 
519
- export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
520
- const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
564
+ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
565
+ const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
566
+ const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
567
+ const inHash = options?.inHash ?? Fr.random();
568
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
521
569
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
522
- return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
570
+ const txs = options?.txs;
571
+ const signer = options?.signer ?? Secp256k1Signer.random();
572
+
573
+ return BlockProposal.createProposalFromSigner(
574
+ blockHeader,
575
+ indexWithinCheckpoint,
576
+ inHash,
577
+ archiveRoot,
578
+ txHashes,
579
+ txs,
580
+ (_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
581
+ );
582
+ };
583
+
584
+ export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
585
+ const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
586
+ const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
587
+ const archiveRoot = options?.archiveRoot ?? Fr.random();
588
+ const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
589
+ const signer = options?.signer ?? Secp256k1Signer.random();
590
+
591
+ // Build lastBlock info if provided
592
+ const lastBlockInfo = options?.lastBlock
593
+ ? {
594
+ blockHeader,
595
+ indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
596
+ txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
597
+ txs: options.lastBlock.txs,
598
+ }
599
+ : undefined;
600
+
601
+ return CheckpointProposal.createProposalFromSigner(
602
+ checkpointHeader,
603
+ archiveRoot,
604
+ feeAssetPriceModifier,
605
+ lastBlockInfo,
606
+ payload => Promise.resolve(signer.signMessage(payload)),
607
+ );
523
608
  };
524
609
 
525
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
526
- export const makeBlockAttestation = (options: MakeConsensusPayloadOptions = {}): BlockAttestation => {
527
- const header = options.header ?? makeL2BlockHeader(1);
528
- const { signer, attesterSigner = signer, proposerSigner = signer, archive = Fr.random() } = options;
610
+ /**
611
+ * Options for creating a checkpoint attestation
612
+ */
613
+ export type MakeCheckpointAttestationOptions = {
614
+ header?: CheckpointHeader;
615
+ archive?: Fr;
616
+ feeAssetPriceModifier?: bigint;
617
+ attesterSigner?: Secp256k1Signer;
618
+ proposerSigner?: Secp256k1Signer;
619
+ signer?: Secp256k1Signer;
620
+ };
529
621
 
530
- const payload = ConsensusPayload.fromFields({
531
- header: header.toCheckpointHeader(),
532
- archive,
533
- });
622
+ /**
623
+ * Create a checkpoint attestation for testing
624
+ */
625
+ export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
626
+ const header = options.header ?? makeCheckpointHeader(1);
627
+ const archive = options.archive ?? Fr.random();
628
+ const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
629
+ const { signer, attesterSigner = signer, proposerSigner = signer } = options;
630
+
631
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
632
+
633
+ // Sign as attester
634
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(
635
+ payload,
636
+ SignatureDomainSeparator.checkpointAttestation,
637
+ );
638
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
639
+ const attestationSignature = attestationSigner.sign(attestationHash);
640
+
641
+ // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
642
+ // This is different from ConsensusPayload's format (ABI encoding)
643
+ const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
644
+ const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
645
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(
646
+ tempProposal,
647
+ SignatureDomainSeparator.checkpointProposal,
648
+ );
649
+ const proposerSignature = proposalSignerToUse.sign(proposalHash);
534
650
 
535
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
651
+ return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
536
652
  };
537
653
 
538
- export const makeAttestationFromCheckpoint = (
539
- checkpoint: Checkpoint,
654
+ /**
655
+ * Create a checkpoint attestation from a checkpoint proposal
656
+ */
657
+ export const makeCheckpointAttestationFromProposal = (
658
+ proposal: CheckpointProposal,
540
659
  attesterSigner?: Secp256k1Signer,
541
- proposerSigner?: Secp256k1Signer,
542
- ): BlockAttestation => {
543
- const header = checkpoint.header;
544
- const archive = checkpoint.archive.root;
660
+ ): CheckpointAttestation => {
661
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
545
662
 
546
- const payload = ConsensusPayload.fromFields({
547
- header,
548
- archive,
549
- });
663
+ // Sign as attester
664
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(
665
+ payload,
666
+ SignatureDomainSeparator.checkpointAttestation,
667
+ );
668
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
669
+ const attestationSignature = attestationSigner.sign(attestationHash);
550
670
 
551
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
671
+ // Use the proposal's signature as the proposer signature
672
+ return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
552
673
  };
553
674
 
554
- export const makeBlockAttestationFromBlock = (
555
- block: L2Block,
675
+ /**
676
+ * Create a checkpoint attestation from a checkpoint
677
+ */
678
+ export const makeCheckpointAttestationFromCheckpoint = (
679
+ checkpoint: Checkpoint,
556
680
  attesterSigner?: Secp256k1Signer,
557
681
  proposerSigner?: Secp256k1Signer,
558
- ): BlockAttestation => {
559
- const header = block.header;
560
- const archive = block.archive.root;
561
-
562
- const payload = ConsensusPayload.fromFields({
563
- header: header.toCheckpointHeader(),
564
- archive,
565
- });
682
+ ): CheckpointAttestation => {
683
+ const header = checkpoint.header;
684
+ const archive = checkpoint.archive.root;
685
+ const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
566
686
 
567
- return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
687
+ return makeCheckpointAttestation({ header, archive, feeAssetPriceModifier, attesterSigner, proposerSigner });
568
688
  };
569
689
 
570
- export const makeBlockAttestationFromPayload = (
571
- payload: ConsensusPayload,
690
+ /**
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.
693
+ */
694
+ export const makeCheckpointAttestationFromBlock = (
695
+ block: L2Block,
572
696
  attesterSigner?: Secp256k1Signer,
573
697
  proposerSigner?: Secp256k1Signer,
574
- ): BlockAttestation => {
575
- // Sign as attester
576
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
577
- const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
578
- const attestationSignature = attestationSigner.sign(attestationHash);
579
-
580
- // Sign as proposer
581
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
582
- const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
583
- const proposerSignature = proposalSignerToUse.sign(proposalHash);
698
+ ): CheckpointAttestation => {
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
+ });
706
+ const archive = block.archive.root;
584
707
 
585
- return new BlockAttestation(payload, attestationSignature, proposerSignature);
708
+ return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
586
709
  };
587
710
 
588
711
  export async function randomPublishedL2Block(
589
712
  l2BlockNumber: number,
590
713
  opts: { signers?: Secp256k1Signer[] } = {},
591
- ): Promise<PublishedL2Block> {
714
+ ): Promise<CheckpointedL2Block> {
592
715
  const block = await L2Block.random(BlockNumber(l2BlockNumber));
593
716
  const l1 = L1PublishedData.fromFields({
594
717
  blockNumber: BigInt(block.number),
@@ -597,9 +720,19 @@ export async function randomPublishedL2Block(
597
720
  });
598
721
 
599
722
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
600
- const atts = await Promise.all(signers.map(signer => makeBlockAttestationFromBlock(block, signer)));
723
+ const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
724
+ numBlocks: 0,
725
+ });
726
+ checkpoint.blocks = [block];
727
+ const atts = signers.map(signer =>
728
+ makeCheckpointAttestation({
729
+ signer,
730
+ archive: block.archive.root,
731
+ header: checkpoint.header,
732
+ }),
733
+ );
601
734
  const attestations = atts.map(
602
735
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
603
736
  );
604
- return new PublishedL2Block(block, l1, attestations);
737
+ return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
605
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 {
@@ -1,4 +1,4 @@
1
- import { BLOCK_HEADER_LENGTH, GeneratorIndex } from '@aztec/constants';
1
+ import { BLOCK_HEADER_LENGTH, DomainSeparator } from '@aztec/constants';
2
2
  import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
4
  import { randomInt } from '@aztec/foundation/crypto/random';
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
11
11
  import { inspect } from 'util';
12
12
  import { z } from 'zod';
13
13
 
14
+ import { BlockHash } from '../block/block_hash.js';
14
15
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
16
  import { GlobalVariables } from './global_variables.js';
16
17
  import { StateReference } from './state_reference.js';
17
18
 
18
19
  /** A header of an L2 block. */
19
20
  export class BlockHeader {
20
- private _cachedHash?: Promise<Fr>;
21
+ private _cachedHash?: Promise<BlockHash>;
21
22
 
22
23
  constructor(
23
24
  /** Snapshot of archive before the block is applied. */
@@ -161,13 +162,20 @@ export class BlockHeader {
161
162
  return BlockHeader.fromBuffer(hexToBuffer(str));
162
163
  }
163
164
 
164
- hash(): Promise<Fr> {
165
+ hash(): Promise<BlockHash> {
165
166
  if (!this._cachedHash) {
166
- this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
167
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), DomainSeparator.BLOCK_HEADER_HASH).then(
168
+ fr => new BlockHash(fr),
169
+ );
167
170
  }
168
171
  return this._cachedHash;
169
172
  }
170
173
 
174
+ /** Manually set the hash for this block header if already computed */
175
+ setHash(hashed: Fr) {
176
+ this._cachedHash = Promise.resolve(new BlockHash(hashed));
177
+ }
178
+
171
179
  static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
172
180
  return BlockHeader.from({
173
181
  lastArchive: AppendOnlyTreeSnapshot.random(),