@aztec/stdlib 0.0.1-commit.3469e52 → 0.0.1-commit.35158ae7e

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 (591) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/buffer.d.ts +14 -4
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/buffer.js +25 -4
  7. package/dest/abi/decoder.d.ts +2 -2
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +7 -5
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_call.d.ts +39 -9
  17. package/dest/abi/function_call.d.ts.map +1 -1
  18. package/dest/abi/function_call.js +20 -3
  19. package/dest/abi/utils.d.ts +14 -1
  20. package/dest/abi/utils.d.ts.map +1 -1
  21. package/dest/abi/utils.js +15 -0
  22. package/dest/auth_witness/auth_witness.js +3 -3
  23. package/dest/avm/avm_proving_request.d.ts +166 -166
  24. package/dest/avm/revert_code.d.ts +16 -1
  25. package/dest/avm/revert_code.d.ts.map +1 -1
  26. package/dest/avm/revert_code.js +15 -5
  27. package/dest/block/block_data.d.ts +52 -0
  28. package/dest/block/block_data.d.ts.map +1 -0
  29. package/dest/block/block_data.js +12 -0
  30. package/dest/block/block_hash.d.ts +16 -18
  31. package/dest/block/block_hash.d.ts.map +1 -1
  32. package/dest/block/block_hash.js +21 -31
  33. package/dest/block/block_parameter.d.ts +4 -4
  34. package/dest/block/block_parameter.d.ts.map +1 -1
  35. package/dest/block/block_parameter.js +2 -2
  36. package/dest/block/checkpointed_l2_block.d.ts +6 -6
  37. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  38. package/dest/block/checkpointed_l2_block.js +3 -3
  39. package/dest/block/in_block.d.ts +11 -11
  40. package/dest/block/in_block.d.ts.map +1 -1
  41. package/dest/block/in_block.js +5 -5
  42. package/dest/block/index.d.ts +3 -2
  43. package/dest/block/index.d.ts.map +1 -1
  44. package/dest/block/index.js +2 -1
  45. package/dest/block/{l2_block_new.d.ts → l2_block.d.ts} +16 -7
  46. package/dest/block/l2_block.d.ts.map +1 -0
  47. package/dest/block/{l2_block_new.js → l2_block.js} +17 -11
  48. package/dest/block/l2_block_source.d.ts +70 -34
  49. package/dest/block/l2_block_source.d.ts.map +1 -1
  50. package/dest/block/l2_block_stream/interfaces.d.ts +3 -3
  51. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  52. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -3
  53. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  54. package/dest/block/l2_block_stream/l2_block_stream.js +14 -4
  55. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  56. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  57. package/dest/block/test/l2_tips_store_test_suite.js +2 -2
  58. package/dest/checkpoint/checkpoint.d.ts +28 -13
  59. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  60. package/dest/checkpoint/checkpoint.js +35 -19
  61. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  62. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  63. package/dest/checkpoint/checkpoint_data.js +26 -0
  64. package/dest/checkpoint/index.d.ts +3 -1
  65. package/dest/checkpoint/index.d.ts.map +1 -1
  66. package/dest/checkpoint/index.js +2 -0
  67. package/dest/checkpoint/published_checkpoint.d.ts +19 -4
  68. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  69. package/dest/checkpoint/published_checkpoint.js +1 -2
  70. package/dest/checkpoint/validate.d.ts +36 -0
  71. package/dest/checkpoint/validate.d.ts.map +1 -0
  72. package/dest/checkpoint/validate.js +120 -0
  73. package/dest/config/index.d.ts +3 -1
  74. package/dest/config/index.d.ts.map +1 -1
  75. package/dest/config/index.js +2 -0
  76. package/dest/config/node-rpc-config.js +1 -1
  77. package/dest/config/pipelining-config.d.ts +19 -0
  78. package/dest/config/pipelining-config.d.ts.map +1 -0
  79. package/dest/config/pipelining-config.js +18 -0
  80. package/dest/config/sequencer-config.d.ts +12 -0
  81. package/dest/config/sequencer-config.d.ts.map +1 -0
  82. package/dest/config/sequencer-config.js +24 -0
  83. package/dest/contract/contract_address.d.ts +3 -3
  84. package/dest/contract/contract_address.js +7 -7
  85. package/dest/contract/contract_class.d.ts +2 -3
  86. package/dest/contract/contract_class.d.ts.map +1 -1
  87. package/dest/contract/contract_class_id.d.ts +3 -3
  88. package/dest/contract/contract_class_id.d.ts.map +1 -1
  89. package/dest/contract/contract_class_id.js +7 -6
  90. package/dest/contract/index.d.ts +1 -3
  91. package/dest/contract/index.d.ts.map +1 -1
  92. package/dest/contract/index.js +0 -2
  93. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  94. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  95. package/dest/contract/interfaces/contract_class.js +1 -28
  96. package/dest/contract/interfaces/node-info.d.ts +3 -1
  97. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  98. package/dest/contract/interfaces/node-info.js +2 -1
  99. package/dest/contract/private_function.d.ts +1 -1
  100. package/dest/contract/private_function.d.ts.map +1 -1
  101. package/dest/contract/private_function.js +3 -4
  102. package/dest/database-version/database_version.d.ts +58 -0
  103. package/dest/database-version/database_version.d.ts.map +1 -0
  104. package/dest/database-version/database_version.js +69 -0
  105. package/dest/database-version/version_manager.d.ts +2 -50
  106. package/dest/database-version/version_manager.d.ts.map +1 -1
  107. package/dest/database-version/version_manager.js +1 -66
  108. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  109. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  110. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  111. package/dest/epoch-helpers/index.d.ts +13 -1
  112. package/dest/epoch-helpers/index.d.ts.map +1 -1
  113. package/dest/epoch-helpers/index.js +17 -3
  114. package/dest/file-store/local.d.ts +3 -3
  115. package/dest/file-store/local.d.ts.map +1 -1
  116. package/dest/file-store/local.js +13 -4
  117. package/dest/file-store/s3.d.ts +1 -1
  118. package/dest/file-store/s3.d.ts.map +1 -1
  119. package/dest/file-store/s3.js +11 -3
  120. package/dest/gas/gas_fees.d.ts +1 -1
  121. package/dest/gas/gas_fees.d.ts.map +1 -1
  122. package/dest/gas/gas_fees.js +4 -1
  123. package/dest/ha-signing/config.d.ts +136 -0
  124. package/dest/ha-signing/config.d.ts.map +1 -0
  125. package/dest/ha-signing/config.js +97 -0
  126. package/dest/ha-signing/index.d.ts +4 -0
  127. package/dest/ha-signing/index.d.ts.map +1 -0
  128. package/dest/ha-signing/index.js +3 -0
  129. package/dest/ha-signing/local_config.d.ts +63 -0
  130. package/dest/ha-signing/local_config.d.ts.map +1 -0
  131. package/dest/ha-signing/local_config.js +24 -0
  132. package/dest/ha-signing/types.d.ts +85 -0
  133. package/dest/ha-signing/types.d.ts.map +1 -0
  134. package/dest/ha-signing/types.js +32 -0
  135. package/dest/hash/hash.d.ts +17 -1
  136. package/dest/hash/hash.d.ts.map +1 -1
  137. package/dest/hash/hash.js +40 -10
  138. package/dest/hash/map_slot.d.ts +1 -1
  139. package/dest/hash/map_slot.d.ts.map +1 -1
  140. package/dest/hash/map_slot.js +4 -3
  141. package/dest/interfaces/allowed_element.d.ts +26 -20
  142. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  143. package/dest/interfaces/allowed_element.js +8 -8
  144. package/dest/interfaces/archiver.d.ts +1 -1
  145. package/dest/interfaces/archiver.d.ts.map +1 -1
  146. package/dest/interfaces/archiver.js +25 -18
  147. package/dest/interfaces/aztec-node-admin.d.ts +124 -32
  148. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  149. package/dest/interfaces/aztec-node-admin.js +12 -4
  150. package/dest/interfaces/aztec-node.d.ts +61 -62
  151. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  152. package/dest/interfaces/aztec-node.js +18 -19
  153. package/dest/interfaces/block-builder.d.ts +47 -14
  154. package/dest/interfaces/block-builder.d.ts.map +1 -1
  155. package/dest/interfaces/block-builder.js +16 -2
  156. package/dest/interfaces/configs.d.ts +78 -33
  157. package/dest/interfaces/configs.d.ts.map +1 -1
  158. package/dest/interfaces/configs.js +10 -3
  159. package/dest/interfaces/get_logs_response.d.ts +15 -8
  160. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  161. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  162. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  163. package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
  164. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  165. package/dest/interfaces/p2p.d.ts +4 -9
  166. package/dest/interfaces/p2p.d.ts.map +1 -1
  167. package/dest/interfaces/prover-broker.d.ts +16 -1
  168. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  169. package/dest/interfaces/prover-broker.js +4 -1
  170. package/dest/interfaces/prover-client.d.ts +20 -1
  171. package/dest/interfaces/prover-client.d.ts.map +1 -1
  172. package/dest/interfaces/prover-client.js +18 -1
  173. package/dest/interfaces/proving-job.d.ts +36 -36
  174. package/dest/interfaces/slasher.d.ts +9 -1
  175. package/dest/interfaces/slasher.d.ts.map +1 -1
  176. package/dest/interfaces/slasher.js +2 -0
  177. package/dest/interfaces/tx_provider.d.ts +3 -3
  178. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  179. package/dest/interfaces/validator.d.ts +150 -42
  180. package/dest/interfaces/validator.d.ts.map +1 -1
  181. package/dest/interfaces/validator.js +11 -4
  182. package/dest/interfaces/world_state.d.ts +5 -4
  183. package/dest/interfaces/world_state.d.ts.map +1 -1
  184. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  185. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  186. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  187. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  188. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  189. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -15
  190. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  191. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  192. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  193. package/dest/kernel/hints/index.d.ts +2 -2
  194. package/dest/kernel/hints/index.js +2 -2
  195. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  196. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  197. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  198. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  199. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  200. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  201. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  202. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  203. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  204. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  205. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  206. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  207. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  208. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  209. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  210. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  211. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  212. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  213. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  214. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  215. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  216. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  217. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  218. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  219. package/dest/kernel/private_validation_requests.d.ts +3 -3
  220. package/dest/kernel/private_validation_requests.js +9 -9
  221. package/dest/keys/derivation.d.ts +3 -3
  222. package/dest/keys/derivation.js +15 -15
  223. package/dest/keys/key_types.d.ts +3 -3
  224. package/dest/keys/key_types.d.ts.map +1 -1
  225. package/dest/keys/public_keys.js +2 -2
  226. package/dest/keys/utils.d.ts +1 -1
  227. package/dest/keys/utils.d.ts.map +1 -1
  228. package/dest/keys/utils.js +8 -4
  229. package/dest/kv-store/config.d.ts +17 -0
  230. package/dest/kv-store/config.d.ts.map +1 -0
  231. package/dest/kv-store/config.js +26 -0
  232. package/dest/kv-store/index.d.ts +2 -0
  233. package/dest/kv-store/index.d.ts.map +1 -0
  234. package/dest/kv-store/index.js +1 -0
  235. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  236. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  237. package/dest/l1-contracts/slash_factory.js +1 -0
  238. package/dest/logs/debug_log_store.d.ts +30 -0
  239. package/dest/logs/debug_log_store.d.ts.map +1 -0
  240. package/dest/logs/debug_log_store.js +30 -0
  241. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  242. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  243. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  244. package/dest/logs/extended_public_log.d.ts +13 -7
  245. package/dest/logs/extended_public_log.d.ts.map +1 -1
  246. package/dest/logs/index.d.ts +4 -2
  247. package/dest/logs/index.d.ts.map +1 -1
  248. package/dest/logs/index.js +3 -1
  249. package/dest/logs/log_filter.d.ts +4 -1
  250. package/dest/logs/log_filter.d.ts.map +1 -1
  251. package/dest/logs/log_filter.js +2 -1
  252. package/dest/logs/log_id.d.ts +17 -14
  253. package/dest/logs/log_id.d.ts.map +1 -1
  254. package/dest/logs/log_id.js +20 -17
  255. package/dest/logs/pre_tag.d.ts +16 -11
  256. package/dest/logs/pre_tag.d.ts.map +1 -1
  257. package/dest/logs/pre_tag.js +2 -2
  258. package/dest/logs/private_log.d.ts +2 -2
  259. package/dest/logs/private_log.d.ts.map +1 -1
  260. package/dest/logs/public_log.d.ts +4 -3
  261. package/dest/logs/public_log.d.ts.map +1 -1
  262. package/dest/logs/public_log.js +2 -1
  263. package/dest/logs/siloed_tag.d.ts +5 -3
  264. package/dest/logs/siloed_tag.d.ts.map +1 -1
  265. package/dest/logs/siloed_tag.js +8 -6
  266. package/dest/logs/tag.js +1 -1
  267. package/dest/logs/tagging_index_range.d.ts +40 -0
  268. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  269. package/dest/logs/tagging_index_range.js +8 -0
  270. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  271. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  272. package/dest/logs/tx_scoped_l2_log.js +7 -0
  273. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  274. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  275. package/dest/messaging/l1_to_l2_message.js +11 -13
  276. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  277. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  278. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  279. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  280. package/dest/messaging/l2_to_l1_membership.js +72 -29
  281. package/dest/noir/index.d.ts +3 -3
  282. package/dest/noir/index.d.ts.map +1 -1
  283. package/dest/note/index.d.ts +1 -2
  284. package/dest/note/index.d.ts.map +1 -1
  285. package/dest/note/index.js +0 -1
  286. package/dest/p2p/attestation_utils.d.ts +11 -1
  287. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  288. package/dest/p2p/attestation_utils.js +45 -0
  289. package/dest/p2p/block_proposal.d.ts +14 -7
  290. package/dest/p2p/block_proposal.d.ts.map +1 -1
  291. package/dest/p2p/block_proposal.js +3 -5
  292. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  293. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  294. package/dest/p2p/checkpoint_attestation.js +1 -1
  295. package/dest/p2p/checkpoint_proposal.d.ts +27 -13
  296. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  297. package/dest/p2p/checkpoint_proposal.js +41 -37
  298. package/dest/p2p/client_type.d.ts +2 -5
  299. package/dest/p2p/client_type.d.ts.map +1 -1
  300. package/dest/p2p/client_type.js +0 -7
  301. package/dest/p2p/consensus_payload.d.ts +12 -3
  302. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  303. package/dest/p2p/consensus_payload.js +22 -15
  304. package/dest/p2p/constants.d.ts +3 -1
  305. package/dest/p2p/constants.d.ts.map +1 -1
  306. package/dest/p2p/constants.js +1 -0
  307. package/dest/p2p/index.d.ts +1 -2
  308. package/dest/p2p/index.d.ts.map +1 -1
  309. package/dest/p2p/index.js +0 -1
  310. package/dest/p2p/message_validator.d.ts +18 -3
  311. package/dest/p2p/message_validator.d.ts.map +1 -1
  312. package/dest/p2p/message_validator.js +2 -1
  313. package/dest/p2p/peer_error.d.ts +3 -1
  314. package/dest/p2p/peer_error.d.ts.map +1 -1
  315. package/dest/p2p/peer_error.js +5 -0
  316. package/dest/p2p/topic_type.d.ts +3 -4
  317. package/dest/p2p/topic_type.d.ts.map +1 -1
  318. package/dest/p2p/topic_type.js +7 -24
  319. package/dest/proofs/chonk_proof.d.ts +46 -2
  320. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  321. package/dest/proofs/chonk_proof.js +85 -10
  322. package/dest/rollup/checkpoint_header.d.ts +2 -2
  323. package/dest/rollup/checkpoint_header.js +2 -2
  324. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  325. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  326. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  327. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  328. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  329. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  330. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  331. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  332. package/dest/slashing/empire.d.ts +1 -1
  333. package/dest/slashing/empire.d.ts.map +1 -1
  334. package/dest/slashing/empire.js +2 -0
  335. package/dest/slashing/helpers.d.ts +2 -2
  336. package/dest/slashing/helpers.d.ts.map +1 -1
  337. package/dest/slashing/helpers.js +6 -0
  338. package/dest/slashing/tally.d.ts +8 -2
  339. package/dest/slashing/tally.d.ts.map +1 -1
  340. package/dest/slashing/tally.js +35 -3
  341. package/dest/slashing/types.d.ts +7 -3
  342. package/dest/slashing/types.d.ts.map +1 -1
  343. package/dest/slashing/types.js +13 -1
  344. package/dest/stats/stats.d.ts +1 -3
  345. package/dest/stats/stats.d.ts.map +1 -1
  346. package/dest/tests/factories.d.ts +4 -4
  347. package/dest/tests/factories.d.ts.map +1 -1
  348. package/dest/tests/factories.js +22 -41
  349. package/dest/tests/jest.d.ts +4 -4
  350. package/dest/tests/jest.js +9 -9
  351. package/dest/tests/mocks.d.ts +21 -11
  352. package/dest/tests/mocks.d.ts.map +1 -1
  353. package/dest/tests/mocks.js +49 -33
  354. package/dest/timetable/index.d.ts +37 -0
  355. package/dest/timetable/index.d.ts.map +1 -0
  356. package/dest/timetable/index.js +39 -0
  357. package/dest/trees/public_data_leaf.d.ts +2 -1
  358. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  359. package/dest/trees/public_data_leaf.js +7 -6
  360. package/dest/tx/block_header.d.ts +5 -2
  361. package/dest/tx/block_header.d.ts.map +1 -1
  362. package/dest/tx/block_header.js +8 -3
  363. package/dest/tx/global_variables.d.ts +4 -4
  364. package/dest/tx/global_variables.d.ts.map +1 -1
  365. package/dest/tx/in_tx.d.ts +3 -3
  366. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  367. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  368. package/dest/tx/indexed_tx_effect.js +3 -2
  369. package/dest/tx/private_execution_result.d.ts +6 -6
  370. package/dest/tx/private_execution_result.d.ts.map +1 -1
  371. package/dest/tx/private_execution_result.js +6 -6
  372. package/dest/tx/profiling.d.ts +17 -5
  373. package/dest/tx/profiling.d.ts.map +1 -1
  374. package/dest/tx/profiling.js +15 -5
  375. package/dest/tx/protocol_contracts.d.ts +1 -1
  376. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  377. package/dest/tx/protocol_contracts.js +2 -2
  378. package/dest/tx/public_simulation_output.d.ts +4 -2
  379. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  380. package/dest/tx/public_simulation_output.js +7 -3
  381. package/dest/tx/simulated_tx.d.ts +113 -2
  382. package/dest/tx/simulated_tx.d.ts.map +1 -1
  383. package/dest/tx/simulated_tx.js +4 -1
  384. package/dest/tx/tx.d.ts +6 -5
  385. package/dest/tx/tx.d.ts.map +1 -1
  386. package/dest/tx/tx.js +18 -6
  387. package/dest/tx/tx_receipt.d.ts +63 -16
  388. package/dest/tx/tx_receipt.d.ts.map +1 -1
  389. package/dest/tx/tx_receipt.js +59 -17
  390. package/dest/tx/tx_request.js +2 -2
  391. package/dest/tx/validator/empty_validator.d.ts +2 -2
  392. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  393. package/dest/tx/validator/error_texts.d.ts +10 -2
  394. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  395. package/dest/tx/validator/error_texts.js +11 -1
  396. package/dest/tx/validator/tx_validator.d.ts +2 -2
  397. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  398. package/dest/update-checker/index.d.ts +3 -2
  399. package/dest/update-checker/index.d.ts.map +1 -1
  400. package/dest/update-checker/index.js +2 -1
  401. package/dest/update-checker/package_version.d.ts +3 -0
  402. package/dest/update-checker/package_version.d.ts.map +1 -0
  403. package/dest/update-checker/package_version.js +24 -0
  404. package/dest/update-checker/version_checker.d.ts +25 -0
  405. package/dest/update-checker/version_checker.d.ts.map +1 -0
  406. package/dest/update-checker/version_checker.js +50 -0
  407. package/dest/validators/errors.d.ts +6 -1
  408. package/dest/validators/errors.d.ts.map +1 -1
  409. package/dest/validators/errors.js +7 -0
  410. package/dest/validators/schemas.d.ts +30 -30
  411. package/dest/validators/schemas.d.ts.map +1 -1
  412. package/dest/validators/schemas.js +4 -3
  413. package/dest/validators/types.d.ts +3 -3
  414. package/dest/validators/types.d.ts.map +1 -1
  415. package/dest/versioning/versioning.d.ts +4 -2
  416. package/dest/versioning/versioning.d.ts.map +1 -1
  417. package/dest/versioning/versioning.js +4 -1
  418. package/package.json +26 -13
  419. package/src/abi/abi.ts +25 -2
  420. package/src/abi/buffer.ts +25 -4
  421. package/src/abi/decoder.ts +15 -6
  422. package/src/abi/encoder.ts +49 -6
  423. package/src/abi/event_metadata_definition.ts +2 -0
  424. package/src/abi/function_call.ts +25 -3
  425. package/src/abi/utils.ts +25 -0
  426. package/src/auth_witness/auth_witness.ts +3 -3
  427. package/src/avm/revert_code.ts +15 -0
  428. package/src/block/block_data.ts +26 -0
  429. package/src/block/block_hash.ts +26 -47
  430. package/src/block/block_parameter.ts +3 -3
  431. package/src/block/checkpointed_l2_block.ts +4 -4
  432. package/src/block/in_block.ts +8 -8
  433. package/src/block/index.ts +2 -1
  434. package/src/block/{l2_block_new.ts → l2_block.ts} +21 -13
  435. package/src/block/l2_block_source.ts +75 -35
  436. package/src/block/l2_block_stream/interfaces.ts +2 -2
  437. package/src/block/l2_block_stream/l2_block_stream.ts +26 -6
  438. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  439. package/src/block/test/l2_tips_store_test_suite.ts +4 -4
  440. package/src/checkpoint/checkpoint.ts +49 -22
  441. package/src/checkpoint/checkpoint_data.ts +51 -0
  442. package/src/checkpoint/index.ts +2 -0
  443. package/src/checkpoint/published_checkpoint.ts +3 -1
  444. package/src/checkpoint/validate.ts +230 -0
  445. package/src/config/index.ts +2 -0
  446. package/src/config/node-rpc-config.ts +1 -1
  447. package/src/config/pipelining-config.ts +31 -0
  448. package/src/config/sequencer-config.ts +37 -0
  449. package/src/contract/contract_address.ts +7 -7
  450. package/src/contract/contract_class.ts +3 -3
  451. package/src/contract/contract_class_id.ts +7 -6
  452. package/src/contract/index.ts +0 -2
  453. package/src/contract/interfaces/contract_class.ts +2 -82
  454. package/src/contract/interfaces/node-info.ts +3 -0
  455. package/src/contract/private_function.ts +3 -4
  456. package/src/database-version/database_version.ts +87 -0
  457. package/src/database-version/version_manager.ts +1 -77
  458. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  459. package/src/epoch-helpers/index.ts +27 -1
  460. package/src/file-store/local.ts +15 -5
  461. package/src/file-store/s3.ts +12 -3
  462. package/src/gas/README.md +123 -0
  463. package/src/gas/gas_fees.ts +7 -1
  464. package/src/ha-signing/config.ts +156 -0
  465. package/src/ha-signing/index.ts +27 -0
  466. package/src/ha-signing/local_config.ts +46 -0
  467. package/src/ha-signing/types.ts +112 -0
  468. package/src/hash/hash.ts +43 -10
  469. package/src/hash/map_slot.ts +3 -2
  470. package/src/interfaces/allowed_element.ts +29 -9
  471. package/src/interfaces/archiver.ts +25 -27
  472. package/src/interfaces/aztec-node-admin.ts +26 -2
  473. package/src/interfaces/aztec-node.ts +92 -117
  474. package/src/interfaces/block-builder.ts +71 -14
  475. package/src/interfaces/configs.ts +37 -11
  476. package/src/interfaces/l2_logs_source.ts +4 -1
  477. package/src/interfaces/merkle_tree_operations.ts +9 -19
  478. package/src/interfaces/p2p.ts +3 -14
  479. package/src/interfaces/prover-broker.ts +22 -0
  480. package/src/interfaces/prover-client.ts +30 -0
  481. package/src/interfaces/slasher.ts +4 -0
  482. package/src/interfaces/tx_provider.ts +2 -2
  483. package/src/interfaces/validator.ts +59 -29
  484. package/src/interfaces/world_state.ts +4 -3
  485. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  486. package/src/kernel/hints/build_nullifier_read_request_hints.ts +16 -28
  487. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  488. package/src/kernel/hints/index.ts +2 -2
  489. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  490. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  491. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  492. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  493. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  494. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  495. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  496. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  497. package/src/kernel/private_validation_requests.ts +8 -8
  498. package/src/keys/derivation.ts +15 -15
  499. package/src/keys/key_types.ts +6 -2
  500. package/src/keys/public_keys.ts +2 -2
  501. package/src/keys/utils.ts +8 -4
  502. package/src/kv-store/config.ts +36 -0
  503. package/src/kv-store/index.ts +1 -0
  504. package/src/l1-contracts/slash_factory.ts +1 -0
  505. package/src/logs/debug_log_store.ts +54 -0
  506. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  507. package/src/logs/index.ts +3 -1
  508. package/src/logs/log_filter.ts +5 -0
  509. package/src/logs/log_id.ts +22 -18
  510. package/src/logs/pre_tag.ts +5 -5
  511. package/src/logs/public_log.ts +4 -2
  512. package/src/logs/siloed_tag.ts +10 -4
  513. package/src/logs/tag.ts +1 -1
  514. package/src/logs/tagging_index_range.ts +24 -0
  515. package/src/logs/tx_scoped_l2_log.ts +16 -0
  516. package/src/messaging/l1_to_l2_message.ts +12 -9
  517. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  518. package/src/messaging/l2_to_l1_membership.ts +101 -36
  519. package/src/noir/index.ts +2 -2
  520. package/src/note/index.ts +0 -1
  521. package/src/p2p/attestation_utils.ts +56 -0
  522. package/src/p2p/block_proposal.ts +13 -8
  523. package/src/p2p/checkpoint_attestation.ts +6 -1
  524. package/src/p2p/checkpoint_proposal.ts +76 -51
  525. package/src/p2p/client_type.ts +0 -6
  526. package/src/p2p/consensus_payload.ts +25 -12
  527. package/src/p2p/constants.ts +3 -0
  528. package/src/p2p/index.ts +0 -1
  529. package/src/p2p/message_validator.ts +14 -2
  530. package/src/p2p/peer_error.ts +7 -0
  531. package/src/p2p/topic_type.ts +8 -15
  532. package/src/proofs/chonk_proof.ts +91 -5
  533. package/src/rollup/checkpoint_header.ts +2 -2
  534. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  535. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  536. package/src/slashing/empire.ts +3 -1
  537. package/src/slashing/helpers.ts +8 -0
  538. package/src/slashing/tally.ts +41 -2
  539. package/src/slashing/types.ts +14 -0
  540. package/src/stats/stats.ts +0 -2
  541. package/src/tests/factories.ts +27 -51
  542. package/src/tests/jest.ts +9 -9
  543. package/src/tests/mocks.ts +71 -36
  544. package/src/timetable/index.ts +66 -0
  545. package/src/trees/public_data_leaf.ts +11 -5
  546. package/src/tx/block_header.ts +14 -5
  547. package/src/tx/global_variables.ts +3 -3
  548. package/src/tx/indexed_tx_effect.ts +3 -2
  549. package/src/tx/private_execution_result.ts +5 -5
  550. package/src/tx/profiling.ts +14 -5
  551. package/src/tx/protocol_contracts.ts +2 -2
  552. package/src/tx/public_simulation_output.ts +4 -0
  553. package/src/tx/simulated_tx.ts +8 -1
  554. package/src/tx/tx.ts +20 -11
  555. package/src/tx/tx_receipt.ts +91 -19
  556. package/src/tx/tx_request.ts +2 -2
  557. package/src/tx/validator/empty_validator.ts +1 -1
  558. package/src/tx/validator/error_texts.ts +13 -1
  559. package/src/tx/validator/tx_validator.ts +1 -1
  560. package/src/update-checker/index.ts +2 -1
  561. package/src/update-checker/package_version.ts +30 -0
  562. package/src/update-checker/version_checker.ts +65 -0
  563. package/src/validators/errors.ts +9 -0
  564. package/src/validators/schemas.ts +8 -1
  565. package/src/validators/types.ts +5 -4
  566. package/src/versioning/versioning.ts +4 -1
  567. package/dest/block/l2_block_new.d.ts.map +0 -1
  568. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  569. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  570. package/dest/contract/private_function_membership_proof.js +0 -124
  571. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  572. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  573. package/dest/contract/utility_function_membership_proof.js +0 -87
  574. package/dest/database-version/index.d.ts +0 -2
  575. package/dest/database-version/index.d.ts.map +0 -1
  576. package/dest/database-version/index.js +0 -1
  577. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  578. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  579. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  580. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  581. package/dest/note/notes_filter.d.ts +0 -27
  582. package/dest/note/notes_filter.d.ts.map +0 -1
  583. package/dest/note/notes_filter.js +0 -11
  584. package/dest/update-checker/update-checker.d.ts +0 -49
  585. package/dest/update-checker/update-checker.d.ts.map +0 -1
  586. package/dest/update-checker/update-checker.js +0 -130
  587. package/src/contract/private_function_membership_proof.ts +0 -167
  588. package/src/contract/utility_function_membership_proof.ts +0 -118
  589. package/src/database-version/index.ts +0 -1
  590. package/src/note/notes_filter.ts +0 -38
  591. package/src/update-checker/update-checker.ts +0 -166
