@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.9d2bcf6d

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 (492) hide show
  1. package/dest/abi/function_call.d.ts +9 -1
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/utils.d.ts +7 -1
  4. package/dest/abi/utils.d.ts.map +1 -1
  5. package/dest/abi/utils.js +7 -0
  6. package/dest/auth_witness/auth_witness.d.ts +2 -1
  7. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  8. package/dest/avm/avm.d.ts +62 -62
  9. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  10. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  11. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  12. package/dest/avm/avm_proving_request.d.ts +299 -299
  13. package/dest/avm/contract_storage_read.d.ts +13 -1
  14. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  15. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  16. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  17. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  19. package/dest/avm/public_data_read.d.ts +10 -1
  20. package/dest/avm/public_data_read.d.ts.map +1 -1
  21. package/dest/avm/public_data_update_request.d.ts +10 -1
  22. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_data_write.d.ts +7 -1
  24. package/dest/avm/public_data_write.d.ts.map +1 -1
  25. package/dest/avm/public_inner_call_request.d.ts +4 -1
  26. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  27. package/dest/avm/revert_code.d.ts +4 -4
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/block/block_hash.d.ts +18 -14
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +22 -20
  32. package/dest/block/block_parameter.d.ts +4 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +2 -0
  35. package/dest/block/body.d.ts +1 -1
  36. package/dest/block/body.d.ts.map +1 -1
  37. package/dest/block/body.js +2 -1
  38. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  39. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  40. package/dest/block/checkpointed_l2_block.js +7 -45
  41. package/dest/block/in_block.d.ts +9 -9
  42. package/dest/block/in_block.d.ts.map +1 -1
  43. package/dest/block/in_block.js +4 -4
  44. package/dest/block/index.d.ts +1 -3
  45. package/dest/block/index.d.ts.map +1 -1
  46. package/dest/block/index.js +0 -2
  47. package/dest/block/l2_block.d.ts +56 -59
  48. package/dest/block/l2_block.d.ts.map +1 -1
  49. package/dest/block/l2_block.js +64 -110
  50. package/dest/block/l2_block_source.d.ts +65 -39
  51. package/dest/block/l2_block_source.d.ts.map +1 -1
  52. package/dest/block/l2_block_source.js +2 -1
  53. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  54. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  55. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  57. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  58. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  63. package/dest/block/validate_block_result.d.ts +1 -1
  64. package/dest/block/validate_block_result.d.ts.map +1 -1
  65. package/dest/block/validate_block_result.js +5 -4
  66. package/dest/checkpoint/checkpoint.d.ts +30 -20
  67. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  68. package/dest/checkpoint/checkpoint.js +18 -6
  69. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  70. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  71. package/dest/checkpoint/published_checkpoint.js +4 -3
  72. package/dest/config/node-rpc-config.js +1 -1
  73. package/dest/contract/complete_address.d.ts +4 -1
  74. package/dest/contract/complete_address.d.ts.map +1 -1
  75. package/dest/contract/contract_address.js +1 -1
  76. package/dest/contract/contract_class_id.d.ts +1 -1
  77. package/dest/contract/contract_class_id.js +1 -1
  78. package/dest/contract/contract_deployment_data.d.ts +5 -5
  79. package/dest/contract/index.d.ts +1 -3
  80. package/dest/contract/index.d.ts.map +1 -1
  81. package/dest/contract/index.js +0 -2
  82. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  83. package/dest/contract/private_function.d.ts +1 -1
  84. package/dest/contract/private_function.d.ts.map +1 -1
  85. package/dest/contract/private_function.js +2 -3
  86. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  87. package/dest/contract/private_function_membership_proof.js +1 -1
  88. package/dest/database-version/database_version.d.ts +58 -0
  89. package/dest/database-version/database_version.d.ts.map +1 -0
  90. package/dest/database-version/database_version.js +69 -0
  91. package/dest/database-version/version_manager.d.ts +3 -49
  92. package/dest/database-version/version_manager.d.ts.map +1 -1
  93. package/dest/database-version/version_manager.js +1 -66
  94. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  95. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  96. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  97. package/dest/deserialization/index.d.ts +11 -0
  98. package/dest/deserialization/index.d.ts.map +1 -0
  99. package/dest/deserialization/index.js +10 -0
  100. package/dest/epoch-helpers/index.d.ts +3 -1
  101. package/dest/epoch-helpers/index.d.ts.map +1 -1
  102. package/dest/epoch-helpers/index.js +5 -1
  103. package/dest/errors/proving_error.d.ts +2 -2
  104. package/dest/errors/proving_error.d.ts.map +1 -1
  105. package/dest/hash/hash.js +2 -2
  106. package/dest/hash/map_slot.d.ts +1 -1
  107. package/dest/hash/map_slot.d.ts.map +1 -1
  108. package/dest/hash/map_slot.js +4 -3
  109. package/dest/interfaces/api_limit.d.ts +2 -1
  110. package/dest/interfaces/api_limit.d.ts.map +1 -1
  111. package/dest/interfaces/api_limit.js +1 -0
  112. package/dest/interfaces/archiver.d.ts +1 -1
  113. package/dest/interfaces/archiver.d.ts.map +1 -1
  114. package/dest/interfaces/archiver.js +18 -15
  115. package/dest/interfaces/aztec-node-admin.d.ts +63 -27
  116. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  117. package/dest/interfaces/aztec-node-admin.js +3 -1
  118. package/dest/interfaces/aztec-node.d.ts +65 -68
  119. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  120. package/dest/interfaces/aztec-node.js +10 -16
  121. package/dest/interfaces/block-builder.d.ts +22 -14
  122. package/dest/interfaces/block-builder.d.ts.map +1 -1
  123. package/dest/interfaces/block-builder.js +7 -0
  124. package/dest/interfaces/configs.d.ts +8 -8
  125. package/dest/interfaces/configs.d.ts.map +1 -1
  126. package/dest/interfaces/get_logs_response.d.ts +8 -8
  127. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  128. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  129. package/dest/interfaces/prover-broker.d.ts +16 -1
  130. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  131. package/dest/interfaces/prover-broker.js +4 -1
  132. package/dest/interfaces/prover-client.d.ts +15 -1
  133. package/dest/interfaces/prover-client.d.ts.map +1 -1
  134. package/dest/interfaces/prover-client.js +12 -1
  135. package/dest/interfaces/proving-job.d.ts +48 -48
  136. package/dest/interfaces/tx_provider.d.ts +3 -3
  137. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  138. package/dest/interfaces/validator.d.ts +102 -14
  139. package/dest/interfaces/validator.d.ts.map +1 -1
  140. package/dest/interfaces/validator.js +2 -2
  141. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  142. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  143. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  144. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  145. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  146. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  147. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  148. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  149. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  150. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  151. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  152. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  153. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  154. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  155. package/dest/kernel/hints/read_request.d.ts +7 -1
  156. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  157. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  158. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  159. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  160. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  161. package/dest/kernel/private_call_data.d.ts +25 -1
  162. package/dest/kernel/private_call_data.d.ts.map +1 -1
  163. package/dest/kernel/private_call_request.d.ts +16 -1
  164. package/dest/kernel/private_call_request.d.ts.map +1 -1
  165. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  166. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  167. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  168. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  169. package/dest/kernel/private_kernel_data.d.ts +7 -1
  170. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  171. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  172. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  173. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  174. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  175. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  176. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  178. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  179. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  180. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  181. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  182. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  183. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  184. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  185. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_validation_requests.d.ts +10 -1
  187. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  188. package/dest/kernel/public_call_request.d.ts +22 -1
  189. package/dest/kernel/public_call_request.d.ts.map +1 -1
  190. package/dest/kernel/utils/optional_number.d.ts +7 -1
  191. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  192. package/dest/keys/derivation.d.ts +3 -3
  193. package/dest/keys/derivation.js +8 -8
  194. package/dest/keys/key_types.d.ts +1 -1
  195. package/dest/keys/public_keys.d.ts +5 -1
  196. package/dest/keys/public_keys.d.ts.map +1 -1
  197. package/dest/keys/utils.d.ts +1 -1
  198. package/dest/keys/utils.d.ts.map +1 -1
  199. package/dest/keys/utils.js +7 -3
  200. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  201. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  202. package/dest/l1-contracts/slash_factory.js +1 -0
  203. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  204. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  205. package/dest/logs/extended_public_log.d.ts +11 -9
  206. package/dest/logs/extended_public_log.d.ts.map +1 -1
  207. package/dest/logs/log_id.d.ts +12 -8
  208. package/dest/logs/log_id.d.ts.map +1 -1
  209. package/dest/logs/log_id.js +6 -5
  210. package/dest/logs/siloed_tag.d.ts +1 -1
  211. package/dest/logs/siloed_tag.d.ts.map +1 -1
  212. package/dest/logs/siloed_tag.js +4 -3
  213. package/dest/messaging/inbox_leaf.d.ts +3 -1
  214. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  215. package/dest/messaging/l1_actor.d.ts +7 -1
  216. package/dest/messaging/l1_actor.d.ts.map +1 -1
  217. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  218. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  219. package/dest/messaging/l2_actor.d.ts +7 -1
  220. package/dest/messaging/l2_actor.d.ts.map +1 -1
  221. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  222. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  223. package/dest/messaging/l2_to_l1_membership.js +5 -3
  224. package/dest/messaging/out_hash.d.ts +41 -4
  225. package/dest/messaging/out_hash.d.ts.map +1 -1
  226. package/dest/messaging/out_hash.js +52 -26
  227. package/dest/note/note_dao.d.ts +36 -5
  228. package/dest/note/note_dao.d.ts.map +1 -1
  229. package/dest/note/note_dao.js +15 -12
  230. package/dest/p2p/block_proposal.d.ts +23 -8
  231. package/dest/p2p/block_proposal.d.ts.map +1 -1
  232. package/dest/p2p/block_proposal.js +25 -7
  233. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  234. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  235. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  236. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  237. package/dest/p2p/checkpoint_proposal.js +17 -5
  238. package/dest/p2p/consensus_payload.d.ts +4 -3
  239. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  240. package/dest/p2p/consensus_payload.js +0 -3
  241. package/dest/p2p/constants.d.ts +3 -0
  242. package/dest/p2p/constants.d.ts.map +1 -0
  243. package/dest/p2p/constants.js +2 -0
  244. package/dest/p2p/index.d.ts +2 -1
  245. package/dest/p2p/index.d.ts.map +1 -1
  246. package/dest/p2p/index.js +1 -0
  247. package/dest/p2p/message_validator.d.ts +18 -3
  248. package/dest/p2p/message_validator.d.ts.map +1 -1
  249. package/dest/p2p/message_validator.js +2 -1
  250. package/dest/p2p/signed_txs.d.ts +3 -1
  251. package/dest/p2p/signed_txs.d.ts.map +1 -1
  252. package/dest/p2p/signed_txs.js +6 -1
  253. package/dest/p2p/topic_type.js +2 -1
  254. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  255. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  256. package/dest/parity/parity_public_inputs.d.ts +4 -1
  257. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  258. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  259. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  260. package/dest/proofs/chonk_proof.d.ts +1 -1
  261. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  262. package/dest/proofs/chonk_proof.js +9 -4
  263. package/dest/proofs/proof.d.ts +4 -1
  264. package/dest/proofs/proof.d.ts.map +1 -1
  265. package/dest/proofs/recursive_proof.d.ts +10 -1
  266. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  267. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  268. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  269. package/dest/rollup/block_constant_data.d.ts +12 -1
  270. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  271. package/dest/rollup/block_headers_hash.js +1 -1
  272. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  273. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  274. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  275. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  276. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  277. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  278. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  279. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  280. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  281. package/dest/rollup/checkpoint_header.d.ts +29 -2
  282. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  283. package/dest/rollup/checkpoint_header.js +21 -5
  284. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  285. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  286. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  287. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  288. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  289. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  290. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  291. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  292. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  293. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  294. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  295. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  296. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  297. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  298. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  299. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  300. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  301. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  302. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  303. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  304. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  305. package/dest/schemas/schemas.d.ts +1 -1
  306. package/dest/stats/stats.d.ts +1 -3
  307. package/dest/stats/stats.d.ts.map +1 -1
  308. package/dest/tests/factories.d.ts +2 -4
  309. package/dest/tests/factories.d.ts.map +1 -1
  310. package/dest/tests/factories.js +6 -15
  311. package/dest/tests/jest.js +1 -1
  312. package/dest/tests/mocks.d.ts +20 -14
  313. package/dest/tests/mocks.d.ts.map +1 -1
  314. package/dest/tests/mocks.js +45 -27
  315. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  316. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  317. package/dest/trees/nullifier_leaf.d.ts +13 -1
  318. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  319. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  320. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  321. package/dest/trees/public_data_leaf.d.ts +16 -1
  322. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  323. package/dest/trees/public_data_witness.d.ts +11 -1
  324. package/dest/trees/public_data_witness.d.ts.map +1 -1
  325. package/dest/tx/block_header.d.ts +14 -2
  326. package/dest/tx/block_header.d.ts.map +1 -1
  327. package/dest/tx/block_header.js +5 -1
  328. package/dest/tx/call_context.d.ts +13 -1
  329. package/dest/tx/call_context.d.ts.map +1 -1
  330. package/dest/tx/capsule.d.ts +4 -1
  331. package/dest/tx/capsule.d.ts.map +1 -1
  332. package/dest/tx/execution_payload.d.ts +9 -1
  333. package/dest/tx/execution_payload.d.ts.map +1 -1
  334. package/dest/tx/function_data.d.ts +4 -2
  335. package/dest/tx/function_data.d.ts.map +1 -1
  336. package/dest/tx/global_variables.d.ts +9 -1
  337. package/dest/tx/global_variables.d.ts.map +1 -1
  338. package/dest/tx/hashed_values.d.ts +7 -1
  339. package/dest/tx/hashed_values.d.ts.map +1 -1
  340. package/dest/tx/in_tx.d.ts +4 -4
  341. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  342. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  343. package/dest/tx/indexed_tx_effect.js +3 -2
  344. package/dest/tx/partial_state_reference.d.ts +4 -1
  345. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  346. package/dest/tx/private_execution_result.d.ts +23 -2
  347. package/dest/tx/private_execution_result.d.ts.map +1 -1
  348. package/dest/tx/private_execution_result.js +1 -1
  349. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  350. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  351. package/dest/tx/profiling.d.ts +149 -26
  352. package/dest/tx/profiling.d.ts.map +1 -1
  353. package/dest/tx/profiling.js +44 -7
  354. package/dest/tx/protocol_contracts.d.ts +1 -1
  355. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  356. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  357. package/dest/tx/state_reference.d.ts +3 -1
  358. package/dest/tx/state_reference.d.ts.map +1 -1
  359. package/dest/tx/tx.d.ts +24 -1
  360. package/dest/tx/tx.d.ts.map +1 -1
  361. package/dest/tx/tx.js +6 -3
  362. package/dest/tx/tx_context.d.ts +2 -1
  363. package/dest/tx/tx_context.d.ts.map +1 -1
  364. package/dest/tx/tx_effect.d.ts +32 -6
  365. package/dest/tx/tx_effect.d.ts.map +1 -1
  366. package/dest/tx/tx_effect.js +0 -7
  367. package/dest/tx/tx_execution_request.d.ts +30 -1
  368. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  369. package/dest/tx/tx_hash.d.ts +2 -1
  370. package/dest/tx/tx_hash.d.ts.map +1 -1
  371. package/dest/tx/tx_receipt.d.ts +47 -13
  372. package/dest/tx/tx_receipt.d.ts.map +1 -1
  373. package/dest/tx/tx_receipt.js +46 -15
  374. package/dest/tx/tx_request.d.ts +6 -1
  375. package/dest/tx/tx_request.d.ts.map +1 -1
  376. package/dest/tx/validator/error_texts.d.ts +2 -1
  377. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  378. package/dest/tx/validator/error_texts.js +2 -0
  379. package/dest/types/shared.d.ts +4 -1
  380. package/dest/types/shared.d.ts.map +1 -1
  381. package/dest/validators/schemas.d.ts +8 -8
  382. package/dest/vks/verification_key.d.ts +22 -1
  383. package/dest/vks/verification_key.d.ts.map +1 -1
  384. package/dest/vks/vk_data.d.ts +7 -1
  385. package/dest/vks/vk_data.d.ts.map +1 -1
  386. package/dest/zkpassport/index.d.ts +3 -4
  387. package/dest/zkpassport/index.d.ts.map +1 -1
  388. package/dest/zkpassport/index.js +9 -9
  389. package/package.json +14 -11
  390. package/src/abi/utils.ts +17 -0
  391. package/src/block/block_hash.ts +26 -25
  392. package/src/block/block_parameter.ts +4 -2
  393. package/src/block/body.ts +2 -1
  394. package/src/block/checkpointed_l2_block.ts +8 -58
  395. package/src/block/in_block.ts +5 -5
  396. package/src/block/index.ts +0 -2
  397. package/src/block/l2_block.ts +102 -150
  398. package/src/block/l2_block_source.ts +71 -42
  399. package/src/block/l2_block_stream/interfaces.ts +8 -5
  400. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  401. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  402. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  403. package/src/block/validate_block_result.ts +5 -4
  404. package/src/checkpoint/checkpoint.ts +33 -11
  405. package/src/checkpoint/published_checkpoint.ts +4 -3
  406. package/src/config/node-rpc-config.ts +1 -1
  407. package/src/contract/contract_address.ts +1 -1
  408. package/src/contract/contract_class_id.ts +1 -1
  409. package/src/contract/index.ts +0 -2
  410. package/src/contract/private_function.ts +2 -3
  411. package/src/contract/private_function_membership_proof.ts +1 -1
  412. package/src/database-version/database_version.ts +87 -0
  413. package/src/database-version/version_manager.ts +1 -77
  414. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  415. package/src/deserialization/index.ts +21 -0
  416. package/src/epoch-helpers/index.ts +10 -1
  417. package/src/hash/hash.ts +2 -2
  418. package/src/hash/map_slot.ts +3 -2
  419. package/src/interfaces/api_limit.ts +1 -0
  420. package/src/interfaces/archiver.ts +18 -24
  421. package/src/interfaces/aztec-node-admin.ts +3 -2
  422. package/src/interfaces/aztec-node.ts +85 -134
  423. package/src/interfaces/block-builder.ts +40 -23
  424. package/src/interfaces/configs.ts +1 -3
  425. package/src/interfaces/l2_logs_source.ts +17 -4
  426. package/src/interfaces/prover-broker.ts +22 -0
  427. package/src/interfaces/prover-client.ts +22 -0
  428. package/src/interfaces/tx_provider.ts +2 -2
  429. package/src/interfaces/validator.ts +9 -11
  430. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  431. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  432. package/src/keys/derivation.ts +8 -8
  433. package/src/keys/key_types.ts +1 -1
  434. package/src/keys/utils.ts +7 -3
  435. package/src/l1-contracts/slash_factory.ts +1 -0
  436. package/src/logs/log_id.ts +7 -6
  437. package/src/logs/siloed_tag.ts +3 -2
  438. package/src/messaging/l2_to_l1_membership.ts +5 -3
  439. package/src/messaging/out_hash.ts +60 -29
  440. package/src/note/note_dao.ts +18 -13
  441. package/src/p2p/block_proposal.ts +36 -13
  442. package/src/p2p/checkpoint_proposal.ts +29 -11
  443. package/src/p2p/consensus_payload.ts +0 -5
  444. package/src/p2p/constants.ts +3 -0
  445. package/src/p2p/index.ts +1 -0
  446. package/src/p2p/message_validator.ts +14 -2
  447. package/src/p2p/signed_txs.ts +6 -1
  448. package/src/p2p/topic_type.ts +1 -1
  449. package/src/proofs/chonk_proof.ts +9 -5
  450. package/src/rollup/block_headers_hash.ts +1 -1
  451. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  452. package/src/rollup/checkpoint_header.ts +20 -0
  453. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  454. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  455. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  456. package/src/stats/stats.ts +0 -2
  457. package/src/tests/factories.ts +6 -26
  458. package/src/tests/jest.ts +1 -1
  459. package/src/tests/mocks.ts +62 -42
  460. package/src/tx/block_header.ts +11 -3
  461. package/src/tx/indexed_tx_effect.ts +3 -2
  462. package/src/tx/private_execution_result.ts +1 -1
  463. package/src/tx/profiling.ts +46 -4
  464. package/src/tx/tx.ts +8 -9
  465. package/src/tx/tx_effect.ts +0 -9
  466. package/src/tx/tx_receipt.ts +75 -18
  467. package/src/tx/validator/error_texts.ts +3 -0
  468. package/src/zkpassport/index.ts +11 -12
  469. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  470. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  471. package/dest/block/l2_block_code_to_purge.js +0 -55
  472. package/dest/block/l2_block_header.d.ts +0 -94
  473. package/dest/block/l2_block_header.d.ts.map +0 -1
  474. package/dest/block/l2_block_header.js +0 -160
  475. package/dest/block/l2_block_new.d.ts +0 -134
  476. package/dest/block/l2_block_new.d.ts.map +0 -1
  477. package/dest/block/l2_block_new.js +0 -155
  478. package/dest/contract/contract_class_metadata.d.ts +0 -8
  479. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  480. package/dest/contract/contract_class_metadata.js +0 -1
  481. package/dest/contract/contract_metadata.d.ts +0 -7
  482. package/dest/contract/contract_metadata.d.ts.map +0 -1
  483. package/dest/contract/contract_metadata.js +0 -1
  484. package/dest/database-version/index.d.ts +0 -2
  485. package/dest/database-version/index.d.ts.map +0 -1
  486. package/dest/database-version/index.js +0 -1
  487. package/src/block/l2_block_code_to_purge.ts +0 -80
  488. package/src/block/l2_block_header.ts +0 -255
  489. package/src/block/l2_block_new.ts +0 -211
  490. package/src/contract/contract_class_metadata.ts +0 -8
  491. package/src/contract/contract_metadata.ts +0 -7
  492. package/src/database-version/index.ts +0 -1
