@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
@@ -2,8 +2,7 @@ import type { SlotNumber } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import { z } from 'zod';
4
4
 
5
- import { BlockAttestation } from '../p2p/block_attestation.js';
6
- import type { P2PClientType } from '../p2p/client_type.js';
5
+ import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
7
6
  import { type ApiSchemaFor, optional, schemas } from '../schemas/index.js';
8
7
  import { Tx } from '../tx/tx.js';
9
8
  import { TxHash } from '../tx/tx_hash.js';
@@ -27,7 +26,7 @@ const PeerInfoSchema = z.discriminatedUnion('status', [
27
26
  ]);
28
27
 
29
28
  /** Exposed API to the P2P module. */
30
- export interface P2PApiWithoutAttestations {
29
+ export interface P2PApi {
31
30
  /**
32
31
  * Returns all pending transactions in the transaction pool.
33
32
  * @param limit - The number of items to returns
@@ -48,40 +47,27 @@ export interface P2PApiWithoutAttestations {
48
47
  * Returns info for all connected, dialing, and cached peers.
49
48
  */
50
49
  getPeers(includePending?: boolean): Promise<PeerInfo[]>;
51
- }
52
50
 
53
- export interface P2PApiWithAttestations extends P2PApiWithoutAttestations {
54
51
  /**
55
- * Queries the Attestation pool for attestations for the given slot
52
+ * Queries the Attestation pool for checkpoint attestations for the given slot
56
53
  *
57
54
  * @param slot - the slot to query
58
55
  * @param proposalId - the proposal id to query, or undefined to query all proposals for the slot
59
- * @returns BlockAttestations
56
+ * @returns CheckpointAttestations
60
57
  */
61
- getAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<BlockAttestation[]>;
62
-
63
- /** Deletes a given attestation manually from the p2p client attestation pool. */
64
- deleteAttestation(attestation: BlockAttestation): Promise<void>;
58
+ getCheckpointAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<CheckpointAttestation[]>;
65
59
  }
66
60
 
67
- export interface P2PClient extends P2PApiWithAttestations {
68
- /** Manually adds an attestation to the p2p client attestation pool. */
69
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
61
+ export interface P2PClient extends P2PApi {
62
+ /** Manually adds checkpoint attestations to the p2p client attestation pool. */
63
+ addOwnCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
70
64
  }
71
65
 
72
- export type P2PApi<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
73
- ? P2PApiWithAttestations
74
- : P2PApiWithoutAttestations;
75
-
76
- export type P2PApiFull<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
77
- ? P2PApiWithAttestations & P2PClient
78
- : P2PApiWithoutAttestations;
79
-
80
66
  export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
81
- getAttestationsForSlot: z
67
+ getCheckpointAttestationsForSlot: z
82
68
  .function()
83
69
  .args(schemas.SlotNumber, optional(z.string()))
84
- .returns(z.array(BlockAttestation.schema)),
70
+ .returns(z.array(CheckpointAttestation.schema)),
85
71
  getPendingTxs: z
86
72
  .function()
87
73
  .args(optional(z.number().gte(1).lte(MAX_RPC_TXS_LEN).default(MAX_RPC_TXS_LEN)), optional(TxHash.schema))
@@ -90,5 +76,4 @@ export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
90
76
  getPendingTxCount: z.function().returns(schemas.Integer),
91
77
  getEncodedEnr: z.function().returns(z.string().optional()),
92
78
  getPeers: z.function().args(optional(z.boolean())).returns(z.array(PeerInfoSchema)),
93
- deleteAttestation: z.function().args(BlockAttestation.schema).returns(z.void()),
94
79
  };
@@ -1,3 +1,5 @@
1
+ import type { EpochNumber } from '@aztec/foundation/branded-types';
2
+
1
3
  import type { ProvingRequestType } from '../proofs/proving_request_type.js';
2
4
  import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobStatus } from './proving-job.js';
3
5
 
@@ -88,3 +90,23 @@ export interface ProvingJobConsumer {
88
90
  }
89
91
 