@@ -1,8 +1,11 @@
1
1
  import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { FieldsOf } from '@aztec/foundation/types';
3
3
 
4
+ import { z } from 'zod';
5
+
4
6
  import { AztecAddress } from '../aztec-address/index.js';
5
- import { type AbiType, FunctionType } from './abi.js';
7
+ import { schemas } from '../schemas/index.js';
8
+ import { type AbiType, AbiTypeSchema, FunctionType } from './abi.js';
6
9
  import { FunctionSelector } from './function_selector.js';
7
10
 
8
11
  /** A request to call a function on a contract. */
@@ -43,12 +46,31 @@ export class FunctionCall {
43
46
  return new FunctionCall(...FunctionCall.getFields(fields));
44
47
  }
45
48
 
49
+ static get schema() {
50
+ return z
51
+ .object({
52
+ name: z.string(),
53
+ to: schemas.AztecAddress,
54
+ selector: schemas.FunctionSelector,
55
+ type: z.nativeEnum(FunctionType),
56
+ isStatic: z.boolean(),
57
+ hideMsgSender: z.boolean(),
58
+ args: z.array(schemas.Fr),
59
+ returnTypes: z.array(AbiTypeSchema),
60
+ })
61
+ .transform(FunctionCall.from);
62
+ }
63
+
64
+ public isPublicStatic(): boolean {
65
+ return this.type === FunctionType.PUBLIC && this.isStatic;
66
+ }
67
+
46
68
  /**
47
69
  * Creates an empty function call.
48
70
  * @returns an empty function call.
49
71
  */
