@aztec/stdlib 4.0.0-nightly.20260113 → 4.0.0-nightly.20260115

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 (318) 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 +362 -362
  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/body.d.ts +1 -1
  30. package/dest/block/body.d.ts.map +1 -1
  31. package/dest/block/body.js +2 -1
  32. package/dest/block/checkpointed_l2_block.d.ts +13 -13
  33. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  34. package/dest/block/checkpointed_l2_block.js +5 -4
  35. package/dest/block/l2_block.d.ts +8 -4
  36. package/dest/block/l2_block.d.ts.map +1 -1
  37. package/dest/block/l2_block.js +4 -3
  38. package/dest/block/l2_block_code_to_purge.d.ts +1 -1
  39. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  40. package/dest/block/l2_block_code_to_purge.js +1 -1
  41. package/dest/block/l2_block_header.d.ts +14 -2
  42. package/dest/block/l2_block_header.d.ts.map +1 -1
  43. package/dest/block/l2_block_header.js +14 -7
  44. package/dest/block/l2_block_new.d.ts +9 -4
  45. package/dest/block/l2_block_new.d.ts.map +1 -1
  46. package/dest/block/l2_block_new.js +2 -2
  47. package/dest/block/l2_block_source.d.ts +3 -2
  48. package/dest/block/l2_block_source.d.ts.map +1 -1
  49. package/dest/block/validate_block_result.d.ts +1 -1
  50. package/dest/block/validate_block_result.d.ts.map +1 -1
  51. package/dest/block/validate_block_result.js +5 -4
  52. package/dest/checkpoint/checkpoint.d.ts +9 -4
  53. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  54. package/dest/checkpoint/checkpoint.js +10 -1
  55. package/dest/checkpoint/published_checkpoint.d.ts +5 -5
  56. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  57. package/dest/checkpoint/published_checkpoint.js +4 -3
  58. package/dest/contract/complete_address.d.ts +4 -1
  59. package/dest/contract/complete_address.d.ts.map +1 -1
  60. package/dest/contract/contract_deployment_data.d.ts +5 -5
  61. package/dest/contract/index.d.ts +1 -3
  62. package/dest/contract/index.d.ts.map +1 -1
  63. package/dest/contract/index.js +0 -2
  64. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  65. package/dest/database-version/version_manager.d.ts +4 -2
  66. package/dest/database-version/version_manager.d.ts.map +1 -1
  67. package/dest/deserialization/index.d.ts +11 -0
  68. package/dest/deserialization/index.d.ts.map +1 -0
  69. package/dest/deserialization/index.js +10 -0
  70. package/dest/errors/proving_error.d.ts +2 -2
  71. package/dest/errors/proving_error.d.ts.map +1 -1
  72. package/dest/interfaces/aztec-node-admin.d.ts +23 -26
  73. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  74. package/dest/interfaces/block-builder.d.ts +2 -2
  75. package/dest/interfaces/block-builder.d.ts.map +1 -1
  76. package/dest/interfaces/configs.d.ts +6 -6
  77. package/dest/interfaces/get_logs_response.d.ts +1 -1
  78. package/dest/interfaces/proving-job.d.ts +180 -180
  79. package/dest/interfaces/validator.d.ts +1 -9
  80. package/dest/interfaces/validator.d.ts.map +1 -1
  81. package/dest/interfaces/validator.js +0 -1
  82. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  83. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  84. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  85. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  86. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  87. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  88. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  89. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  90. package/dest/kernel/hints/read_request.d.ts +7 -1
  91. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  92. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  93. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  94. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  95. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  96. package/dest/kernel/private_call_data.d.ts +25 -1
  97. package/dest/kernel/private_call_data.d.ts.map +1 -1
  98. package/dest/kernel/private_call_request.d.ts +16 -1
  99. package/dest/kernel/private_call_request.d.ts.map +1 -1
  100. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  101. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  102. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  103. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  104. package/dest/kernel/private_kernel_data.d.ts +7 -1
  105. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  106. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  107. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  108. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  109. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  110. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  111. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  112. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  113. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  114. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  115. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  116. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  117. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  118. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  119. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  120. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  121. package/dest/kernel/private_validation_requests.d.ts +10 -1
  122. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  123. package/dest/kernel/public_call_request.d.ts +22 -1
  124. package/dest/kernel/public_call_request.d.ts.map +1 -1
  125. package/dest/kernel/utils/optional_number.d.ts +7 -1
  126. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  127. package/dest/keys/public_keys.d.ts +5 -1
  128. package/dest/keys/public_keys.d.ts.map +1 -1
  129. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  130. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  131. package/dest/logs/extended_public_log.d.ts +5 -3
  132. package/dest/logs/extended_public_log.d.ts.map +1 -1
  133. package/dest/logs/log_id.d.ts +5 -1
  134. package/dest/logs/log_id.d.ts.map +1 -1
  135. package/dest/messaging/inbox_leaf.d.ts +3 -1
  136. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  137. package/dest/messaging/l1_actor.d.ts +7 -1
  138. package/dest/messaging/l1_actor.d.ts.map +1 -1
  139. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  140. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  141. package/dest/messaging/l2_actor.d.ts +7 -1
  142. package/dest/messaging/l2_actor.d.ts.map +1 -1
  143. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  144. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  145. package/dest/messaging/l2_to_l1_membership.js +5 -3
  146. package/dest/messaging/out_hash.d.ts +41 -4
  147. package/dest/messaging/out_hash.d.ts.map +1 -1
  148. package/dest/messaging/out_hash.js +52 -26
  149. package/dest/note/note_dao.d.ts +36 -5
  150. package/dest/note/note_dao.d.ts.map +1 -1
  151. package/dest/note/note_dao.js +15 -12
  152. package/dest/p2p/block_proposal.d.ts +8 -1
  153. package/dest/p2p/block_proposal.d.ts.map +1 -1
  154. package/dest/p2p/block_proposal.js +6 -1
  155. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  156. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  157. package/dest/p2p/checkpoint_proposal.d.ts +6 -1
  158. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  159. package/dest/p2p/checkpoint_proposal.js +6 -1
  160. package/dest/p2p/consensus_payload.d.ts +4 -1
  161. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  162. package/dest/p2p/signed_txs.d.ts +3 -1
  163. package/dest/p2p/signed_txs.d.ts.map +1 -1
  164. package/dest/p2p/signed_txs.js +6 -1
  165. package/dest/p2p/topic_type.js +2 -1
  166. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  167. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  168. package/dest/parity/parity_public_inputs.d.ts +4 -1
  169. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  170. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  171. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  172. package/dest/proofs/chonk_proof.d.ts +1 -1
  173. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  174. package/dest/proofs/chonk_proof.js +9 -4
  175. package/dest/proofs/proof.d.ts +4 -1
  176. package/dest/proofs/proof.d.ts.map +1 -1
  177. package/dest/proofs/recursive_proof.d.ts +10 -1
  178. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  179. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  180. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  181. package/dest/rollup/block_constant_data.d.ts +12 -1
  182. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  183. package/dest/rollup/block_headers_hash.js +1 -1
  184. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  185. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  186. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  187. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  188. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  189. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  190. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  191. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  192. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  193. package/dest/rollup/checkpoint_header.d.ts +29 -2
  194. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  195. package/dest/rollup/checkpoint_header.js +21 -5
  196. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  197. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  198. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  199. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  200. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  201. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  202. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  203. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  204. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  205. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  206. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  207. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  208. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  209. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  210. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  211. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  212. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  213. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  214. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  215. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  216. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  217. package/dest/schemas/schemas.d.ts +1 -1
  218. package/dest/tests/factories.d.ts +1 -1
  219. package/dest/tests/factories.d.ts.map +1 -1
  220. package/dest/tests/factories.js +3 -2
  221. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  222. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  223. package/dest/trees/nullifier_leaf.d.ts +13 -1
  224. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  225. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  226. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  227. package/dest/trees/public_data_leaf.d.ts +16 -1
  228. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  229. package/dest/trees/public_data_witness.d.ts +11 -1
  230. package/dest/trees/public_data_witness.d.ts.map +1 -1
  231. package/dest/tx/block_header.d.ts +10 -1
  232. package/dest/tx/block_header.d.ts.map +1 -1
  233. package/dest/tx/call_context.d.ts +13 -1
  234. package/dest/tx/call_context.d.ts.map +1 -1
  235. package/dest/tx/capsule.d.ts +4 -1
  236. package/dest/tx/capsule.d.ts.map +1 -1
  237. package/dest/tx/execution_payload.d.ts +9 -1
  238. package/dest/tx/execution_payload.d.ts.map +1 -1
  239. package/dest/tx/function_data.d.ts +4 -2
  240. package/dest/tx/function_data.d.ts.map +1 -1
  241. package/dest/tx/global_variables.d.ts +9 -1
  242. package/dest/tx/global_variables.d.ts.map +1 -1
  243. package/dest/tx/hashed_values.d.ts +7 -1
  244. package/dest/tx/hashed_values.d.ts.map +1 -1
  245. package/dest/tx/in_tx.d.ts +1 -1
  246. package/dest/tx/partial_state_reference.d.ts +4 -1
  247. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  248. package/dest/tx/private_execution_result.d.ts +22 -1
  249. package/dest/tx/private_execution_result.d.ts.map +1 -1
  250. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  251. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  252. package/dest/tx/protocol_contracts.d.ts +1 -1
  253. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  254. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  255. package/dest/tx/state_reference.d.ts +3 -1
  256. package/dest/tx/state_reference.d.ts.map +1 -1
  257. package/dest/tx/tx.d.ts +23 -1
  258. package/dest/tx/tx.d.ts.map +1 -1
  259. package/dest/tx/tx_context.d.ts +2 -1
  260. package/dest/tx/tx_context.d.ts.map +1 -1
  261. package/dest/tx/tx_effect.d.ts +32 -6
  262. package/dest/tx/tx_effect.d.ts.map +1 -1
  263. package/dest/tx/tx_effect.js +0 -7
  264. package/dest/tx/tx_execution_request.d.ts +30 -1
  265. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  266. package/dest/tx/tx_hash.d.ts +2 -1
  267. package/dest/tx/tx_hash.d.ts.map +1 -1
  268. package/dest/tx/tx_receipt.d.ts +7 -1
  269. package/dest/tx/tx_receipt.d.ts.map +1 -1
  270. package/dest/tx/tx_request.d.ts +6 -1
  271. package/dest/tx/tx_request.d.ts.map +1 -1
  272. package/dest/types/shared.d.ts +4 -1
  273. package/dest/types/shared.d.ts.map +1 -1
  274. package/dest/validators/schemas.d.ts +8 -8
  275. package/dest/vks/verification_key.d.ts +22 -1
  276. package/dest/vks/verification_key.d.ts.map +1 -1
  277. package/dest/vks/vk_data.d.ts +7 -1
  278. package/dest/vks/vk_data.d.ts.map +1 -1
  279. package/package.json +11 -10
  280. package/src/abi/utils.ts +17 -0
  281. package/src/block/body.ts +2 -1
  282. package/src/block/checkpointed_l2_block.ts +5 -4
  283. package/src/block/l2_block.ts +4 -2
  284. package/src/block/l2_block_code_to_purge.ts +1 -0
  285. package/src/block/l2_block_header.ts +13 -0
  286. package/src/block/l2_block_new.ts +8 -2
  287. package/src/block/l2_block_source.ts +3 -1
  288. package/src/block/validate_block_result.ts +5 -4
  289. package/src/checkpoint/checkpoint.ts +11 -1
  290. package/src/checkpoint/published_checkpoint.ts +4 -3
  291. package/src/contract/index.ts +0 -2
  292. package/src/deserialization/index.ts +21 -0
  293. package/src/interfaces/block-builder.ts +1 -0
  294. package/src/interfaces/validator.ts +0 -4
  295. package/src/messaging/l2_to_l1_membership.ts +5 -3
  296. package/src/messaging/out_hash.ts +60 -29
  297. package/src/note/note_dao.ts +18 -13
  298. package/src/p2p/block_proposal.ts +6 -1
  299. package/src/p2p/checkpoint_proposal.ts +6 -1
  300. package/src/p2p/signed_txs.ts +6 -1
  301. package/src/p2p/topic_type.ts +1 -1
  302. package/src/proofs/chonk_proof.ts +9 -5
  303. package/src/rollup/block_headers_hash.ts +1 -1
  304. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  305. package/src/rollup/checkpoint_header.ts +20 -0
  306. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  307. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  308. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  309. package/src/tests/factories.ts +4 -1
  310. package/src/tx/tx_effect.ts +0 -9
  311. package/dest/contract/contract_class_metadata.d.ts +0 -8
  312. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  313. package/dest/contract/contract_class_metadata.js +0 -1
  314. package/dest/contract/contract_metadata.d.ts +0 -7
  315. package/dest/contract/contract_metadata.d.ts.map +0 -1
  316. package/dest/contract/contract_metadata.js +0 -1
  317. package/src/contract/contract_class_metadata.ts +0 -8
  318. package/src/contract/contract_metadata.ts +0 -7