90
92
  export interface ProvingJobBroker extends ProvingJobProducer, ProvingJobConsumer {}
93
+
94
+ /**
95
+ * Debug interface for replaying proving jobs from stored inputs.
96
+ * Used for benchmarking different agent configurations against the same workload.
97
+ */
98
+ export interface ProvingJobBrokerDebug {
99
+ /**
100
+ * Replays a proving job by re-enqueuing it with inputs from the configured proof store.
101
+ * The proof type is parsed from the job ID (format: epoch:typeName:hash).
102
+ * @param jobId - The original job ID to replay
103
+ * @param epochNumber - The epoch number to assign
104
+ * @param inputsUri - The proof inputs location
105
+ */
106
+ replayProvingJob(
107
+ jobId: ProvingJobId,
108
+ type: ProvingRequestType,
109
+ epochNumber: EpochNumber,
110
+ inputsUri: ProofUri,
111
+ ): Promise<ProvingJobStatus>;
112
+ }
@@ -17,6 +17,12 @@ export type ActualProverConfig = {
17
17
  proverTestDelayMs: number;
18
18
  /** If using realistic delays, what percentage of realistic times to apply. */
19
19
  proverTestDelayFactor: number;
20
+ /**
21
+ * Whether to abort pending proving jobs when the orchestrator is cancelled.
22
+ * When false (default), jobs remain in the broker queue and can be reused on restart/reorg.
23
+ * When true, jobs are explicitly cancelled with the broker, which prevents reuse.
24
+ */
25
+ cancelJobsOnStop: boolean;
20
26
  };
21
27
 
22
28
  /**
@@ -29,6 +35,8 @@ export type ProverConfig = ActualProverConfig & {
29
35
  proverId?: EthAddress;
30
36
  /** Number of proving agents to start within the prover. */
31
37
  proverAgentCount: number;
38
+ /** Where to store proving request. Must be accessible to both prover node and agents. If not set will inline-encode the parameters */
39
+ proofStore?: string;
32
40
  /** Store for failed proof inputs. */
33
41
  failedProofStore?: string;
34
42
  };
@@ -42,7 +50,9 @@ export const ProverConfigSchema = zodFor<ProverConfig>()(
42
50
  proverTestDelayMs: z.number(),
43
51
  proverTestDelayFactor: z.number(),
44
52
  proverAgentCount: z.number(),
53
+ proofStore: z.string().optional(),
45
54
  failedProofStore: z.string().optional(),
55
+ cancelJobsOnStop: z.boolean(),
46
56
  }),
47
57
  );
48
58
 
@@ -80,11 +90,23 @@ export const proverConfigMappings: ConfigMappingsType<ProverConfig> = {
80
90
  description: 'The number of prover agents to start',
81
91
  ...numberConfigHelper(1),
82
92
  },
93
+ proofStore: {
94
+ env: 'PROVER_PROOF_STORE',
95
+ description: 'Optional proof input store for the prover',
96
+ },
83
97
  failedProofStore: {
84
98
  env: 'PROVER_FAILED_PROOF_STORE',
85
99
  description:
86
100
  'Store for failed proof inputs. Google cloud storage is only supported at the moment. Set this value as gs://bucket-name/path/to/store.',
87
101
  },
102
+ cancelJobsOnStop: {
103
+ env: 'PROVER_CANCEL_JOBS_ON_STOP',
104
+ description:
105
+ 'Whether to abort pending proving jobs when the orchestrator is cancelled. ' +
106
+ 'When false (default), jobs remain in the broker queue and can be reused on restart/reorg. ' +
107
+ 'When true, jobs are explicitly cancelled with the broker, which prevents reuse.',
108
+ ...booleanConfigHelper(false),
109
+ },
88
110
  };
89
111
 
