@aztec/stdlib 0.0.1-commit.c7c42ec → 0.0.1-commit.c949de6bc

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