@aztec/stdlib 0.0.1-commit.6d3c34e → 0.0.1-commit.6d63667d

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 (493) 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 +16 -9
  127. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  128. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  129. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  130. package/dest/interfaces/prover-broker.d.ts +16 -1
  131. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  132. package/dest/interfaces/prover-broker.js +4 -1
  133. package/dest/interfaces/prover-client.d.ts +15 -1
  134. package/dest/interfaces/prover-client.d.ts.map +1 -1
  135. package/dest/interfaces/prover-client.js +12 -1
  136. package/dest/interfaces/proving-job.d.ts +48 -48
  137. package/dest/interfaces/tx_provider.d.ts +3 -3
  138. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  139. package/dest/interfaces/validator.d.ts +102 -14
  140. package/dest/interfaces/validator.d.ts.map +1 -1
  141. package/dest/interfaces/validator.js +2 -2
  142. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  143. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  144. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  145. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  146. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  147. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  148. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  149. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  150. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  151. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  152. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  153. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  154. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  155. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  156. package/dest/kernel/hints/read_request.d.ts +7 -1
  157. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  158. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  159. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  160. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  161. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  162. package/dest/kernel/private_call_data.d.ts +25 -1
  163. package/dest/kernel/private_call_data.d.ts.map +1 -1
  164. package/dest/kernel/private_call_request.d.ts +16 -1
  165. package/dest/kernel/private_call_request.d.ts.map +1 -1
  166. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  167. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  168. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  169. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  170. package/dest/kernel/private_kernel_data.d.ts +7 -1
  171. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  172. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  173. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  175. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  176. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  177. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  178. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  179. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  180. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  181. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  182. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  183. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  184. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  185. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  186. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  187. package/dest/kernel/private_validation_requests.d.ts +10 -1
  188. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  189. package/dest/kernel/public_call_request.d.ts +22 -1
  190. package/dest/kernel/public_call_request.d.ts.map +1 -1
  191. package/dest/kernel/utils/optional_number.d.ts +7 -1
  192. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  193. package/dest/keys/derivation.d.ts +3 -3
  194. package/dest/keys/derivation.js +8 -8
  195. package/dest/keys/key_types.d.ts +1 -1
  196. package/dest/keys/public_keys.d.ts +5 -1
  197. package/dest/keys/public_keys.d.ts.map +1 -1
  198. package/dest/keys/utils.d.ts +1 -1
  199. package/dest/keys/utils.d.ts.map +1 -1
  200. package/dest/keys/utils.js +7 -3
  201. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  202. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  203. package/dest/l1-contracts/slash_factory.js +1 -0
  204. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  205. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  206. package/dest/logs/extended_public_log.d.ts +17 -9
  207. package/dest/logs/extended_public_log.d.ts.map +1 -1
  208. package/dest/logs/log_id.d.ts +21 -14
  209. package/dest/logs/log_id.d.ts.map +1 -1
  210. package/dest/logs/log_id.js +20 -17
  211. package/dest/logs/siloed_tag.d.ts +1 -1
  212. package/dest/logs/siloed_tag.d.ts.map +1 -1
  213. package/dest/logs/siloed_tag.js +4 -3
  214. package/dest/messaging/inbox_leaf.d.ts +3 -1
  215. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  216. package/dest/messaging/l1_actor.d.ts +7 -1
  217. package/dest/messaging/l1_actor.d.ts.map +1 -1
  218. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  219. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  220. package/dest/messaging/l2_actor.d.ts +7 -1
  221. package/dest/messaging/l2_actor.d.ts.map +1 -1
  222. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  223. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  224. package/dest/messaging/l2_to_l1_membership.js +5 -3
  225. package/dest/messaging/out_hash.d.ts +41 -4
  226. package/dest/messaging/out_hash.d.ts.map +1 -1
  227. package/dest/messaging/out_hash.js +52 -26
  228. package/dest/note/note_dao.d.ts +36 -5
  229. package/dest/note/note_dao.d.ts.map +1 -1
  230. package/dest/note/note_dao.js +15 -12
  231. package/dest/p2p/block_proposal.d.ts +23 -8
  232. package/dest/p2p/block_proposal.d.ts.map +1 -1
  233. package/dest/p2p/block_proposal.js +25 -7
  234. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  235. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  236. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  237. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  238. package/dest/p2p/checkpoint_proposal.js +17 -5
  239. package/dest/p2p/consensus_payload.d.ts +4 -3
  240. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  241. package/dest/p2p/consensus_payload.js +0 -3
  242. package/dest/p2p/constants.d.ts +3 -0
  243. package/dest/p2p/constants.d.ts.map +1 -0
  244. package/dest/p2p/constants.js +2 -0
  245. package/dest/p2p/index.d.ts +2 -1
  246. package/dest/p2p/index.d.ts.map +1 -1
  247. package/dest/p2p/index.js +1 -0
  248. package/dest/p2p/message_validator.d.ts +18 -3
  249. package/dest/p2p/message_validator.d.ts.map +1 -1
  250. package/dest/p2p/message_validator.js +2 -1
  251. package/dest/p2p/signed_txs.d.ts +3 -1
  252. package/dest/p2p/signed_txs.d.ts.map +1 -1
  253. package/dest/p2p/signed_txs.js +6 -1
  254. package/dest/p2p/topic_type.js +2 -1
  255. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  256. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  257. package/dest/parity/parity_public_inputs.d.ts +4 -1
  258. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  259. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  260. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  261. package/dest/proofs/chonk_proof.d.ts +1 -1
  262. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  263. package/dest/proofs/chonk_proof.js +9 -4
  264. package/dest/proofs/proof.d.ts +4 -1
  265. package/dest/proofs/proof.d.ts.map +1 -1
  266. package/dest/proofs/recursive_proof.d.ts +10 -1
  267. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  268. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  269. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  270. package/dest/rollup/block_constant_data.d.ts +12 -1
  271. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  272. package/dest/rollup/block_headers_hash.js +1 -1
  273. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  274. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  275. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  276. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  277. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  278. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  279. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  280. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  281. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  282. package/dest/rollup/checkpoint_header.d.ts +29 -2
  283. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  284. package/dest/rollup/checkpoint_header.js +21 -5
  285. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  286. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  287. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  288. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  289. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  290. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  291. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  292. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  293. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  294. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  295. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  296. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  297. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  298. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  299. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  300. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  301. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  302. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  303. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  304. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  305. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  306. package/dest/schemas/schemas.d.ts +1 -1
  307. package/dest/stats/stats.d.ts +1 -3
  308. package/dest/stats/stats.d.ts.map +1 -1
  309. package/dest/tests/factories.d.ts +2 -4
  310. package/dest/tests/factories.d.ts.map +1 -1
  311. package/dest/tests/factories.js +6 -15
  312. package/dest/tests/jest.js +1 -1
  313. package/dest/tests/mocks.d.ts +20 -14
  314. package/dest/tests/mocks.d.ts.map +1 -1
  315. package/dest/tests/mocks.js +45 -27
  316. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  317. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  318. package/dest/trees/nullifier_leaf.d.ts +13 -1
  319. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  320. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  321. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  322. package/dest/trees/public_data_leaf.d.ts +16 -1
  323. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  324. package/dest/trees/public_data_witness.d.ts +11 -1
  325. package/dest/trees/public_data_witness.d.ts.map +1 -1
  326. package/dest/tx/block_header.d.ts +14 -2
  327. package/dest/tx/block_header.d.ts.map +1 -1
  328. package/dest/tx/block_header.js +5 -1
  329. package/dest/tx/call_context.d.ts +13 -1
  330. package/dest/tx/call_context.d.ts.map +1 -1
  331. package/dest/tx/capsule.d.ts +4 -1
  332. package/dest/tx/capsule.d.ts.map +1 -1
  333. package/dest/tx/execution_payload.d.ts +9 -1
  334. package/dest/tx/execution_payload.d.ts.map +1 -1
  335. package/dest/tx/function_data.d.ts +4 -2
  336. package/dest/tx/function_data.d.ts.map +1 -1
  337. package/dest/tx/global_variables.d.ts +9 -1
  338. package/dest/tx/global_variables.d.ts.map +1 -1
  339. package/dest/tx/hashed_values.d.ts +7 -1
  340. package/dest/tx/hashed_values.d.ts.map +1 -1
  341. package/dest/tx/in_tx.d.ts +4 -4
  342. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  343. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  344. package/dest/tx/indexed_tx_effect.js +3 -2
  345. package/dest/tx/partial_state_reference.d.ts +4 -1
  346. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  347. package/dest/tx/private_execution_result.d.ts +23 -2
  348. package/dest/tx/private_execution_result.d.ts.map +1 -1
  349. package/dest/tx/private_execution_result.js +1 -1
  350. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  351. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  352. package/dest/tx/profiling.d.ts +149 -26
  353. package/dest/tx/profiling.d.ts.map +1 -1
  354. package/dest/tx/profiling.js +44 -7
  355. package/dest/tx/protocol_contracts.d.ts +1 -1
  356. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  357. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  358. package/dest/tx/state_reference.d.ts +3 -1
  359. package/dest/tx/state_reference.d.ts.map +1 -1
  360. package/dest/tx/tx.d.ts +24 -1
  361. package/dest/tx/tx.d.ts.map +1 -1
  362. package/dest/tx/tx.js +6 -3
  363. package/dest/tx/tx_context.d.ts +2 -1
  364. package/dest/tx/tx_context.d.ts.map +1 -1
  365. package/dest/tx/tx_effect.d.ts +32 -6
  366. package/dest/tx/tx_effect.d.ts.map +1 -1
  367. package/dest/tx/tx_effect.js +0 -7
  368. package/dest/tx/tx_execution_request.d.ts +30 -1
  369. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  370. package/dest/tx/tx_hash.d.ts +2 -1
  371. package/dest/tx/tx_hash.d.ts.map +1 -1
  372. package/dest/tx/tx_receipt.d.ts +47 -13
  373. package/dest/tx/tx_receipt.d.ts.map +1 -1
  374. package/dest/tx/tx_receipt.js +46 -15
  375. package/dest/tx/tx_request.d.ts +6 -1
  376. package/dest/tx/tx_request.d.ts.map +1 -1
  377. package/dest/tx/validator/error_texts.d.ts +2 -1
  378. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  379. package/dest/tx/validator/error_texts.js +2 -0
  380. package/dest/types/shared.d.ts +4 -1
  381. package/dest/types/shared.d.ts.map +1 -1
  382. package/dest/validators/schemas.d.ts +8 -8
  383. package/dest/vks/verification_key.d.ts +22 -1
  384. package/dest/vks/verification_key.d.ts.map +1 -1
  385. package/dest/vks/vk_data.d.ts +7 -1
  386. package/dest/vks/vk_data.d.ts.map +1 -1
  387. package/dest/zkpassport/index.d.ts +3 -4
  388. package/dest/zkpassport/index.d.ts.map +1 -1
  389. package/dest/zkpassport/index.js +9 -9
  390. package/package.json +25 -12
  391. package/src/abi/utils.ts +17 -0
  392. package/src/block/block_hash.ts +26 -25
  393. package/src/block/block_parameter.ts +4 -2
  394. package/src/block/body.ts +2 -1
  395. package/src/block/checkpointed_l2_block.ts +8 -58
  396. package/src/block/in_block.ts +5 -5
  397. package/src/block/index.ts +0 -2
  398. package/src/block/l2_block.ts +102 -150
  399. package/src/block/l2_block_source.ts +71 -42
  400. package/src/block/l2_block_stream/interfaces.ts +8 -5
  401. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  402. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  403. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  404. package/src/block/validate_block_result.ts +5 -4
  405. package/src/checkpoint/checkpoint.ts +33 -11
  406. package/src/checkpoint/published_checkpoint.ts +4 -3
  407. package/src/config/node-rpc-config.ts +1 -1
  408. package/src/contract/contract_address.ts +1 -1
  409. package/src/contract/contract_class_id.ts +1 -1
  410. package/src/contract/index.ts +0 -2
  411. package/src/contract/private_function.ts +2 -3
  412. package/src/contract/private_function_membership_proof.ts +1 -1
  413. package/src/database-version/database_version.ts +87 -0
  414. package/src/database-version/version_manager.ts +1 -77
  415. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  416. package/src/deserialization/index.ts +21 -0
  417. package/src/epoch-helpers/index.ts +10 -1
  418. package/src/hash/hash.ts +2 -2
  419. package/src/hash/map_slot.ts +3 -2
  420. package/src/interfaces/api_limit.ts +1 -0
  421. package/src/interfaces/archiver.ts +18 -24
  422. package/src/interfaces/aztec-node-admin.ts +3 -2
  423. package/src/interfaces/aztec-node.ts +85 -134
  424. package/src/interfaces/block-builder.ts +40 -23
  425. package/src/interfaces/configs.ts +1 -3
  426. package/src/interfaces/l2_logs_source.ts +17 -4
  427. package/src/interfaces/prover-broker.ts +22 -0
  428. package/src/interfaces/prover-client.ts +22 -0
  429. package/src/interfaces/tx_provider.ts +2 -2
  430. package/src/interfaces/validator.ts +9 -11
  431. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  432. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  433. package/src/keys/derivation.ts +8 -8
  434. package/src/keys/key_types.ts +1 -1
  435. package/src/keys/utils.ts +7 -3
  436. package/src/l1-contracts/slash_factory.ts +1 -0
  437. package/src/logs/log_id.ts +22 -18
  438. package/src/logs/siloed_tag.ts +3 -2
  439. package/src/messaging/l2_to_l1_membership.ts +5 -3
  440. package/src/messaging/out_hash.ts +60 -29
  441. package/src/note/note_dao.ts +18 -13
  442. package/src/p2p/block_proposal.ts +36 -13
  443. package/src/p2p/checkpoint_proposal.ts +29 -11
  444. package/src/p2p/consensus_payload.ts +0 -5
  445. package/src/p2p/constants.ts +3 -0
  446. package/src/p2p/index.ts +1 -0
  447. package/src/p2p/message_validator.ts +14 -2
  448. package/src/p2p/signed_txs.ts +6 -1
  449. package/src/p2p/topic_type.ts +1 -1
  450. package/src/proofs/chonk_proof.ts +9 -5
  451. package/src/rollup/block_headers_hash.ts +1 -1
  452. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  453. package/src/rollup/checkpoint_header.ts +20 -0
  454. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  455. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  456. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  457. package/src/stats/stats.ts +0 -2
  458. package/src/tests/factories.ts +6 -26
  459. package/src/tests/jest.ts +1 -1
  460. package/src/tests/mocks.ts +62 -42
  461. package/src/tx/block_header.ts +11 -3
  462. package/src/tx/indexed_tx_effect.ts +3 -2
  463. package/src/tx/private_execution_result.ts +1 -1
  464. package/src/tx/profiling.ts +46 -4
  465. package/src/tx/tx.ts +8 -9
  466. package/src/tx/tx_effect.ts +0 -9
  467. package/src/tx/tx_receipt.ts +75 -18
  468. package/src/tx/validator/error_texts.ts +3 -0
  469. package/src/zkpassport/index.ts +11 -12
  470. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  471. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  472. package/dest/block/l2_block_code_to_purge.js +0 -55
  473. package/dest/block/l2_block_header.d.ts +0 -94
  474. package/dest/block/l2_block_header.d.ts.map +0 -1
  475. package/dest/block/l2_block_header.js +0 -160
  476. package/dest/block/l2_block_new.d.ts +0 -134
  477. package/dest/block/l2_block_new.d.ts.map +0 -1
  478. package/dest/block/l2_block_new.js +0 -155
  479. package/dest/contract/contract_class_metadata.d.ts +0 -8
  480. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  481. package/dest/contract/contract_class_metadata.js +0 -1
  482. package/dest/contract/contract_metadata.d.ts +0 -7
  483. package/dest/contract/contract_metadata.d.ts.map +0 -1
  484. package/dest/contract/contract_metadata.js +0 -1
  485. package/dest/database-version/index.d.ts +0 -2
  486. package/dest/database-version/index.d.ts.map +0 -1
  487. package/dest/database-version/index.js +0 -1
  488. package/src/block/l2_block_code_to_purge.ts +0 -80
  489. package/src/block/l2_block_header.ts +0 -255
  490. package/src/block/l2_block_new.ts +0 -211
  491. package/src/contract/contract_class_metadata.ts +0 -8
  492. package/src/contract/contract_metadata.ts +0 -7
  493. 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,26 +1,24 @@
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';
11
+ import { TxHash } from '../tx/tx_hash.js';
10
12
 