50
72
  public static empty() {
51
- return {
73
+ return FunctionCall.from({
52
74
  name: '',
53
75
  to: AztecAddress.ZERO,
54
76
  selector: FunctionSelector.empty(),
@@ -57,6 +79,6 @@ export class FunctionCall {
57
79
  isStatic: false,
58
80
  args: [],
59
81
  returnTypes: [],
60
- };
82
+ });
61
83
  }
62
84
  }
package/src/abi/utils.ts CHANGED
@@ -81,6 +81,31 @@ export function isBoundedVecStruct(abiType: AbiType) {
81
81
  );
82
82
  }
83
83
 
84
+ /**
85
+ * Returns whether the ABI type is Noir's std::option::Option lowered to a struct.
86
+ * @param abiType - Type to check.
87
+ * @returns A boolean indicating whether the ABI type is an Option struct.
88
+ */
89
+ export function isOptionStruct(abiType: AbiType) {
90
+ return (
91
+ abiType.kind === 'struct' &&
92
+ abiType.path === 'std::option::Option' &&
93
+ abiType.fields.length === 2 &&
94
+ abiType.fields[0].name === '_is_some' &&
95
+ abiType.fields[1].name === '_value'
96
+ );
97
+ }
98
+
99
+ /**
100
+ * Returns whether `null` or `undefined` can be mapped to a valid ABI value for this type.
101
+ *
102
+ * @param abiType - Type to check.
103
+ * @returns A boolean indicating whether nullish values are valid shorthand for this ABI type.
104
+ */
105
+ export function canBeMappedFromNullOrUndefined(abiType: AbiType) {
106
+ return isOptionStruct(abiType);
107
+ }
108
+
84
109
  /**
85
110
  * Returns a bigint by parsing a serialized 2's complement signed int.
86
111
  * @param b - The signed int as a buffer
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -61,7 +61,7 @@ export class AuthWitness {
61
61
  * @returns The inner hash for the witness
62
62
  */