90
112
  function parseProverId(str?: string) {
@@ -47,15 +47,6 @@ export type ProofAndVerificationKey<N extends number> = {
47
47
  verificationKey: VerificationKeyData;
48
48
  };
49
49
 
50
- function schemaForRecursiveProofAndVerificationKey<N extends number>(
51
- proofLength: N,
52
- ): ZodFor<ProofAndVerificationKey<N>> {
53
- return z.object({
54
- proof: RecursiveProof.schemaFor(proofLength),
55
- verificationKey: VerificationKeyData.schema,
56
- });
57
- }
58
-
59
50
  export function makeProofAndVerificationKey<N extends number>(
60
51
  proof: RecursiveProof<N>,
61
52
  verificationKey: VerificationKeyData,
@@ -213,7 +204,7 @@ export type ProvingJobInputsMap = {
213
204
  export const ProvingJobResult = z.discriminatedUnion('type', [
214
205
  z.object({
215
206
  type: z.literal(ProvingRequestType.PUBLIC_VM),
216
- result: schemaForRecursiveProofAndVerificationKey(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
207
+ result: RecursiveProof.schemaFor(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
217
208
  }),
218
209
  z.object({
219
210
  type: z.literal(ProvingRequestType.PUBLIC_CHONK_VERIFIER),
@@ -328,7 +319,7 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
328
319
  ]);
329
320
  export type ProvingJobResult = z.infer<typeof ProvingJobResult>;
330
321
  export type ProvingJobResultsMap = {
331
- [ProvingRequestType.PUBLIC_VM]: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
322
+ [ProvingRequestType.PUBLIC_VM]: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
332
323
  [ProvingRequestType.PUBLIC_CHONK_VERIFIER]: PublicInputsAndRecursiveProof<
333
324
  PublicChonkVerifierPublicInputs,
334
325
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
@@ -9,6 +9,7 @@ import type { AvmCircuitInputs } from '../avm/avm.js';
9
9
  import type { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
10
10
  import type { ParityPublicInputs } from '../parity/parity_public_inputs.js';
11
11
  import type { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
12
+ import type { RecursiveProof } from '../proofs/recursive_proof.js';
12
13
  import type { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
13
14
  import type { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
14
15
  import type {
@@ -34,7 +35,7 @@ import type { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs
34
35
  import type { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
35
36
  import type { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
36
37
  import type { Tx } from '../tx/tx.js';
37
- import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from './proving-job.js';
38
+ import type { PublicInputsAndRecursiveProof } from './proving-job.js';
38
39
 
39
40
  /**
40
41
  * Generates proofs for parity and rollup circuits.
@@ -188,7 +189,7 @@ export interface ServerCircuitProver {
188
189
  inputs: AvmCircuitInputs,
189
190
  signal?: AbortSignal,
190
191
  epochNumber?: number,
191
- ): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
192
+ ): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
192
193
  }
193
194
 
194
195
  export type IVCProofVerificationResult = {
@@ -18,6 +18,8 @@ export interface SlasherConfig {
18
18
  slashDataWithholdingPenalty: bigint;
19
19
  slashInactivityPenalty: bigint;
20
20
  slashBroadcastedInvalidBlockPenalty: bigint;
21
+ slashDuplicateProposalPenalty: bigint;
22
+ slashDuplicateAttestationPenalty: bigint;
21
23
  slashProposeInvalidAttestationsPenalty: bigint;
22
24
  slashAttestDescendantOfInvalidPenalty: bigint;
23
25
  slashUnknownPenalty: bigint;
@@ -40,6 +42,8 @@ export const SlasherConfigSchema = zodFor<SlasherConfig>()(
40
42
  slashInactivityConsecutiveEpochThreshold: z.number(),
41
43
  slashInactivityPenalty: schemas.BigInt,
42
44
  slashProposeInvalidAttestationsPenalty: schemas.BigInt,
45
+ slashDuplicateProposalPenalty: schemas.BigInt,
46
+ slashDuplicateAttestationPenalty: schemas.BigInt,
43
47
  slashAttestDescendantOfInvalidPenalty: schemas.BigInt,
44
48
  slashUnknownPenalty: schemas.BigInt,
45
49
  slashOffenseExpirationRounds: z.number(),
@@ -1,4 +1,4 @@
1
- import type { L2BlockNew } from '@aztec/stdlib/block';
1
+ import type { L2Block } from '@aztec/stdlib/block';
2
2
  import type { BlockProposal } from '@aztec/stdlib/p2p';
3
3
  import { type Tx, TxHash } from '@aztec/stdlib/tx';
4
4
 
@@ -13,5 +13,5 @@ export interface ITxProvider {
13
13
  opts: { pinnedPeer: PeerId | undefined; deadline: Date },
14
14
  ): Promise<{ txs: Tx[]; missingTxs: TxHash[] }>;
15
15
 
16
- getTxsForBlock(block: L2BlockNew, opts: { deadline: Date }): Promise<{ txs: Tx[]; missingTxs: TxHash[] }>;
16
+ getTxsForBlock(block: L2Block, opts: { deadline: Date }): Promise<{ txs: Tx[]; missingTxs: TxHash[] }>;
17
17
  }
@@ -1,23 +1,32 @@
1
+ import type { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { SecretValue } from '@aztec/foundation/config';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
4
5
  import type { Signature } from '@aztec/foundation/eth-signature';
5
6
  import { schemas, zodFor } from '@aztec/foundation/schemas';
6
7
  import type { SequencerConfig, SlasherConfig } from '@aztec/stdlib/interfaces/server';
7
- import type { BlockAttestation, BlockProposal, BlockProposalOptions } from '@aztec/stdlib/p2p';
8
- import type { Tx } from '@aztec/stdlib/tx';
8
+ import type {
9
+ BlockProposal,
10
+ BlockProposalOptions,
11
+ CheckpointAttestation,
12
+ CheckpointLastBlockData,
13
+ CheckpointProposal,
14
+ CheckpointProposalOptions,
15
+ } from '@aztec/stdlib/p2p';
16
+ import type { CheckpointHeader } from '@aztec/stdlib/rollup';
17
+ import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
9
18
 
10
19
  import type { PeerId } from '@libp2p/interface';
11
20
  import { z } from 'zod';
12
21
 
13
22
  import type { CommitteeAttestationsAndSigners } from '../block/index.js';
14
- import type { CheckpointHeader } from '../rollup/checkpoint_header.js';
23
+ import { type ValidatorHASignerConfig, ValidatorHASignerConfigSchema } from '../ha-signing/index.js';
15
24
  import { AllowedElementSchema } from './allowed_element.js';
16
25
 
17
26
  /**
18
27
  * Validator client configuration
19
28
  */
20
- export interface ValidatorClientConfig {
29
+ export type ValidatorClientConfig = ValidatorHASignerConfig & {
21
30
  /** The private keys of the validators participating in attestation duties */
22
31
  validatorPrivateKeys?: SecretValue<`0x${string}`[]>;
23
32
 
@@ -36,19 +45,28 @@ export interface ValidatorClientConfig {
36
45
  /** Whether to re-execute transactions in a block proposal before attesting */
37
46
  validatorReexecute: boolean;
38
47
 
39
- /** Will re-execute until this many milliseconds are left in the slot */
40
- validatorReexecuteDeadlineMs: number;
41
-
42
48
  /** Whether to always reexecute block proposals, even for non-validator nodes or when out of the currnet committee */
43
49
  alwaysReexecuteBlockProposals?: boolean;
44
50
 
45
51
  /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
46
52
  fishermanMode?: boolean;
47
- }
53
+
54
+ /** Skip checkpoint proposal validation and always attest (default: false) */
55
+ skipCheckpointProposalValidation?: boolean;
56
+
57
+ /** Skip pushing re-executed blocks to archiver (default: false) */
58
+ skipPushProposedBlocksToArchiver?: boolean;
59
+
60
+ /** Agree to attest to equivocated checkpoint proposals (for testing purposes only) */
61
+ attestToEquivocatedProposals?: boolean;
62
+ };
48
63
 
49
64
  export type ValidatorClientFullConfig = ValidatorClientConfig &
50
65
  Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> &
51
- Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'> & {
66
+ Pick<
67
+ SlasherConfig,
68
+ 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashDuplicateAttestationPenalty'
69
+ > & {
52
70
  /**
53
71
  * Whether transactions are disabled for this node
54
72
  * @remarks This should match the property in P2PConfig. It's not picked from there to avoid circular dependencies.
@@ -57,15 +75,17 @@ export type ValidatorClientFullConfig = ValidatorClientConfig &
57
75
  };
58
76
 
59
77
  export const ValidatorClientConfigSchema = zodFor<Omit<ValidatorClientConfig, 'validatorPrivateKeys'>>()(
60
- z.object({
78
+ ValidatorHASignerConfigSchema.extend({
61
79
  validatorAddresses: z.array(schemas.EthAddress).optional(),
62
80
  disableValidator: z.boolean(),
63
81
  disabledValidators: z.array(schemas.EthAddress),
64
82
  attestationPollingIntervalMs: z.number().min(0),
65
83
  validatorReexecute: z.boolean(),
66
- validatorReexecuteDeadlineMs: z.number().min(0),
67
84
  alwaysReexecuteBlockProposals: z.boolean().optional(),
68
85
  fishermanMode: z.boolean().optional(),
86
+ skipCheckpointProposalValidation: z.boolean().optional(),
87
+ skipPushProposedBlocksToArchiver: z.boolean().optional(),
88
+ attestToEquivocatedProposals: z.boolean().optional(),
69
89
  }),
70
90
  );
71
91
 
@@ -74,29 +94,67 @@ export const ValidatorClientFullConfigSchema = zodFor<Omit<ValidatorClientFullCo
74
94
  txPublicSetupAllowList: z.array(AllowedElementSchema).optional(),
75
95
  broadcastInvalidBlockProposal: z.boolean().optional(),
76
96
  slashBroadcastedInvalidBlockPenalty: schemas.BigInt,
97
+ slashDuplicateProposalPenalty: schemas.BigInt,
98
+ slashDuplicateAttestationPenalty: schemas.BigInt,
77
99
  disableTransactions: z.boolean().optional(),
78
100
  }),
79
101
  );
80
102
 
103
+ export type CreateCheckpointProposalLastBlockData = Omit<CheckpointLastBlockData, 'txHashes'> & { txs: Tx[] };
104
+
81
105
  export interface Validator {
82
106
  start(): Promise<void>;
83
107
  updateConfig(config: Partial<ValidatorClientFullConfig>): void;
84
108
 
85
109
  // Block validation responsibilities
86
110
  createBlockProposal(
87
- blockNumber: number,
88
- header: CheckpointHeader,
111
+ blockHeader: BlockHeader,
112
+ indexWithinCheckpoint: number,
113
+ inHash: Fr,
89
114
  archive: Fr,
90
115
  txs: Tx[],
91
116
  proposerAddress: EthAddress | undefined,
92
117
  options: BlockProposalOptions,
93
118
  ): Promise<BlockProposal | undefined>;
94
- attestToProposal(proposal: BlockProposal, sender: PeerId): Promise<BlockAttestation[] | undefined>;
119
+
120
+ /** Creates a checkpoint proposal for the last block in a checkpoint */
121
+ createCheckpointProposal(
122
+ checkpointHeader: CheckpointHeader,
123
+ archive: Fr,
124
+ feeAssetPriceModifier: bigint,
125
+ lastBlockInfo: CreateCheckpointProposalLastBlockData | undefined,
126
+ proposerAddress: EthAddress | undefined,
127
+ options: CheckpointProposalOptions,
128
+ ): Promise<CheckpointProposal>;
129
+
130
+ /**
131
+ * Validate a block proposal from a peer.
132
+ * Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
133
+ * @returns true if the proposal is valid, false otherwise
134
+ */
135
+ validateBlockProposal(proposal: BlockProposal, sender: PeerId): Promise<boolean>;
136
+
137
+ /**
138
+ * Validate and attest to a checkpoint proposal from a peer.
139
+ * @returns Checkpoint attestations if valid, undefined otherwise
140
+ */
141
+ attestToCheckpointProposal(
142
+ proposal: CheckpointProposal,
143
+ sender: PeerId,
144
+ ): Promise<CheckpointAttestation[] | undefined>;
95
145
 
96
146
  broadcastBlockProposal(proposal: BlockProposal): Promise<void>;
97
- collectAttestations(proposal: BlockProposal, required: number, deadline: Date): Promise<BlockAttestation[]>;
147
+
148
+ /** Collect own attestations for a checkpoint proposal (used when skipping p2p attestation collection) */
149
+ collectOwnAttestations(proposal: CheckpointProposal): Promise<CheckpointAttestation[]>;
150
+
151
+ /** Collect attestations from the p2p network for a checkpoint proposal */
152
+ collectAttestations(proposal: CheckpointProposal, required: number, deadline: Date): Promise<CheckpointAttestation[]>;
153
+
98
154
  signAttestationsAndSigners(
99
155
  attestationsAndSigners: CommitteeAttestationsAndSigners,
100
156
  proposer: EthAddress,
157
+ slot: SlotNumber,
158
+ blockNumber: BlockNumber | CheckpointNumber,
101
159
  ): Promise<Signature>;
102
160
  }
@@ -3,6 +3,7 @@ import {
3
3
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
4
4
  type NOTE_HASH_TREE_HEIGHT,
5
5
  } from '@aztec/constants';
6
+ import type { Fr } from '@aztec/foundation/curves/bn254';
6
7
  import type { MembershipWitness } from '@aztec/foundation/trees';
7
8
 
8
9
  import type { ClaimedLengthArray } from '../claimed_length_array.js';
@@ -10,7 +11,6 @@ import type { ScopedNoteHash } from '../note_hash.js';
10
11
  import { NoteHashReadRequestHintsBuilder } from './note_hash_read_request_hints.js';
11
12
  import type { ScopedReadRequest } from './read_request.js';
12
13
  import { PendingReadHint, ReadRequestActionEnum, ReadRequestResetActions } from './read_request_hints.js';
13
- import { ScopedValueCache } from './scoped_value_cache.js';
14
14
 
15
15
  export function isValidNoteHashReadRequest(readRequest: ScopedReadRequest, noteHash: ScopedNoteHash) {
16
16
  return (
@@ -23,7 +23,6 @@ export function isValidNoteHashReadRequest(readRequest: ScopedReadRequest, noteH
23
23
  export function getNoteHashReadRequestResetActions(
24
24
  noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>,
25
25
  noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
26
- futureNoteHashes: ScopedNoteHash[],
27
26
  ): ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX> {
28
27
  const resetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
29
28
 
@@ -35,24 +34,23 @@ export function getNoteHashReadRequestResetActions(
35
34
  noteHashMap.set(value, arr);
36
35
  });
37
36
 
38
- const futureNoteHashMap = new ScopedValueCache(futureNoteHashes);
39
-
40
37
  for (let i = 0; i < noteHashReadRequests.claimedLength; ++i) {
41
38
  const readRequest = noteHashReadRequests.array[i];
42
39
 
43
- const pendingNoteHash = noteHashMap
44
- .get(readRequest.value.toBigInt())
45
- ?.find(n => isValidNoteHashReadRequest(readRequest, n.noteHash));
46
-
47
- if (pendingNoteHash !== undefined) {
48
- resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
49
- resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNoteHash.index));
50
- } else if (
51
- !futureNoteHashMap
52
- .get(readRequest)
53
- .find(futureNoteHash => isValidNoteHashReadRequest(readRequest, futureNoteHash))
54
- ) {
40
+ if (readRequest.contractAddress.isZero()) {
41
+ // Settled read: empty contract address means resolve against the note hash tree.
55
42
  resetActions.actions[i] = ReadRequestActionEnum.READ_AS_SETTLED;
43
+ } else {
44
+ // Pending read: non-empty contract address means match against a pending note hash.
45
+ const pendingNoteHash = noteHashMap
46
+ .get(readRequest.value.toBigInt())
47
+ ?.find(n => isValidNoteHashReadRequest(readRequest, n.noteHash));
48
+
49
+ if (pendingNoteHash) {
50
+ resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
51
+ resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNoteHash.index));
52
+ }
53
+ // Otherwise, the read request may be resolved by a future note hash. Leave as NOOP.
56
54
  }
57
55
  }
58
56
 
@@ -61,12 +59,11 @@ export function getNoteHashReadRequestResetActions(
61
59
 
62
60
  export async function buildNoteHashReadRequestHintsFromResetActions<PENDING extends number, SETTLED extends number>(
63
61
  oracle: {
64
- getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
62
+ getNoteHashMembershipWitness(noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
65
63
  },
66
64
  noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>,
67
65
  noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
68
66
  resetActions: ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>,
69
- noteHashLeafIndexMap: Map<bigint, bigint>,
70
67
  maxPending: PENDING = MAX_NOTE_HASH_READ_REQUESTS_PER_TX as PENDING,
71
68
  maxSettled: SETTLED = MAX_NOTE_HASH_READ_REQUESTS_PER_TX as SETTLED,
72
69
  ) {
@@ -76,16 +73,26 @@ export async function buildNoteHashReadRequestHintsFromResetActions<PENDING exte
76
73
  builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
77
74
  });
78
75
 
76
+ // Collect all settled read requests
77
+ const settledRequests: { index: number; readRequest: ScopedReadRequest }[] = [];
79
78
  for (let i = 0; i < resetActions.actions.length; i++) {
80
79
  if (resetActions.actions[i] === ReadRequestActionEnum.READ_AS_SETTLED) {
81
- const readRequest = noteHashReadRequests.array[i];
82
- const leafIndex = noteHashLeafIndexMap.get(readRequest.value.toBigInt());
83
- if (leafIndex === undefined) {
84
- throw new Error('Read request is reading an unknown note hash.');
85
- }
86
- const membershipWitness = await oracle.getNoteHashMembershipWitness(leafIndex);
87
- builder.addSettledReadRequest(i, membershipWitness, readRequest.value);
80
+ settledRequests.push({ index: i, readRequest: noteHashReadRequests.array[i] });
81
+ }
82
+ }
83
+
84
+ // Fetch all membership witnesses in parallel
85
+ const membershipWitnesses = await Promise.all(
86
+ settledRequests.map(({ readRequest }) => oracle.getNoteHashMembershipWitness(readRequest.value)),
87
+ );
88
+
89
+ // Add settled read requests to builder
90
+ for (let i = 0; i < settledRequests.length; i++) {
91
+ const membershipWitness = membershipWitnesses[i];
92
+ if (!membershipWitness) {
93
+ throw new Error('Read request is reading an unknown note hash.');
88
94
  }
95
+ builder.addSettledReadRequest(settledRequests[i].index, membershipWitness, settledRequests[i].readRequest.value);
89
96
  }
90
97
 
91
98
  const noteHashMap: Map<bigint, { noteHash: ScopedNoteHash; index: number }[]> = new Map();
@@ -101,22 +108,19 @@ export async function buildNoteHashReadRequestHintsFromResetActions<PENDING exte
101
108
 
102
109
  export async function buildNoteHashReadRequestHints<PENDING extends number, SETTLED extends number>(
103
110
  oracle: {
104
- getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
111
+ getNoteHashMembershipWitness(noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
105
112
  },
106
113
  noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>,
107
114
  noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
108
- noteHashLeafIndexMap: Map<bigint, bigint>,
109
- futureNoteHashes: ScopedNoteHash[],
110
115
  maxPending: PENDING = MAX_NOTE_HASH_READ_REQUESTS_PER_TX as PENDING,
111
116
  maxSettled: SETTLED = MAX_NOTE_HASH_READ_REQUESTS_PER_TX as SETTLED,
112
117
  ) {
113
- const resetActions = getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes, futureNoteHashes);
118
+ const resetActions = getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes);
114
119
  return await buildNoteHashReadRequestHintsFromResetActions(
115
120
  oracle,
116
121
  noteHashReadRequests,
117
122
  noteHashes,
118
123
  resetActions,
119
- noteHashLeafIndexMap,
120
124
  maxPending,
121
125
  maxSettled,
122
126
  );