11
13
  /** A globally unique log id. */
12
14
  export class LogId {
13
- /**
14
- * Parses a log id from a string.
15
- * @param blockNumber - The block number.
16
- * @param txIndex - The transaction index.
17
- * @param logIndex - The log index.
18
- */
19
15
  constructor(
20
16
  /** The block number the log was emitted in. */
21
17
  public readonly blockNumber: BlockNumber,
22
18
  /** The hash of the block the log was emitted in. */
23
- public readonly blockHash: L2BlockHash,
19
+ public readonly blockHash: BlockHash,
20
+ /** The hash of the transaction the log was emitted in. */
21
+ public readonly txHash: TxHash,
24
22
  /** The index of a tx in a block the log was emitted in. */
25
23
  public readonly txIndex: number,
26
24
  /** The index of a log the tx was emitted in. */
@@ -40,7 +38,8 @@ export class LogId {
40
38
  static random() {
41
39
  return new LogId(
42
40
  BlockNumber(Math.floor(Math.random() * 1000) + 1),
43
- L2BlockHash.random(),
41
+ BlockHash.random(),
42
+ TxHash.random(),
44
43
  Math.floor(Math.random() * 1000),
45
44
  Math.floor(Math.random() * 100),
46
45
  );
@@ -50,12 +49,14 @@ export class LogId {
50
49
  return z
51
50
  .object({
52
51
  blockNumber: BlockNumberSchema,
53
- blockHash: L2BlockHash.schema,
52
+ blockHash: BlockHash.schema,
53
+ txHash: TxHash.schema,
54
54
  txIndex: schemas.Integer,
55
55
  logIndex: schemas.Integer,
56
56
  })
57
57
  .transform(
58
- ({ blockNumber, blockHash, txIndex, logIndex }) => new LogId(blockNumber, blockHash, txIndex, logIndex),
58
+ ({ blockNumber, blockHash, txHash, txIndex, logIndex }) =>
59
+ new LogId(blockNumber, blockHash, txHash, txIndex, logIndex),
59
60
  );
60
61
  }
61
62
 
@@ -67,6 +68,7 @@ export class LogId {
67
68
  return Buffer.concat([
68
69
  toBufferBE(BigInt(this.blockNumber), 4),
69
70
  this.blockHash.toBuffer(),
71
+ this.txHash.toBuffer(),
70
72
  toBufferBE(BigInt(this.txIndex), 4),
71
73
  toBufferBE(BigInt(this.logIndex), 4),
72
74
  ]);
@@ -81,11 +83,12 @@ export class LogId {
81
83
  const reader = BufferReader.asReader(buffer);
82
84
 
83
85
  const blockNumber = BlockNumber(reader.readNumber());
84
- const blockHash = reader.readObject(L2BlockHash);
86
+ const blockHash = new BlockHash(reader.readObject(Fr));
87
+ const txHash = reader.readObject(TxHash);
85
88
  const txIndex = reader.readNumber();
86
89
  const logIndex = reader.readNumber();
87
90
 
88
- return new LogId(blockNumber, blockHash, txIndex, logIndex);
91
+ return new LogId(blockNumber, blockHash, txHash, txIndex, logIndex);
89
92
  }
90
93
 
91
94
  /**
@@ -93,7 +96,7 @@ export class LogId {
93
96
  * @returns A string representation of the log id.
94
97
  */
95
98
  public toString(): string {
96
- return `${this.blockNumber}-${this.txIndex}-${this.logIndex}-${this.blockHash.toString()}`;
99
+ return `${this.blockNumber}-${this.txIndex}-${this.logIndex}-${this.blockHash.toString()}-${this.txHash.toString()}`;
97
100
  }
98
101
 
99
102
  /**
@@ -102,13 +105,14 @@ export class LogId {
102
105
  * @returns A log id.
103
106
  */
104
107
  static fromString(data: string): LogId {
105
- const [rawBlockNumber, rawTxIndex, rawLogIndex, rawBlockHash] = data.split('-');
108
+ const [rawBlockNumber, rawTxIndex, rawLogIndex, rawBlockHash, rawTxHash] = data.split('-');
106
109
  const blockNumber = BlockNumber(Number(rawBlockNumber));
107
- const blockHash = L2BlockHash.fromString(rawBlockHash);
110
+ const blockHash = BlockHash.fromString(rawBlockHash);
111
+ const txHash = TxHash.fromString(rawTxHash);
108
112
  const txIndex = Number(rawTxIndex);
109
113
  const logIndex = Number(rawLogIndex);
110
114
 
111
- return new LogId(blockNumber, blockHash, txIndex, logIndex);
115
+ return new LogId(blockNumber, blockHash, txHash, txIndex, logIndex);
112
116
  }
113
117
 
114
118
  /**
@@ -116,6 +120,6 @@ export class LogId {
116
120
  * @returns A human readable representation of the log id.
117
121
  */
118
122
  public toHumanReadable(): string {
119
- return `logId: (blockNumber: ${this.blockNumber}, blockHash: ${this.blockHash.toString()}, txIndex: ${this.txIndex}, logIndex: ${this.logIndex})`;
123
+ return `logId: (blockNumber: ${this.blockNumber}, blockHash: ${this.blockHash.toString()}, txHash: ${this.txHash.toString()}, txIndex: ${this.txIndex}, logIndex: ${this.logIndex})`;
120
124
  }
121
125
  }
@@ -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);