63
63
  export const computeInnerAuthWitHash = (args: Fr[]) => {
64
- return poseidon2HashWithSeparator(args, GeneratorIndex.AUTHWIT_INNER);
64
+ return poseidon2HashWithSeparator(args, DomainSeparator.AUTHWIT_INNER);
65
65
  };
66
66
 
67
67
  /**
@@ -77,5 +77,5 @@ export const computeInnerAuthWitHash = (args: Fr[]) => {
77
77
  * @returns The outer hash for the witness
78
78
  */
79
79
  export const computeOuterAuthWitHash = (consumer: AztecAddress, chainId: Fr, version: Fr, innerHash: Fr) => {
80
- return poseidon2HashWithSeparator([consumer.toField(), chainId, version, innerHash], GeneratorIndex.AUTHWIT_OUTER);
80
+ return poseidon2HashWithSeparator([consumer.toField(), chainId, version, innerHash], DomainSeparator.AUTHWIT_OUTER);
81
81
  };
@@ -5,10 +5,25 @@ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
5
5
  import { inspect } from 'util';
6
6
  import { z } from 'zod';
7
7
 
8
+ /**
9
+ * Tracks which revertible phases of a transaction's public execution reverted.
10
+ *
11
+ * A transaction executes in three sequential phases:
12
+ * 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
13
+ * 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
14
+ * 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
15
+ *
16
+ * Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
17
+ * entirely.
18
+ */
8
19
  export enum RevertCodeEnum {
20
+ /** All phases completed successfully; no state was rolled back. */
9
21
  OK = 0,
22
+ /** APP_LOGIC reverted; its state changes were discarded. If present, TEARDOWN still ran and succeeded. */
10
23
  APP_LOGIC_REVERTED = 1,
24
+ /** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */
11
25
  TEARDOWN_REVERTED = 2,
26
+ /** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */
12
27
  BOTH_REVERTED = 3,
13
28
  }