@@ -1,17 +1,17 @@
1
- import type { BlockNumber } from '@aztec/foundation/branded-types';
1
+ import type { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
  import type { Fr } from '@aztec/foundation/curves/bn254';
3
- import type { Timer } from '@aztec/foundation/timer';
3
+ import type { LoggerBindings } from '@aztec/foundation/log';
4
4
 
5
5
  import type { L2Block } from '../block/l2_block.js';
6
6
  import type { ChainConfig, SequencerConfig } from '../config/chain-config.js';
7
7
  import type { L1RollupConstants } from '../epoch-helpers/index.js';
8
8
  import type { Gas } from '../gas/gas.js';
9
- import type { MerkleTreeWriteOperations } from '../trees/index.js';
10
9
  import type { BlockHeader } from '../tx/block_header.js';
11
- import type { GlobalVariables } from '../tx/global_variables.js';
10
+ import type { CheckpointGlobalVariables, GlobalVariables } from '../tx/global_variables.js';
12
11
  import type { FailedTx, ProcessedTx } from '../tx/processed_tx.js';
13
12
  import { Tx } from '../tx/tx.js';
14
13
  import type { TxValidator } from '../tx/validator/tx_validator.js';
14
+ import type { MerkleTreeWriteOperations } from './merkle_tree_operations.js';
15
15
  import type { ProcessedTxHandler } from './processed-tx-handler.js';
16
16
 
17
17
  /** The interface to a block builder. Generates an L2 block out of a set of processed txs. */
@@ -47,16 +47,6 @@ export interface PublicProcessorValidator {
47
47
  preprocessValidator?: TxValidator<Tx>;
48
48
  nullifierCache?: { addNullifiers: (nullifiers: Buffer[]) => void };
49
49
  }
50
- export interface BuildBlockResult {
51
- block: L2Block;
52
- publicGas: Gas;
53
- publicProcessorDuration: number;
54
- numMsgs: number;
55
- numTxs: number;
56
- failedTxs: FailedTx[];
57
- blockBuildingTimer: Timer;
58
- usedTxs: Tx[];
59
- }
60
50
 
61
51
  export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> &
62
52
  Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> &
@@ -72,18 +62,45 @@ export const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[
72
62
  'fakeThrowAfterProcessingTxCount',
73
63
  ] as const;
74
64
 
75
- export interface IFullNodeBlockBuilder {
76
- getConfig(): FullNodeBlockBuilderConfig;
65
+ /** Thrown when no valid transactions are available to include in a block after processing, and this is not the first block in a checkpoint. */
66
+ export class NoValidTxsError extends Error {
67
+ constructor(public readonly failedTxs: FailedTx[]) {
68
+ super('No valid transactions to include in block');
69
+ this.name = 'NoValidTxsError';
70
+ }
71
+ }
77
72
 
78
- updateConfig(config: Partial<FullNodeBlockBuilderConfig>): void;
73
+ /** Result of building a block within a checkpoint. */
74
+ export type BuildBlockInCheckpointResult = {
75
+ block: L2Block;
76
+ publicGas: Gas;
77
+ publicProcessorDuration: number;
78
+ numTxs: number;
79
+ failedTxs: FailedTx[];
80
+ usedTxs: Tx[];
81
+ usedTxBlobFields: number;
82
+ };
79
83
 
84
+ /** Interface for building blocks within a checkpoint context. */
85
+ export interface ICheckpointBlockBuilder {
80
86
  buildBlock(
81
- txs: Iterable<Tx> | AsyncIterable<Tx>,
82
- l1ToL2Messages: Fr[],
83
- globalVariables: GlobalVariables,
84
- options: PublicProcessorLimits,
85
- fork?: MerkleTreeWriteOperations,
86
- ): Promise<BuildBlockResult>;
87
+ pendingTxs: Iterable<Tx> | AsyncIterable<Tx>,
88
+ blockNumber: BlockNumber,
89
+ timestamp: bigint,
90
+ opts: PublicProcessorLimits,
91
+ ): Promise<BuildBlockInCheckpointResult>;
92
+ }
87
93
 
94
+ /** Interface for creating checkpoint builders. */
95
+ export interface ICheckpointsBuilder {
88
96
  getFork(blockNumber: BlockNumber): Promise<MerkleTreeWriteOperations>;
97
+
98
+ startCheckpoint(
99
+ checkpointNumber: CheckpointNumber,
100
+ constants: CheckpointGlobalVariables,
101
+ l1ToL2Messages: Fr[],
102
+ previousCheckpointOutHashes: Fr[],
103
+ fork: MerkleTreeWriteOperations,
104
+ bindings?: LoggerBindings,
105
+ ): Promise<ICheckpointBlockBuilder>;
89
106
  }
@@ -67,9 +67,7 @@ export interface SequencerConfig {
67
67
  blockDurationMs?: number;
68
68
  /** Have sequencer build and publish an empty checkpoint if there are no txs */
69
69
  buildCheckpointIfEmpty?: boolean;
70
-
71
- // TODO(palla/mbps): Change default to false once block sync is stable
72
- /** Skip pushing proposed blocks to archiver (default: true) */
70
+ /** Skip pushing proposed blocks to archiver (default: false) */
73
71
  skipPushProposedBlocksToArchiver?: boolean;
74
72
  }
75
73
 
@@ -12,16 +12,29 @@ import type { GetContractClassLogsResponse, GetPublicLogsResponse } from './get_
12
12
  */
13
13
  export interface L2LogsSource {
14
14
  /**
15
- * Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
15
+ * Gets private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
16
16
  * array implies no logs match that tag.
17
+ * @param tags - The tags to search for.
18
+ * @param page - The page number (0-indexed) for pagination.
19
+ * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
20
+ * for a tag, the caller should fetch the next page to check for more logs.
17
21
  */
18
- getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
22
+ getPrivateLogsByTags(tags: SiloedTag[], page?: number): Promise<TxScopedL2Log[][]>;
19
23
 
20
24
  /**
21
- * Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
25
+ * Gets public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
22
26
  * logs is returned. An empty array implies no logs match that tag.
27
+ * @param contractAddress - The contract address to search logs for.
28
+ * @param tags - The tags to search for.
29
+ * @param page - The page number (0-indexed) for pagination.
30
+ * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
31
+ * for a tag, the caller should fetch the next page to check for more logs.
23
32
  */
24
- getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
33
+ getPublicLogsByTagsFromContract(
34
+ contractAddress: AztecAddress,
35
+ tags: Tag[],
36
+ page?: number,
37
+ ): Promise<TxScopedL2Log[][]>;
25
38
 
26
39
  /**
27
40
  * Gets public logs based on the provided filter.
@@ -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) {
@@ -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,3 +1,4 @@
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';
@@ -14,6 +15,7 @@ import type {
14
15
  } from '@aztec/stdlib/p2p';
15
16
  import type { CheckpointHeader } from '@aztec/stdlib/rollup';
16
17
  import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
18
+ import { type ValidatorHASignerConfig, ValidatorHASignerConfigSchema } from '@aztec/validator-ha-signer/config';
17
19
 
18
20
  import type { PeerId } from '@libp2p/interface';
19
21
  import { z } from 'zod';
@@ -24,7 +26,7 @@ import { AllowedElementSchema } from './allowed_element.js';
24
26
  /**
25
27
  * Validator client configuration
26
28
  */
27
- export interface ValidatorClientConfig {
29
+ export type ValidatorClientConfig = ValidatorHASignerConfig & {
28
30
  /** The private keys of the validators participating in attestation duties */
29
31
  validatorPrivateKeys?: SecretValue<`0x${string}`[]>;
30
32
 
@@ -43,23 +45,18 @@ export interface ValidatorClientConfig {
43
45
  /** Whether to re-execute transactions in a block proposal before attesting */
44
46
  validatorReexecute: boolean;
45
47
 
46
- /** Will re-execute until this many milliseconds are left in the slot */
47
- validatorReexecuteDeadlineMs: number;
48
-
49
48
  /** Whether to always reexecute block proposals, even for non-validator nodes or when out of the currnet committee */
50
49
  alwaysReexecuteBlockProposals?: boolean;
51
50
 
52
51
  /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
53
52
  fishermanMode?: boolean;
54
53
 
55
- // TODO(palla/mbps): Change default to false once checkpoint validation is stable
56
- /** Skip checkpoint proposal validation and always attest (default: true) */
54
+ /** Skip checkpoint proposal validation and always attest (default: false) */
57
55
  skipCheckpointProposalValidation?: boolean;
58
56
 
59
- // TODO(palla/mbps): Change default to false once block sync is stable
60
- /** Skip pushing re-executed blocks to archiver (default: true) */
57
+ /** Skip pushing re-executed blocks to archiver (default: false) */
61
58
  skipPushProposedBlocksToArchiver?: boolean;
62
- }
59
+ };
63
60
 
64
61
  export type ValidatorClientFullConfig = ValidatorClientConfig &
65
62
  Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> &
@@ -72,13 +69,12 @@ export type ValidatorClientFullConfig = ValidatorClientConfig &
72
69
  };
73
70
 
74
71
  export const ValidatorClientConfigSchema = zodFor<Omit<ValidatorClientConfig, 'validatorPrivateKeys'>>()(
75
- z.object({
72
+ ValidatorHASignerConfigSchema.extend({
76
73
  validatorAddresses: z.array(schemas.EthAddress).optional(),
77
74
  disableValidator: z.boolean(),
78
75
  disabledValidators: z.array(schemas.EthAddress),
79
76
  attestationPollingIntervalMs: z.number().min(0),
80
77
  validatorReexecute: z.boolean(),
81
- validatorReexecuteDeadlineMs: z.number().min(0),
82
78
  alwaysReexecuteBlockProposals: z.boolean().optional(),
83
79
  fishermanMode: z.boolean().optional(),
84
80
  skipCheckpointProposalValidation: z.boolean().optional(),
@@ -148,5 +144,7 @@ export interface Validator {
148
144
  signAttestationsAndSigners(
149
145
  attestationsAndSigners: CommitteeAttestationsAndSigners,
150
146
  proposer: EthAddress,
147
+ slot: SlotNumber,
148
+ blockNumber: BlockNumber | CheckpointNumber,
151
149
  ): Promise<Signature>;
152
150
  }
@@ -76,17 +76,28 @@ export async function buildNoteHashReadRequestHintsFromResetActions<PENDING exte
76
76
  builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
77
77
  });
78
78
 
79
+ // Collect all settled read requests
80
+ const settledRequests: { index: number; readRequest: ScopedReadRequest }[] = [];
79
81
  for (let i = 0; i < resetActions.actions.length; i++) {
80
82
  if (resetActions.actions[i] === ReadRequestActionEnum.READ_AS_SETTLED) {
81
- const readRequest = noteHashReadRequests.array[i];
82
- const membershipWitness = await oracle.getNoteHashMembershipWitness(readRequest.value);
83
- if (!membershipWitness) {
84
- throw new Error('Read request is reading an unknown note hash.');
85
- }
86
- builder.addSettledReadRequest(i, membershipWitness, readRequest.value);
83
+ settledRequests.push({ index: i, readRequest: noteHashReadRequests.array[i] });
87
84
  }
88
85
  }
89
86
 
87
+ // Fetch all membership witnesses in parallel
88
+ const membershipWitnesses = await Promise.all(
89
+ settledRequests.map(({ readRequest }) => oracle.getNoteHashMembershipWitness(readRequest.value)),
90
+ );
91
+
92
+ // Add settled read requests to builder
93
+ for (let i = 0; i < settledRequests.length; i++) {
94
+ const membershipWitness = membershipWitnesses[i];
95
+ if (!membershipWitness) {
96
+ throw new Error('Read request is reading an unknown note hash.');
97
+ }
98
+ builder.addSettledReadRequest(settledRequests[i].index, membershipWitness, settledRequests[i].readRequest.value);
99
+ }
100
+
90
101
  const noteHashMap: Map<bigint, { noteHash: ScopedNoteHash; index: number }[]> = new Map();
91
102
  noteHashes.getActiveItems().forEach((noteHash, index) => {
92
103
  const value = noteHash.value.toBigInt();
@@ -6,7 +6,6 @@ import {
6
6
  import type { Fr } from '@aztec/foundation/curves/bn254';
7
7
  import { MembershipWitness } from '@aztec/foundation/trees';
8
8
 
9
- import { siloNullifier } from '../../hash/hash.js';
10
9
  import type { NullifierLeafPreimage } from '../../trees/nullifier_leaf.js';
11
10
  import type { ClaimedLengthArray } from '../claimed_length_array.js';
12
11
  import type { ScopedNullifier } from '../nullifier.js';
@@ -74,7 +73,6 @@ export async function buildNullifierReadRequestHintsFromResetActions<PENDING ext
74
73
  resetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
75
74
  maxPending: PENDING = MAX_NULLIFIER_READ_REQUESTS_PER_TX as PENDING,
76
75
  maxSettled: SETTLED = MAX_NULLIFIER_READ_REQUESTS_PER_TX as SETTLED,
77
- siloed = false,
78
76
  ) {
79
77
  const builder = new NullifierReadRequestHintsBuilder(maxPending, maxSettled);
80
78
 
@@ -82,21 +80,28 @@ export async function buildNullifierReadRequestHintsFromResetActions<PENDING ext
82
80
  builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
83
81
  });
84
82
 
83
+ // Collect all settled read requests
84
+ const settledRequests: { index: number; readRequest: ScopedReadRequest }[] = [];
85
85
  for (let i = 0; i < resetActions.actions.length; i++) {
86
86
  if (resetActions.actions[i] === ReadRequestActionEnum.READ_AS_SETTLED) {
87
- const readRequest = nullifierReadRequests.array[i];
88
- const siloedValue = siloed
89
- ? readRequest.value
90
- : await siloNullifier(readRequest.contractAddress, readRequest.value);
91
- const membershipWitnessWithPreimage = await oracle.getNullifierMembershipWitness(siloedValue);
92
- builder.addSettledReadRequest(
93
- i,
94
- membershipWitnessWithPreimage.membershipWitness,
95
- membershipWitnessWithPreimage.leafPreimage,
96
- );
87
+ settledRequests.push({ index: i, readRequest: nullifierReadRequests.array[i] });
97
88
  }
98
89
  }
99
90
 
91
+ const siloedValues = settledRequests.map(({ readRequest }) => readRequest.value);
92
+
93
+ // Fetch all membership witnesses in parallel
94
+ const membershipWitnesses = await Promise.all(siloedValues.map(value => oracle.getNullifierMembershipWitness(value)));
95
+
96
+ // Add settled read requests to builder
97
+ for (let i = 0; i < settledRequests.length; i++) {
98
+ builder.addSettledReadRequest(
99
+ settledRequests[i].index,
100
+ membershipWitnesses[i].membershipWitness,
101
+ membershipWitnesses[i].leafPreimage,
102
+ );
103
+ }
104
+
100
105
  return builder.toHints();
101
106
  }
102
107
 
@@ -109,7 +114,6 @@ export async function buildNullifierReadRequestHints<PENDING extends number, SET
109
114
  futureNullifiers: ScopedNullifier[],
110
115
  maxPending: PENDING = MAX_NULLIFIER_READ_REQUESTS_PER_TX as PENDING,
111
116
  maxSettled: SETTLED = MAX_NULLIFIER_READ_REQUESTS_PER_TX as SETTLED,
112
- siloed = false,
113
117
  ) {
114
118
  const resetActions = getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers, futureNullifiers);
115
119
  return await buildNullifierReadRequestHintsFromResetActions(
@@ -118,6 +122,5 @@ export async function buildNullifierReadRequestHints<PENDING extends number, SET
118
122
  resetActions,
119
123
  maxPending,
120
124
  maxSettled,
121
- siloed,
122
125
  );
123
126
  }
@@ -10,8 +10,8 @@ import type { KeyPrefix } from './key_types.js';
10
10
  import { PublicKeys } from './public_keys.js';
11
11
  import { getKeyGenerator } from './utils.js';
12
12
 
13
- export function computeAppNullifierSecretKey(masterNullifierSecretKey: GrumpkinScalar, app: AztecAddress): Promise<Fr> {
14
- return computeAppSecretKey(masterNullifierSecretKey, app, 'n'); // 'n' is the key prefix for nullifier secret key
13
+ export function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr> {
14
+ return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
15
15
  }
16
16
 
17
17
  export function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr> {
@@ -26,8 +26,8 @@ export async function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): P
26
26
  return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
27
27
  }
28
28
 
29
- export function deriveMasterNullifierSecretKey(secretKey: Fr): GrumpkinScalar {
30
- return sha512ToGrumpkinScalar([secretKey, GeneratorIndex.NSK_M]);
29
+ export function deriveMasterNullifierHidingKey(secretKey: Fr): GrumpkinScalar {
30
+ return sha512ToGrumpkinScalar([secretKey, GeneratorIndex.NHK_M]);
31
31
  }
32
32
 
33
33
  export function deriveMasterIncomingViewingSecretKey(secretKey: Fr): GrumpkinScalar {
@@ -93,15 +93,15 @@ export function derivePublicKeyFromSecretKey(secretKey: Fq) {
93
93
  * @returns The derived keys.
94
94
  */
95
95
  export async function deriveKeys(secretKey: Fr) {
96
- // First we derive master secret keys - we use sha512 here because this derivation will never take place
96
+ // First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
97
97
  // in a circuit
98
- const masterNullifierSecretKey = deriveMasterNullifierSecretKey(secretKey);
98
+ const masterNullifierHidingKey = deriveMasterNullifierHidingKey(secretKey);
99
99
  const masterIncomingViewingSecretKey = deriveMasterIncomingViewingSecretKey(secretKey);
100
100
  const masterOutgoingViewingSecretKey = deriveMasterOutgoingViewingSecretKey(secretKey);
101
101
  const masterTaggingSecretKey = sha512ToGrumpkinScalar([secretKey, GeneratorIndex.TSK_M]);
102
102
 
103
103
  // Then we derive master public keys
104
- const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierSecretKey);
104
+ const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
105
105
  const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
106
106
  const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
107
107
  const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
@@ -115,7 +115,7 @@ export async function deriveKeys(secretKey: Fr) {
115
115
  );
116
116
 
117
117
  return {
118
- masterNullifierSecretKey,
118
+ masterNullifierHidingKey,
119
119
  masterIncomingViewingSecretKey,
120
120
  masterOutgoingViewingSecretKey,
121
121
  masterTaggingSecretKey,
@@ -1,5 +1,5 @@
1
1
  import type { GeneratorIndex } from '@aztec/constants';
2
2
 
3
- export type KeyGenerator = GeneratorIndex.NSK_M | GeneratorIndex.IVSK_M | GeneratorIndex.OVSK_M | GeneratorIndex.TSK_M;
3
+ export type KeyGenerator = GeneratorIndex.NHK_M | GeneratorIndex.IVSK_M | GeneratorIndex.OVSK_M | GeneratorIndex.TSK_M;
4
4
  export type KeyPrefix = 'n' | 'iv' | 'ov' | 't';
5
5
  export const KEY_PREFIXES: KeyPrefix[] = ['n', 'iv', 'ov', 't'];
package/src/keys/utils.ts CHANGED
@@ -3,7 +3,11 @@ import { GeneratorIndex } from '@aztec/constants';
3
3
  import type { KeyGenerator, KeyPrefix } from './key_types.js';
4
4
 
5
5
  export function getKeyGenerator(prefix: KeyPrefix): KeyGenerator {
6
- // We get enum key by capitalizing key prefix and concatenating it with 'SK_M'
7
- const enumKey = `${prefix.toUpperCase()}SK_M`;
8
- return GeneratorIndex[enumKey as keyof typeof GeneratorIndex] as KeyGenerator;
6
+ const map: Record<KeyPrefix, KeyGenerator> = {
7
+ n: GeneratorIndex.NHK_M,
8
+ iv: GeneratorIndex.IVSK_M,
9
+ ov: GeneratorIndex.OVSK_M,
10
+ t: GeneratorIndex.TSK_M,
11
+ };
12
+ return map[prefix];
9
13
  }
@@ -41,6 +41,7 @@ export class SlashFactoryContract {
41
41
 
42
42
  return {
43
43
  to: this.contract.address,
44
+ abi: SlashFactoryAbi,
44
45
  data: encodeFunctionData({
45
46
  abi: SlashFactoryAbi,
46
47
  functionName: 'createSlashPayload',
@@ -1,11 +1,12 @@
1
1
  import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
2
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
3
3
  import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
5
  import { BufferReader } from '@aztec/foundation/serialize';
5
6
 
6
7
  import { z } from 'zod';
7
8
 
8
- import { L2BlockHash } from '../block/block_hash.js';
9
+ import { BlockHash } from '../block/block_hash.js';
9
10
  import { schemas } from '../schemas/index.js';
10
11
 
11
12
  /** A globally unique log id. */
@@ -20,7 +21,7 @@ export class LogId {
20
21
  /** The block number the log was emitted in. */
21
22
  public readonly blockNumber: BlockNumber,
22
23
  /** The hash of the block the log was emitted in. */
23
- public readonly blockHash: L2BlockHash,
24
+ public readonly blockHash: BlockHash,
24
25
  /** The index of a tx in a block the log was emitted in. */
25
26
  public readonly txIndex: number,
26
27
  /** The index of a log the tx was emitted in. */
@@ -40,7 +41,7 @@ export class LogId {
40
41
  static random() {
41
42
  return new LogId(
42
43
  BlockNumber(Math.floor(Math.random() * 1000) + 1),
43
- L2BlockHash.random(),
44
+ BlockHash.random(),
44
45
  Math.floor(Math.random() * 1000),
45
46
  Math.floor(Math.random() * 100),
46
47
  );
@@ -50,7 +51,7 @@ export class LogId {
50
51
  return z
51
52
  .object({
52
53
  blockNumber: BlockNumberSchema,
53
- blockHash: L2BlockHash.schema,
54
+ blockHash: BlockHash.schema,
54
55
  txIndex: schemas.Integer,
55
56
  logIndex: schemas.Integer,
56
57
  })
@@ -81,7 +82,7 @@ export class LogId {
81
82
  const reader = BufferReader.asReader(buffer);
82
83
 
83
84
  const blockNumber = BlockNumber(reader.readNumber());
84
- const blockHash = reader.readObject(L2BlockHash);
85
+ const blockHash = new BlockHash(reader.readObject(Fr));
85
86
  const txIndex = reader.readNumber();
86
87
  const logIndex = reader.readNumber();
87
88
 
@@ -104,7 +105,7 @@ export class LogId {
104
105
  static fromString(data: string): LogId {
105
106
  const [rawBlockNumber, rawTxIndex, rawLogIndex, rawBlockHash] = data.split('-');
106
107
  const blockNumber = BlockNumber(Number(rawBlockNumber));
107
- const blockHash = L2BlockHash.fromString(rawBlockHash);
108
+ const blockHash = BlockHash.fromString(rawBlockHash);
108
109
  const txIndex = Number(rawTxIndex);
109
110
  const logIndex = Number(rawLogIndex);
110
111
 
@@ -1,4 +1,5 @@
1
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
1
+ import { GeneratorIndex } from '@aztec/constants';
2
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
2
3
  import type { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import type { ZodFor } from '@aztec/foundation/schemas';
4
5
 
@@ -22,7 +23,7 @@ export class SiloedTag {
22
23
  constructor(public readonly value: Fr) {}
23
24
 
24
25
  static async compute(tag: Tag, app: AztecAddress): Promise<SiloedTag> {
25
- const siloedTag = await poseidon2Hash([app, tag.value]);
26
+ const siloedTag = await poseidon2HashWithSeparator([app, tag.value], GeneratorIndex.PRIVATE_LOG_FIRST_FIELD);
26
27
  return new SiloedTag(siloedTag);
27
28
  }
28
29
 
@@ -1,4 +1,4 @@
1
- import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
1
+ import { OUT_HASH_TREE_LEAF_COUNT } from '@aztec/constants';
2
2
  import type { EpochNumber } from '@aztec/foundation/branded-types';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot } from '@aztec/foundation/trees';
@@ -165,10 +165,12 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(
165
165
  });
166
166
  // Pad to AZTEC_MAX_EPOCH_DURATION with zeros.
167
167
  checkpointOutHashes = checkpointOutHashes.concat(
168
- Array.from({ length: AZTEC_MAX_EPOCH_DURATION - messagesInEpoch.length }, () => Buffer.alloc(32)),
168
+ Array.from({ length: OUT_HASH_TREE_LEAF_COUNT - messagesInEpoch.length }, () => Buffer.alloc(32)),
169
169
  );
170
170
 
171
- // Build the epoch tree with all the checkpoint out hashes, including the padded zeros
171
+ // Build the epoch tree with all the checkpoint out hashes, including the padded zeros.
172
+ // Note: The epoch tree is actually a balanced tree, but we use an unbalanced tree calculator here to avoid turning
173
+ // this function into async.
172
174
  const epochTree = UnbalancedMerkleTreeCalculator.create(checkpointOutHashes);
173
175
  // Get the sibling path of the checkpoint out hash in the epoch tree.
174
176
  const pathToCheckpointOutHashInEpochTree = epochTree.getSiblingPathByLeafIndex(checkpointIndex);