@@ -31,6 +31,9 @@ export declare class G1AffineElement {
31
31
  * the commitment itself. The name can be e.g. Q_1, Q_2, SIGMA_1 etc.
32
32
  */
33
33
  export declare class CommitmentMap {
34
+ /**
35
+ * An object used to store the commitments.
36
+ */
34
37
  record: {
35
38
  [name: string]: G1AffineElement;
36
39
  };
@@ -94,11 +97,29 @@ export declare class VerificationKeyAsFields {
94
97
  static makeEmpty(size: number): VerificationKeyAsFields;
95
98
  }
96
99
  export declare class VerificationKey {
100
+ /**
101
+ * For Plonk, this is equivalent to the proving system used to prove and verify.
102
+ */
97
103
  circuitType: CircuitType;
104
+ /**
105
+ * The number of gates in this circuit.
106
+ */
98
107
  circuitSize: number;
108
+ /**
109
+ * The number of public inputs in this circuit.
110
+ */
99
111
  numPublicInputs: number;
112
+ /**
113
+ * The commitments for this circuit.
114
+ */
100
115
  commitments: Record<string, G1AffineElement>;
116
+ /**
117
+ * Contains a recursive proof?
118
+ */
101
119
  containsRecursiveProof: boolean;
120
+ /**
121
+ * Recursion stack.
122
+ */
102
123
  recursiveProofPublicInputIndices: number[];
103
124
  constructor(
104
125
  /**
@@ -178,4 +199,4 @@ export declare class VerificationKeyData {
178
199
  /** Creates an instance from a hex string. */
179
200
  static get schema(): import("zod").ZodType<VerificationKeyData, any, string>;
180
201
  }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zrcy92ZXJpZmljYXRpb25fa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUk5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxxQkFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNiOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUViLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBR3pDO0lBQ0Q7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FHaEU7Q0FDRjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLGFBQWE7SUFLZixNQUFNLEVBQUU7UUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsZUFBZSxDQUFBO0tBQUU7SUFKcEQ7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRTtRQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUE7S0FBRSxFQUNoRDtJQUVKOzs7T0FHRztJQUNILFFBQVEsNEJBR1A7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBRzlEO0NBQ0Y7QUFHRCxlQUFPLE1BQU0sa0JBQWtCLElBQUksQ0FBQztBQUNwQyxlQUFPLE1BQU0sMkJBQTJCLElBQUksQ0FB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
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zrcy92ZXJpZmljYXRpb25fa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUk5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxxQkFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNiOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUViLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBR3pDO0lBQ0Q7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FHaEU7Q0FDRjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLGFBQWE7SUFFdEI7O09BRUc7SUFDSSxNQUFNLEVBQUU7UUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsZUFBZSxDQUFBO0tBQUU7SUFKcEQ7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRTtRQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUE7S0FBRSxFQUNoRDtJQUVKOzs7T0FHRztJQUNILFFBQVEsNEJBR1A7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBRzlEO0NBQ0Y7QUFHRCxlQUFPLE1BQU0sa0JBQWtCLElBQUksQ0FBQztBQUNwQyxlQUFPLE1BQU0sMkJB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
@@ -1 +1 @@
1
- {"version":3,"file":"verification_key.d.ts","sourceRoot":"","sources":["../../src/vks/verification_key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification_key.d.ts","sourceRoot":"","sources":["../../src/vks/verification_key.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,13 @@ import type { UInt32 } from '../types/shared.js';
5
5
  import { VerificationKeyData } from './verification_key.js';
6
6
  export declare class VkData {
7
7
  vk: VerificationKeyData;
8
+ /**
9
+ * Index of the vk in the vk tree.
10
+ */
8
11
  leafIndex: UInt32;
12
+ /**
13
+ * Sibling path of the vk in the vk tree.
14
+ */
9
15
  siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>;
10
16
  constructor(vk: VerificationKeyData,
11
17
  /**
@@ -21,4 +27,4 @@ export declare class VkData {
21
27
  toBuffer(): Buffer<ArrayBufferLike>;
22
28
  toString(): `0x${string}`;
23
29
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmtfZGF0YS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zrcy92a19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUssRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUcxRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxxQkFBYSxNQUFNO0lBRVIsRUFBRSxFQUFFLG1CQUFtQjtJQUl2QixTQUFTLEVBQUUsTUFBTTtJQUlqQixXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLGNBQWMsQ0FBQztJQVR0RCxZQUNTLEVBQUUsRUFBRSxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQUN4Qjs7T0FFRztJQUNJLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sY0FBYyxDQUFDLEVBQ2xEO0lBRUosTUFBTSxDQUFDLEtBQUssV0FFWDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLFVBTzlDO0lBRUQsUUFBUSw0QkFFUDtJQUVELFFBQVEsa0JBRVA7Q0FDRiJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmtfZGF0YS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zrcy92a19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUssRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUcxRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxxQkFBYSxNQUFNO0lBRVIsRUFBRSxFQUFFLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNJLFNBQVMsRUFBRSxNQUFNO0lBQ3hCOztPQUVHO0lBQ0ksV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxjQUFjLENBQUM7SUFUdEQsWUFDUyxFQUFFLEVBQUUsbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU07SUFDeEI7O09BRUc7SUFDSSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLGNBQWMsQ0FBQyxFQUNsRDtJQUVKLE1BQU0sQ0FBQyxLQUFLLFdBRVg7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxVQU85QztJQUVELFFBQVEsNEJBRVA7SUFFRCxRQUFRLGtCQUVQO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"vk_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,MAAM;IAER,EAAE,EAAE,mBAAmB;IAIvB,SAAS,EAAE,MAAM;IAIjB,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IATtD,YACS,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAClD;IAEJ,MAAM,CAAC,KAAK,WAEX;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,UAO9C;IAED,QAAQ,4BAEP;IAED,QAAQ,kBAEP;CACF"}
1
+ {"version":3,"file":"vk_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,MAAM;IAER,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IATtD,YACS,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAClD;IAEJ,MAAM,CAAC,KAAK,WAEX;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,UAO9C;IAED,QAAQ,4BAEP;IAED,QAAQ,kBAEP;CACF"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "4.0.0-nightly.20260113",
3
+ "version": "4.0.0-nightly.20260115",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
7
7
  "./package.local.json"
8
8
  ],
9
9
  "exports": {
10
+ "./deserialization": "./dest/deserialization/index.js",
10
11
  "./aztec-address": "./dest/aztec-address/index.js",
11
12
  "./abi": "./dest/abi/index.js",
12
13
  "./abi/function-selector": "./dest/abi/function_selector.js",
@@ -69,7 +70,7 @@
69
70
  "tsconfig": "./tsconfig.json"
70
71
  },
71
72
  "scripts": {
72
- "build": "yarn clean && yarn generate && tsgo -b",
73
+ "build": "yarn clean && yarn generate && ../scripts/tsc.sh",
73
74
  "generate": "./scripts/copy-contracts.sh",
74
75
  "build:dev": "../scripts/tsc.sh --watch",
75
76
  "clean": "rm -rf ./dest .tsbuildinfo",
@@ -77,13 +78,13 @@
77
78
  },
78
79
  "dependencies": {
79
80
  "@aws-sdk/client-s3": "^3.892.0",
80
- "@aztec/bb.js": "4.0.0-nightly.20260113",
81
- "@aztec/blob-lib": "4.0.0-nightly.20260113",
82
- "@aztec/constants": "4.0.0-nightly.20260113",
83
- "@aztec/ethereum": "4.0.0-nightly.20260113",
84
- "@aztec/foundation": "4.0.0-nightly.20260113",
85
- "@aztec/l1-artifacts": "4.0.0-nightly.20260113",
86
- "@aztec/noir-noirc_abi": "4.0.0-nightly.20260113",
81
+ "@aztec/bb.js": "4.0.0-nightly.20260115",
82
+ "@aztec/blob-lib": "4.0.0-nightly.20260115",
83
+ "@aztec/constants": "4.0.0-nightly.20260115",
84
+ "@aztec/ethereum": "4.0.0-nightly.20260115",
85
+ "@aztec/foundation": "4.0.0-nightly.20260115",
86
+ "@aztec/l1-artifacts": "4.0.0-nightly.20260115",
87
+ "@aztec/noir-noirc_abi": "4.0.0-nightly.20260115",
87
88
  "@google-cloud/storage": "^7.15.0",
88
89
  "axios": "^1.12.0",
89
90
  "json-stringify-deterministic": "1.0.12",
@@ -108,7 +109,7 @@
108
109
  "@types/lodash.times": "^4.3.9",
109
110
  "@types/node": "^22.15.17",
110
111
  "@types/pako": "^2.0.3",
111
- "@typescript/native-preview": "7.0.0-dev.20251126.1",
112
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
112
113
  "eslint": "^9.26.0",
113
114
  "jest": "^30.0.0",
114
115
  "jest-mock-extended": "^4.0.0",
package/src/abi/utils.ts CHANGED
@@ -49,6 +49,23 @@ export function isWrappedFieldStruct(abiType: AbiType) {
49
49
  );
50
50
  }
51
51
 
52
+ /**
53
+ * Returns whether the ABI type is a PublicKeys struct from Aztec.nr.
54
+ * @param abiType - Type to check.
55
+ * @returns A boolean indicating whether the ABI type is a PublicKeys struct.
56
+ */
57
+ export function isPublicKeysStruct(abiType: AbiType) {
58
+ return (
59
+ abiType.kind === 'struct' &&
60
+ abiType.path === 'aztec::protocol_types::public_keys::PublicKeys' &&
61
+ abiType.fields.length === 4 &&
62
+ abiType.fields[0].name === 'npk_m' &&
63
+ abiType.fields[1].name === 'ivpk_m' &&
64
+ abiType.fields[2].name === 'ovpk_m' &&
65
+ abiType.fields[3].name === 'tpk_m'
66
+ );
67
+ }
68
+
52
69
  /**
53
70
  * Returns whether the ABI type is a BoundedVec struct from Noir's std::collections::bounded_vec.
54
71
  * @param abiType - Type to check.
package/src/block/body.ts CHANGED
@@ -5,6 +5,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { inspect } from 'util';
6
6
  import { z } from 'zod';
7
7
 
8
+ import { MAX_TX_EFFECTS_PER_BODY } from '../deserialization/index.js';
8
9
  import type { ZodFor } from '../schemas/index.js';
9
10
  import { TxEffect } from '../tx/tx_effect.js';
10
11
 
@@ -40,7 +41,7 @@ export class Body {
40
41
  static fromBuffer(buf: Buffer | BufferReader) {
41
42
  const reader = BufferReader.asReader(buf);
42
43
 
43
- return new this(reader.readVector(TxEffect));
44
+ return new this(reader.readVector(TxEffect, MAX_TX_EFFECTS_PER_BODY));
44
45
  }
45
46
 
46
47
  /**
@@ -6,6 +6,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
6
6
  import { z } from 'zod';
7
7
 
8
8
  import { L1PublishedData, PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
9
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
9
10
  import { L2Block } from './l2_block.js';
10
11
  import { L2BlockNew } from './l2_block_new.js';
11
12
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
@@ -36,9 +37,9 @@ export class CheckpointedL2Block {
36
37
  const checkpointNumber = reader.readNumber();
37
38
  const block = reader.readObject(L2BlockNew);
38
39
  const l1BlockNumber = reader.readBigInt();
39
- const l1BlockHash = reader.readString();
40
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
40
41
  const l1Timestamp = reader.readBigInt();
41
- const attestations = reader.readVector(CommitteeAttestation);
42
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
42
43
  return new CheckpointedL2Block(
43
44
  CheckpointNumber(checkpointNumber),
44
45
  block,
@@ -89,9 +90,9 @@ export class PublishedL2Block {
89
90
  const reader = BufferReader.asReader(bufferOrReader);
90
91
  const block = reader.readObject(L2Block);
91
92
  const l1BlockNumber = reader.readBigInt();
92
- const l1BlockHash = reader.readString();
93
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
93
94
  const l1Timestamp = reader.readBigInt();
94
- const attestations = reader.readVector(CommitteeAttestation);
95
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
95
96
  return new PublishedL2Block(block, new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash), attestations);
96
97
  }
97
98
 
@@ -108,10 +108,11 @@ export class L2Block {
108
108
 
109
109
  /**
110
110
  * Creates an L2 block containing empty data.
111
+ * @param header - An optional header to assign to the block
111
112
  * @returns The L2 block.
112
113
  */
113
- static empty(): L2Block {
114
- return new L2Block(AppendOnlyTreeSnapshot.empty(), L2BlockHeader.empty(), Body.empty());
114
+ static empty(header?: L2BlockHeader): L2Block {
115
+ return new L2Block(AppendOnlyTreeSnapshot.empty(), header ?? L2BlockHeader.empty(), Body.empty());
115
116
  }
116
117
 
117
118
  get number(): BlockNumber {
@@ -177,6 +178,7 @@ export class L2Block {
177
178
  new AppendOnlyTreeSnapshot(checkpointHeader.lastArchiveRoot, block.number),
178
179
  checkpointHeader.blobsHash,
179
180
  checkpointHeader.inHash,
181
+ checkpointHeader.epochOutHash,
180
182
  block.header.state,
181
183
  block.header.globalVariables,
182
184
  block.header.totalFees,
@@ -22,6 +22,7 @@ export function makeL2BlockHeader(
22
22
  makeAppendOnlyTreeSnapshot(seed + 0x100),
23
23
  overrides.blobsHash ?? new Fr(seed + 0x200),
24
24
  overrides.inHash ?? new Fr(seed + 0x300),
25
+ overrides.epochOutHash ?? new Fr(seed + 0x400),
25
26
  overrides.state ?? makeStateReference(seed + 0x600),
26
27
  makeGlobalVariables((seed += 0x700), {
27
28
  ...(blockNumber ? { blockNumber: BlockNumber(blockNumber) } : {}),
@@ -27,6 +27,8 @@ export class L2BlockHeader {
27
27
  public lastArchive: AppendOnlyTreeSnapshot,
28
28
  public blobsHash: Fr,
29
29
  public inHash: Fr,
30
+ /** Root of the epoch out hash tree. Leaves are the out hashes of this block and all previous blocks in the epoch. */
31
+ public epochOutHash: Fr,
30
32
  /** State reference. */
31
33
  public state: StateReference,
32
34
  /** Global variables of an L2 block. */
@@ -47,6 +49,7 @@ export class L2BlockHeader {
47
49
  lastArchive: AppendOnlyTreeSnapshot.schema,
48
50
  blobsHash: schemas.Fr,
49
51
  inHash: schemas.Fr,
52
+ epochOutHash: schemas.Fr,
50
53
  state: StateReference.schema,
51
54
  globalVariables: GlobalVariables.schema,
52
55
  totalFees: schemas.Fr,
@@ -62,6 +65,7 @@ export class L2BlockHeader {
62
65
  fields.lastArchive,
63
66
  fields.blobsHash,
64
67
  fields.inHash,
68
+ fields.epochOutHash,
65
69
  fields.state,
66
70
  fields.globalVariables,
67
71
  fields.totalFees,
@@ -88,6 +92,7 @@ export class L2BlockHeader {
88
92
  this.lastArchive.getSize() +
89
93
  this.blobsHash.size +
90
94
  this.inHash.size +
95
+ this.epochOutHash.size +
91
96
  this.state.getSize() +
92
97
  this.globalVariables.getSize() +
93
98
  this.totalFees.size +
@@ -116,6 +121,7 @@ export class L2BlockHeader {
116
121
  reader.readObject(AppendOnlyTreeSnapshot),
117
122
  reader.readObject(Fr),
118
123
  reader.readObject(Fr),
124
+ reader.readObject(Fr),
119
125
  reader.readObject(StateReference),
120
126
  reader.readObject(GlobalVariables),
121
127
  reader.readObject(Fr),
@@ -132,6 +138,7 @@ export class L2BlockHeader {
132
138
  AppendOnlyTreeSnapshot.fromFields(reader),
133
139
  reader.readField(),
134
140
  reader.readField(),
141
+ reader.readField(),
135
142
  StateReference.fromFields(reader),
136
143
  GlobalVariables.fromFields(reader),
137
144
  reader.readField(),
@@ -146,6 +153,7 @@ export class L2BlockHeader {
146
153
  lastArchive: AppendOnlyTreeSnapshot.empty(),
147
154
  blobsHash: Fr.ZERO,
148
155
  inHash: Fr.ZERO,
156
+ epochOutHash: Fr.ZERO,
149
157
  state: StateReference.empty(),
150
158
  globalVariables: GlobalVariables.empty(),
151
159
  totalFees: Fr.ZERO,
@@ -161,6 +169,7 @@ export class L2BlockHeader {
161
169
  this.lastArchive.isEmpty() &&
162
170
  this.blobsHash.isZero() &&
163
171
  this.inHash.isZero() &&
172
+ this.epochOutHash.isZero() &&
164
173
  this.state.isEmpty() &&
165
174
  this.globalVariables.isEmpty() &&
166
175
  this.totalFees.isZero() &&
@@ -188,6 +197,7 @@ export class L2BlockHeader {
188
197
  this.blockHeadersHash,
189
198
  this.blobsHash,
190
199
  this.inHash,
200
+ this.epochOutHash,
191
201
  this.globalVariables.slotNumber,
192
202
  this.globalVariables.timestamp,
193
203
  this.globalVariables.coinbase,
@@ -213,6 +223,7 @@ export class L2BlockHeader {
213
223
  lastArchive: this.lastArchive.root.toString(),
214
224
  blobsHash: this.blobsHash.toString(),
215
225
  inHash: this.inHash.toString(),
226
+ epochOutHash: this.epochOutHash.toString(),
216
227
  state: this.state.toInspect(),
217
228
  globalVariables: this.globalVariables.toInspect(),
218
229
  totalFees: this.totalFees.toBigInt(),
@@ -227,6 +238,7 @@ export class L2BlockHeader {
227
238
  lastArchive: ${inspect(this.lastArchive)},
228
239
  blobsHash: ${inspect(this.blobsHash)},
229
240
  inHash: ${inspect(this.inHash)},
241
+ epochOutHash: ${inspect(this.epochOutHash)},
230
242
  state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
231
243
  state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
232
244
  state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
@@ -244,6 +256,7 @@ export class L2BlockHeader {
244
256
  this.lastArchive.equals(other.lastArchive) &&
245
257
  this.blobsHash.equals(other.blobsHash) &&
246
258
  this.inHash.equals(other.inHash) &&
259
+ this.epochOutHash.equals(other.epochOutHash) &&
247
260
  this.state.equals(other.state) &&
248
261
  this.globalVariables.equals(other.globalVariables) &&
249
262
  this.totalFees.equals(other.totalFees) &&
@@ -131,8 +131,14 @@ export class L2BlockNew {
131
131
  };
132
132
  }
133
133
 
134
- static empty() {
135
- return new L2BlockNew(AppendOnlyTreeSnapshot.empty(), BlockHeader.empty(), Body.empty(), CheckpointNumber(0), 0);
134
+ static empty(header?: BlockHeader) {
135
+ return new L2BlockNew(
136
+ AppendOnlyTreeSnapshot.empty(),
137
+ header ?? BlockHeader.empty(),
138
+ Body.empty(),
139
+ CheckpointNumber(0),
140
+ 0,
141
+ );
136
142
  }
137
143
 
138
144
  /**
@@ -243,7 +243,9 @@ export type ArchiverEmitter = TypedEventEmitter<{
243
243
  [L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
244
244
  [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
245
245
  }>;
246
- export interface L2BlockSourceEventEmitter extends L2BlockSource, ArchiverEmitter {}
246
+ export interface L2BlockSourceEventEmitter extends L2BlockSource {
247
+ events: ArchiverEmitter;
248
+ }
247
249
 
248
250
  /**
249
251
  * Identifier for L2 block tags.
@@ -11,6 +11,7 @@ import {
11
11
  deserializeCheckpointInfo,
12
12
  serializeCheckpointInfo,
13
13
  } from '../checkpoint/checkpoint_info.js';
14
+ import { MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
14
15
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
15
16
 
16
17
  /** Subtype for invalid checkpoint validation results */
@@ -109,13 +110,13 @@ export function deserializeValidateCheckpointResult(bufferOrReader: Buffer | Buf
109
110
  if (valid) {
110
111
  return { valid };
111
112
  }
112
- const reason = reader.readString() as 'insufficient-attestations' | 'invalid-attestation';
113
+ const reason = reader.readString(64) as 'insufficient-attestations' | 'invalid-attestation';
113
114
  const checkpoint = deserializeCheckpointInfo(reader.readBuffer());
114
- const committee = reader.readVector(EthAddress);
115
+ const committee = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
115
116
  const epoch = EpochNumber(reader.readNumber());
116
117
  const seed = reader.readBigInt();
117
- const attestors = reader.readVector(EthAddress);
118
- const attestations = reader.readVector(CommitteeAttestation);
118
+ const attestors = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
119
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
119
120
  const invalidIndex = reader.readNumber();
120
121
  if (reason === 'insufficient-attestations') {
121
122
  return { valid, reason, checkpoint, committee, epoch, seed, attestors, attestations };
@@ -8,6 +8,8 @@ import type { FieldsOf } from '@aztec/foundation/types';
8
8
  import { z } from 'zod';
9
9
 
10
10
  import { L2BlockNew } from '../block/l2_block_new.js';
11
+ import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
12
+ import { computeCheckpointOutHash } from '../messaging/out_hash.js';
11
13
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
14
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
15
  import type { CheckpointInfo } from './checkpoint_info.js';
@@ -48,7 +50,7 @@ export class Checkpoint {
48
50
  return new Checkpoint(
49
51
  reader.readObject(AppendOnlyTreeSnapshot),
50
52
  reader.readObject(CheckpointHeader),
51
- reader.readVector(L2BlockNew),
53
+ reader.readVector(L2BlockNew, MAX_BLOCKS_PER_CHECKPOINT),
52
54
  CheckpointNumber(reader.readNumber()),
53
55
  );
54
56
  }
@@ -66,6 +68,14 @@ export class Checkpoint {
66
68
  return this.header.hash();
67
69
  }
68
70
 
71
+ // Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
72
+ // Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
73
+ // checkpoints up to and including this one in the epoch.
74
+ public getCheckpointOutHash(): Fr {
75
+ const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
76
+ return computeCheckpointOutHash(msgs);
77
+ }
78
+
69
79
  public getState() {
70
80
  return this.blocks.at(-1)!.header.state;
71
81
  }
@@ -8,6 +8,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
8
8
  import { z } from 'zod';
9
9
 
10
10
  import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
11
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
11
12
  import { Checkpoint } from './checkpoint.js';
12
13
 
13
14
  export class L1PublishedData {
@@ -42,7 +43,7 @@ export class L1PublishedData {
42
43
  static fromBuffer(bufferOrReader: Buffer | BufferReader): L1PublishedData {
43
44
  const reader = BufferReader.asReader(bufferOrReader);
44
45
  const l1BlockNumber = reader.readBigInt();
45
- const l1BlockHash = reader.readString();
46
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
46
47
  const l1Timestamp = reader.readBigInt();
47
48
  return new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash);
48
49
  }
@@ -82,9 +83,9 @@ export class PublishedCheckpoint {
82
83
  const reader = BufferReader.asReader(bufferOrReader);
83
84
  const checkpoint = reader.readObject(Checkpoint);
84
85
  const l1BlockNumber = reader.readBigInt();
85
- const l1BlockHash = reader.readString();
86
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
86
87
  const l1Timestamp = reader.readBigInt();
87
- const attestations = reader.readVector(CommitteeAttestation);
88
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
88
89
  return new PublishedCheckpoint(
89
90
  checkpoint,
90
91
  new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),
@@ -1,11 +1,9 @@
1
1
  export * from './artifact_hash.js';
2
2
  export * from './contract_address.js';
3
3
  export * from './contract_class.js';
4
- export * from './contract_class_metadata.js';
5
4
  export * from './contract_class_id.js';
6
5
  export * from './contract_deployment_data.js';
7
6
  export * from './contract_instance.js';
8
- export * from './contract_metadata.js';
9
7
  export * from './contract_instance_update.js';
10
8
  export * from './private_function.js';
11
9
  export * from './private_function_membership_proof.js';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Constants for deserialization bounds checking.
3
+ * These constants define maximum allowed sizes during deserialization
4
+ * to prevent DoS attacks via maliciously crafted messages.
5
+ */
6
+ import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB } from '@aztec/constants';
7
+
8
+ /** Max transactions per block for deserialization validation */
9
+ export const MAX_TXS_PER_BLOCK = 2 ** 16;
10
+
11
+ /** Max committee size - theoretical max from bitmap design (256 bytes × 8 bits) */
12
+ export const MAX_COMMITTEE_SIZE = 2048;
13
+
14
+ /** Max blocks per checkpoint */
15
+ export const MAX_BLOCKS_PER_CHECKPOINT = 72;
16
+
17
+ /** Max tx effects per body (based on blob capacity per checkpoint) */
18
+ export const MAX_TX_EFFECTS_PER_BODY = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
19
+
20
+ /** Max block hash string length (hex: 0x + 64 chars, with generous headroom) */
21
+ export const MAX_BLOCK_HASH_STRING_LENGTH = 128;
@@ -80,6 +80,7 @@ export interface IFullNodeBlockBuilder {
80
80
  buildBlock(
81
81
  txs: Iterable<Tx> | AsyncIterable<Tx>,
82
82
  l1ToL2Messages: Fr[],
83
+ previousCheckpointOutHashes: Fr[],
83
84
  globalVariables: GlobalVariables,
84
85
  options: PublicProcessorLimits,
85
86
  fork?: MerkleTreeWriteOperations,
@@ -43,9 +43,6 @@ export interface ValidatorClientConfig {
43
43
  /** Whether to re-execute transactions in a block proposal before attesting */
44
44
  validatorReexecute: boolean;
45
45
 
46
- /** Will re-execute until this many milliseconds are left in the slot */
47
- validatorReexecuteDeadlineMs: number;
48
-
49
46
  /** Whether to always reexecute block proposals, even for non-validator nodes or when out of the currnet committee */
50
47
  alwaysReexecuteBlockProposals?: boolean;
51
48
 
@@ -78,7 +75,6 @@ export const ValidatorClientConfigSchema = zodFor<Omit<ValidatorClientConfig, 'v
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(),
@@ -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);