14
29
 
@@ -0,0 +1,26 @@
1
+ import { CheckpointNumberSchema, IndexWithinCheckpointSchema } from '@aztec/foundation/branded-types';
2
+ import type { CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
+ import type { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { schemas } from '@aztec/foundation/schemas';
5
+
6
+ import { z } from 'zod';
7
+
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
+ import { BlockHeader } from '../tx/block_header.js';
10
+
11
+ /** L2Block metadata. Equivalent to L2Block but without block body containing tx data. */
12
+ export type BlockData = {
13
+ header: BlockHeader;
14
+ archive: AppendOnlyTreeSnapshot;
15
+ blockHash: Fr;
16
+ checkpointNumber: CheckpointNumber;
17
+ indexWithinCheckpoint: IndexWithinCheckpoint;
18
+ };
19
+
20
+ export const BlockDataSchema = z.object({
21
+ header: BlockHeader.schema,
22
+ archive: AppendOnlyTreeSnapshot.schema,
23
+ blockHash: schemas.Fr,
24
+ checkpointNumber: CheckpointNumberSchema,
25
+ indexWithinCheckpoint: IndexWithinCheckpointSchema,
26
+ });
@@ -1,66 +1,45 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
1
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import type { ZodFor } from '@aztec/foundation/schemas';
4
3
 
5
- import { schemas } from '../schemas/schemas.js';
4
+ import { inspect } from 'util';
6
5
 
7
- /** Hash of an L2 block. */
8
- export class L2BlockHash extends Buffer32 {
9
- constructor(
10
- /** The buffer containing the hash. */
11
- hash: Buffer,
12
- ) {
13
- super(hash);
14
- }
6
+ import { hexSchemaFor } from '../schemas/schemas.js';
15
7
 
16
- /**
17
- * Type guard that checks if a value is an L2BlockHash instance.
18
- * Uses duck typing to handle cases where instanceof fails due to module duplication.
19
- * Checks for Buffer32-like structure with a 32-byte buffer.
20
- */
21
- static isL2BlockHash(value: unknown): value is L2BlockHash {
22
- if (value instanceof L2BlockHash) {
23
- return true;
24
- }
25
- // Duck typing fallback: check if it looks like a Buffer32 with a 32-byte buffer
26
- // This helps when instanceof fails due to module duplication
27
- return (
28
- typeof value === 'object' &&
29
- value !== null &&
30
- 'buffer' in value &&
31
- Buffer.isBuffer((value as Buffer32).buffer) &&
32
- (value as Buffer32).buffer.length === 32 &&
33
- 'toBuffer' in value &&
34
- typeof (value as Buffer32).toBuffer === 'function'
35
- );
36
- }
8
+ const BLOCK_HASH_BRAND = Symbol.for('aztec.BlockHash');
37
9
 
38
- static override random() {
39
- return new L2BlockHash(Fr.random().toBuffer());
10
+ /** Hash of an L2 block. */
11
+ export class BlockHash extends Fr {
12
+ readonly [BLOCK_HASH_BRAND] = true as const;
13
+
14
+ constructor(hash: Fr) {
15
+ super(hash);
40
16
  }
41
17
 
42
- static override fromNumber(num: number): L2BlockHash {
43
- return new L2BlockHash(super.fromNumber(num).toBuffer());
18
+ override [inspect.custom]() {
19
+ return `BlockHash<${this.toString()}>`;
44
20
  }
45
21
 
46
- static override fromBuffer(buffer: Buffer | BufferReader) {
47
- const reader = BufferReader.asReader(buffer);
48
- return new L2BlockHash(reader.readBytes(L2BlockHash.SIZE));
22
+ toFr(): Fr {
23
+ return new Fr(this.toBigInt());
49
24
  }
50
25
 
51
- static override fromString(str: string): Buffer32 {
52
- return new L2BlockHash(super.fromString(str).toBuffer());
26
+ /**
27
+ * Type guard that checks if a value is a BlockHash instance.
28
+ * Uses Symbol.for to ensure cross-module compatibility.
29
+ */
30
+ static isBlockHash(value: unknown): value is BlockHash {
31
+ return typeof value === 'object' && value !== null && BLOCK_HASH_BRAND in value;
53
32
  }
54
33
 
55
- static get schema() {
56
- return schemas.BufferHex.transform(value => new L2BlockHash(value));
34
+ static override random() {
35
+ return new BlockHash(Fr.random());
57
36
  }
58
37
 
59
- static zero() {
60
- return new L2BlockHash(Buffer32.ZERO.toBuffer());
38
+ static override fromString(str: string): BlockHash {
39
+ return new BlockHash(Fr.fromString(str));
61
40
  }
62
41
 
63
- static override fromField(hash: Fr) {
64
- return new L2BlockHash(hash.toBuffer());
42
+ static override get schema() {
43
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
65
44
  }
66
45
  }
@@ -2,9 +2,9 @@ import { BlockNumberSchema } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import { z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
5
+ import { BlockHash } from './block_hash.js';
6
6
 
7
- export const BlockParameterSchema = z.union([L2BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
7
+ export const BlockParameterSchema = z.union([BlockHash.schema, BlockNumberSchema, z.literal('latest')]);
8
8
 
9
- /** Block parameter - either a specific BlockNumber, block hash (L2BlockHash), or 'latest' */
9
+ /** Block parameter - either a specific BlockNumber, block hash (BlockHash), or 'latest' */
10
10
  export type BlockParameter = z.infer<typeof BlockParameterSchema>;
@@ -7,7 +7,7 @@ import { z } from 'zod';
7
7
 
8
8
  import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
9
9
  import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
10
- import { L2BlockNew } from './l2_block_new.js';
10
+ import { L2Block } from './l2_block.js';
11
11
  import { CommitteeAttestation } from './proposal/committee_attestation.js';
12
12
 
13
13
  /**
@@ -16,7 +16,7 @@ import { CommitteeAttestation } from './proposal/committee_attestation.js';
16
16
  export class CheckpointedL2Block {
17
17
  constructor(
18
18
  public checkpointNumber: CheckpointNumber,
19
- public block: L2BlockNew,
19
+ public block: L2Block,
20
20
  public l1: L1PublishedData,
21
21
  public attestations: CommitteeAttestation[],
22
22
  ) {}
@@ -24,7 +24,7 @@ export class CheckpointedL2Block {
24
24
  return z
25
25
  .object({
26
26
  checkpointNumber: CheckpointNumberSchema,
27
- block: L2BlockNew.schema,
27
+ block: L2Block.schema,
28
28
  l1: L1PublishedData.schema,
29
29
  attestations: z.array(CommitteeAttestation.schema),
30
30
  })
@@ -34,7 +34,7 @@ export class CheckpointedL2Block {
34
34
  static fromBuffer(bufferOrReader: Buffer | BufferReader): CheckpointedL2Block {
35
35
  const reader = BufferReader.asReader(bufferOrReader);
36
36
  const checkpointNumber = reader.readNumber();
37
- const block = reader.readObject(L2BlockNew);
37
+ const block = reader.readObject(L2Block);
38
38
  const l1BlockNumber = reader.readBigInt();
39
39
  const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
40
40
  const l1Timestamp = reader.readBigInt();
@@ -2,12 +2,12 @@ import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types'
2
2
 
3
3
  import { type ZodTypeAny, z } from 'zod';
4
4
 
5
- import { L2BlockHash } from './block_hash.js';
6
- import type { L2BlockNew } from './l2_block_new.js';
5
+ import { BlockHash } from './block_hash.js';
6
+ import type { L2Block } from './l2_block.js';
7
7
 
8
8
  export type InBlock = {
9
9
  l2BlockNumber: BlockNumber;
10
- l2BlockHash: L2BlockHash;
10
+ l2BlockHash: BlockHash;
11
11
  };
12
12
 
13
13
  // Note: If you expand this type with indexInBlock, then delete `IndexedTxEffect` and use this type instead.
@@ -17,8 +17,8 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
21
- l2BlockHash: L2BlockHash.random(),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
+ l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
24
24
 
@@ -29,18 +29,18 @@ export function randomDataInBlock<T>(data: T): DataInBlock<T> {
29
29
  };
30
30
  }
31
31
 
32
- export async function wrapDataInBlock<T>(data: T, block: L2BlockNew): Promise<DataInBlock<T>> {
32
+ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataInBlock<T>> {
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: L2BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
40
40
  export function inBlockSchema() {
41
41
  return z.object({
42
42
  l2BlockNumber: BlockNumberSchema,
43
- l2BlockHash: L2BlockHash.schema,
43
+ l2BlockHash: BlockHash.schema,
44
44
  });
45
45
  }
46
46
 
@@ -1,4 +1,5 @@
1
- export * from './l2_block_new.js';
1
+ export * from './block_data.js';
2
+ export * from './l2_block.js';
2
3
  export * from './l2_block_stream/index.js';
3
4
  export * from './in_block.js';
4
5
  export * from './body.js';
@@ -1,4 +1,5 @@
1
1
  import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
+ import { DA_GAS_PER_FIELD } from '@aztec/constants';
2
3
  import {
3
4
  BlockNumber,
4
5
  CheckpointNumber,
@@ -15,18 +16,14 @@ import { z } from 'zod';
15
16
  import type { PrivateLog } from '../logs/private_log.js';
16
17
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
17
18
  import { BlockHeader } from '../tx/block_header.js';
19
+ import type { BlockHash } from './block_hash.js';
18
20
  import { Body } from './body.js';
19
21
  import type { L2BlockInfo } from './l2_block_info.js';
20
22
 
21
- // TODO(palla/mbps): Delete the existing `L2Block` class and rename this to `L2Block`.
22
- // TODO(palla/mbps): Consider moving the checkpointNumber and indexWithinCheckpoint to the header:
23
- // if the blockNumber is there, why not these as well? Consider whether they should be part of the
24
- // circuits structs though.
25
-
26
23
  /**
27
24
  * An L2 block with a header and a body.
28
25
  */
29
- export class L2BlockNew {
26
+ export class L2Block {
30
27
  constructor(
31
28
  /** Snapshot of archive tree after the block is applied. */
32
29
  public archive: AppendOnlyTreeSnapshot,
@@ -63,7 +60,7 @@ export class L2BlockNew {
63
60
  })
64
61
  .transform(
65
62
  ({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
66
- new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint),
63
+ new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
67
64
  );
68
65
  }
69
66
 
@@ -79,7 +76,7 @@ export class L2BlockNew {
79
76
  const checkpointNumber = CheckpointNumber(reader.readNumber());
80
77
  const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
81
78
 
82
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
79
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
83
80
  }
84
81
 
85
82
  /**
@@ -94,7 +91,7 @@ export class L2BlockNew {
94
91
  * Returns the block's hash (hash of block header).
95
92
  * @returns The block's hash.
96
93
  */
97
- public hash(): Promise<Fr> {
94
+ public hash(): Promise<BlockHash> {
98
95
  return this.header.hash();
99
96
  }
100
97
 
@@ -143,7 +140,7 @@ export class L2BlockNew {
143
140
  }
144
141
 
145
142
  static empty(header?: BlockHeader) {
146
- return new L2BlockNew(
143
+ return new L2Block(
147
144
  AppendOnlyTreeSnapshot.empty(),
148
145
  header ?? BlockHeader.empty(),
149
146
  Body.empty(),
@@ -177,11 +174,11 @@ export class L2BlockNew {
177
174
  txOptions?: Partial<Parameters<typeof Body.random>[0]>;
178
175
  makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
179
176
  } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
180
- ): Promise<L2BlockNew> {
177
+ ): Promise<L2Block> {
181
178
  const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
182
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
183
180
  const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
184
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
181
+ return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
185
182
  }
186
183
 
187
184
  /**
@@ -225,4 +222,15 @@ export class L2BlockNew {
225
222
  timestamp: this.header.globalVariables.timestamp,
226
223
  };
227
224
  }
225
+
226
+ /**
227
+ * Compute how much DA gas this block uses.
228
+ *
229
+ * @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
230
+ * This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
231
+ * in the L2BlockHeader, so we have to rely on recomputing it.
232
+ */
233
+ computeDAGasUsed(): number {
234
+ return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
235
+ }
228
236
  }